Microsoft Visual Studio LightSwitch 2011Источник: msdnmicrosoft
Пробовали ли вы когда-нибудь создавать приложение по вводу информации? Например, для секретаря, что-то вроде учета карточек пришедшей корреспонденции? А так чтобы был словарь корреспондентов? Пару-тройку экранов отчетов, по необработанным письмам и корреспондентам? И еще неплохо было бы увязать это приложение с вашей БД маркетингового отдела. При кажущейся простоте эта задача влечет за собой огромное количество вариантов реализации, технологических решений и приемов. А хотели бы решать такие задачи, сосредотачиваясь только на определении данных и небольших доработках? 26 июля 2011 года компания Microsoft выпустила новый продукт - Microsoft Visual Studio LightSwitch 2011. Официальное определение этого продукта звучит следующим образом "гибкий инструмент разработки, используемый для быстрого создания и развертывания настольных бизнес-приложений и бизнес-приложений для облака". Эта статья для тех, кому интересно, что же на самом деле представляет из себя LightSwitch, почему он позиционируется именно таким образом и как работает. Что же такое LightSwitch и почему он позволяет быстро создавать приложения Давайте вернемся к примеру который был приведен в самом начале. На основе определения данных построим приложение: первый шаг: скачиваем и запускаем LightSwitch второй шаг: создаем проект и определяем данные с помощью бизнес-типов для которых сразу же можем определить некоторые правила валидации. третий шаг: определяем связи между таблицами четвертый шаг: (не обязательный) подключаем внешние, уже существующие источники данных пятый шаг: на основе определений данных генерируем экраны пользователя последний шаг: запускаем готовое приложение Время, которое требуется на получение работающего прототипа на основе структуры данных, буквально измеряется минутами. Отдельно хотелось бы отметить, что продукт и его документация полностью локализованы. Архитектура LightSwitch Многим интересно, что же "под капотом" у LightSwitch, на основе каких технологий и архитектурных решений он построен. Среда выполнения LightSwitch построена по классической трехзвенной архитектуре. Презентационный слой решает задачи взаимодействия с конечным пользователем, и основные функции которые он выполняет - визуализация, редактирование и ввод данных. Логический слой обрабатывает запросы от клиента по редактированию, выборке данных и другим операциям. Главная цель этого слоя - защитить данные от прямого изменения. Это дает возможность быть уверенным в целостности и безопасности данных. И наконец, слой данных предназначен для хранения структурированной информации. Дизайн таких трехзвенных приложений может быть достаточно сложной задачей. Каждый слой может быть создан с огромным количеством технологических решений и приемов. Каждый слой так же может требовать разных подходов по развертыванию и управлению во время эксплуатации. И наконец, каждый слой должен уметь "разговаривать" друг с другом с учетом обеспечения безопасности. В LightSwitch многие перечисленные задачи уже решены, предлагая программисту готовые механизмы. Технологической базой для этого служат хорошо зарекомендовавшие себя технологии. В первую очередь это Microsoft Silverlight 4.0 предназначенный для построения слоя представления. Логический слой создан на основе WCF RIA DomainServices работающих под управлением ASP.NET 4.0. При этом дизайн этого слоя подразумевает возможность запуска как в локальном режиме (на компьютере конечного пользователя) так и на сервере IIS или даже в Windows Azure (WebRole). В качестве системы хранения данных используется SQL Server, или SQL Azure, помимо этого есть возможность так же работать с данными списков Sharepoint 2010. Соединяем все вместе Тщательно "подогнанные" друг под друга компоненты LightSwitch позволяют сосредоточиться именно на реализации бизнес составляющей решения, не задумываясь о многих нюансах. При этом есть возможность даже не прибегать к Visual Studio, осуществляя настройку приложения и форм данных во время отладки! На основе взаимосвязей данных, а так же параметризации запросов, можно создавать полноценные решения, прибегая к программированию только в редких случаях. Но и в таких случаях LightSwitch позволяет сделать очень многое, так как программист обеспечен большим количеством синхронных (перехватывающих) и асинхронных (уведомляющих) обработчиков событий: Помимо очевидных вещей, связанных с внешним видом приложения, также реализованы горизонтальные компоненты, такие как управление доступом. После предварительной настройки в свойствах проекта LightSwitch достаточно добавить в экраны форм проверку наличия разрешений у пользователей, после чего в режиме администрирования в экране управления пользователей раздать им требуемые права: Вопросы развертывания точно так же решаются с помощью лаконичного и простого помощника, который поможет развернуть приложение локально, на IIS сервере или даже в Azure: Расширение функциональности LightSwitch позволяет расширять заложенные в него стандартные функции. Клиентская часть работает на Silverlight 4.0, и по сути клиенту доступны все возможности Silverlight, в том числе по взаимодействию с операционной системой Windows. Возможна разработка пользовательских интерфейсных контролов. Ожидается что в скором времени для LightSwitch будет разработано множество расширений. С кратким перечнем компаний которые уже занимаются подготовкой дополнений для LightSwitch можно ознакомиться на сайте Microsoft. Например с помощью расширения подготовленного компанией Infragistics приложение LightSwitch можно снабдить расширенным редактором текста, картами, диаграммами и даже в пару кликов изменить внешний вид приложения с помощью тем и расширений оболочки LightSwitch: Заключение LightSwitch это очень интересный инструмент предназначенный для узкого но все же популярного спектра задач - быстрого создания бизнес приложений. Это средство берет на себя все рутинные операции по разработке бизнес-приложений, предоставляя пользователям возможность сосредоточиться на уникальной бизнес-логике, соответствующей их требованиям. Несмотря на кажущуюся простоту, LightSwitch позволяет решить множество задач с помощью стандартных средств настройки, а при необходимости расширять функции с помощью программирования и дополнительных компонент. |