Áttekintés
Ez walkthrough bemutatja, hogyan lehet létrehozni egy shell kiterjesztés LightSwitch. Shell for Visual Studio LightSwitch alkalmazás lehetővé teszi a felhasználók számára, hogy befolyásolja az alkalmazást. Nyilvánul hajózható elemei végrehajtott képernyők, parancsok kapcsolódó adatok az aktuális felhasználó, és egyéb hasznos információkat, amelyek részét képezik a domain héj. Amikor LightSwitch egy erőteljes és egyértelmű bőr létrehozhatják saját shell, saját maga biztosítja a kreatív eszközöket, hogy kölcsönhatásba lépnek a különböző részein a LightSwitch alkalmazás.
Ez létrehoz egy áttekintő héj, amely hasonlít az alapértelmezett shell, de néhány apró különbségek megjelenése és a válasz az eseményt. Command panel ellentétes csoportok parancsok és gomb a képernyő bal tervezők. navigációs menü rögzített helyzetben, futás nem jelenik meg egyetlen képernyőn, és a képernyők által megnyitott dupla kattintással menüpontok. Képernyők végre egy másik jele ellenőrzések és az aktuális felhasználó mindig megjelenik a bal alsó sarokban a héj. Ezek a különbségek láthatók néhány hasznos módszerek létrehozása shell kiterjesztések.
Rendszer shell kiterjesztés áll 3 fő részből áll:
Ellenőrzött bővíthetőség .NET Framework (MEF platform), amely exportálja végrehajtása shell szerződést.
Bővíthető nyelv XAML, amely leírja a kezelőszerveket használt shell felhasználói felület.
Vagy Visual Basic kódot c #, XAML nyelv, amely megvalósítja a viselkedését az ellenőrzések és kommunikál az idő múlásával teljesítő LightSwitch.
Hozzon létre egy shell kiterjesztés a következő feladatokat látja el:
Készítsen bővítési projekt
A menüsorban, kattintson a Fájl Visual Studio, New Project.
Az Új projekt párbeszédpanelen válassza a LightSwitch csomópontot, majd válassza ki a Library modul LightSwitch (Visual Basic) vagy modulok Library LightSwitch (c #).
A Név mezőben. ShellExtension típusú, mint a neve a bővítés a könyvtárban.
Az OK gombra kattintva hozzon létre egy oldat, amely 7 projekt, ami szükséges a bővítés.
Válassza ki a bővítmény típusát
A Solution Explorer válassza ki a projekt ShellExtension.Lspkg.
A főmenüben válassza ki a Projekt. Egy új elem.
Az Új elem hozzáadása párbeszédablakban válassza ki a borítékot.
A Név mezőben. ShellSample típus egy adott nevet a modulnak.
Kattintson az OK gombra. A fájlok számos projektet oldatot.
A megadott adatok Shell attribútum azonosítója a héj. Az érték a következő formában:
A fejlődő shell kiterjesztés LightSwitch megvan az a szabadsága, hogy hozzon létre, és használja fel a kontroll elemek, amelyek kölcsönhatást. LightSwitch tartalmát minden alkalmazás áll számos ismert részeit. A következő táblázat mutatja a részek LightSwitch alkalmazást.
Amikor létrehoz egy shell, meg kell végrehajtani számos eleme és a funkcionalitás használatához szükséges több rendszer végrehajtása során LightSwitch. Az első fázis - a végrehajtása a frissítés alapértelmezés héjat a kód mögött fájlt.
Frissítése az alapértelmezett megvalósítása a héj
Sablon héj biztosít elkészítésének kiindulópontja egy beépülő modul. Meg kell telepíteni „a mögöttes végrehajtása a funkció, a héj biztosítja.
Frissítése végrehajtás shell
A Solution Explorer ShellExtension.Client projekt Nézet kijelöléséhez. boríték mappát. majd nyissa ShellSample.xaml.vb vagy ShellSample.xaml.cs fájlt.
Cserélje Import nyilatkozatok vagy az alábbi kódot.
Cserélje ki a kódot Presentation.Shells (Visual Basic) vagy térben ShellExtension.Presentation.Shells nevek (c #) az alábbi kódot.
XAML nyelv meghatározza, hogy az összefüggésben az adatok TreeView ellenőrzési modell telepítve a képviselet megadott érték Default.NavigationViewModel megadásával azt az értéket ComponentViewModelService. INavigationViewModel felület egy ingatlan nevű NavigationItems. vissza objektumok gyűjteménye INavigationItem megfigyelt objektum. Az ingatlan ItemsSource TreeView ellenőrzés van kötve ebben a gyűjteményben.
Minden INavigationItem lehet INavigationScreen. , ami egy képernyő, amely lehet végrehajtani, vagy INavigationGroup. ami egy tartályba más objektumok INavigationItem. Ezért a minta a hierarchikus ábrázolása a kontroll, amely kötődik az ingatlan Gyermek és minden gyermek elem TextBlock egyszerű ellenőrzés. amely hozzá van rendelve a Text tulajdonságát a objektumtulajdonság DisplayName INavigationItem. Fontos megjegyezni, hogy a szakaszok, amelyeket nem lehet teljesíteni héj, például paraméteres képernyők vagy partíciókat, amelyhez a felhasználó nem rendelkezik hozzáféréssel, kiszűri NavigationViewModel.
Nyitva a képernyőn
Amikor a felhasználó duplán rákattint a navigációs képernyő elem a shell Transitions panelminta, a képernyő megnyílik a lapot egy sor lapok. XAML nyelv irányítani TextBlock. mellyel megjelenítheti az egyes navigációs elem határozza meg a kezelőt az esemény MouseLeftButtonDown és a felvezető, hogy a logika a nyitó képernyőn. A következő kód szegmens osztály ShellSample hozzáteszi felvezető.
A kontroll-adatok összefüggésben TextBlock például INavigationItem interfész. Ha az objektum lehet sikeres, hogy egy példány INavigationScreen felület. A képernyőn meg kell jelennie (végre). ExecutableObject tulajdonság a INavigationScreen tartalmaz módszerrel úgynevezett ExecuteAsync. eredményez futásidejű letöltés LightSwitch képernyőn. Betöltésekor ScreenOpenedNotification figyelmeztető képernyő jelenik meg, és kilép felvezető hivatkoznak.
ScreenOpenedNotification objektum hozzáférést biztosít az esetekben IScreenObject és IScreenView interfészeket. IScreenView. kapsz egy ellenőrzést a felhasználói felület a gyökér képernyőn. A mintákat shell fogad egy ilyen ellenőrzés, és beállítja, hogy egy lapra tagja. Sok futásidejű API IScreenObject semmilyen módon és vitték volna a jelentését, amely összefüggésben adatokat a kontroll, amelyre a UI elem lapjain látható ebben a mintában. Azonban IScreenObject hiányzó több kulcsfontosságú darab alkalmassága úgy, hogy a minta tartalmaz MyScreenObject nevű helper osztály, amely ezt a funkciót, és ezért használják az adatokat az összefüggésben a lap elemet.
Létrehozása osztály MyScreenObject
A Solution Explorer nyissa meg a helyi menüt a nézet. shell mappát, és válasszuk a Hozzáad lehetőséget. Osztály.
A Név mezőbe írja MyScreenObject. majd kattintson a Hozzáadás gombra.
Cserélje ki a tartalmát az osztály az alábbi kódot.
Ha a képernyő nyitva van, a felelősséget a héj követni, mi az aktuális képernyőn. Ahhoz, hogy nyomon követni az aktuális képernyőn, állítsa be az aktuális ingatlan ActiveScreensViewModel. Annak kiderítéséhez, hogy nyitva van, ezt a tulajdonságot IScreenObject fokon. amelyet nemrég megnyílt. A következő kód szegmens ShellSample osztály monitorok nyissa meg a képernyőn.
Feldolgozás képernyős interakció
Amint a képernyő nyitva van, akkor is be kell állítani a felhasználói élményt, mint a következtetés vagy frissítésére, illetve váltás az aktív képernyőn. Értesítések a végén a képernyőn, és a képernyő frissítési tartalmaznak IScreenObject. bezárásához vagy frissíteni. Segítségével az adatok összefüggései a kontroll, ad otthont a képernyőn ténylegesen shell program körül IScreenObject. MyScreenObject másolatot kell kapnia a fő képernyőn az objektum példány MyScreenObject képest, hogy a kijelző tárgy, részben a bejelentést érveket. Az alábbi kódot kap egy saját példányát IScreenObject hívja a szálláshely RealScreenObject MyScreenObject.
Alapvető munkafolyamat ha közel a képernyőt törli ellenőrzés, amely megjeleníti a képernyőn, hogy lezárta, majd beállítani az aktív képernyőn, hogy az egyik a másik képernyőket is nyitva marad, ha nyitva van. A minta eltávolítás vezérlés lehetővé teszi, hogy megtalálja a megfelelő lapon elemet, és távolítsa el a szülő sor lapok. Miután eltávolítjuk, be kell állítani a jelenlegi ingatlan ActiveScreensViewModel a fő példány IScreenObject. amely létrehoz egy átalakító például MyScreenObject szolgáló adatokat keretében az újonnan kiválasztott lap elemet. A következő kód szegmens ShellSample osztály dolgozza képernyőn következtetést.
Ha frissíti a képernyőt, akkor valóban szakadt le, és újra végrehajtása, ami azt jelenti, hogy IScreenObject. Egy új képernyő. Érvek ScreenReloadedNotification tartalmazó bejelentést IScreenObject Például az előző esetben a képernyőn. Ez lehetővé teszi, hogy megtalálja a vezérlő található az eredeti képernyőre. A vezérlő elem megtalálható, az adatok összefüggésben kell telepíteni az új IScreenObject az új képernyőn. A mintát ez azt jelenti, hogy az új MyScreenObject kell létrehozni, amely új IScreenObject borítás, majd helyezzük összefüggésben az adatokat a fajta kontroll elem lapok. A következő szegmens kódot ShellSample osztály kezeli frissül a képernyő.
végrehajtás csapat
Minta héj mutatja a rendelkezésre álló parancsokat a parancssorba a tetején a héj, ami csak egy eleme Silverlight ListBox vezérlő szabvány. Az alábbi kivonat ShellSample.xaml iratokból kitűnik, a végrehajtás.
Az XAML figyelmét a adatkötéseket CommandsViewModel és annak különböző tulajdonságait ellenőrző megadott sablon. Minden csapat a ListBox jelenik gomb. amelynek tartalmát ellenőrizni és TextBlock parancsot. Az ingatlan IsEnabled gombok kötve az ingatlan IsEnabled IShellCommand. és a Text tulajdonságát a szöveg blokk van beállítva, hogy tulajdon DisplayName IShellCommand.
A Click eseménykezelő a gombot. végrehajtja a parancsot kinyeri az objektum tulajdonság ExecuteableObject IShellCommand majd hívja ExecuteAsync módszer. A következő kód szegmens ShellSample osztály dolgozza képernyőn következtetést.
Az adatok feldolgozása és érvényesítése változások
A LightSwitch, mindegyiknek megvan a saját adatai területen. Ha az adatok ezen a területen már megváltozott akkor tekinthető megjelenik a piszkos állapotban. IScreenObject nem egy egyszerű tulajdonság, ha az a „piszkos”. Ezért meg kell kap ez az információ a adatszolgáltatások, amelyek adatokat a munkaterület a képernyőn. Ehhez regisztrálni kell a PropertyChanged esemény minden adatszolgáltatás. Töredékek az osztály MyScreenObject következő, ez a minta, amely mind egy menedzser IScreenObject esetekben, hogy ezt a funkciót.
OnDataServicePropertyChanged felvezető ellenőrzések HasChanges tulajdonság az objektum információkat az adatszolgáltatás következik.
Megadásához érvényesítési hiba a képernyőn, akkor először meg kell határozni, ha vannak olyan ellenőrzési hibák. Hogyan állapíthatjuk meg ezt a módját, hogy meghatározza, hogy a piszkos képernyőn IScreenObject nem olyan egyszerű tulajdonság, amely ezt a feltételt. Object információs képernyő, amely a vizsgálati eredmények és az eredmény meg, ha megváltoztatja a PropertyChanged aktiválhatja az értesítés. Ezért meg kell csak regisztrálni ezt az értesítést. Snippets osztályából MyScreenObject következőket.
Megjeleníti az aktuális felhasználó
Ha a hitelesítés engedélyezve van az alkalmazás LightSwitch hasznos lenne, ha a héj felhasználókra nevét jeleníti meg a felhasználó, aki éppen használja az alkalmazást. Minta héj megjeleníti ezeket az információkat a bal alsó sarokban. Ha a hitelesítés nincs engedélyezve, a kijelzett érték nem tartalmazza „hitelesítés”. A következő példa egy részlet a ShellSample.xaml fájl meghatározó vezérlők információkat jelenítik meg.
Az aktuális felhasználó lesz elérhető a CurrentUserViewModel néző oldalán. Szöveg blokk, amely megjeleníti az aktuális felhasználó neve kötődik CurrentUserDisplayName ingatlan a modell ábrázolása.
Nevét és leírását a héj meghatározott ShellSample.lsml file; alapértelmezett ShellSample »Leírás« és «ShellSample». Az azokhoz való hozzáférést biztosítunk a felhasználó a héjat a tervező alkalmazás. Ezért szükséges, hogy megváltoztassa a jelentősebb.
Frissítse a nevét és leírását
A Solution Explorer válassza ki a projekt ShellExtension.Common.
Nagyítás metaadatok és a héj és a nyílt ShellSample.lsml fájlt.
A Shell.Attributes elem és cserélje az értékeket DisplayName leírása következik.
Ki lehet próbálni a kibővített típusú számla a kísérleti példánya Visual Studio. Ha még nem ellenőrizheti a többi projekt bővíthetőség LightSwitch, akkor tartalmaznia kell egy másolatot a pilóta előtt.
Egy példányát a pilóta
A Solution Explorer válassza ki a projekt ShellExtension.Vsix.
A menüsorban kattintson a Project. tulajdonságok ShellExtension.Vsix.
Hibakeresés lapon a Művelet részben válassza ki, mikor futtatja a külső programok.
Írja be az elérési utat a futtatható fájlt, Visual Studio, devenv.exe.
Alapértelmezett 32 rendszer a C: \ Program Files \ Microsoft Visual Studio 11,0 \ Common7 \ ide \ devenv.exe. 64 bites rendszer 64, C file: \ Program (x86) \ Microsoft Visual Studio 11,0 \ Common7 \ ide \ devenv.exe.
A parancssori paramétereket. Típus / rootsuffix Exp.
Minden ezt követő projektek LightSwitch bővíthetőség is használja ezt az opciót az alapértelmezett.
tesztelés shell
A menüsorban válassza Debug. Kezdés hibakeresés. Nyílt kísérleti példánya Visual Studio.
A kísérleti példány, a menüsorban, kattintson a Fájl. Nyissa meg a projektet.
Az Open Project párbeszédablak. Válassza ki a meglévő alkalmazási projekt LightSwitch, majd az OK gombra.
A menüsorban kattintson a Project. A projekt neve tulajdonságai.
A projekt tervező, kattintson a lapon állítsa ShellExtension mezőbe.
Válassza ki az Általános fület a tulajdonságok és a héj listából válassza a Saját minta borítékot.
A menüsorban válassza Debug. Kezdés hibakeresés.
Felhívjuk figyelmét, hogy nincs alapértelmezett képernyő, és kattintson duplán egy elemre a navigációs panelen a képernyőn.
Ebben lépésről lépésre. Shell Extension most egy shell kiterjesztés, teljesen kiterjesztve újra fel lehet használni bármilyen projekt LightSwitch. Ez csak egyetlen példa a bővítése a boríték; létrehozhat héj, ez jelentősen eltér a kiterjesztéseket a funkcionalitás vagy a szerkezet. Ugyanazokat az alapvető lépéseket és elvek vonatkoznak bármilyen bővítése a héj, de más fogalmakat használnak más helyzetekben.
Ha azt tervezi, hogy osztja a kiterjesztést, majd még egy pár, amely elvégzéséhez szükség van. Annak érdekében, hogy a megjelenített információk egy adott modult a Project Designer és Manager kiterjesztések rendesen, frissítenie kell a tulajdonságait VSIX csomagot. További információért lásd. Hogyan. Tulajdonságainak beállítása VSIX csomagot. Ezen felül, ha azt tervezi, hogy osztja a megoldás nyitott, számos olyan tényező van, amit meg kell venni. További információért lásd. Hogyan. Megoszlása terjeszkedés LightSwitch.