Lightswitch visual studio что это
Одной из востребованных функций в бизнес–приложениях является анализ данных , в том числе и аналитическая обработка в реальном времени online analytical processing ( OLAP ). Компания ComponentOne выпустила расширение OLAP for LightSwitch. С его использованием можно реализовать в LightSwitch функции аналогичные сводным таблицам и сводным диаграммам из Microsoft Excel . Используя в качестве источника данных одну из сущностей или запрос LightSwitch ComponentOne OLAP представляет удобный интерфейс для формирования необходимого представления информации. Также в состав этого компонента входит специальный шаблон экрана, на основе которого можно выполнять OLAP - анализ .
Ряд компаний предлагают достаточно интересные расширения на бесплатной основе. Так, Spursoft Solutions разработало продукт LightSwitch Extensions. Эти расширения включают оболочку, основанную на навигации посредством меню , ряд тем элементов управления. Навигационное меню занимает мало места на экране и может быть прикреплено к любой из его сторон, причем настройка может быть выполнена на работающем приложении. Предлагаемые темы включают Office 2010 Black и тему из Silverlight набора. В качестве пользовательских элементов предлагается горизонтальный и вертикальный разделители, просмотрщик для отчетов SQL Server Reporting Services, просмотрщик для PDF документов и выпадающий список , упрощающий навигацию по элементам списка.
Компания DevExpress предлагает разработку DXEditors for LightSwitch, она предоставляется бесплатно для сообщества разработчиков LightSwitch. Данное расширение предназначено для использования в приложениях, отображающих графическую информацию из баз данных. DXEditors упрощает способы работы с информацией для конечных пользователей. Включает в себя:
- Masked Text Edit - поле ввода по маске для внесения и редактирования данных, имеющих регулярную структуру, например, телефонного номера.
- Accounting and Percentage Editor - упрощает ввод и редактирование данных в денежном и процентном форматах.
- Web Image и Web Link Edit – отображает рисунок из поля базы данных или из заданного URL. Редактор Web Link отображает URL и передает его в браузер для просмотра.
Все указанные редакторы могут использоваться в таблице данных.
Разработчики из компании Microsoft, в том числе, из команды LightSwitch Team также предлагают бесплатные компоненты. В частности, компонент Metro Theme Extension , который реализует интерфейс Metro, предлагаемый Microsoft для сенсорных устройств. С помощью этой темы можно в любое приложение LightSwitch добавить поддержку таких устройств.
Вместе с выходом релизной версии LightSwitch был выпущены ряд расширений, составляющих так называемый StarterKit. Он ориентирован на первоначальное ознакомление разработчиков с возможностями LightSwitch на стандартных примерах.
В этот набор входят:
- Customer Service – приложение для поддержки взаимодействия покупателей и продавцов. Покупатели имеют возможность совершать покупки и оплачивать счета, при необходимости функционал приложения может быть расширен.
- Issue Tracker - позволяет создавать и управлять процессом издания какого- либо продукта и связанными с этим работами. Издания организованы в соответствии с определенной иерархией, менеджер может назначать исполнителей для работ. Доступны простые механизмы управления, позволяющие упорядочивать и сортировать издания.
- Time Tracker – приложение помогает создавать расписание и отслеживать его выполнение. Поддерживает хранение сотрудников, расписаний проектов и задач. Приложение может быть расширено под потребности конкретной компании.
Команда разработчиков LightSwitch предлагает бесплатные расширения, реализующие достаточно интересные функции и полезные для критических целей. Расширение Excel Importer добавляет функцию импорта данных из файлов формата Microsoft Excel или CSU в приложении LightSwitch. При этом в ходе импорта обеспечивается контроль правильности данных, а также возможен импорт с учетом отношений между сущностями. Напомним, что возможность экспорта в файл Excel является встроенной в базовый LightSwitch.
Для выполнения импорта необходимо установить соответствующее расширение, затем на любом экране, содержащем редактируемую таблицу добавить кнопку и в обработчик нажатия кнопки добавить код вызова LightSwitch Utilites.Client.Import Excel в качестве параметра которой передать коллекцию, в которую необходимо импортировать данные. В работающем приложении при нажатии кнопки импорта запустится окно выбора файла, после выбора файла возникнет окно сопоставления. В нем необходимо правильно сопоставить названия столбцов в файле Excel и в таблице, для которой выполняется импорт. После нажатия кнопки ОК произойдет импорт.
Другое интересное расширение Filter Control, как видно из названия оно позволяет пользователям создавать собственные фильтры для данных, отображаемых на экране. Напомним, что простой механизм фильтрации по одному значению интегрирован в базовый LightSwitch. Filter Control представляет возможность создавать сложные условия фильтрации, объединяя несколько условий с условием операторов "И" "ИЛИ" . Созданный фильтр может быть сохранен и затем повторно использован для данного экрана.
Для использования фильтра необходимо к сущности, для которой требуется сложная фильтрация добавить запрос уровня сущности и в него добавить строковый параметр с именем Filter Term . Затем нажать кнопку Записать код для этого запроса и в событие Preprocess Query ввести код:
Затем в приложение можно добавить экран на основе данного запроса и изменить тип для Customer FilterTerm на Advanced Filter Builder . Запустите приложение , интерфейс фильтра будет отображаться над таблицей. Заполните требуемые поля условиями и кнопкой GO выполните фильтрацию.
Помимо механизмов создания и использования расширений разработчики позаботились об удобстве распространения созданных расширений и удобстве их поиска. Большая часть коммерческих расширений и расширений, созданных сообществом, может быть получено через Visual Studio Gallery. Это место является электронной торговой площадкой для различных надстроек и расширений для Visual Studio, в том числе и для LightSwitch.
Существует два основных способа работы с Visual Studio Gallery:
Выбрав необходимое расширение необходимо нажать кнопку Загрузить. Это приведет к переходу на страницу расширения, где можно совершить его покупку и загрузить его. В некоторых случаях можно загрузить и установить пробную версию, что позволяет предварительно ознакомиться с возможностями расширения, а затем принять расширение о его покупке.
После установки расширения необходимо перезапустить Visual Studio 2010 и в окне менеджера расширения Свойства – Расширения для их подключения к текущему проекту установить флажок рядом с их названием. Для часто используемых расширений можно установить флажок Использовать в новых проектах, что обеспечит их автоматическое подключение при создании новых проектов.
Разработчики LightSwitch, понимая важность расширений во время всего цикла разработки уделяли им особое внимание. Одновременно с выходом LightSwitch Beta 2 был выпущен особый документ Extensions CookBook, в котором описывались типы и порядок создания основных видов расширений с использованием Visual Studio Professional 2010.
Для создания расширений необходимо, чтобы на компьютере разработчика были установлены:
- Visual Studio2010 SPI (Professional, Premium или Ultimate редакций);
- Visual Studio2010 SPI SDK;
- Visual Studio LightSwitch 2011;
- Visual Studio LightSwitch 2011 Extensibility Toolkit.
При выборе такого проекта автоматически создается новое решение, содержащее семь проектов. В таблице 8.1 систематизированы данные проекта и указаны цели их создания.
Разработка расширений LightSwitch выполняется аналогично разработке других расширений с помощью Visual Studio SDK . Необходимо создать на основе шаблона, соответствующий проект, написать код расширения, выполнить его отладку, создать требуемый контейнер Vsix и осуществить его развертывание .
Пробовали ли вы когда-нибудь создавать приложение по вводу информации? Например, для секретаря, что то вроде учета карточек пришедшей корреспонденции? А так чтобы был словарь корреспондентов? Пару тройку экранов отчетов, по необработанным письмам и корреспондентам? И еще неплохо было бы увязать это приложение с вашей БД маркетингового отдела. При кажущейся простоте эта задача влечет за собой огромное количество вариантов реализации, технологических решений и приемов. А хотели бы решать такие задачи, сосредотачиваясь только на определении данных и небольших доработках?
Вчера вечером компания Microsoft выпустила новый продукт – Microsoft Visual Studio LightSwitch 2011. Официальное определение этого продукта звучит следующим образом «гибкий инструмент разработки, используемый для быстрого создания и развертывания настольных бизнес-приложений и бизнес-приложений для облака». Если вам интересно, что же на самом деле представляет из себя LightSwitch, почему он позиционируется именно таким образом и как работает — добро пожаловать под кат.
Что же такое LightSwitch и почему он позволяет быстро создавать приложения.
Давайте вернемся к примеру который был приведен в самом начале. На основе определения данных построим приложение:
первый шаг:
скачиваем и запускаем LightSwitch
второй шаг:
создаем проект и определяем данные с помощью бизнес-типов для которых сразу же можем определить некоторые правила валидации.
Третий шаг:
определяем связи между таблицами
четвертый шаг:
(не обязательный) подключаем внешние, уже существующие источники данных
пятый шаг:
на основе определений данных генерируем экраны пользователя
последний шаг:
запускаем готовое приложение
Время, которое требуется на получение работающего прототипа на основе структуры данных буквально измеряется минутами. Отдельно хотелось бы отметить что продукт и его документация полностью локализованы.
Архитектура LightSwitch
Многим интересно, что же «под капотом» у LightSwitch, на основе каких технологий и архитектурных решений он построен. Среда выполнения LightSwitch построена по классической трехзвенной архитектуре. Презентационный слой решает задачи взаимодействия с конечным пользователем, и основные функции которые он выполняет – визуализация, редактирование и ввод данных. Логический слой обрабатывает запросы от клиента по редактированию, выборке данных и другим операциям. Главная цель этого слоя – защитить данные от прямого изменения. Это дает возможность быть уверенным в целостности и безопасности данных. И наконец, слой данных предназначен для хранения структурированной информации.
Дизайн таких трехзвенных приложений может быть достаточно сложной задачей. Каждый слой может быть создан с огромным количеством технологических решений и приемов. Каждый слой так же может требовать разных подходов по развертыванию и управлению во время эксплуатации. И наконец, каждый слой должен уметь «разговаривать» друг с другом с учетом обеспечения безопасности.
Соединяем все вместе
Тщательно «подогнанные» друг под друга компоненты LightSwitch позволяют сосредоточиться именно на реализации бизнес составляющей решения, не задумываясь о многих нюансах. При этом есть возможность даже не прибегать к Visual Studio, осуществляя настройку приложения и форм данных во время отладки!
На основе взаимосвязей данных, а так же параметризации запросов можно создавать полноценные решения, прибегая к программированию только в редких случаях. Но и в таких случаях LightSwitch позволяет сделать очень многое, так как программист обеспечен большим количеством синхронных (перехватывающих) и асинхронных (уведомляющих) обработчиков событий:
Помимо очевидных вещей связанных с внешним видом приложения так же реализованы горизонтальные компоненты, такие как управление доступом. После предварительной настройки в свойствах проекта LightSwitch достаточно добавить в экраны форм проверку наличия разрешений у пользователей, после чего в режиме администрирования, в экране управления пользователей раздать им требуемые права:
Расширение функциональности
LightSwitch позволяет расширять заложенные в него стандартные функции. Клиентская часть работает на Silverlight 4.0, и по сути клиенту доступны все возможности Silverlight, в том числе по взаимодействию с операционной системой Windows. Возможна разработка пользовательских интерфейсных контролов. Ожидается что в скором времени для LightSwitch будет разработано множество расширений. С кратким перечнем компаний которые уже занимаются подготовкой дополнений для LightSwitch можно ознакомиться на сайте Microsoft. Например с помощью расширения подготовленного компанией Infragistics приложение LightSwitch можно снабдить расширенным редактором текста, картами, диаграммами и даже в пару кликов изменить внешний вид приложения с помощью тем и расширений оболочки LightSwitch:
Заключение
LightSwitch это очень интересный инструмент предназначенный для узкого но все же популярного спектра задач – быстрого создания бизнес приложений. Это средство берет на себя все рутинные операции по разработке бизнес-приложений, предоставляя пользователям возможность сосредоточиться на уникальной бизнес-логике, соответствующей их требованиям. Несмотря на кажущуюся простоту, LightSwitch позволяет решить множество задач с помощью стандартных средств настройки, а при необходимости расширять функции с помощью программирования и дополнительных компонент.
Узнать больше о разработке приложений с помощью Visual Studio LightSwitch 2011 вы сможете на конференции Tech∙Ed Russia 2011, которая пройдет с 9 по 10 ноября 2011 года в Москве.
Мы рады сообщить Хабрапользователям об особой специальной скидке для вас. При регистрации участия на конференции введите промо-код 678955662996 и вы получите возможность приобретения билетов на конференцию по сниженной цене!
В продолжение нашей недавней темы о визуальных языках программирования (VPL), сегодня я решил сделать обзор необычного для России продукта: несмотря на ровно год его существования он до сих пор не получил широкого признания и распространения на полях и весях нашей необъятной родины.
Достаточно попытаться поискать через интернет-поиск русскоязычные материалы на эту тему, как будет сразу обнаружено, что их доступно буквально лишь несколько на весь Рунет, да и те по большей части лишь от родоначальника этого продукта — компании Microsoft, в которых хор громких и уже хрипловатых от эмоционального надрыва маркетологов, исполняет заунывно-хвалебные песни в честь своего нового продукта, что несколько заглушает и задвигает на второй план собственно саму суть и устройство этой новой технологии разработки.
Итак, сегодня у меня речь пойдет о Visual Studio LightSwitch 2011, первая версия которой увидела свет в начальных числах июля 2011 года, а до этого официального события была доступна всем интересующимся в виде множества промежуточно-тестовых бета-версий.
Безусловно, это необычный программный продукт от Microsoft, стоящий особняком от всех других программных продуктов этой компании. Это «стояние в стороне» носит как технический, так и идеологический уровень, о чем далее я расскажу подробнее. Но перед началом моего изложения давайте определимся с форматом нашего рассказа. Поскольку количество информации о любой подобной новой технологии просто огромно, я бы хотел построить своё изложение в виде списочного перечисления лишь отдельных, но важных для меня фактов, через выборочную призму которых, надеюсь, кратко и емко расскажу о сей заморской технологии, дабы дать возможность быстро пробежавшись по ним сверху низ, просто и ясно уяснить для себя — что это, для чего это, и главное — как оно работает.
В заключение этого краткого введения позволю себе лишь последнее маленькое замечание: через весь мой текст невольно будет скользить сравнение с FileMaker — о котором я, во-первых, подробно уже писал ранее, а во-вторых, потому что FileMaker, по моему мнению, прямой концептуальный конкурент для LightSwitch, и такое коллективное сравнение пойдет лишь на пользу для лучшего понимания их общей ниши и предназначения. После нашей совместной прогулке по аллее фактов, во второй логической части статьи о LightSwitch, мы сразу попробуем создать простенькое приложение, чтобы получить первые практические впечатления от работы с подобным классом «синтетических приложений».
LightSwitch — среда для. Для кого?
В кратком введении к этой статье я уже упомянул про разработку приложений на LightSwitch, давайте в качестве стартовой точки сразу определимся с тем, что здесь имеется в виду, потому как разработка эта немного специфична, как минимум в традиционном смысле этого слова, когда под этим подразумевается написание простыней из кода, классов и функций.
Сама Microsoft даёт такое чеканное определение для своего новейшего продукта:
«Microsoft Visual Studio LightSwitch — это простой и самодостаточный инструмент, позволяющий быстро и легко создавать как настольные, так и облачные бизнес-приложения».
От себя я бы чуть расширил область создаваемых приложений, а именно, это:
- настольные (десктопные) приложения;
- браузерные веб-приложения (которые доступны посредством браузера, что теоретически придаёт таким приложениям относительную кросс-платформенность — позже я уточню, к чему вставлено важное слово «относительную»);
- серверные веб-приложения;
- и, наконец, уже названная и последняя категория — облачные приложения.
Понимаю, что для технического специалиста подобные очень общие определения мало что скажут, но всё же давайте погружаться во вселенную LightSwitch более плавно и последовательно, поэтому о технических подробностях в следующем «факте», а пока закончим начатое — определим до конца нишу и специфику LightSwitch.
Представьте себе нынешнюю линейку продуктов для программной разработки от Microsoft, я изобразил её на диаграмме ниже:
Здесь мы видим четыре известных продукта для автоматизации и обработке данных, которые нарастают в направлении слева на право по уровню своей сложности и комплексности. Обратите внимание, раньше между уровнем Access и Visual Studio был огромный зазор: Access при современных объемах данных и интернет-ориентированности бизнеса — это фактически стремительно устаревающая технология создания небольших локальных приложений, по большей части исключительно в рамках экосистемы MS Office. С другой стороны, как ни крути, при всех своих неограниченных возможностях, Visual Studio требует довольно-таки приличных знаний от специалиста, решившего этим инструментом всерьёз воспользоваться.
И как справедливо говорят в народе — свято место пусто долго не бывает, и поэтому именно на этом рынке «полупрофессионалов» Microsoft и собирается урвать свой жирный кусок пирога в лице LightSwitch, прежде всего у своего прямого конкурента — FileMaker.
Отныне любому юзеру достаточно лишь шапочного знакомства с современными технологиями и устройством информационных систем, и вы уже в состоянии быстро и легко построить своё собственное, очень даже комплексное или сетевое приложение из готовых кирпичиков, с помощью многочисленных и услужливых визардов, по уже готовым и хорошо подобранным шаблонам и лекалам. LightSwitch — это супер-RAD, продукт 21 века, когда дефицит времени — величина перманентная, а знаний у большинства из армии простых смертных пользователей компьютеров на ковыряние деталей и выяснение каких-то особенностей отдельных программистских технологий — просто нет.
Понятно для кого предназначен LightSwitch, равно как и его аналог FileMaker — например, для бизнесмена, у которого нет ни времени, ни сил учиться (параллельно своей основной работе) на программиста, но при этом рутина, что называется, заедает. В современном информационном офисе практически у любого сотрудника пруд пруди различных обязанностей и потребностей, которые часто в идеале требуют своего узкоспециализированного софта. Не заказывать же каждый раз новый продукт у стороннего специалиста?
Идеология LightSwitch/FileMaker утверждает, что при минимуме знаний и умений, при помощи подобных специализированных IDE вы сами самостоятельно способны создать довольно-таки комплексные и приличные программы, при этом потратив на них минимум своих времени и усилий. Конечно, любой «тру программист» может назвать этот популярный на Западе (и пока не так распространенный у нас) тренд развития ПО как «программирование для секретарш» и брезгливо скривить рот. но подождите давать свои поспешные оценки, хочу авансом уверить, что Microsoft предприняла по-настоящему серьёзную попытку сделать мощный и гибкий, и при этом — относительно простой инструмент.
Давайте в продолжение этой темы заглянем под капот этого чуда, дабы окинуть спешным взглядом принципиальные моменты его технического и логического устройства.
Технические аспекты устройства
Выше я уже выделил список из 4 направлений для внедрения и области развертывания (как сказали бы программисты — «диплоя») этого приложения, давайте сейчас спроецируем всё это на конкретные технологии, внеся необходимые технические подробности, дабы придать смысловую резкость для специалистов.
Например, в качестве источника данных могут выступать списки Share Point или служба WCF. При этом многочисленные и хорошо подобранные типовые шаблоны и мастера позволяют почти полностью абстрагироваться от технической сложности и сосредоточиться на самой логике приложения, полностью в интуитивно-понятном визуальном режиме самостоятельно настраивать и соединять все эти уже привычные специалистам технологии в единую отлаженную систему.
Конструктор типовых приложений с возможностью его расширения
И даже более того — он не фиксирует вас намертво лишь на своем уровне разработки приложения, вы всегда можете дописать (доработать, модифицировать) какую-то его часть на привычной вам Visual Studio, если это того стоит!
Несмотря на все мои симпатии к FileMaker — ничего подобного там просто нет. Microsoft воспользовалась своим излюбленным коньком, извлекая конкурентные преимущества из тихой интеграции со своими другими, уже признанными и топовыми разработками, которые вытягивают за собой буквально за уши её новый и малоизвестный продукт (например, как IE в своё время был стремительно раскручен по всему миру просто после его интеграции с очередным Windows).
Снова взгляните на диаграмму приведенную выше: получается, что у LightSwitch обеспечена прекрасная перекрёстная интеграция как в левую — «офисную часть», так и в правую — для возможности разработчиков подрихтовать какие-то особенно требовательные или сложные части своего LightSwitch-приложения через мощную Visual Studio.
Впрочем, давайте об этом последнем аспекте более последовательно и по порядку.
Microsoft Visual Studio LightSwitch (VSLS) — как видно из его полного официального названия, — это продукт являющийся частью Visual Studio. Я уже упоминал выше, что, несмотря на это, он стоит особняком, и вероятно с логической точки зрения это действительно имеет определенный смысл. Если составляющие Visual Studio — это чисто классический программистский инструментарий для разработки, то LightSwitch, формально, будучи частью Visual Studio с 2011 года, поставляется всё-таки отдельно.
В качестве заключения для этого пункта — маленькая цитата от активного пользователя этой системы, в которой профессиональный программист А. А. Станиславский (надо полагать никак не связанный «с тем самым Станиславским»), ныне занимающий должность главного программиста управления разработки Главного управления Банка России, так кратко резюмирует общий подход LightSwitch:
«Основные интересные свойства Microsoft Visual Studio LightSwitch — стремительное сокращение времени создания пользовательского интерфейса, интеграция с внешними системами с помощью веб-сервисов, автоматическое создание подсистем безопасности. Эти и некоторые другие свойства продукта позволяют разработчику сразу сосредоточиться на специальной логике приложения и буквально в считанные часы создавать полноценные бизнес-решения».
Как мы видим, даже люди из Главного управления Банка России активно пользуются всеми преимуществами гибкого подхода LightSwitch, несмотря на то, повторюсь, что этот продукт, в общем-то, центрирован на «непрограммистах, желающих быстро и легко создавать приложения при минимуме необходимых знаний».
На этом наша первая вводная часть завершена, а во второй и заключительной части мы продолжим наш разговор об этом замечательном продукте.
Продолжаем наше ранее начатое знакомство с Visual Studio LightSwitch. Но прежде чем начать наше дальнейшее погружение в специфику и философию этого продукта, позвольте, очень кратко остановится на необходимой для этого теории.
Итак, LightSwitch жестко завязан на известную среди специалистов модель разработки MVC. Я считаю это большим плюсом, ибо, даже если полный новичок в разработке ваяет с помощью LightSwitch своё первое, пусть и несколько синтетическое приложение, система сконструирована таким образом, что сразу заставит его сделать всё правильно — отделяя логику от оформления и так далее. Чтобы быть понятным для неспециалистов (а именно для них в первую очередь и предназначена моя обзорная статья, равно как и обсуждаемый продукт, кстати, тоже), сначала дадим все необходимые определения и пояснения.
Model-view-controller (MVC) — уже стандартная схема использования шаблона проектирования, с помощью которого модель данных приложения, его пользовательский интерфейс и взаимодействие с пользователем — функционально разделены на три отдельных подсистемы так, что дальнейшая модификация или какая-либо корректировка одной из этих подсистем оказывает в худшем случае минимальное воздействие на остальные (а в лучшем и идеальном случае — и вовсе никак не затрагивает их). Данная схема практически повсеместно используется для построения архитектурного и структурного каркаса почти любого современного приложения.
О’кей, заканчивая с этим мудреным для новичка определением, ещё раз подчеркну: любое LightSwitch-приложение автоматически создается по этой классической трехуровневой схеме:
- Уровень представления отвечает за взаимодействие с пользователями, его основная задача — визуализация данных на форме или странице, их редактирование, интерфейс со стороны внешнего мира ко всем публичным возможностям вашего приложения.
- Уровень логики получает (как правило, от уровня представления) запросы от клиента, обрабатывает их как-то, при этом выполняя все необходимые для этого внутренние операции, связанные с реализацией логики приложения — это мозговой центр, «соображалка программы».
- Уровень данных отвечает за хранение абстрактных данных приложения — это пассивная память вашей программы.
Давайте посмотрим на картинку-график ниже, которая хорошо суммирует это моё суховатое описание:
Хорошо, теперь оттолкнемся от уже усвоенного и добавим технических деталей, чтобы конкретизировать все сказанное. Уровень представления реализован с помощью Silverlight 4.0, — это внешний вид приложения. Неважно, десктопное ли это приложение или оно специально создано для браузера, везде в качестве базы для реализации всех графических возможностей будет использован Silverlight 4.0.
Тут есть некоторые детали, из многообразия которых я упомяну лишь то, что LightSwitch-приложение для Windows конфигурируется и запускается с повышенными привилегиями из-под спецпроцесса sllauncher.exe (он обеспечивает прямой доступ к ряду сервисов Windows, например, возможность взаимодействия с компонентами Microsoft Office). При работе же в браузере, такое приложение может теоретически выполняться в любом браузере и на любой операционной системе, где установлен плагин Silverlight 4.0, но с целым рядом ограничений.
- Локально;
- На выделенном сервере Internet Information Services (IIS);
- Или это будет облачный инстанс в Windows Azure.
И, наконец, третья ступенька в нашем строго ступенчатом стиле рассмотрения — это уровень данных. Тут вариантов превеликое множество (всё зависит от наличия лично у вас провайдера для каждого конкретной БД), но я бы опять же выделил два наиболее вероятных и органичных для решения от Microsoft способа — это более традиционный сервер баз данных SQL Server или его облачный аналог — Microsoft SQL Azure.
Чтобы подбить всю эту груду слов к удобному «итого», опять же давайте взглянем на диаграмму компактно представленную ниже:
Чтобы подвести итог в этом пункте, с помощью Visual Studio LightSwitch можно создавать двухуровневые или трехуровневые приложения для настольных систем, а также трехуровневые веб-приложения. Способ же развертывания такого приложения (диплой) — полностью зависит от выбранного вами типа клиента и топологии сервера.
При этом существует три основных сценария использования LightSwitch:
- Создание приложений изначально в Visual Studio LightSwitch;
- Последующая доработка созданного с помощью LightSwitch-приложения в Visual Studio Professional;
- Расширение приложений созданных с помощью LightSwitch сторонними компонентами и сетевыми сервисами в Visual Studio Professional.
Приближенные к жизни типы полей
LightSwitch использует более приближенные к реальной жизни типы данных, здесь минимум узкоспециализированных программистских понятий. К примеру, вам будут доступны следующие поля для реальных бизнес-приложений: e-mail-адрес, изображение, телефонный номер, денежная сумма и так далее.
Кастомизируем форму прямо не лету
У LightSwitch есть возможность настраивать формы (окна создаваемых приложений) прямо во время исполнения приложения (имеется в виду в среде разработке). В каждом таком запущенном приложении в верхнем-левом уголке появляется следующий значок с надписью «Customize Screen»:
Если щёлкнуть по нему, то появится следующее меню-настройки режима кастомизации, со всеми списками, редактором свойств и экраном предпросмотра:
Генератор интерфейсных форм, не дизайнер
Второе интересное отличие, касающееся конструирования форм: здесь нет визуального дизайнера форм, по-крайней мере в том виде, в котором это представлено в традиционной Visual Studio.
Внизу я привожу скриншот редактора форм, чтобы это лучше увидеть самому — фактически это большая панель из всевозможных иерархических свойств и методов доступных для конструирования определенных особенностей формы. Последовательно выбирая их — вы настраиваете (генерируете) внешний вид и функциональные свойства конечной формы.
Примеры добавления элементов
Чтобы пояснить предыдущую мысль, вот несколько наглядных примеров. Мне нужно добавить в тестовое приложение нового автора, для этого я создаю соответствующую кнопку. Ниже пример диалога в LightSwitch, через который я описываю эту новую кнопку на форме:
Кроме кнопки в моем случае, для этого придётся всё-таки написать какой-то минимальный кусок кода, вот его пример:
После добавления нового автора (через новую кнопку) и заполнения всех соответствующих полей связанных с ним, нужно сбросить эти данные в базу. Для этого я создаю ещё одну кнопку вот с таким обработчиком:
В итоге, пройдя череду настройки всех полей формы, последовательного добавления кнопок Добавить (New Author) и Сохранить (Save Author), я получил в итоге примерно вот такую вот форму:
Компиляция. публикация проекта
Поскольку моя разработка уже готова — я должен опубликовать её, то есть подготовить конкретную сборку для выбранной среды (смотрите диапазон для возможного выбора в первой части этой статьи). Самый простой (я бы сказал, что немного бездумный) способ для этого — воспользоваться услугами LightSwitch Publish Wizard. Первое что у вас спросят в этом случае — хотите ли вы получить десктопное или веб-приложение?
После этого предстоит выбор того, где же будет хоститься бэкенд вашего приложения, и, наконец — выбрать тип базы данных, которая будет хранить информацию (после чего, туда будут сразу же экспортированы данные накопленные во время разработки приложения). Ниже приведенные скриншоты показывают некоторые из этих шагов (обратите внимание, что доступны обширные настройки безопасности и доступа, а также другие важные параметры, которые не были описаны мною в этом очень общем описании).
Прошу понять меня правильно: в этой поверхностной зарисовке цикла создания LightSwitch-приложения, я не ставил перед собой задачу научить чему-то читателя, ибо в таком малом объеме текста это просто невозможно; а рассматривал лишь возможность дать быстрое впечатление о типичных особенностях разработки в LightSwitch.
SQL или LINQ? Ни то и не другое!
LightSwitch, фактически, конструктор для создания приложений баз данных (и разработки самих баз данных тоже). При этом, здесь вы нигде не встретите SQL. Здесь есть полностью визуальный редактор для настройки всего необходимого и связанного с базой данных, при этом главный движущий механизм всего механизма — LINQ (Language Integrated Query), — остаётся где-то в дебрях самой среды, хотя по всем признакам его присутствие ощущается везде и повсюду.
Позвольте пояснить: SQL знают очень многие, но его здесь нет; у LINQ есть определенные преимущества, не спорю, но LINQ — не самая подходящая технология для новичка, поэтому принято решение сделать что-то вроде графико-визуального сборщика LINQ-запросов — Query designer. Лично для меня было бы здорово, если бы дополнительно предоставлялась возможность при этом показывать (и как-то редактировать) конечную полученную строку запроса/подключения (будь это в формате SQL или LINQ), но здесь этого нет, к сожалению.
Для кого написан LightSwitch?
В рамках вышеприведенной констатации, позвольте развить предыдущий пункт до его логического завершения. Итак, здесь нет ни SQL, ни LINQ, что же здесь есть? Предполагается, что такой до предела визуализированный подход сделает разработку серьёзных приложений более доступной и простой для непрофессионала. Давайте посмотрим, что получается в реальной жизни. Я взял для примера базы данных, хотя подобные противоречия имеются и в других местах этой системы проектирования.
С одной стороны — у нас здесь очень доступные и очевидные типы данных (как я описал их выше), с другой — при построении отношений внутри той же базы данных через Relationship Builder, требуется очень хорошее понимание базисных основ устройства реляционных баз данных
Смотрите на скриншоте снизу: здесь нам требуется выбрать отношение многие-к-многим между всеми другими вариантами, а также попутно настроить каскадное удаление для всех экземпляров.
Суть моих претензий сводится к тому, что если гипотетический новичок уверенно разбирается в устройстве реляционных баз данных, то я считаю, что тогда ему будет точно проще сразу воспользоваться чистым SQL. LightSwitch позиционируется как инструмент для полных дилетантов в программировании и IT, таких как: зубной врач, владелец магазина, небольшой предприниматель и так далее — смогут ли они правильно и самостоятельно спроектировать базу данных с помощью пусть даже и таких милых вспомогательных визуальных штучек? Сильно сомневаюсь.
И это заставляет реально задаться вопросом: кто действительный клиент этой среды разработки, какова её ниша и область применения?
Итак, я утверждаю, что как бы красиво не звучала реклама, LightSwitch всё же требует определенных знаний: в разработке с его помощью будут встречаться места, которые невозможно осилить лишь на интуитивном уровне, обязательно придётся хотя бы немного подучиться. И с другой стороны — как только настоящий программист начнет во всём этом детском конструкторе ковыряться всерьёз, то вероятно, он тут же обнаружит, что ему гораздо проще писать код напрямую, видя в виде листинга все параметры, методы и аргументы в явном виде, а не под толстым слоем множества визуальных интерфейсных примочек, которые дополнительно требуют ещё и своего адекватного истолкования (с точки зрения сугубо технического специалиста, так как в большинстве своем они заточены под гуманитария и его обывательское понимание).
В качестве противовеса, я всё же хочу похвалить LightSwitch в том плане, что они сделали максимально ясный продукт, насколько это вообще возможно в рамках современной GUI-парадигмы. К примеру, внизу приведен ещё один скриншот-пример создания связей между таблицами для иллюстрации:
У LightSwitch самая низкая цена среди всего семейства продуктов от Visual Studio, при этом нет и не планируется его бесплатная версия.
Заключение: универсальность из коробки
Приложения созданные под LightSwitch обладают встроенной по-умолчанию поддержкой облачных технологий, то есть теоретически они должны масштабироваться очень и очень широко для такого класса любительских продуктов. Вы также всегда можете с минимальными усилиями превратить ваше десктопное приложение в веб-приложение, далее расширив его под сообразную для ваших задач инфраструктуру. Огромное количество типовых шаблонов приложений на все случаи жизни, создавать свои приложения на базе которых и вовсе проще простого, возможность создавать любое по сложности и красоте GUI, всеядность в плане сред и технологий.
Файл ApplicationDefinition.lsml описывающий на автоматически-сгенерированном XAML графическую разметку приложения
Здесь в полной мере реализован уже стандартный модуль управления пользователями (CRUD) и многое-многое другое, что, увы, невозможно рассмотреть в рамках столь ограниченной по объему статьи. Я попытался выборочно рассмотреть лишь отдельные возможности и преимущества этой среды, честно коснувшись и недостатков, а также очертить собственно круг применения MS LightSwitch, предварительно попытавшись представить целевой контекст для подобного рода разработок.
При написании этой статьи мною были частично использованы обучающие материалы от Microsoft — в первую очередь замечательная вводная брошюра "Visual Studio LightSwitch — Первое знакомство" от Алексея Федорова, с которой я и рекомендую всем начать изучение этой замечательной и относительно новой среды разработки для полупрофессионалов, если позволите мне так обозвать категорию продвинутых компьютерных юзеров (но не имеющих, или почти не имеющих опыта в современном традиционном программировании).
Microsoft позиционирует себя как поставщика платформ и уделяет много внимания средствам разработки для них. Флагманский пакет инструментальных средств под брендом Visual Studio является мощным решением для профессионалов, но слабо подходит для начинающих, несмотря на наличие упрощенных редакций. Совсем недавно компания анонсировала и выпустила первые публичные бета-версии двух различных по направлению, но идейно близких решений – Visual Studio LightSwitch и WebMatrix, которые объединяет изначальное проектирование для тех, кто только приступает к программированию.
Обращение от редакции: Нашим защитникам из 3-го отдельного батальона УДА, которые находятся в Запорожской области, нужны вещи, чтобы противостоять врагу: квадрокоптеры и смартфоны для управления ими, прицелы ночного видения. Реквизиты для перевода средств на карту monobank – Колонович Катерина, номер карты 5375411505235312. Просим приобщиться к сбору средств. Слава Украине!
Вначале следует немного описать сложившуюся на рынке практику деления инструментальных средств на профессиональные и предназначенные для новичков, которую иначе как порочной и не назовешь. Многие компании, работающие в этом сегменте (и Microsoft до недавнего времени в их числе), предлагают свои продукты в различных редакциях, ориентируя дорогие и полнофункциональные на профессионалов, а дешевые и упрощенные – на начинающих. Однако от того, что среда разработки будет ограничена в функциональности, ее изучение и использование проще не становятся, скорее наоборот – отдельные задачи, легко решаемые с помощью встроенных средств полной редакции, оказываются чрезмерно трудоемкими в упрощенной. Соответственно, такая сегментация проводится обычно не по опыту потенциальной аудитории, а по ее покупательной способности. Разумеется, есть проекты, направленные на изучение программирования, но переход от них к практической деятельности также не является простым.
Отсутствие подходящих инструментов нередко удерживает опытных пользователей ПК от автоматизации своих задач, поскольку различные вспомогательные средства сложнее в отладке и тиражировании, а привлечение профессиональных разработчиков для этих целей будет весьма затратным. Поэтому появление проектов вроде тех, что послужили поводом для настоящей статьи, безусловно заслуживает внимания.
Visual Studio LightSwitch
При проектировании интерфейса в VS LightSwitch можно обойтись несколькими щелчками мыши |
Многие бизнес-приложения весьма схожи. Обычно они строятся вокруг реляционных данных и предусматривают типичные операции с ними: ввод, изменение, просмотр, поиск, выполнение вычислений и визуализации. При их разработке основной объем работы заключается в проектировании данных, построении экранных форм и отчетов. Программного кода, выполняющего собственно вычисления и реализующего какие-либо алгоритмы, совсем немного, а в отдельных случаях и вовсе нет. Именно эти предпосылки и были взяты за основу в Microsoft при создании средства для разработки бизнес-приложений под названием Visual Studio (VS) LightSwitch.
Проще некуда
Для того чтобы начать работу с VS LightSwitch, следует создать соответствующий проект. Сразу после этого разработчику доступны два варианта выбора – построить новую таблицу или подключиться к существующей. Какая-либо альтернатива, например обойтись без использования БД вообще, попросту не предусмотрена. При создании новой таблицы предлагается интерфейс, традиционный для приложений, работающих в графическом режиме с реляционными данными: возможность создания столбцов, определения их типов и ограничений. По умолчанию в качестве СУБД применяется локальная копия SQL Server Express, которую планируется распространять вместе со средой разработки. В простейшем сценарии предполагается, что пользователь будет создавать программы для своих потребностей на собственном ПК и вопросы распространения ПО и переноса данных его беспокоить не должны. Тем не менее, хотя и несколько забегая вперед, следует отметить, что по части публикации приложения предоставляются самые широкие возможности – начиная с подготовки традиционного дистрибутива для Windows Installer и заканчивая загрузкой приложения прямо на IIS или в облако Windows Azure. Помимо традиционных источников типа реляционных СУБД, можно использовать данные SharePoint-серверов или служб WCF.
Приложения, созданные в VS LightSwitch, могут иметь вполне профессиональные вид и функциональность |
После проектирования таблиц данных разработчик переходит к построению интерфейса. Для представления отдельных окон приложения в VS LightSwitch вводится концепция экрана – набора элементов управления, которые видны в конкретный момент времени. Эта сущность вполне соответствует принятому для тех же целей в Windows Forms термину «форма», однако, вероятно, более близка целевой аудитории. При создании нового экрана на выбор предлагается несколько стандартных шаблонов, рассчитанных на типичные сценарии работы (ввод данных, поиск, различные способы детализации и т. д.). В отличие от других подходов к созданию графического интерфейса, предусматривающих расположение и настройку элементов управления самим разработчиком, в VS LightSwitch во многих случаях можно обойтись без этого шага. Тем не менее тонкая настройка доступна, причем не только в IDE, но и непосредственно в окне исполняемого приложения – достаточно нажать кнопку с изображением шестеренки, чтобы перейти в режим настройки. При этом предоставляется довольно большая свобода в определении подходящих элементов управления и их параметров. Также можно изменять существующие и добавлять новые элементы управления в ленте, размещенной в верхней части экрана.
Интересно, что даже для создания вполне функциональных приложений можно обойтись вообще без написания программного кода, зато владение хотя бы базовыми понятиями реляционной модели данных весьма желательно, поскольку значительную часть времени будет занимать конструирование таблиц и задание связей между ними. Тем не менее возможность создавать код имеется, понадобиться она может как минимум для вычисляемых столбцов и проверки вводимых данных. Процесс написания кода не отличается от такового для обычных Silverlight-приложений, объектная модель при проектировании интерфейса генерируется автоматически, равно как и стандартные методы обработки основных событий. Разработчик обладает достаточно большой свободой в определении поведения приложения, в VS LightSwitch доступны практически те же возможности, что и в Windows Forms.
Кросс-платформенность по запросу
Использование Silverlight в качестве целевой платформы вполне оправданно тем, что создаваемые решения могут быть легко преобразованы из десктопных в ориентированные на Веб, и наоборот – достаточно в свойствах проекта указать необходимый вариант (в текущей реализации это настольный клиент на основе двухзвенной или трехзвенной архитектуры либо трехзвенный клиент для браузера). В перспективе наверняка появятся и мобильные опции, поскольку Silverlight – основная среда исполнения приложений для Windows Phone 7, доступна для Mac OS X, а для Linux имеется MoonLight. Еще одно из преимуществ Silverlight заключается в ее гибких графических возможностях, состоящих не только в простом изменении внешнего вида благодаря темам (такая возможность, разумеется, предоставляется), но и в гораздо более глубоком преобразовании приложения с помощью заменяемых оболочек (Shells). Оболочка по умолчанию ориентирована на выполнение приложений под управлением обычного ПК, но ее замена на оптимизированную под управление пальцами позволяет приспособиться к другому способу взаимодействия и ввода данных. О чем-то подобном для приложений, созданных с использованием, например, тех же Windows Forms, можно только мечтать.
Не только для начинающих
Достаточно неожиданным является тот факт, что после знакомства с VS LightSwitch интерес к этой среде стали проявлять и профессиональные разработчики, поскольку возможность радикально повысить производительность труда, пусть и для решения отдельных типичных задач, дорогого стоит. По той же причине и сама Microsoft старается позиционировать новоявленную среду разработки более высоко, чем начальное решение, и ориентирует ее именно на создание бизнес-приложений. Во всяком случае вокруг VS LightSwitch активно формируется экосистема разработчиков шаблонов, всевозможных дополнений и графических тем. Не исключено, что в следующих релизах «классической» Visual Studio мы увидим LightSwitch в качестве стандартного компонента, а область его применения будет значительно расширена.
WebMatrix
Галерея проектов в WebMatrix интегрирована с Web Platform Installer и предлагает выбор из обширного числа веб‑приложений |
Среду разработки для веб-приложений с названием Web Matrix (из двух раздельных слов) компания Microsoft анонсировала около семи лет назад. Но в то время проект «не выстрелил», и только сейчас, со слегка измененным названием WebMatrix (без пробела) и полностью новым содержанием, он стал доступен широкой публике. Составляют WebMatrix отдельные компоненты: веб-сервер IIS Express, СУБД SQL Server Compact Edition 4, новый синтаксис Razor для разметки веб-страниц, галерея шаблонов и проектов, IDE со встроенным редактором страниц и таблиц данных, средства публикации сайта и его анализа, а также оболочка, объединяющая все воедино.
Галерея веб‑приложений
Синтаксис Razor
IDE WebMatrix предоставляет необходимый минимум функциональности, а если ее оказывается недостаточно – на виду кнопка вызова Visual Studio |
WebMatrix обладает собственной IDE, в чем-то напоминающей Visual Studio, но по исполнению максимально соответствующей последней версии Microsoft Office. Работа со средой начинается со стартового экрана, в котором предлагается на выбор открыть существующий сайт либо создать новый, используя в качестве отправной точки веб-приложение из галереи, шаблон или сайт на диске. О галерее мы уже говорили, шаблоны также имеются для различных типов проектов, однако они изначально создавались для WebMatrix, а потому уже применяют язык разметки Razor и максимально пригодны для быстрой адаптации. Несмотря на то что IDE поддерживает те же типы файлов, что и Visual Studio, по своим возможностям, особенно если речь идет о визуальном проектировании и средствах отладки, она заметно уступает последней. Но назвать это существенным недостатком нельзя, поскольку разработчики предусмотрели запуск Visual Studio отдельной кнопкой на главной панели инструментов, а также предлагают установить бесплатную редакцию Visual Web Developer 2010 Express прямо во время развертывания WebMatrix.
Опубликовать проект также можно не покидая интерфейса редактора – непосредственно на веб-сервер с поддержкой протокола Web Deploy или загрузив FTP-сервер (с возможностью SSL-шифрования). Для тех же разработчиков, кто еще не обзавелся хостингом, есть ссылка, ведущая на страницу со списком провайдеров, рекомендованных Microsoft.
Один из несомненных плюсов WebMatrix – встроенная поддержка сбора статистики и анализа работы сайта. В существующей реализации для этого предлагается два варианта – по запросам к сайту или по его соответствию требованиям поисковой оптимизации. В каждом случае предоставляется информация с описанием возможной проблемы и даются рекомендации по ее устранению. Несмотря на то что в этом плане WebMatrix заметно уступает профессиональным специализированным инструментам, функциональности вполне достаточно для выполнения программы-минимума оптимизации сайта без привлечения сторонних средств, освоение которых может потребовать немало усилий от начинающего разработчика.
Хорош для старта
Сложно предугадать, насколько популярным окажется WebMatrix, но следует признать, что его создатели постарались на славу: в одном пакете собран необходимый минимум всех инструментов, которые подойдут для разработки несложных, но вполне функциональных веб-приложений. Среди главных особенностей WebMatrix следует назвать синтаксис разметки страниц Razor, значительно упрощающий восприятие кода, встроенную галерею поддерживаемых веб-приложений, позволяющую создать решение с минимальным количеством доработок, средства сбора статистики и анализа работы сайта, помогающие избежать явных ляпов малоопытному веб-разработчику. Тогда как VS LightSwitch может быть интересен и профессионалам, WebMatrix вряд ли приглянется опытным специалистам, но, бесспорно, сослужит хорошую службу для начинающих, тем более что будет распространяться Microsoft совершенно бесплатно.
Читайте также: