WPF 4.6 и дальнейшие планы

На недавно прошедшей онлайн конференции dotNetConf организованной Microsoft, рассказывалось множество интересных вещей. И коль скоро было большое количество обсуждений по поводу WPF, что он живее всех живых, то хочется сделать краткий обзор доклада программных менеджеров WPF, что нового нас ждет в релизе, что уже можно посмотреть и к чему все идет. Действительно все так плохо и будет ли аналог нового движка для WPF, как например Razor для ASP.NET.

12 ноября 2014 года блог WPF ожил (сейчас активен тоже) и был представлен генеральный план развития фреймворка.


Здесь и далее, скриншоты с видео, так что качество не очень, но разглядеть все можно.

В начале выступления, ведущие Уни Равиндранатан (Unni Ravindranathan) и Харикришна Менон (Harikrishna Menon) обмолвились, что есть вещи, которые еще находятся в разработке, и они не имеют права о них рассказывать, NDA и все такое. Но то что они могут показать, внушает оптимизм и видно, что работа идет. Забегая вперед, скажу, что прежде всего разработчики подумали о быстродействии, например, как сократить визуальное дерево для конкретной целевой платформы.

Подробнее

Façade and AOP

Давненько я не писал по теме шаблонов и аспектов. И этот пост будет для разогрева темы снова.

До этого были рассмотрены шаблоны, которые в той или иной степени получают профит от использования Аспектно-Ориентированного программирования. Однако есть один, который не получит никакой пользы от АОП. Сама суть шаблона «Фасад» заключается в том, чтобы выделить отдельный интерфейс для облегчения доступа к некоторой сложной подсистеме.

facade_aop

Википедия дает следующее определение:

Шаблон фасад (англ. Facade) — структурный шаблон проектирования, позволяющий скрыть сложность системы путем сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы.

С помощью аспектов не выделить отдельный класс для такого функционала.

По сути, исследователи признали, что только «Фасад» никоим образом из классических 23 шаблонов не может быть хотя бы частично реализован с помощью АОП.

Вот такой короткий рассказ.

 

Hard’n’Heavy!

Бэкенд и «золотые молотки»

Привет, коллеги!

Мы анонсировали конференцию, посвященную Desktop UI & Business Application. В поддержку, чтобы посмотреть на настроения публики, была опубликована статья «WPF живее всех живых», которая оказалась дискуссионной и заставила нас в несколько другом свете взглянуть, на то, что и как мы хотим донести до широкой публики.

Как показали комментарии, не WPF единым живет десктоп разработка. Есть порты Qt для .NET, есть WinRT, если в эпсилон окрестности от дефолт-сити есть спецы по этим технологиям, которые хотят высказаться – у нас есть трибуна! Для этого все и задумано, чтобы показать различные варианты для ваших проектов.

Буквально вчера закончилась онлайн конференция dotNetConf 2015, которую, исходя из сообщений, Microsoft скорее возродила, нежели придумала заново. Конференция, судя по содержанию старается покрыть все основные области использования языка, это мультиплатформенность, веб, десктоп, доставка приложений, интеграция с Xamarin, будущее .NET, .NET Core, Roslyn Analyzer и другие темы. На мой взгляд, это генеральная репетиция перед конференцией //build, которая состоится в конце апреля-начале мая.

Подробнее

WPF живее всех живых

Я долгое время был разработчиком систем для десктопа. Сначала это был WinForms, потом более мощный и гибкий WPF. С тех пор прошло много времени и курсирует множество слухов и мнений о том, что WPF завершает свою жизнь, ведь сейчас столько разговоров о том, что можно писать настольные приложения на JS. А еще Microsoft усиленно двигает в массы платформу WinRT для разработки новых приложений. Это не могло меня и коллег оставить равнодушным.

Так почему же мы, команда GoSharp конференции (да, да, это о C#), решили сделать акцент на десктопной разработке в разрезе WPF? Далее я хочу показать какие светлые и темные моменты есть в существующем положении фреймворка и почему все же стоит в него вкладывать силы и время.

Существует мнение, что развитие десктопной разработки остановилось в своем развитии и для этого есть несколько предпосылок. Одна из них – остановка, или даже лучше сказать стагнация, в самой базе, в визуальном фреймворке WPF. Значительных обновлений для него не было вот уже лет 5, как может показаться. Официальный тулкит давно не обновлялся, точнее с февраля 2010 года, т.е. вот как раз те самые 5 лет. При этом компании, специализирующиеся на кастом-компонентах, как например DevExpress и Telerik успешно выпускают обновления и составляют планы на будущее относительно WPF. Даже если вы ориентированы на новинки, то компоненты для WinRT все равно используют концепции и общую структуру XAML, который никуда не уходит.
Далее мы хотим представить причины, по которым WPF некоторые считают неактуальным, и опровержение этих причин.

 

Причины для беспокойства

Причин для беспокойства можно выделить с дюжину. Но не все они реально так страшны и существенны. Пройдемся кратко по основным.

Блог команды WPF давно не обновлялся.

Так же, как и у любой другой команды, у команды WPF есть свой блог, в котором по идее должны быть описаны планы и достижения команды. К сожалению, в блоге давно нет новой информации. Это может натолкнуть на мысли, что всех разогнали или что писать не о чем. Однако, это не так и блог стал обновляться 4 месяца назад и последняя запись появилась 20 дней назад. Более того, появился генеральный план развития фреймворка, а также краткие описания новых фич доступных с последними CTP.

Подробнее

Интервью Гаэля и Скота Хансельмана

Всем привет! Я хочу анонсировать и пригласить резидентов Москвы и Питера посетить бесплатные вечера и мастер-классы с автором одного из наиболее мощных АОП фреймворков для .Net — Гаэлем Фрётэром.
Встречи пройдут 11-13 марта в Москве и 16-17 марта в Питере. Еще раз повторюсь мероприятие бесплатное, но необходимо зарегистрироваться. Более подробно агенда представлена здесь

Далее вы можете почитать весьма занимательное интервью, которое дал Гаэль Скоту, о том, как развивался и вставал на ноги продукт. Какие сложности были в развитии, какие непростые решения пришлось принимать во время перехода от опенсорс проекта к коммерческому.

HM

СКОТТ ХАНСЕЛЬМАН: Всем привет, это Скотт Хансельман (Scott Hanselman) и в эфире новый эпизод Hanselminutes. Сегодня, с помощью магии скайпа, с другого конца мира, мы поговорим с Гаэлем Фрётэром (Gael Fraiteur) из SharpCrafters, создателем PostSharp. Привет!
ГАЭЛЬ ФРЁТЭР: Привет!
СКОТТ ХАНСЕЛЬМАН: Я очень рад, что сегодня могу поговорить с тобой. Я твой поклонник и нам предстоит многое обсудить. Сегодняшняя беседа входит в цикл бесед о стартапах и ты как нельзя лучше подходишь для этого. Ты человек из мира открытого ПО, и создал программу которой я пользовался для своих открытых проектов, но теперь ты построил на этом целую компанию. И я хочу понять почему ты сделал это? Затем мы немного обсудим сам продукт и его будущее. Итак, ты можешь начать с рассказа что за программу ты создал.
ГАЭЛЬ ФРЁТЭР: Мы создали PostSharp – это дополнение к компилятору, которое запускается после сборки проекта или, другими словами Аспектно-Ориентированный фреймворк. Его задача заключается в том, чтобы вы, как программист, создавали меньше тупого повторяющегося кода. Для примера можем рассмотреть такую штуку как реализацию уведомления об изменении свойства. Каждый раз для её использования вам надо написать три строчки кода. Эти три строчки кода – мелочь, но мелочь, которая должна быть реализована для каждого свойства в каждом классе, и они превращаются в тысячи строк кода. Можно обнаружить, что вы пишите реализацию по определенному шаблону и это приводит к лучшей реализации INPC. Наш инструмент позволяет реализовать этот шаблон так, что код будет генерироваться автоматически и не загрязнять исходный код. Это суть подхода PostSharp и аспектно-ориентированного программирования (АОП).
СКОТТ ХАНСЕЛЬМАН: Хм, аспектно-ориентированное программирование. Я слышал про него в рамках решений для сквозного функционала. Можно сказать, что люди думают вертикально при объектно ориентированном подходе: это наследуется от этого, вон то от другого. Но АОП, как например логирование, не вписывается в такую вертикальную иерархию. Оно прошивает эти иерархии через всё приложение. Я в верном ключе описал АОП подход?

Подробнее

Patterns on the Road – Russia 2015

Коллеги по .Net разработке,

Разрешите представить вам тур Гаэля Фрэтё (Gael Fraiteur) Patterns On The Road, который состоится с 12 по 17 марта в Москве и Санкт-Петербурге. Главной идеей этого тура является представление и продвижение идеи разработки приложений с помощью шаблонов проектирования. Не просто прорабатывать дизайн с помощью шаблонов проектирования, которые были представлены Бандой Четырех, но также думать и писать код с помощью шаблонов. Гаэль хочет показать, как шаблоны могут быть вынесены на новый уровень абстракции. Эту идею он продемонстрирует в применении к убийственной задаче: потокобезопасность. Для тех, кто желает глубже узнать о PostSharp, мы подготовили бесплатный однодневный курс в обоих городах.

Вечерний семинар о шаблонах или однодневный тренинг? Надеюсь, что аннотации ниже помогут вам выбрать.

Вечерний семинар: Taking Design Patterns to the Next Level

Шаблоны проектирования доказали свою полезность и сейчас воспринимаются как базовое знание многими разработчиками. Со времени Банды Четырех шаблоны значительно облегчили и улучшили процесс дизайна структуры ПО. Однако со времен публикации практически не изменились способы того, как мы применяем их. Гаэль постарается раскрыть и показать на примерах новый путь применения шаблонов для всего цикла разработки. Его примеры бросают вызов сложившимся догмам касательно применения шаблонов и показывают новые аспекты применения гибких методологий. Беседа будет строится не вокруг абстрактных понятий, а на примере популярной и волнующей темы: многопоточности.

Тренинг: Advanced PostSharp From the Horse’s Mouth

Вечерний семинар рассматривает концепции использования шаблонов в общем ключе, тогда как на тренинге вы узнаете, как реализовать разработку шаблонами с применением PostSharp.

Тренинг откроет небольшой экскурс в историю языков программирования и шаблонов проектирования ПО, после чего будет рассмотрен фундаментальный вопрос: почему мы думаем в терминах шаблонов, создаем дизайн ПО руководствуясь шаблонами, но по сути отметаем эти принципы во время непосредственного написания кода? Расписания дня в общих чертах можно описать как: потокобезопасность, undo/redo, АОП вообще и архитектурная валидация кода. Все примеры будут работать на новой Visual Studio 2015.

Количество мест ограничено. При достижении лимита, мы выберем участников рандомно.

Если у вас возникли какие-то вопросы, пишите по адресу my@violet-tape.net — Гордиенков Андрей.

Мастер-класс основателя PostSharp в Москве

Gael Fraiteur

В начале марта с 10 по 15, Гаэль приезжает в Россию и хочет провести мастер-классы и вечерние беседы в Москве и Питере. Я ему помогаю в этом деле и фактически организую визит. Мне хотелось бы знать, сколько человек желает с ним побеседовать вечером (это конечно будет не просто сессия вопросов и ответом, а будет практика и лекция часа на 3-4) или посетить мастер-класс. Цена на мероприятия по большей части будет символической для покрытия расходов на аренду.

Если есть желающие, можете сразу писать мне на почту my@violet-tape.net.

Большинство людей которые что-либо слышали о PostSharp думают, что он годен только для логирования и обработки ошибок. Однако те, кто осмелился копнуть глубже, часто меняют свое видение программирования. Навсегда.

Программа курса, представленного ниже, читается основателем и ведущим программистом PostSharp Гаэлем Фрэтером (Gael Fraiteur). В курсе раскрываются концепции аспектно-ориентированного программирования, как автоматизировать реализации шаблонов проектирования, а также как внедрить проверку дизайна кода. В конце дня у вас появится общее понимание того, как PostSharp может облегчить жизнь вашей команде.

Даже если вы думаете, что PostSharp не для вас, посетив курс вы навсегда измените свой взгляд на разработку ПО.

Ключевые моменты тренинга

  • Получите совершенно новый и захватывающий взгляд на процесс программирования, шаблоны проектирования и на то, что компилятор может сделать для вас. Это будет как глоток свежего воздуха, даже если вы не собираетесь использовать PostSharp.
  • Изучите использование готовых решения из PostSharp Pattern Libraries (threading design patterns и INotifyPropertyChanged).
  • Поймете, как автоматизировать ваши собственные шаблоны используя АОП.
  • Узнаете о построении автоматической проверки архитектурных решений в вашем коде.
  • Получите ответы напрямую от создателя PostSharp!

Подробнее

АОП и шаблоны проектирования GoF

Давно меня занимает тема аспектно-ориентированного программирования в виду моей исключительной профессиональной лени. Мне не нравится писать тупой и повторяющийся код. Однако это словно родовое проклятье, когда дело касается разных инфраструктурных вещей при написании кода. Начиная с банального и уже набившего оскомину при упоминании АОП – логировния и заканчивая кэшировнием и реализацией особенного процесса по перехвату исключений. Аспекты могут быть применены к гораздо большему спектру задач. К неочевидному на первый взгляд спектру задач, о котором большинство даже не задумывается. Например, шаблоны проектирования «банды четырех».

Конкретная реализация с помощью аспектов сильно зависит от АОП фреймворка. Например, к какому типу он относится: прокси или внедрения в код. Я свой выбор остановил на PostSharp, с которым знаком с версии 1.2 или 1.3, мне кажется было что-то около этого. И то, что было тогда и есть сейчас — значительно отличается по функционалу и простоте использования. Не в малой степени благодаря эволюции самого языка C#.

Шаблоны проектирования появились не просто так. Это повторяющиеся задачи, реализовывать которые приходится на каждом проекте, часто в сильной связке с доменом, перелетая код домена с инфраструктурой шаблона. При таком подходе шаблоны приходится каждый раз писать заново. Правильная реализация ООП подхода дает возможность сделать приложение менее связанным, но код значительно усложняется. С учетом обеспечения безопасности самих данных и доступа к ним, код может значительно разрастаться, так как эти требования плохо адресуются ООП подходом.

Подробнее

Цикл статей про PostSharp

Всем привет!

Хочу всех успокоить и сказать, что статьи будут. Но пока что не могу ими занятся, так как занят подготовкой к web-конференции SoftLab.NET, которая совершенно бесплатная, но надо зарегистрироваться заранее, чтобы заказать нужный пул подключений на площадке. Там я буду рассказывать про модели многопоточности и как их можно контролировать/валидировать с помощью PostSharp.

Обещаю, что еще до нового года появятся статьи про шаблоны проектирования.

До скорой встречи!

Hard’n’Heavy!

Принцип наименьшего удивления

Наконец-то появилась запись с выступления SECR-2013. Может она появилась и не на днях, но заметил я ее не так давно. Так что делюсь и оставляю себе, чтобы не забыть.

20131025-27-Принципы наименьшего удивления в разработке API приложения from Stas Fomin on Vimeo.