Visual Studio LightSwitch 2011 Вступ

Ексклюзивні ІТ-новини, огляди та інтерв'ю

Visual Studio LightSwitch 2011: Введення. Частина 2

Продовжуємо наше раніше розпочате знайомство з Visual Studio LightSwitch. Але перш ніж розпочати наше подальше занурення у специфіку та філософію цього продукту, дозвольте, дуже коротко зупиниться на необхідній для цього теорії.

lightswitch

Model-view-controller (MVC) — вже стандартна схема використання шаблону проектування, за допомогою якого модель даних програми, його інтерфейс користувача та взаємодія з користувачем — функціонально розділені на три окремі підсистеми так, що подальша модифікація або будь-яке коригування однієї з цих підсистем надає в гіршому випадку мінімальний вплив на інші (а в кращому і ідеальному випадку - зовсім не зачіпає їх). Дана схема практично повсюдно використовується для побудови архітектурного та структурного каркасу майже будь-якої сучасної програми.

О'кей, закінчуючи з цим хитромудрим для новачка визначенням, ще раз підкреслю: будь-який LightSwitch-додаток автоматично створюється за цією класичною трирівневою схемою:

  • Рівень представленнявідповідає за взаємодію користувачами, його основне завдання — візуалізація даних на формі або сторінці, їх редагування, інтерфейс з боку зовнішнього світу до всіх публічних можливостей вашої програми.
  • Рівень логікиотримує (як правило, від рівня подання) запити від клієнта, обробляє їх якось, при цьому виконуючи всі необхідні для цього внутрішні операції, пов'язані з реалізацією логіки додатка - це мозковий центр, ».
  • Рівень данихвідповідає за зберігання абстрактних даних програми — цепасивна пам'ять вашої програми.

Давайте подивимося на картинку-графік нижче, яка добре підсумовує цей мій сухуватий опис:

2011

Добре, тепер відштовхнемося від вже засвоєного та додамо технічних деталей, щоб конкретизувати все сказане.Рівень поданняреалізований за допомогою Silverlight 4.0, це зовнішній вигляд програми. Неважливо, чи десктопна ця програма або вона спеціально створена для браузера, скрізь як база для реалізації всіх графічних можливостей буде використанаSilverlight4.0.

Тут є деякі деталі, з різноманітності яких я згадаю лише те, що LightSwitch-додаток для Windows конфігурується і запускається з підвищеними привілеями з-під спецпроцесуsllauncher.exe(він забезпечує прямий доступ до ряду сервісів Windows, наприклад, можливість взаємодії з компонентами Microsoft Office (14). При роботі ж у браузері, така програма може теоретично виконуватися в будь-якому браузері та на будь-якій операційній системі, де встановлений плагінSilverlight4.0, але з цілим рядом обмежень.

Далі,рівень логікизроблено на основі служб WCF RIA DomainServices, що крутяться під керуваннямASP.NET 4.0. При цьому ви самі вільні вибирати, де вони будуть фізично розташовані:

  • Локально;
  • На виділеному серверіInternet Information Services(IIS);
  • Або це буде хмарний інстанс уWindows Azure.

У цьому ж рівні представлення є кілька способів доступу до сховища даних (розглянутому трохи нижче в свою чергу), з яких тут я б виділив лише два: «серйозний і універсальний спосіб» - ADO.NET Entity Framework, а також частково «офісний протокол» - OData(базується на REST, Atom/XML і JSON, до речі).

І, нарешті, третя сходинка у нашому строго ступінчастому стилі розгляду — церівень даних. Тут варіантів безліч (все залежить від наявності особисто у вас провайдера для кожного конкретної БД), але я б знову ж таки виділив два найбільш ймовірних і органічних для рішення від Microsoft способу - це більш традиційний сервер баз данихSQL Serverабо його хмарний аналог - Microsoft SQL Azure.

Щоб підбити всю цю купу слів до зручного «Разом», знову ж таки поглянемо на діаграму компактно представлену нижче:

visual

Щоб підсумувати цей пункт, за допомогоюVisual Studio LightSwitchможна створювати дворівневі або трирівневі програми для настільних систем, а також трирівневі веб-програми. Спосіб розгортання такої програми (диплой) — повністю залежить від обраного вами типу клієнта і топології сервера.

При цьому існує три основні сценарії використанняLightSwitch:

  • Створення програм спочатку у Visual Studio LightSwitch;
  • Наступне доопрацювання створеного за допомогою LightSwitch-додатка у Visual Studio Professional;
  • Розширення програм створених за допомогою LightSwitch сторонніми компонентами та мережевими сервісами у Visual Studio Professional.

Наближені до життя типи полів

visual

Кастомізуємо форму прямо не льоту

УLightSwitchє можливість налаштовувати форми (вікна додатків, що створюються) прямо під час виконання програми (мається на увазі в середовищі розробки). У кожному запущеному додатку у верхньому-лівому куточку з'являється наступний значок з написом «Customize Screen»:

lightswitch

Генератор інтерфейсних форм, не дизайнер

Друга цікава відмінність щодо конструювання форм: тут немає візуального дизайнера форм, принаймні в тому вигляді, в якому це представлено в традиційній Visual Studio.

2011

Приклади додавання елементів

lightswitch

Крім кнопки в моєму випадку, для цього доведеться таки написати якийсь мінімальний шматок коду, ось його приклад:

У результаті, пройшовши низку налаштування всіх полів форми, послідовного додавання кнопокДодати(New Author) іЗберегти(Save Author), я отримав у результаті приблизно таку форму:

2011

Компіляція. публікація проекту

studio

Після цього має бути вибір того, де ж буде хоститися бекенд вашого додатка, і, нарешті - вибрати тип бази даних, яка зберігатиме інформацію (після чого, туди будуть відразу експортовані дані накопичені під час розробки програми). Нижче наведені скріншоти показують деякі з цих кроків (зверніть увагу, що доступні великі налаштування безпеки та доступу, а також інші важливі параметри, які не були описані в цьому дуже загальному описі).

вступ

Прошу зрозуміти мене правильно: у цій поверховій замальовці циклу створення LightSwitch-додатка, я не ставив собі завдання навчити чомусь читача, бо в такому малому обсязі тексту це просто неможливо; а розглядав лише можливість дати швидке враження про типові особливості розробки вLightSwitch.

visual

SQL чи LINQ? Ні те, ні інше!

Дозвольте пояснити: SQL знає дуже багато, але його тут немає; у LINQ є певні переваги, не сперечаюся, але LINQ — не найкраща технологія для новачка, тому прийнято рішення зробити що-то на зразок графіко-візуального збирача LINQ-запитів -Query designer. Особисто для мене було б чудово, якби додатково надавали можливість при цьому показувати (і якось редагувати) кінцевий отриманий рядок запиту/підключення (будь це у форматі SQL або LINQ), але тут цього немає, на жаль.

Для кого написано LightSwitch?

У рамках вищенаведеної констатації дозвольте розвинути попередній пункт до його логічного завершення. Отже, тут немає ні SQL, ні LINQ, що тут є? Передбачається, що такий до краю візуалізований підхід зробить розробку серйозних додатків більш доступною та простою для непрофесіонала. Давайте подивимося, що виходить у реальному житті. Я взяв для прикладу бази даних, хоча подібні протиріччя існують і в інших місцях цієї системи проектування.

З одного боку - у нас тут дуже доступні і очевидні типи даних (як я описав їх вище), з іншого - при побудові відносин всередині тієї ж бази даних черезRelationship Builder, потрібно дуже хороше розуміння базисних основ улаштування реляційних баз даних

Дивіться на скріншоті знизу: тут нам потрібно вибрати ставлення до багатьох між усіма іншими варіантами, а також попутно налаштуватикаскадне видаленнядля всіх екземплярів.

І це змушує реально поставити питання: хто дійсний клієнт цього середовища розробки, яка її ніша і сфера застосування?

lightswitch

Як противагу, я все ж таки хочу похвалитиLightSwitchу тому плані, що вони зробили максимально ясний продукт, наскільки це взагалі можливо в рамках сучасної GUI-парадигми. Наприклад, внизу наведено ще один скріншот-приклад створення зв'язків між таблицями для ілюстрації:

lightswitch

УLightSwitchнайнижча ціна серед всього сімейства продуктів від Visual Studio, при цьому немає і не планується його безкоштовна версія.

Висновок: універсальність із коробки

Програми створені підLightSwitchмають вбудовану за замовчуванням підтримку хмарних технологій, тобто теоретично вони повинні масштабуватися дуже і дуже широко для такого класу аматорських продуктів. Ви також завжди можете з мінімальними зусиллями перетворити ваш десктопний додаток на веб-додаток, далі розширивши його під відповідну для ваших завдань інфраструктуру. Величезна кількість типових шаблонів додатків на всі випадки життя, створювати свої програми на базі яких і зовсім простіше простого, можливість створювати будь-яке за складністю та красою GUI, всеїдність у плані середовищ та технологій.

вступ
Файл ApplicationDefinition.lsml описує на автоматично згенерованому XAML графічну розмітку програми

Тут повною мірою реалізовано вже стандартниймодуль управління користувачами(CRUD) і багато іншого, що, на жаль, неможливо розглянути в рамках настільки обмеженої за обсягом статті. Я спробував вибірково розглянути лише окремі можливості та переваги цього середовища, чесно торкнувшись і недоліків, а також окреслити власне коло застосуванняMS LightSwitch, попередньо спробувавши представити цільовий контекст для таких розробок.