My Team
Наша команда, наши проекты глазами Нью Йорка:
Вопрос: как задеплоить ролик в папку /sub1/sub2/sub3, но для ролика корнем оставался корень сайта?
Ответ: Использовать параметр base в object-embed (пример под катом для ASP.NET)
У Flex разработчиков существует распространенная проблемма выставить какой-то выбранный элемент в ComboBox. Фреймворк представляет 2 способа, использовать selectedIndex и selectedItem. Для того чтобы выставить selectedIndex разработчику приходится крутить цикл с целью найти среди всех доступных элементов коллекции подходящий с целью поиска его индекса. С selectedItem вступает в игру фактор сравнения ссылочных данных, выбранный елемент просто может отсутсвовать в коллекции доступных данных.
Если взять в учет, что почти все данные которые мы биндим в комбобоксы имеют первичные ключи, и мы не хотим реализовывать нашими сущностями IIUID, то довольно удобно использовать следующий класс, позволяющий конфигурировать поле с первичным ключем класса и получать-устанавливать выбранный елемент по первичному ключу:
Давно такого не было. Сегодня не смог уехать на работу.
Часто флекс разработчики стоят перед дилемой: использовать или не использовать внедрение шрифтов. Использование внедренных шрифтов дает много выгод, таких как: не нужно иметь установленный шрифт на клиентской машине, можно использовать сглаживания, прозрачности, повороты и т д. Полный список бенефитов по ссылке выше. Недостаток один - сильно увеличивается размер приложения. В этой статье я постараюсь рассказать как добится компромиса - внедрить шрифты в отдельный ролик и подгружать его приложением.
Хм.. даже не знаю с чего начать
Ладно, часто возникает задача, когда сервер должен извещать клиента о чем-то важном и полезном. Например - изменение состояния каких-то объектов мониторинга, готовность результатов работы какой-то длительной операции, изменение состояния других клиентов и т д.
Глобально, реализаций этого сценария 2:
О том как реализовать 2-й сценарий для WebObr.NET + Adobe Flex + RTMP речь пойдет ниже:
Сегодня, когда в очередной раз меня спросили о сабже, чтобы не писать руками, спросил у Google, оказывается в MSDN есть прекрасная статья для тех, кто об этом никогда не слышал и столкнулся с одновременным доступом к БД впервые. Кому интересно - знакомимся: http://msdn.microsoft.com/ru-ru/library/cs6hb8k4.aspx
Интересную ссылку подкинул сегодня товарищ: Spicefactory
Очень интересный фреймворк судя по описанию. Что меня заинтересовало:
- IOC, Dependency Injection, Reflection API (хоть кто-то написал обертку над describeType() :)), XML-to-Objects mapping, Logging и много другого.
По поводу лицензии - Parsley is Open Source, licensed under the Apache License 2.0.
Качаем, знакомимся
В предыдущей части мы написали парочку своих аттрибутов, с помощью которых описали маппинг C# класса на таблицу базы данных. Дальше возьмем Reflection и Generic механизмы .NET и напишем класс, который будет являться CRUD контроллером наших сущностей. Для того чтобы класс работал побыстрее, парсинг метаданных вынесен в конструктор, и заглушкой в этой реализации является один метод - ResolveConnection(). Его можно сконфигурировать как в NHibernate классом-конфигуратором, либо впрыскиванием зависимости DbProviderFactory и строки подключения, но это вопросы лишь архитектуры, и я думаю у мало-мальски толкового разработчика будет много идей на этот счет.
Как известно, программисты с давних пор пытаются упростить слой работы с базами данных и используют различные ORM. ORM имеют как достоинства так и недостатки, но цель статьи не описать их, а написать простенький ORM с описанием основных подходов в этом деле. Мир .NET пестрит разными реализациями, список доступных ORM для .NET можно посмотреть например здесь: .NET ORM List. Что будет уметь наш маппер? Работать с различными БД (первоначально тестирован на MS SQL и MS Access), использовать как простые так и составные первичные ключи, обеспечивать оптимистическую блокировку при многопользовательской работе, получать значения автоинкрементных полей и счетчиков автоматически. Ну и может являться платформой для собственных изысканий
Что НЕ реализовано: маппинг полиморфных моделей (ни в одном из 3-х подходов), оптимистические блокировки timestamp, маппинг связанных сущностей, поздняя загрузка и т д.