?

Log in

No account? Create an account

поток

сознания

30/10/2007 21:26 - Farseer Physics Engine для Silverlight

Вот демонстрация интересного движка двухмерной физики для Silverlight.

Хотя я больше интересуюсь Silverlight как платформой для RIA, но вот такие интересные штуки тоже можно на нём делать :).
Метки: ,

30/10/2007 00:36 - Простой пример на Silverlight :)

Вот сделал простой пример на Silverlight 1.1. Исходники примера открыты, лицензия заключается в том, что код есть, но нет ни гарантий его работоспособности, ни ограничений на его использование :) (MIT License).

В исходниках, правда, напрашивается ещё один элемент управления — Button, но я решил оставить так как есть :). Немного над ним поработав, можно поставить на форму несколько TextBox-ов. TextBox работает не совсем верно (не поддерживает некоторые символы и русскую раскладку), но это от ограничения Alpha-версии. На форумах о Silverlight говорят, что TextBox будет в релизе. Ещё возлагаются большие надежды на то, что всё таки в релизе будет более продуманная компонентная модель (например поддержка всех событий внутри пользовательских элементов управления). Но до релиза ещё сравнительно далеко :). Кстати интересно, что Tafiti (сделанная на Silverlight поисковая система от Microsoft) поддерживает русскую раскладку, но я полагаю, что для этого они использовали браузерные события, а не Silverlight-овские.
Метки: ,

29/10/2007 00:08 - Доклад «Рефакторинг — забота о коде»

Выложил презентацию с доклада «Рефакторинг — забота о коде». Всё же чувствуется, что презентация сильно далека от обстановки на конференции — общение и обсуждение делают любой доклад намного более содержательнее, чем просто то, что отражено в презентации. Эта презентация слегка изменена от той, что я показывал на конференции, т.к. попросили добавить ссылки на Фаулера и на ReSharper.

Она в формате Microsoft PowerPoint 2007, я попробовал сохранить в старом формате, получился файл размером в полмегабайта. Если вам не доступен пока этот формат, думаю PowerPoint 2007 Viewer может помочь ;).
Метки: ,

27/10/2007 00:40 - В Microsoft забыли про знаки препинания

Я уже писал про проблемы с событиями KeyDown и KeyUp в Silverlight, но тут обнаружился ещё более интересный казус (это я пытаюсь обойти ограничения Silverlight). Кросс-платформенное перечисление Key (кстати, в KeyboardEventArgs там никакого перечисления нет, тип свойства KeySystem.Int32, как в старые добрые времена WinAPI) не содержит знаков препинания, и ответственно сообщает нам о том, что была нажата некая кнопка KEYUNKNOWN, когда пользователь нажимает на точку или запятую. Попробую обойти это через PlatformKeyCode, хотя это по-моему нонсенс, оставить пользователей без знаков препинания в кросс-платформенном перечислении.

Мне сегодня уже говорили, что создаётся впечатление, что ничего хорошего в Silverlight нет, но пока нужно помнить две вещи — во-первых это всё пока ещё Alpha (хотя это перечисление ушло в Silverlight 1.0, странное очень перечисление), а во-вторых — хорошего всё равно много :).
Метки: ,

26/10/2007 02:03 - Альфа Silverlight обошлась без события KeyPress..

Но унывать мы не будем — обещают TextBox в 1.1 (т.е. его нет потому что сейчас ещё Альфа-версия), с ним скорее всего будет и хорошенькая реализация KeyPress (к которому мы привыкли со времён Windows Forms), а пока придёться пробовать обходится как-то неудобными KeyDown и KeyUp, у которых, как Вы понимаете, есть только некий keyCode, который, хоть и кросс-платформенный, но совершенно беспонтовый: достаточно сменить раскладку или включить CAPS LOCK, или ещё тысяча разных случаев, где он совершенно не годится.

Мой собственный TextBox чуточку продвинулся, но пожалуй, сегодня показывать не буду :). Но расскажу о другой проблеме в Silverlight...Свернуть )
Метки: ,

24/10/2007 14:15 - Проблема при разработке под Silverlight

Основная «ложка дёгтя», которую сейчас я вижу при разработке под Silverlight 1.1 — нет каких-либо взаимодействующих с пользователем (интерактивных) элементов управления. Сюда входят: кнопки, текстовые поля, переключатели, галочки, списки, скроллбары и т.д.. Их просто нет в Silverlight. Есть только прямоугольники-эллипсы-фигуры-анимации и т.д.. Конечно, если поискать, то их вполне можно найти отдельными компонентами.

Смысл такого решения (пока точно не ясно, возможно в финальной версии Silverlight 1.1 они всё таки появятся) более-менее понятен: как можно меньший размер дистрибутива Silverlight и кросс-платформенность решения (представьте, если бы кнопка выглядела бы такой, какой выглядит стандартная кнопка в пользовательской ОС, то дизайн бы изменялся в зависимости от системы, чего не должно происходить).

Однако, немного поиграв с кодом, я обнаружил, что написать user control для Silverlight 1.1 — достаточно простая задача. Постараюсь скоро написать о том, как сделать свой TextBox :).
Метки: ,

18/10/2007 05:53 - EventTrigger в Silverlight

Оказалось, что в Silverlight используется сильно не полный XAML-рендерер. То, что работает в WPF (в .NET Framework 3.0, в Windows Vista), не обязательно будет работать в Silverlight. Самый простой пример - это кнопка с hover-эффектом. В WPF можно декларативно добавить кнопке два EventTrigger-а, которые будут менять её при наведении мышки и при её уходе соответственно. Без единой строчки кода. А вот для Silverlight понадобится написать код, который будет запускать специальную Storyboard, которую нужно поместить в ресурсы вместо того, чтобы поместить её прямо в EventTrigger. Я надеюсь, что в 1.1 ситуация исправится, но пока так. Немного кода придётся всё же написать :).

А как это сделать в WPF?Свернуть )
Метки: , ,

18/10/2007 05:22 - Silverlight

Написал более подробную статью о Silverlight.
Метки: ,

15/10/2007 15:51 - Встреча Ташкентского сообщества .NET разработчиков

В субботу буду читать доклад про рефакторинг на встрече ташкентского сообщества .NET разработчиков.
Метки:

13/10/2007 01:34 - Silverlight?

Так зачем разработчикам нужен Silverlight? Попробую описать основные прелести:
  1. Простота создания богатого интерфейса: XAML вместо HTML. Вообще, XAML — большая отдельная тема и во многом его просто некорректно сравнивать с HTML, т.к. он содержит в себе, например, компоненты связывания представления с данными (data binding), намного более продвинутую модель настройки внешнего вида (skin, вроде бы и есть что-то общее с CSS, но его возможности гораздо шире, например, можно представить все кнопки в виде эллипсов с каким-нибудь переливом), и т.д.. Возможно, корректнее сравнивать с Flash, но т.к. я практически не знаком с Flash, то здесь сказать ничего не могу;
  2. Богатство возможностей работы на клиенте: JavaScript в Silverlight 1.0 (подходы, похожие на то, что уже сейчас применяется с использованием ASP.NET AJAX) и, самое интересное — специальная версия .NET CLR в Silverlight 1.1, т.е. возможность писать на C# (VB.NET, etc.), компилировать и отправлять на клиент;
  3. Прощай, браузерная несовместимость. Сейчас, даже при использовании какой-либо библиотеки вроде ASP.NET AJAX, всё равно, практически в любом случае придётся написать пару-тройку строчек JavaScript кода, чтобы функциональность заработала в том или ином браузере, не говоря уже про то, что есть различия в поддержке XHTML и CSS. Silverlight 1.0 решает эту проблему не полностью, т.к. программная часть должна писаться на JavaScript. Однако, Silveright 1.1 решает практически на 100%, т.к. содержит в себе специальные версии CLR и .NET библиотек, которые работают не только вне зависимости от браузера, но ещё и вне зависимости от платформы. Microsoft поддерживает две платформы: Windows (Firefox и Internet Explorer), начиная с версии XP SP2 и Mac OS X. Кроме этого, существует соглашение между Novell и Microsoft, согласно которому Microsoft предоставит реализацию видеокодеков для Linux, а Novell, в рамках проекта Mono, реализует Moonlight - поддержку Silverlight в Linux.
Метки:
Разработано LiveJournal.com