Denis Gladkikh
Russian   |  English

Выбранный тег: Silverlight

Страница  1  2  3  

Silverlight. Основы. Валидация. Часть 1. DataAnnotations & ValidatesOnExceptions

В Silverlight 4 есть несколько способов для валидации введённых данных, точнее несколько подходов для реализации валидации. Первый вариант, реализация валидации на DataAnnotation. Вариант, когда правила валидации описываются при помощи атрибутов. Два других подхода – это реализация одного из интерфейсов IDataErrorInfo или INotifyDataErrorInfo. Я хотел бы остановиться на каждом из подходов, поговорить о преимуществах и недостатках каждого из них. Цель данной статьи выявить лучшие практики для валидации для себя и для вас. Так получилось, что статья оказалась большой, потому реализую ее в два или три подхода. Эта часть только про DataAnnotation.



Application Developers Days 2010–как это было…

Если вкратце – это было незабываемо! Конференция проходила в два дня в Ярославле 23-24 сентября (четверг и пятницу) – может быть, эти даты служат причиной, почему многие кто “хотел” не попали на конференцию, все-таки два рабочих дня. По мне так, ну и хорошо, нам больше пирожков досталось.

Давайте о главном, о докладах. Столько ненужной и неполезной мне на данный момент информации я не получал никогда, но в то же время столько интересной информации я тоже не получил никогда (кто знает, может, пригодятся мне когда-нибудь эти знания). Именно так можно охарактеризовать конференцию. Темы докладов были настолько разрозненные, что иногда просто было сложно переключаться. Люди уже просто терялись, было два доклада с одинаковым набором слов “Статический анализатор кода”, один в первый день, другой во второй день. И тот народ, который был на первом докладе, во второй день мне явно говорил – “неее, туда мы не пойдем, нас там, в прошлый раз загрузили этим анализатором”, и благо я объяснил сомневающемуся народу, что доклад будет совсем не про то, что тема-то совершенно другая. 

Главное, что я получил с этой конференции – это новые знакомства. Столько новых лиц, интересных личностей. Я наконец-то увидел кто это - Алёна C++. Кстати, ее доклад, раскрывающий простые принципы разработки AI в компьютерных играх – неописуемо интересный. Про каждый доклад, на котором я был, мне писать не хочется, каждый был в той или иной мере интересным и познавательным, посмотрите просто в твиттере тред с #ADD2010 и вы все поймете, ну и само собой про каждый доклад можно было бы немного понудить, вроде: это очевидно, а тут можно было остановиться и т.п.. После мероприятий в оба дня были небольшие afterparty, на которых очень хорошо пообщались с докладчиками и организаторами конференции. Знаете, так и хочется перечислить все доклады, на которых я был, поблагодарить каждого, не обойти стороной одного очень эксцентричного человека (думаю тут ясно про кого я), но я все-таки не буду вас нагружать этим. Попробуйте приехать на следующую такую конференцию, пока правда не понятно где она будет и когда именно. Я чуть-чуть застал это обсуждение, но в то afterparty, понятное дело, точного решения пока выявлено не было.

Теперь собственно про мой доклад. Мне предстояло биться за аудиторию с Мишей Черномордиковым, немного опасался, что ко мне может вообще никто не прийти на доклад с темой “Silverlight/WPF: возврат от паттерна MVVM to MVP”, опасения не оправдались – народ был, наверняка не столько, как было у Миши, но мне хватило аудитории. После доклада подарил подписку MSDN Ultimate одному из слушателей, ну и вопросов было предостаточно, что очень порадовало – это все-таки самая весомая оценка для меня. И простит меня Стас Фомин, который написал чудо программку, которая записывала все доклады, и который объяснял мне как этой программкой пользоваться, я тупо забыл включить запись. Саму презентацию я выложил Add2010 - Silverlight/WPF: MVP&MVVM, но больше у меня было, конечно же, слов, чем слайдов. Запись выступления будет, но вот последние 10 минут, где я знакомлю с примером – не знаю в каком качестве будут. Если есть желающие – могу безвозмездно рассчитаться с вами в виде LiveMeeting с прочтением полностью моего доклада.



Первые впечатления о LightSwitch

lightswitch

Как и многие скачал я себе LightSwitch, недавно он стал доступен для MSDN подписчиков. Скачивал и устанавливал я его не просто так, чтобы посмотреть, а у меня в голове были уже идеи, как это можно было бы использовать в текущем проекте. Наш основной проект сейчас – это модульное Silverlight приложение, один из модулей – это административная часть с кучей редактируемых таблиц (буду называть их справочниками). Мне не хотелось делать отдельные представления на каждый справочник, потому я сделал механизм, который позволял просто заполнять DataGrid по имени таблицы и списку полей. Причем поля можно указываться и из таблиц, на которые есть ссылки (reference) из главной таблицы, на сервере построится правильный join. Так же реализовал свой DataForm, к сожалению стандартный расширить не получилось, из-за того что там были спрятаны некоторые необходимые методы и свойства, и помню, что в WPF эти свойства спрятаны не были, ну да ладно. В итоге, на сервер передаются объекты и построенные запросы: что нужно отобразить, что показать. То есть, чтобы добавить редактирование новой таблицы CronTask мне теперь необходимо сделать буквально следующее...



Принял участие в подкасте 2Гига (Выпуск #22)

2ГигаПринял участие в подкасте 2Гига (С участием Евгения Жаркова и Владимира Юнева). С ребятами очень приятно вести и поддерживать беседу, 70 минут пролетели как 10, не могу сказать, что получился полностью технический подкаст, скорее поверхностный, но все же было интересно. Рекомендую ;) Если есть вопросы или предложения – я всегда тут.

Содержание, примерно, было следующим:

Послушать можно на  RPOD, POD.FM



RESTful WCF Service - Узнаем версию браузера в методе сервиса

Сначала опишу задачу, которую мы решали в нашем проекте. У нас есть Silverlight клиентская часть и серверная часть, состоящая из набора WCF сервисов. Причем задумка у нас такая, что изначально мы разрабатываем эти сервисы с возможностью хостинга их вне веб-сервера, потому ASP.NET Compatible mode у нас отключен (зачем я так и не понял, ведь реально инсталлируем всегда на веб-сервер, ну усложнили себе жизнь - пускай). Следовательно, до значения HttpContext.Current нам никак не добраться из методов WCF сервисов. Один из WCF сервисов – это RESTful сервис, который отдает файлы (отчеты), то есть умеет обрабатывать GET запросы, все по стандартному...



Выступление на ADD2010: Silverlight/WPF: возврат от паттерна MVVM к MVP

Пару дней назад я упомянул, что подал тезис на конференцию разработчиков Application Developers Days 2010, которая пройдет в Ярославле 23-24 сентября. Сегодня меня обрадовали, объявили, что мой доклад прошел, его тема «Silverlight/WPF: возврат от паттерна MVVM к MVP»:

В данном докладе автор на примерах обрисует особенности реализации знаменитых паттернов MVP и MVVM, применяемых при разработке приложений на WPF и Silverlight. Даст их подробное сравнение на примере данных технологий, укажет основные плюсы и минусы реализаций данных паттернов, а так же обрисует доработанный паттерн MVP с облегченной моделью представления, который является синтезом паттернов MVP и MVVM для разработки приложений на данных технологиях.

Я уже довольно давно недоволен паттерном MVVM, а вот почему, и что я предлагаю взамен (это предложение строится на моем опыте, а так же опыте коллег-разработчиков WPF/Silverlight) я расскажу на конференции Application Developers Days 2010 в Ярославле. Доклад на 100% еще не готов, потому если есть какие-либо предложения, идеи или советы – буду рад комментариям. У меня осталась одна подписка Visual Studio 2010 Ultimate + MSDN Premium Subscription, которую, скорее всего я разыграю за интересный вопрос или предложение на конференции (если они действительно будут). Если нет, то отдам докладчику, который мне понравится своим докладом и которому она действительно нужна.

Полностью тезис можно прочитать в этом документе add.doc, основная идея доклада из тезиса ниже.



Конференция Application Developer Days в Ярославле 23-24 сентября

Вчера отослал тезисы на конференцию Application Developer Days (Ярославль, 23-24 сентября) для секционного доклада, который, надеюсь, будет достаточно интересен для Silverlight и WPF разработчиков (было бы хорошо, если вообще для всех разработчиков), это будет не обычный доклад о технологиях, а немного о более высоком (очень надеюсь, что у меня это удастся). Если же не попаду на конференцию в качестве докладчика – ничего страшного, этот доклад опубликую где-нибудь (тот же http://techdays.ru), но на конференцию все равно пойду за деньги, так как уже список мастер-докладов впечатляет, мне хочется послушать:

  • Дмитрий Завалишин - Расскажет о текущем состоянии в разработке своего любимого детища — оригинальной операционной системы PhantomOS, близкой по концепции Microsoft Singularity, но при этом open-source.
  • Олег Царев, разработчик ядра MySQL расскажет о внутренней кухне.
  • Тему Javascript и javascript-фреймворков поднимет основатель javascript.ru, Илья Кантор.
  • Вадим Климонтович поделится своим опытом обработки ОЧЕНЬ БОЛЬШИХ объемов данных, и использование для этого NOSQL-подходов.

Так же опубликовали, что будут круглые столы, ну и наверняка много интересных и новых знакомств.

Кстати, как оказалось – срок подачи докладов продлили до 28 августа. Вообще, это нормальное явление, что сроки подачи докладов научных конференций всегда сдвигают. Что-то вроде менеджеров, которые говорят сделать вчера, а выкладывать изменения через неделю. Так что, может быть, я и зря так спешил до сегодняшнего числа подать заявку. Хотя, все равно бы оттянул бы время до последнего. Так получилось, что у меня одна из фирм организаторов (BYTE-Force) знакомая (еще бы, в одном городе живем) и со мной поделились информацией. Места для докладчиков еще есть (но немного), подать заявку на участие еще можно (28 августа), а так же намекнули, что хоть и требуется полностью доклад, но сойдет и подробные тезисы, так как программистов написать доклад – это очень сложно, будут делать исключения, если тезисы зацепят.

От себя могу предложить помощь, если что требуется узнать в Ярославле или что-то нужно рассказать. Город не родной, но тут уже живу 8 лет. В общем, до встречи на конференции!

Подробнее о конференции почитать можно на официальном сайте конференции http://add.it-conf.ru/. У меня, почему то, были сложности с поиском меню, чтобы подробнее почитать обо всем - оно справа.



Экспорт в Excel из Silverlight/WPF DataGrid

Экспорт табличной части в Excel из приложения достаточно распространенная задача, и решать ее можно по разному. Конечно решение зависит от того, что за приложение вы разрабатываете. Если это приложение разрабатываемое для автоматизации бизнес процессов, и оно предназначено для установки в несколько контор, то скорее всего вы можете диктовать условия (рекомендации по использованию), необходимые для вашего приложения. Либо заказчик выставит требования, под которые вы будете его разрабатывать. В этом случае, экспорт проще всего реализовывать через COM, используя инфраструктуру Excel (либо OpenOffice), тогда и реализовать данную задачу при помощи данного подхода будет просто, и это даст вам наибольшую гибкость и возможность использовать всю мощь таблиц Excel. Об этом вариант и пойдет разговор ниже. Другой вариант – ваше приложение предназначено для домашних пользователей, в этом случае диктовать обязательную установку MS Office или OpenOffice не очень хорошо, потому лучше не завязываться на них, а использовать либо сторонние компоненты для создания документов, либо экспортировать в xml/html формат, который понимает MS Office (так делает, например, JIRA). Правда в этом случае будет тяжело удовлетворить просьбы клиентов, вроде: сделать так, чтобы экспортируемый документ был подготовлен для печати в альбомном виде с необходимыми полями, хотя может быть и возможно.



Основы создания модульных приложений

В дополнение к вебкасту Prism: Composite Application Guidance for WPF and Silverlight хотелось бы сделать еще несколько умозаключений. “Призма” на данный момент очень распространенный подход к разработке программных продуктов. За рубежом если вы найдете какую-нибудь работу на WPF или Silverlight первый вопрос, который вам зададут “А знаете ли вы призму?”. Чтобы узнать ее можете посмотреть первые 20 минут скринкаста, где я описываю основные моменты данного подхода. Узнать призму – это безусловно хорошо, но еще лучше знать зачем она нужна. Постараюсь привести пару простых примеров модульных приложений.



Используем Deep Zoom Composer

Недавно Константин Кичинский в своем блоге представил Deep Zoom Composer 1.0, скачать который можно с сайта Microsoft. Что это такое и как работает я предлагаю прочитать в его блоге. А сейчас я хотел бы продемонстрировать как это можно использовать.



Страница  1  2  3