|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320И байндинги, и анимации, и прочее. Что-то типа байндингов в связке разметки и JS я видел только в одном исполнении - темплейты в мозилловском XUL. Во всех остальных случаях разметка не может сама обращаться к данным - их ей скармливает [js-]код, из которого идут обращения к объектам разметки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 08:54 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Сон Веры Павловныuser7320И байндинги, и анимации, и прочее. Что-то типа байндингов в связке разметки и JS я видел только в одном исполнении - темплейты в мозилловском XUL. Во всех остальных случаях разметка не может сама обращаться к данным - их ей скармливает [js-]код, из которого идут обращения к объектам разметки. Ммм... не понимаю, о чём вы говорите. Что значит "разметка сама обращается"? Есть односторонние байндинги, есть двухсторонние. Разметка "сама" навряд ли может. Может код. В ХТМЛ это остаётся делать только джаваскрипту, а в ВПФ - CLR. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 09:05 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, я про байндинги в ХТМЛ пока только в контексте knockoutjs знаю. Там очень похоже не то, что в ВПФ. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 09:07 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
beg-in-erМСУА зачем защищать клиентский код? ответа на этот вопрос у меня нет. а вдруг там сикретный скоростной алгоритм построения дерева на мильён элементов.Как только какой-либо код попадает на клиента, он перестает быть секретным. Клиентский код защитить от реверс-инжиниринга практически невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 09:49 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320skyANAuser7320, если не в теме, то сиди и помалкивай. Пользователи они разные: кому-то хватает удобного интерфейса, кому-то нет. У меня есть статистика по 12000-ам нашим текущим клиентам, а у тебя что есть? Лишь свои домыслы. А, так вы о ЦМС. Тогда надо не о ВПФ говорить, а об инструментах, наверное? В Студии вы можете отдельно изменить разметку, отдельно - код, отдельно - стили (особенно, если вынесите их в отдельные файлы). Есть как визуальный редактор, так и текстовый. Вроде, в Бленд даже можно стили редактировать в отдельном визуальном редакторе.Хорошо, давайте поговорим об инструментах. Студия и Бленд - это инструменты разработчика. А я спрашивал за пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 10:00 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320Сон Веры Павловны, я про байндинги в ХТМЛ пока только в контексте knockoutjs знаю. Там очень похоже не то на то , что в ВПФ. skyANAuser7320пропущено... А, так вы о ЦМС. Тогда надо не о ВПФ говорить, а об инструментах, наверное? В Студии вы можете отдельно изменить разметку, отдельно - код, отдельно - стили (особенно, если вынесите их в отдельные файлы). Есть как визуальный редактор, так и текстовый. Вроде, в Бленд даже можно стили редактировать в отдельном визуальном редакторе.Хорошо, давайте поговорим об инструментах. Студия и Бленд - это инструменты разработчика. А я спрашивал за пользователей. Вы говорите об инструменте, который позволяет пользователю создавать сайты? Только это в контексте веба, а в контексте десктопа - создавать приложения? Пользователю? Кажется, тут путаница или с терминами ("пользователь" - "разработчик"), или с назначением ПО. Если речь идёт о ЦМС для разработки сайтов, то это уже разработчик (сайтов). В то же время он пользователь (ЦМС). Тогда для первого случая - вот вам работа с кодом и визуальные редакторы, а для второго - вот вам кастомизация ЮИ Студии (её самой, а не программ, с помощью неё созданных). Если же вы имели ввиду простые приложения для десктопа (прям совсем простые, аналоги ЦМС), позволяющие создавать другие приложения (аналоги сайтов), то я таких сходу не припомню. Может, какие-нибудь поделки для детей, изучающих программирование в школе - какие-нибудь цветные кубики с готовыми шаблонами кода - такие, вроде, есть. Может, LabVIEW . Однако, как это относится к недостаткам ВПФ? Я уверен, что на ВПФ можно сделать аналог ЦМС для декстопа, но зачем? Вобщем, чего это я всё гадаю, да гадаю? Поясните уже, что вы имеете ввиду? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 11:11 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Во всём Дотнете и вообще в Сишарпе такой задачи не ставилось. Ставилась задача управляемости кодом и скорости разработки. Но приходят бородачи и начинают ныть "в наши дни Си был без плюсов и уж тем более без всяких там решёток...". пропущено... Так в том-то и штука, что мне говорили, что за лямбды и Линк будут бить. А что конкретно им не нравилось - не говорили. Были мои лямбды говнокодом или они в них даже не вникали... Создаётся впечатление, что как увидели лямбду, так не разбираясь сразу глаза красные и дым из носа.Ну давай посмотрим на твой код:user7320Я уже и сам не помню, что эта штука делает - попробуйте понять из кода. Завтра вспомню - скажу. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
2. У тебя в одном выражении и выбор из бд, и mapping (нарушение принципа единственной обязанности). Да и RecommendationForModel - это ViewModel у тебя, насколько я помню. И если клиенту потребуется JSON, или XML, или другой формат ViewModel, то что ты будешь делать, копипастить и править своё выражение? 3. FirstOrDefault() может вернуть null и упадёт исключение из которого ни фига не понятно, в каких данных проблема. Остальные замечания будт после того, как ты вспомнишь, что делает твой код "Не помню" - это я пошутил для усиления метафоры. )) Теперь объясняю. Структура данных у меня - модель, у которой есть коллекция рекомендаций. У каждой рекомендации есть коллеция групп. Нужно отсортировать рекомендации по коллекции групп. Т. е. сначала должна идти рекомендация, где группы, начинающиеся на "а", потом - где на "б" и т. д. Как это сказать обобщённо на словах, я не знаю - сложно сильно. Наверное, так: первой рекомендацией будет та, у которой найдётся хотя бы одна группа, стоящая по алфавитному порядку впереди групп всех остальных рекомендаций. Приведу пример модели: название рекомендации список группаааааа ббб яяяааа ввв бббббб ввв вввббб яяя Ну, с созданием компаратора через делегат Comparison<T> всё должно быть понятно. Далее, как компаратор используется для сортировки. Поскольку свойство для сортировки у меня - коллекция, то по ней сразу так не отсортируешь - нужно задать что-то вменяемое. Поэтому я сначала сортирую коллекцию групп (параметр "х" в лямбде) по названиям групп, а потом беру название первой группы из коллеции. Затем делаю то же самое со второй коллецией групп (параметр "у" в лямбде). И вот уже, имея два названия групп - от каждой сортированной коллеции групп по названию первой группы - я их сравниваю. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 11:50 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320Ну, с созданием компаратора через делегат Comparison<T> всё должно быть понятно. Далее, как компаратор используется для сортировки. Поскольку свойство для сортировки у меня - коллекция, то по ней сразу так не отсортируешь - нужно задать что-то вменяемое. Поэтому я сначала сортирую коллекцию групп (параметр "х" в лямбде) по названиям групп, а потом беру название первой группы из коллеции. Затем делаю то же самое со второй коллецией групп (параметр "у" в лямбде). И вот уже, имея два названия групп - от каждой сортированной коллеции групп по названию первой группы - я их сравниваю. Насчёт ПервыйИлиУмолчальный(). Пусто в коллекции групп быть не должно. Но может. Поскольку сравниваются типы, то в случае отсутствия групп вернётся null. И тут проблем нет. Проблема, что идёт обращение к полю Number для null. И тут у меня ошибка. И я прошу помощи, как её избежать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 11:56 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320, ну то есть у тебя Data Layer, Model и ViewModel смешались в кучу в одном выражении. Круто чё. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 11:58 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Ещё могу добавить, что названия типов в лямбде я написал, потому что CLR не смог вывести типы автоматически - сложная для него лямбда попалась, наверное. ))) Поэтому выглядит эта лямбда так монструозно. Без типов-то она помельче выглядит. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 11:58 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
skyANAuser7320, ну то есть у тебя Data Layer, Model и ViewModel смешались в кучу в одном выражении. Круто чё. Слой данных - да. Я работу с данным в отдельный слой не выносил - моя ошибка. А так вообще это сайт, а не ВПФ-приложение (я, наверное, забыл это упомянуть). Поэтому тут только модель - модель представления на js у клиента. Если без смешивания работы с данным и модели, что ещё не так? Я именно про лямбды хочу узнать - за что за них бьют? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 12:02 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320skyANAuser7320, ну то есть у тебя Data Layer, Model и ViewModel смешались в кучу в одном выражении. Круто чё. Слой данных - да. Я работу с данным в отдельный слой не выносил - моя ошибка. А так вообще это сайт, а не ВПФ-приложение (я, наверное, забыл это упомянуть). Поэтому тут только модель - модель представления на js у клиента."Нужно отсортировать рекомендации по коллекции групп. Т. е. сначала должна идти рекомендация, где группы, начинающиеся на "а", потом - где на "б" и т. д." - это представление чистой воды. user7320Если без смешивания работы с данным и модели, что ещё не так? Я именно про лямбды хочу узнать - за что за них бьют?Отдели данные от модели и представления, получишь другой код, тогда и будем обсуждать, что не так. За лямбды не бьют, бьют за вот такое их использование. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 12:07 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320Насчёт ПервыйИлиУмолчальный(). Пусто в коллекции групп быть не должно. Но может. Поскольку сравниваются типы, то в случае отсутствия групп вернётся null. И тут проблем нет. Проблема, что идёт обращение к полю Number для null. И тут у меня ошибка. И я прошу помощи, как её избежать.Если отсутствие групп - это исключительная ситуация, то логично кидать соответсвующее исключение и соответсвующим образом его обрабатывать (сообщение пользователю показывать, или ещё что), а не получать фиг знает о чём говорящее Object null reference exception. Будет твой продукт кто-нибудь поддерживать, пожалуется ему пользователь. Посмотрит человек логи и ни фига не поймёт, что происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 12:12 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320user7320Сон Веры Павловны, я про байндинги в ХТМЛ пока только в контексте knockoutjs знаю. Там очень похоже не то на то , что в ВПФ. skyANAпропущено... Хорошо, давайте поговорим об инструментах. Студия и Бленд - это инструменты разработчика. А я спрашивал за пользователей. Вы говорите об инструменте, который позволяет пользователю создавать сайты?Не создавать, а кастомизировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 12:14 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... пропущено... Вы говорите об инструменте, который позволяет пользователю создавать сайты?Не создавать, а кастомизировать. Т. е. есть сайт, а я инструменту указываю, как он должен выглядеть? Скажем, натравливаю этот инструмент на Ютуб и чего-нибудь с его интерфейсом делаю? Я не могу понять, зачем пользователю кастомизировать чьи-то сайты. Если свои - то он это делает при создании. Т. е. он разработчик. Если чужие - зачем ему это надо? Порушит чего-нибудь, а обвинит потом разработчиков. Потом отвечай или задабривай его, убеждай, что это не мы, разработчики, дураки, а он. Вы, наверное, про что-то типа Opera Dragonfly? Там можно откастомизировать и сохранить результат. Потом браузеру указать, что для этого сайта такие-то стили использовать. Ну так это относится к инструментам разработки. Обычные пользователи в большинстве своей массы такой фигнёй не маются. Ещё могу сказать, что все эти изъёбства с подменой стилей сайта на собственные - из-за нестандартизированного интерфейса веб-приложений. Каждый извращается во что горазд, вот и делают иногда негодное к использованию говно. Тогда да, хоть свой ЮИ пиши. Ещё могу представить такой вариант, что вы делаете набор сервисов, а пользователям даёте конструктор ЮИ к ним. Чтобы они сами себе там наконфигурировали, как им нравится. Ну так это опять к разработке и созданию инструментов разработки относится. Да и больше на извращения попахивает. В любом случае, запрограммировать можно любой инструмент разработки и на ВПФ - хоть с какими изъёбствами. Другое дело, что это будет уже не просто троллейбус из буханки, а ещё и через жопу. Если ваша задача - удовлетворять извращенцев, то да, ХТМЛ+ЦСС+ДС для этого, наверное, лучше подходят, чем ВПФ. ВПФ, всё же, для более нормальных людей придуман. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 13:38 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320 ВПФ, всё же, для более нормальных людей придуман. я могу впф запустить на ведроиде или яблоке? нет? ну это и есть приговор. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 14:08 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320, нет, всё не так. К примеру есть CMS WordPress, пользователь делает себе на ней сайт, используя один из 100500 шаблонов, которые под WordPress нафигачили. Всё ок. Дальше пользователи делятся на сл. типы: 1. тех, кого устраивает один из готовых шаблонов; 2. тех, кто хочет какую-то часть элементов шаблона кастомизировать под себя; 3. тех, кого не устраивает ни готовый, ни кастомизированный шаблон, они хотят свой. Первых большинство. Но и вторых, и третьих хватает. Я про вторых. Они не разрабатываю шаблон, не допиливают WordPress, они кастомизируют. У нас в WildApricot тоже есть CMS, тоже есть готовые шаблоны (у нас это называется темы), но их мало, по сравнению с WordPress, т.к. у нас всего два разработчика тем :) Соттветсвенно процент людей из п.2 и п.3 у нас выше. Надеюсь теперь понятно, кто разработчики, а кто пользователи? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 14:13 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
А ещё есть такое слово - брендинг. Вот продаём мы сл. софт: мобильный-банк. Это БД, админко, сервис для интеграции с АБС клиента (клиенты - это банки) и мобильное приложение для пользователей (клиенты банка). У банка уже есть свой бренд: корпоративные цвета, сайт, логотип. Возникает необходимость кастомизации интерфейса мобильного приложения под конкретного заказчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 14:19 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Если мобильное приложение гибридное, или веб, то вопрос решается кастомизацией CSS. А если нативное, в нашем случае Silverlight, то как? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 14:23 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
skyANAЕсли мобильное приложение гибридное, или веб, то вопрос решается кастомизацией CSS. Пфф. CSS - это только цвета/шрифты/выравнивания. Изменить разметку с его помощью не выйдет. На WPF вполне реально сделать кастомизируемый интерфейс, и даже с подобием изменения раскладки (разметки), если использовать библиотеки типа AvalonDock и кастомные темы (последних в инетах предостаточно). Поле для различных извращений тут весьма обширное, вплоть до сериализации xaml шаблонов custom/content controls (т.е. именно кастомной разметки) в настройки пользователя, и подгрузки их на рантайме - где-то такое пробегало на кодепроджекте. Но это как-то не особенно востребовано - поскольку, думаю, не особенно нужно. А пример с вордпрессом показателен, ага - прикручивание рюшечек к своей днявке :) Я, конечно, понимаю, что это тоже весьма востребованная рыночная ниша, но лично для меня она как-то остается в стороне. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 14:39 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
beg-in-erМСУА зачем защищать клиентский код? ответа на этот вопрос у меня нет. а вдруг там сикретный скоростной алгоритм построения дерева на мильён элементов. Клиентский код не защищают ибо это бессмысленное занятие. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 14:49 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, речь не о том, что кастомизируется при помощи CSS, а что при помощи HTML. Меня интересует как это делается в WPF, Silverlight. AvalonDock и кастомные темы - вот это уже разговор. Но как пользователю с этим работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 14:58 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныПоле для различных извращений тут весьма обширное, вплоть до сериализации xaml шаблонов custom/content controls (т.е. именно кастомной разметки) в настройки пользователя, и подгрузки их на рантайме - где-то такое пробегало на кодепроджекте.++ зы: При этом, используя ControlTemplate и AttachedProperty, стилями можно изменять не только внешний вид, но и поведение. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 15:02 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
skyANAСон Веры Павловны, речь не о том, что кастомизируется при помощи CSS, а что при помощи HTML. Меня интересует как это делается в WPF, Silverlight. Ну тебе ж сказали, XAML как текст можно спокойно рендерить руками. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 15:04 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Алексей К При этом, используя ControlTemplate и AttachedProperty, стилями можно изменять не только внешний вид, но и поведение. набор псевдоклассов типа hover ... или свойства transition/animation тоже позволяют менять поведение. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2013, 15:12 |
|
|
start [/forum/topic.php?fid=20&msg=38489782&tid=1401776]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 358ms |
total: | 473ms |
0 / 0 |