Архивные записи по тэгу ‘Silverlight 2.0’
Небольшие уточнение планов.
Урока по работе с клавиотурой скорее всего не будет, особо описывать нечего. Хотя может и появится общий урок по «прикручиванию» Input’a к игровому циклу, но явно не втом порядке который зарание планировался.
(07.07.2008) В качестве сетевых технологий на 90% будет только WCF. По следующим причинам: достаточно новая технология, нет необходимости заморачиватся программированием уровня сокетов.
(09.07.2008) Грусно но вот что получается когда учишься одновременно с написанием, оказывается что Silverlight в данный момент поддерживает только BasicHttpBinding тип привязки, а мне нужен NetTCPBinding. Так что буду ковырять все подряд.
Работа с базами данных будет через LINQ, в качестве примера сервера будет MS SQL Server 2005 Express(бесплатный и быстрый).
Если у Вас возникнут сомнения по поводу быстродействия этой связки, то смею Вас уверить они безосновательны – в инете множество подтверждений по этому поводу. И это пока не наше дело. Из своего опыта могу добавить только правильно подобраные алгоритмы это 95% всей оптимазации. Так что не замарачивайтесь по поводу быстродействия.
Урок:5 Пытаемся работать с изображениями (Мысли о анимации)
Собственно назвать это уроком можно с большой натяжкой, так – больше общие замечания по работе с изображениями в Silverlight.
Итак, изображения, на самом деле это одна из самых слабых сторон Silverlight ‘a. Возможностей тут не так уж много. Давайте их посмотрим.
Так как Silverlight оперирует с объектами и их свойствами, битмап на страницу можно добавить только двумя способами:
· 1) Добавив объект Image
· 2) Использовав ImageBrush уже на существующем объекте
Отсюда все возможности и ограничения по работе с битмапами.
Урок 4: Игровой цикл. Часть 3 (Процедурная анимация в Silverlight’e и игровой цикл)
Собственно если вы уже понимаете анимацию Silverlight’a на базе xaml, то процедурная анимация точно для вас не составит труда.
Как случай чистой xaml анимации, так и случай чистой процедурной анимации на C# в реальной жизни по отдельности очень редко встречается. Но для полноты эксперимента мы обязаны их рассмотреть. Так что давайте для начала попробуем создать таймер. Вот что у нас получилось в файле page.xaml.cs:
1: Page : Canvas
2: {
3: Storyboard animation_timer; // объявляем экземпляр таймера Storyboard
4: public Page()
5: {
6: InitializeComponent();
7:
8: animation_timer = new Storyboard(); // создаем наш таймер
9: this.Resources.Add("animation_timer", animation_timer); // добавляем его в ресурсы страницы
10: animation_timer.Begin(); // собственно запускаем его
11: }
12: }
Урок 4: Игровой цикл. Часть 2 (Silverlight анимация и xaml)
Ладно продолжем.
Анимация с использованием Blend’а, красиво, легко, но, к сожалению, в случае написания игр не сильно жизнеспособна. Поэтому попытаемся поковырять анимацию руками. Будем ковырять DoubleAnimation как самую распространенную.
Урок 4: Игровой цикл. Часть 1 (Простейшая анимация и немного теории)
Тут меня попросили начать с «прикручивания» SQL базы. Но, к сожалению, это, наверное, одна из самых обширных тем, поэтому, надобно подумать с чего начать чайнику, какой сервер поставить, как проще создать БД. Дело в том, что, скорее всего, работать с БД в Silverlight’e будем через LINQ. Если кому ОЧЕНЬ надо почитать, то смотрите здесь. Просто через LINQ нельзя модифицировать и создавать БД
вроде как прочитал такую информацию. Поэтому сами понимаете тут «надо покумекать». Хотя я прекрасно понимаю что «прирули» SQL к Silverlight’y даже на том уровне что знаем – то при желании можно создать клон БК или чего ни будь подобное. Кроме того я не вижу ни одного возможного применения баз данных в Silverlight’е при использованием их вместе на одной машине. Поэтому, по любому, вам необходимо будет задействовать или веб-сервисы (WCF) или работу с сокетами для прямого обращения к базе. А это работа с сетью. Так что пойдем по порядку – возможно делая небольшие отступления. Хочется заметить, что существует возможность, что до меня успеет разобраться с этим другой человек – может он и поможет нам с уроком в данном блоге.
К делу. Итак, игровой цикл, в народе известный как геймлуп (Gameloop) и анимация. В связи с тем, что эти темы ОЧЕНЬ тесно связаны – обе задействуют таймеры, мы начнем с анимации, а именно с работы с таймером и изображениями.
В Silverlight’e можно создать два типа таймеров, а именно Storyboard (System.Windows.Media.Animation) и DispatcherTimer (System.Windows.Threading). Что именно использовать мнения разделяются. Некоторые, аргументируя тем, что Storyboard легче «хакнуть» рекомендуют использовать DispatcherTimer. Другие же, рекомендуют наоборот – Storyboard уповая на его более широкие возможности.
Лично для меня окончательно поставил точку в этом вопросе Adam Kinney из Microsoft’а в своем блоге. Суть всего этого, что Storyboard во-первых более стабилен для различных ОS и браузеров. Во- вторых DispatcherTimer имеет меньшую разрешающую способность, чем Storyboard (правда у меня не получилось это протестить – и тот и другой выдают на пустом цикле максимум 63-65 fps, кстати, буду благодарен за пример с более высокими показателями). Ну и, в-третьих – функциональность: DispatcherTimer еще можно использовать для организации игрового цикла, но вот делать в Silverlight’е его средствами анимацию – это просто себя не уважать: сложно и поддерживает только процедурную анимацию, при этом теряется просто две трети всех возможностей анимации Silverlight’а.
Форум
Всем сюда silverlight.ru.
Silverlight 1.0 & 2.0 and Blend free e-book (надеюсь переводить не надо ;-) )
Собственно все здесь. Самая большая подборка да еще книги полные – так что сами понимаете.
Урок 3: User Control, Forms(модальные и не модальные) и Drag&Drop
Сначало немного разъяснения. В Silverlight’e отсутствуют формы (диалоговые окна). Поэтому мы получим их функциональность, используюя юзер контролы и драгндроп.
Создадим проект Silverlight и файл страницы приведем к следующему виду:
Думаю, что тут недолжно вознуть никаих трудностей, не забудьте – поменяйте родительсктй класс страницы.
А вот далее, мы создадим Silverlight user control, а именно: зайдем в меню Project->Add New Item->Silverlight user control, и назовем новый файл Form.xaml. Далее »
Урок 2: DataBind в Silverlight’e
Данный урок с натяжкой можно порекомендавать как 2, сорее перед ним надо хотябы это почитать. Я поробую в нем объяснить политику и философию DataBind’a (датабинда) в Silverlight’e. В связи с тем, что у меня данная тема вызвала затруднения, я решил попробовать в месте с вами разобратся.
Тема интересная, но не прозрачная, так что я, по окончании, файлик проекта зазипую и сохраню на будущее.
Сначала немного философии. Связывание данных (Data bind) соеденяет акие либо свойства пользовательского интерейса (UI) и программным объектом (почему-то на западе это называют бизнес объектом). Пользовательский интерфейс называется при таком подходе таргетом (target-цель), провайдер данный или программный объект соурсом (source – источником). Связывание данных асоциирует какие либо данные, бизнес уровня, с уровнем клиентского интерфейса, а именно со каким либо свойством UI контрола. Данное связывание позволяет рассматривать пользовательский интерфейс как «черный ящик», однажды связав данные вы в дальнейшем в программе работаете с данными бизнес уровня, позволив себе забыть о UI вообще. Это позволяет разделить програмную и дизайнерсую работу над приложением.
Уроки 2,3,4 и т.д.
Вот набрел на неплохую ссылку с переводами на русский, и чего-то подумалось – не стоит изобретать велосипед, поэтому советую уже сделаный перевод курса:
Пособие по Silverlight – Часть I (Создание “Hello World” при помощи Silverlight 2 и VS 2008)
Пособие по Silverlight – Часть II (Использование панели инструментов планировки (построения))
Незнаю как кому, а мне это дало хороший старт.
Настоятельно так же рекомендую почитать по базовым навыкам работы в Blend’e:
Пишем Hello World на Silverlight 2
Общий обзор возможностей работы Expression Blend с Silverlight 2
Трюки при создании и использовании элементов управления WPF и Silverlight
Добавить комментарий
Добавить комментарий
Добавить комментарий