LightSwitch – Publish aplikacije

Ostale teme u seriji za LightSwitch:

Poslednja stepenica u razvoju poslovne aplikacije je puštanje u produkciju (Publish, Deploy). Osnovni tipovi aplikacija koje je moguće razvijati u okviru LightSwitch-a su:

  • Desktop
  • Web

Pristup izboru tipa aplikacije, kako prilikom kreiranja aplikacije tako i prilikom puštanja u produkciju je Application Type:

AppType

Prikazaću sve tri varijante puštanja aplikacije u produkciju:

  • Dekstop, dvoslojna arhitektura
  • Web, troslojna arhitektura
  • Web, troslojna, Windows Azure

Dekstop, dvoslojna arhitektura

Prikaz dvoslojne arhitekture:

2-tier

Svi klijenti su sa Microsoft Windows OS, u istoj mrežnoj grupi. Klijenti imaju direktan pristup bazi podataka koja može biti na bilo kom račuanru u mreži ili na istom računaru na kome i klijent. Prilikom instalacije aplikacije, vrši se provjera da li klijent ima instaliran .NET Framework 4 kao i potrebne LightSwitch komponente. Baza podataka može biti SQL Server ili SQL Server Express.

Postoje dva načina kako klijenti mogu pristupati SQL Server bazi korištenjem:

  • Windows kredencijala (Integrated Security)
  • User Name i Password za SQL Server

Za situaciju kada imamo više korisnika aplikacije, zgodnije je koristiti User Name i Password putem Connection String-a koji se nalazi u Web Config-u svakog klijenta, s tim što treba voditi računa, da ako se promijene kredencijali za pristup bazi, potrebno je promijeniti korisničko ime i šifru na svim klijentima.

Da bi baza bila dostupna na mreži potrebno je podesiti SQL Server preko SQL Server Configuration Manager:

  1. Omogućiti Browser Service kako bi SQL Server mogao biti vidljiv na mreži. SQL Server Services/SQL Server Browser, ako je neaktivna otići na Properties/Service i Start Mode postaviti na Manual, zatim pokrenuti servis.
  2. Omogućiti Named Pipes: SQL Server Network Configuration/Named Pipes postaviti na Enabled
  3. Omogućiti Named Pipes: SQL Native Client 10.0 Configuration/Client Protocols/Named Pipes postaviti na Enabled

Nakon prethodnog podešavanja potrebno je restartovati servis za SQL Server.

Na kraju treba podesiti da je omogućen SQL Server authentication kako bi klijent mogao pristupati bazi preko User Name i Password koji se nalazi u konekcionom stringu.  SQL Server Management Studio/ instanca baze odabrati Property/Security/ i aktivirati opciju SQL Server i Windows Authentication Mode (Mixed mode). Promjena ove stavke zahtjeva restart SQL Serverservisa.

Proces postavljanja aplikacije u produkciju (Publish) je moguće putem Application Type (Project/Properties) i dugme Publish. Koraci koje je potrebno podesiti su:

  • Client Configuration: Desktop
  • Application Server Configuration: Local (gdje će Application Service biti postavljen)
  • Publish output: biramo lokaciju gdje želimo smjestiti instalacioni fajl (Click Once manifest) kao i da li želimo da odradimo Publish direktno u bazu (Da) ili da kreiramo script koji ćemo potom izvršiti nad bazom
  • Database Connection: kreiraju se dvije konekcije i potencijalno jedan nalog za bazu podataka:
    • Administrator connection – za  pristup bazi kako bi se mogao odraditi postavljanje podataka na SQL Server putem Publish opcije iz LightSwitch
    • User connection – pristup klijenta bazi podataka u toku rada aplikacije
    • Create Database Login – novi korisnik u bazi, potrebno odraditi ako ne postoji korisnik u bazi kojim možemo pristupiti bazi
  • Authentication – kreiranje korisnika koji će imati privilegije postavljanja kontrole pristupa u okviru Security Administration u okviru LightSwith aplikacije ili administrator aplikacije. Ujedno i prvi kreirani korisnik u okviru LightSwitch aplikacije
  • Prerequisites – preduslovi za instalaicju aplikacije, ako je potrebno
  • Specify a certificate – sertifikat za potpis XAP fajla. Ukoliko ne potpišemo aplikaciju, prilikom instalacije ćemo dobiti poruku da aplikacija nije potpisana i da li želimo da vjerujemo provajderu aplikacije i da instaliramo aplikaciju (Publisher cannot be verified. Are you sure you want to install this application?).

Web, troslojna arhitektura

Prikaz troslojne arhitekture:

3-tier

Pored klijenta i baze podataka kao kod dvoslojne arhitekture, koristimo Web server na kome se nalazi LightSwitch Application servisi i to na IIS-u (Internet Information Services). Klijenti mogu pristupati Web serveru ili preko lokalne mreže ili preko interneta u zavisnosti kako želite da omogućite pristup Web serveru i da li želite izloženost vašeg Web servera na internetu.

Na klijentu je potrebno da je instaliran samo Silverlight 4. Postoje dva različita tipa aplikacije koju klijenti mogu koristiti:

  • Desktop
  • Web

Ukoliko odaberemo Desktop verziju, samo Windows klijenti mogu koristiti aplikaciju. U tom slučaju je aplikacija instalirana u Start Menu operativnog sistema i ima svoju ikonicu. Moguće je pristup ostalim aplikacijama koje su pokrenute na računaru kao i pristup svim resursima na lokalnom računaru (File System). Takođe je moguć pristup COM objektima u radu sa Microsoft Office-om.

Ukoliko odaberemo Web verziju, tada klijenti mogu biti Windows ili Mac klijenti. Aplikacija se pokreće putem Web preglednika (Web Browser) ali ovaj tip aplikacije ima svoje nedostatke usled sigurnosnih ograničenja Web okruženja kao što su nemogućnost pristupa resursima lokalnog računara (File System) kao i nemogućnost rada sa COM objektima za rad sa Microsoft Office programima.

Na Web Serveru je potrebno da se instalira .NET Framework 4, podesi IIS i postavi LightSwitch Application Service a baza podataka može biti na Web serveru ili nekom drugom računaru u mreži. Klijent ne pristupa direktno bazi podataka nego to čini preko Web servera.

Prije Publish procesa potrebno je pripremiti Web server. Najbolja opcija je pokrenuti instalaciju kako bi se postavio LightSwitch Deployment Prereqisites za Web Server i kako bi se udaljenim pristupom Web serveru mogao odraditi Publish iz LightSwitch aplikacije. To je moguće postići putem Microsoft Web Platform installer 3. Nakon instalacije odabradi Product/Tools/Visual Studio LightSwitch Server Runtime:

LSServerRuntime

Možete birati između opcije da instalirate SQL Server Express ili ne. Instalacijom dobijamo podešen IIS i postavljen Web Deployment Tool koji omogućava udaljeni Publish LightSwitch aplikacije na Web server. Nakon instalacije treba provjeriti da je pokrenut servis Web Deployment Agent Service u servisima.

Koraci koje je potrebno podesiti su:

  • Client Configuration: Web, Host application services on IIS Server
  • Application Server Configuration: IIS Server  (izabrati opciju IIS Server has the LightSwith Deployment Prerequsites installed ako je prethodno izvršena instalacija putem Microsoft Web Platform installer 3)
  • Publish output: Remotely publish to a server now
    • Service URL: adresa Web servera
    • Site/Application: Default Web Site/WebDemo
    • User Name:
    • Password:
  • Database Connection: kreiraju se dvije konekcije i potencijalno jedan nalog za bazu podataka:
    • Administrator connection – za pristup bazi kako bi se moglo odraditi postavljanje podataka na SQL Server putem Publish opcije iz LightSwitch
    • User connection – pristup Web servera bazi podataka u toku rada aplikacije
    • Create Database Login – novi korisnik u bazi, potrebno odraditi ako ne postoji korisnik u bazi kojim možemo pristupiti bazi
  • Authentication – kreiranje korisnika koji će imati privilegije postavljanja kontrole pristupa u okviru Security Administration u okviru LightSwith aplikacije ili administrator aplikacije. Ujedno i prvi kreirani korisnik u okviru LightSwitch aplikacije
  • Prerequisites – preduslovi za instalaciju aplikacije, ako je potrebno
  • Specify a certificate – sertifikat za potpis XAP fajla. Potrebno samo za Desktop aplikacije.

Na kraju procesa se kreira Web aplikacija na Web serveru.

Web, troslojna arhitektura na Windows Azure

Prikaz troslojne arhitekture na Windows Azure:

3-tier_Azure

Poslednja opcija je postavljanje Application Services na Windows Azure, dok se baza nalazi u SQL Azure. Klijent se ne razlikuje u odnosu na troslojnu arhitekturu.

Preduslov za računar sa koga treba da postavimo LightSwith aplikaciju u produkciju na Windows Azure je da je instaliran GDR (General Distribution Release) inače će se kod procesa Publish javiti greška: “SQLServer version not supported”.

Podešavanje Windows Azure

Trial Azure account možete kreirati na linku: www.microsoft.com/windowsazure/

Management portal za Window Azure: https://windows.azure.com

Kada prvi put pristupimo sajtu za podešavanje Windows Azure potrebno je podesiti par parametara da bi mogli odraditi Publish LightSwitch aplikacije. Administracija Windows Azure je moguće kroz sledeći ekran:

Azure1

  • New Hosted Service(ovo je u stvari Web sajt koji će biti hosting za našu LightSwitch aplikaciju). Unijećemo podatke:
    • Naziv servisa
    • URL naše aplikacije (lsoms-LightSwitch Order Management System)
    • Odabrati Region (Anywhere Europe)
    • Do not deploy (apliakciju ćemo psotaviti putem Visual Studio LightSwitch)
  • Storage account se koristi kao prostor za smještanje LS aplikacije kada se odradi Upload (Publish) aplikacije. Kreiramo sa opcijom Storage Account/New Storage Account sa poljima:
    • URL (lsoms1)
    • Region (Anywhere Europe)
  • Database Server instance (SQL Azure) služi za smještanje podataka. Ovo treba da uradimo samo jednom za jedan Subscription jer možemo da smjestimo više baza u jednoj instanci. Putanja: Database/Create a new SQL Azure Server. Polja:
    • Odaberemo Subscription (Demo Projects)
    • Region
    • Administrator Login i Password
    • Firewall rules (Allow other Windows Azure services to access this server – kako bi naša aplikacija mogla pristupiti SQL Azure bazi; dodaćemo još jedno Firewall pravilo za našu mašinu kako bi mogla pristupiti bazi sa računara sa koga radimo Publish iz LightSwitch-a (Rule name, IP range)

Nakon ovoga možemo primjetiti da je kreirana instanca baze (Subscription/Demo Projects/) , ime baze je u Properties: Fully Qualified DNS Name (ovo će nam trebati prilikom Publish app iz LS) a ID naše pretplate na Azure platformi se nalazi u polju Subscription ID.

Podešavanje klijenta

Za Winodws Azure ne možemo koristi Windows autentifikaciju nego samo Forms ili No Autentification. Publish možemo odraditi iz Solution/Publish ili Project / Properties / Application Type / Publish. Tok aktivnosti:

  • Client Configuration: Desktop ili Web ali kod Desktop verzije moramo obezbijediti sertifikat od Trusted Certificated Authority (Verisign). Mi ćemo koristiti testni sertifikat-Web
  • Application Server Configuration: Windows Azure
  • Connect to Windows Azure: Subscription ID podataka iz Windows Azure, Management sertifikat-New signed certificate-lsoms (služi da autorizuje naš računar da bi mogli odraditi upload na hosted services), Copy Path i odradićemo upload u Windows Azure
    • (Windows AzureUpload Management certificate: Hosted Services/Management Certificates/Add Certificate/Browse-copy)
    • Azure Service ConfigurationService, Storage, Environment (Production)
  • Security Settings: Podaci između LS apliakcije i Windows Azure putuju preko https protokola (kako bi se zaštitili podaci kao i Login kredencijali) što zahtjeva da odaberemo SSL sertifikat. Idealno bi bilo odabrati sertifikat od autorizovane institucije (Verisign). Odabraćemo Self-sign certificate jer smo odabrali Web aplikaciju. Za Desktop verziju je potrebno da odaberemo pravi sertifikat. Certificate name, Password, Save location. Kada pokrenemo app u Browseru dobićemo Warning
  • Database Connection – Dvije konekcije, za administratora i za korisnika. Administrator Connection se koristi samo za Created ili Update Database iz Publish Wizard na Azure. User Conn se koristi za aplikaciju da bi mogla u toku rada pristupati bazi na Windows Azure.
  • Server name
  • SQL Server authentication: User Name, Password, Database Name; Create Database Login za User-a
  • Authentication: Application administrator, prvi korisnik koji će biti unešen u bazu od strane LightSwitch-a
  • Specify a Certificate: Ako želimo da potpišemo aplikaciju jer imamo Web apliakaciju. Da je desktop, onda bi trebalo potpisati XAP fajl

Nakon prethodnih aktivnosti, Publish traje 10-15 minuta LightSwitch aplikacije na Windows Azure.

Pokrenuta aplikacija iz Windows azure:

AppInAzure

About Spaso Lazarevic

Spaso Lazarevic is Senior Software Developer working with Microsoft technologies. Leader of .NET User Group Bijeljina, speaker at Microsoft events, writter and blogger. Microsoft MVP for Visual C#.
This entry was posted in Programming and tagged , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s