Silverlight → Сервелат, анимация и старый добрый code-behind
Решил немножко покопаться в Silverlight, да смастерить на нём что-нибудь прикольное. Это прикольное, конечно, должно шевелиться, переливаться и плавно подёргиваться, ибо вебдваноль у нас или где? :). И вот тут мне пришлось столкнуться с неплохой, по сути, системой анимаций в WPF/Silverlight. Покурив MSDN, я бодренько приступил к написанию анимаций в XAML. Одну написал, вторую, третью… А потом мне захотелось сделать так, чтобы они шли в определённой последовательности. И вот тут-то я и понял, что XAML, зараза, очень избыточный. Для описания интерфейсов он подходит идеально: сразу видно, что к чему относится и надобность в визуальном редакторе отпадает чуть менее, чем полностью. Но вот когда пытаешься написать в этом XAMLе какую-то логику, начинает проявляться вся его несуразность. Покурив гугл, я был сильно удивлён тем, что большинство людей упорно пытаются впихнуть в XAML абсолютно всё. Ругаются, путаются в коде, плачут, но продолжают писать. Прямо как те мыши с кактусом, чесслово. И тут мне пришла идея аккуратно описать анимации обычным кодом на C#. Мы, так сказать, олдфаги, рисовали интерфейс прямыми вызовами к WinAPI, неужто нас какие-то анимации испугают? :)
.NET → Рисуем карту в WPF-приложении
Недавно возникла производственная необходимость – отобразить на форме карту России, с детализацией до регионов. При этом нужно:
- в зависимости от различных условий менять внешний вид областей карты;
- карта должна “воспринимать” пользовательский ввод и реагировать на него;
- нужно иметь хорошее качество “картинки-карты” вне зависимости от разрешения монитора.
Visual Studio → Расширение возможностей IntelliSense для XAML-редактора Visual Studio 2010

Оценив новые возможности IntelliSense в редакторе кода VS 2010, по принципу PascalCase, когда по ходу печати вы получаете список предполагаемых команд. К сожалению, новые вкусные возможности не доступны в XAML редакторе. Но нет повода для печали…

.NET → WPF 4.0. Что нового? Часть 5
Последняя статья из серии что нового в WPF. Ссылки на предыдущие версии в оригинальной статье. В данной части будет небольшая солянка из еще найденных и откопанных нововведений. Предполагаю, что можно найти и другие, но уже и эти не совсем нужны в продакшене, потому, пожалуй, пора остановится.
Читать далее...
UPD Хотел сделать топик-ссылку, но забыл выбрать, так что так.
Читать далее...
UPD Хотел сделать топик-ссылку, но забыл выбрать, так что так.
.NET → XamlWriter и Bindings
Доброй ночи Хабра-сообщество.
Я только что получил инвайт к вам в компанию, и сразу же решил написать что-то, что возможно окажется для кого-то полезным… Не судите строго.
Я являюсь одним из разработчиков одного Open Source проекта, одной из основных частей которого является графический редактор, который должен сохранять векторную графику в формате XAML в рамках объектной модели WPF. В процессе разработки, я столкнулся с проблемой. Bindings, созданные из кода ,(или из загруженного XAML файла) не сохраняется обратно в XAML при попытке сериализации стандартным XamlWriter. Как оказалось это стандартное поведение XamlWriter описанное в MSDN. Я пытался найти решение в сети, но нашёл только одну статью на CodeProject. К сожалению, как оказалось, это решение не подходит для сложных XAML документов по ряду причин. Я уже начал рассматривать вариант написания собственного сериализатора, когда увидел, что расширение TemplateBinding прекрасно сохраняется стандартными средствами, это меня натолкнуло на мысль, что ещё не всё потеряно, и вооружившись Reference Source Code от MS и дебагером я начал изучать проблему. И вот что у меня вышло.
Я только что получил инвайт к вам в компанию, и сразу же решил написать что-то, что возможно окажется для кого-то полезным… Не судите строго.
Я являюсь одним из разработчиков одного Open Source проекта, одной из основных частей которого является графический редактор, который должен сохранять векторную графику в формате XAML в рамках объектной модели WPF. В процессе разработки, я столкнулся с проблемой. Bindings, созданные из кода ,(или из загруженного XAML файла) не сохраняется обратно в XAML при попытке сериализации стандартным XamlWriter. Как оказалось это стандартное поведение XamlWriter описанное в MSDN. Я пытался найти решение в сети, но нашёл только одну статью на CodeProject. К сожалению, как оказалось, это решение не подходит для сложных XAML документов по ряду причин. Я уже начал рассматривать вариант написания собственного сериализатора, когда увидел, что расширение TemplateBinding прекрасно сохраняется стандартными средствами, это меня натолкнуло на мысль, что ещё не всё потеряно, и вооружившись Reference Source Code от MS и дебагером я начал изучать проблему. И вот что у меня вышло.
Персональные блоги → Wiki-OS — наполняем операционную систему, как страницами Wikipedia
Хотите участвовать в разработке новой web операционной системы? Идея в том, что пользователи сами наполняют общую операционную систему приложениями или дорабатывают существующие, как страницы в Wikipedia (отсюда и название Wiki-OS). 40 секундное видео, которое дает понять что это из себя представляет:
Ну а попробовать можно (и нужно) тут: https://www.wiki-os.org/
На данный момент — это больше напоминает свалку, так как все создают и тестируют приложения вроде Test1, Test2 и т.п. Но сама по себе идея интересная и может быть из этого что то выйдет?.. Один Code Editor чего стоит:
Странно как то, но когда захожу с FireFox меня не пускает, говоря что нужно установить Framework 3.5, когда у меня и так он стоит. С Internet Explorer все в порядке.
Ну а попробовать можно (и нужно) тут: https://www.wiki-os.org/
На данный момент — это больше напоминает свалку, так как все создают и тестируют приложения вроде Test1, Test2 и т.п. Но сама по себе идея интересная и может быть из этого что то выйдет?.. Один Code Editor чего стоит:
Странно как то, но когда захожу с FireFox меня не пускает, говоря что нужно установить Framework 3.5, когда у меня и так он стоит. С Internet Explorer все в порядке.
Веб-разработка → Проект Gestalt – пишите на Ruby, Python и XAML прямо в HTML на стороне клиента
Gestalt – это open source фреймворк, который позволит вам включить в обыкновенный html-код страницы коды на Ruby или Pyhton и даже XAML-разметку. И все это будет работать на стороне клиента! Если вы хотите написать клиентский код подобный следующему, <script language=«python»> или <script language=«ruby»>
то Gestalt сделан специально для вас. Быстрый старт и простейшую демонстрацию можно посмотреть по адресу http://www.visitmix.com/labs/gestalt/getstarted/.
* внимание, исполняющая среда запускается не мгновенно, при самой первой загрузке стоит подождать пару секунд и все заработает
Silverlight → XAML Power Toys
XAML Power Toys – аддин для Visual Studio 2008 SP1 для разработчиков под Silverlight, WPF, облегчающий разработку генерацией XAML’а представений (View), а так же модели представления (ViewModel), со всем необходимыми бизнес-действиями и контролами.
Персональные блоги → WPFix — Часть III (Extension-методы)
Восстановленная.
Extension-методы (методы расширения) — это такая новая фишка (синтаксический сахар) в C# 3.0. Сначала это выглядит невероятно, но тут нет ничего сложного. Хммм, разве это не то же самое, что метод класса? Когда скрывается аргумент функции, мир переворачивается. Понятно, что ООП — это не просто скрытие указателя
- WPFix — Часть I (Lamda Converter Extension)
- WPFix — Часть II (Расширение связывания)
- WPFix — Часть III (Extension-методы)
Extension-методы (методы расширения) — это такая новая фишка (синтаксический сахар) в C# 3.0. Сначала это выглядит невероятно, но тут нет ничего сложного. Хммм, разве это не то же самое, что метод класса? Когда скрывается аргумент функции, мир переворачивается. Понятно, что ООП — это не просто скрытие указателя
this, но extension-методы можно считать методами класса, у которых есть доступ только к публичным полям. Возможно, вы подумаете, что это шаг назад, но мы не живем в идеальном мире или мире, близком к идеалу. Скорее такое решение — это шаг в соторону, который откроет новые горизонты. LINQ как раз один из таких горизонтов. Но мне на ум не приходит что-то еще более полезное, чем LINQ. А нельзя ли заюзать extension-методы в WPF так же, как мы до этого поступили с lambda-выражениями?Персональные блоги → WPFix — Часть II (Расширение связывания)
Продолжая серию восстановленных статей, некогда переведенных мною, но чуть не канувших в Лету.
В предыдущем посте я постарался уменьшить зависимость XAML-a от файлов с кодом даже при выполнении простейших операций. Помимо моего лямбда-ковертера, существует много способов это сделать. Мы могли написать собственный байндинг, который бы существенно сократил количество набираемого кода. Но я перед собой ставил задачу не сократить количество кода, а располагать логически-связанные части рядом. При этом сокращение набираемого текста никак не мешает, пока код остается понятным. Мы еще вернемся к этому, а пока…
В предыдущем посте я постарался уменьшить зависимость XAML-a от файлов с кодом даже при выполнении простейших операций. Помимо моего лямбда-ковертера, существует много способов это сделать. Мы могли написать собственный байндинг, который бы существенно сократил количество набираемого кода. Но я перед собой ставил задачу не сократить количество кода, а располагать логически-связанные части рядом. При этом сокращение набираемого текста никак не мешает, пока код остается понятным. Мы еще вернемся к этому, а пока…