Otvaranje Screen ili Entity dizajnera iz koda u LightSwitch pomoću Macroa

MSDN Samples Gallery: Cjelokupan detaljan opis i Source kod primjera možete naći na MSDN Gallery za LightSwitch: How to Open Screen or Entity Designer from Code in LightSwitch with Macro.

Osnovna ideja Macro-a je da pomoću njega možete na veoma jednostavan način, korišćenejm skraćenica na tastaturi da otvorite dizajner ekrana ili entita kada se nalazite u C# ili VB kodu za manipulaciju sa ekranom ili entitetom (Write Code).

Ukoliko ste u editoru za pisanje koda za Screen ili Entitet, da bi iz koda ponovo pokrenuli dizajner za Screen ili Entitet, potrebno je da dvoklikom pokrenete ekran kao na slici:

1-OpenScreenDesigner

otvarate dizajner ekrana za konretni ekran:

2-OpenedScreenDesigner

ili ako se nalazite u kodu za entitet, da otvorite dizajner enteita (Entity Designer) dvoklikom na entitet:

3-OpenEntityDesigner

da otvorite dizajner entiteta:

4-OpenedEntityDesigner

Kako LightSwith omogućava da samo jedan dizajner može biti otvoren u isto vrijeme (ili dizajner ekrana ili dizajner entiteta) onda postaje veoma nepraktično vraćanje iz koda u odgovarajući dizajner pogotovo u situaciji kada imate kreirano više ekrana ili entieta.

Korišćenjem ovog makroa je moguće:

  • Otvoranje Screen dizajnera kada smo u kodu za ekran.
  • Otvaranje Entity dizajnera  kada smo u kodu za Entitet u ApplicationData izvoru podataka.

Ukoliko vaša verzija VisualStudio omogućava rad sa Macro-ima, onda na putanji Tools/Macros/Macros IDE/My Macros/Add/Add Module dodajte modul sa nazivom LightSwitchDesigner. Potom iskopirajte cijeli VB Macro kod (Visual Studio Macro je moguće kreirati isključivo u VB programskom kodu) MSDN Samples Gallery iz fajla LightSwitchShowDesigner.vb.

Da bi kod funkcionisao potrebno je odraditi dodavanje reference na PluralizationService koji se nalazi u System.Data.Entity.Design.dll. Dodavanje reference se vrši u Visual Studio Macros okruženju (Project\Add Reference):

8-AddReferenceMacro

te odabrati System.Data.Entity.Design.dll:

9-AddReferenceMacroDll

PluralizationService se koristi za otvaranje dizajnera entitea (ovo je isti servis koji koristi LightSwitch za određivanje Plural Name za naziv entiteta, funkcionalnost Entity Framework 4.0). Kada pišemo kod za npr. entitet City, onda se nalazimo u kodu City.vb ili City.cs (u zavisnosti od izabranog programskog jezika za projekat). Da bi znali koji entietet da otvorimo, moramo znati množinu za taj entitet jer se u spisku entiteta nalaze objekti sa množinom tačnije u našem slučaju Cities. Zato je potrebno da odredimo množinu naziva za enitet da bi znali koji entitet da otvorimo. Za određene nazive PluralizationService ne može da izračuna množinu pa sam LightSwitch dodaje prefiks “Set” (primjer Table1-Table1Set):

PluralName

Nakon snimanja Macro-a potrebno je dodjeliti kombinaciju tastera za brže pokretanje:

11-AssignShortcut

tako što ćete odraditi sledeće akcije:

  • Odabrati Keyboard (1) iz Environment sekcije, potom
  • Kucajte “lightswitch” (2),
  • Odaberite ShowDesigner Macro (3),
  • Dodjelite kombinaciju (Ctrl+Shift+D) (4),
  • Kliknite na Assign (5) i na kraju
  • Kliknite OK (6).

Ukoliko vam ne odgovara kombinacija tastera Ctrl+Shift+D možete odabrati bilo koju koja vama odgovara izborom kombinacije tastera i klikom na Assign dugme.

Na ovaj način, korišćenjem Macro-a možete značajno automatizovati operacije i time povećati svoju produktivnostu u razvoju poslovnih aplikacija u okviru LightSwitch-a.

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