Názorný postup: Vytváření aplikací N-té dat
N-vrstvé data aplikace jsou aplikace přístup k datům a jsou rozděleny do několika logických vrstev nebo vrstev.Oddělení komponent aplikace do samostatné vrstvy zvyšuje udržovatelnost a škálovatelnost aplikace.Je to tím, že umožní snadnější přijímání nových technologií, které mohou být použity k jedné vrstvě bez nutnosti změnit návrh celého řešení.N-vrstvé architektura obsahuje prezentační vrstva střední vrstvy, a úroveň dat.Střední úroveň obvykle obsahuje vrstvu přístupu k datům a vrstvu obchodní logiky sdílené součásti, jako je například ověřování.V datové vrstvě patří relační databáze.N-vrstvé aplikace obvykle ukládat citlivé informace do vrstvy přístupu k datům ze střední vrstvy zachovat izolaci od koncovým uživatelům, kteří přistupují k prezentační vrstva.Další informace naleznete v tématu N-té dat aplikace – přehled.
Jedním ze způsobů k oddělení různých úrovní v aplikaci n vrstvé je vytvořit samostatné projekty pro každou úroveň, kterou chcete zahrnout do vaší aplikace.Obsahují definovaných datových sad DataSet Project vlastnost určující, které projekty generované dataset a TableAdapter kód by měli přejít do.
Tento návod ukazuje, jak oddělit dataset a TableAdapter kód do projektů knihovny samostatné třídy pomocí Návrhář datových sad.Poté, co je oddělit dataset a kódu TableAdapter, vytvoříte Služby Windows Communication Foundation a datové služby WCF v sadě Visual Studio služby pro volání do vrstvy přístupu dat.Nakonec vytvoříte model Windows Forms aplikace jako prezentační vrstva.Tato vrstva získává data z datové služby.
Během tohoto návodu provedete následující kroky:
Vytvořte nové řešení n té, která bude obsahovat více projektů.
Přidejte dva projekty knihovny třídy n vrstvé řešení.
Vytváření definované datové sady pomocí Průvodce konfigurací zdroje dat.
Oddělení generované TableAdapters a dataset kód do samostatné projekty.
Vytvoření služby Windows Communication Foundation (WCF) volat do vrstvy přístupu dat.
Vytvořte funkce služby načítání dat z vrstvy přístupu dat.
Vytvořte model Windows Forms aplikace, který bude sloužit jako prezentační vrstva.
Vytvořte ovládací prvky model Windows Forms, které jsou vázány na zdroj dat.
Napište kód k naplnění datových tabulek.
Grafickou verzi tohoto tématu, viz Video postupy: vytvoření N-vrstvých dat.
Požadavky
Chcete-li dokončit tento návod, potřebujete:
- Přístup k ukázkové databázi Northwind.Další informace naleznete v tématu Jak: Instalace ukázkové databáze.
Vytváření řešení N-vrstvé a knihovnu tříd pro uložení objektu Dataset (DataEntityTier)
Prvním krokem v tomto návodu je vytvoření řešení a dvou projektů knihoven tříd.První třídy knihovny budou konat dataset (generované zadané třídy DataSet a DataTables, která bude obsahovat data aplikace).Tento projekt se používá jako vrstva entity dat aplikace a je obvykle umístěn ve střední vrstvě.Vytváření a úpravy typovaných datových sad Se používá k vytvoření počáteční objekt dataset a automaticky rozdělit do dvou tříd knihovny kódu.
[!POZNÁMKA]
Přesvědčete se, že název projektu a řešení správně před klepnutím na OK.To usnadní Chcete-li dokončit tento návod.
Chcete-li vytvořit řešení n vrstvé a knihovna tříd DataEntityTier
Z soubor nabídka, vytvoření nového projektu.
[!POZNÁMKA]
Návrhář datových sad je podporována v Visual Basic a C# projekty.Vytvoření nového projektu v jednom z těchto jazyků.
V Nový projekt v dialogovém okně pole typy projektů podokno, klepněte na tlačítko Windows.
Klepněte Knihovny tříd šablony.
Název projektu DataEntityTier.
Název řešení NTierWalkthrough.
Klikněte na tlačítko OK.
Je vytvořen a přidán do NTierWalkthrough roztoku, který obsahuje projekt DataEntityTier Průzkumníku.
Vytvoření knihovny tříd pro uložení TableAdapterů (DataAccessTier)
Dalším krokem po vytvoření projektu DataEntityTier je vytvořit jiný projekt knihovny tříd.Tento projekt bude obsahovat generované TableAdapters a nazývá vrstvy pro přístup k datům aplikace.Vrstvy přístupu dat obsahuje informace, které je potřebné pro připojení k databázi a je obvykle umístěn ve střední vrstvě.
Chcete-li vytvořit novou knihovnu tříd pro TableAdapterů
Z soubor nabídce Přidat nový projekt do řešení NTierWalkthrough.
V Nový projekt v dialogovém okně pole šablony podokno, klepněte na tlačítko Knihovny tříd.
Název projektu DataAccessTier a klepněte na tlačítko OK.
DataAccessTier projekt je vytvořen a přidán do řešení NTierWalkthrough.
Vytvoření objektu Dataset
Dalším krokem je vytvoření definovanou datovou sadu.Definovaných datových sad jsou vytvořeny pomocí třídy dataset (včetně tříd DataTables) a TableAdapter tříd v jednom projektu.(Všechny třídy jsou generovány do jednoho souboru). Zvláštní objekt dataset a TableAdapters do různých projektů, je objekt dataset třída, která je přesunut do jiného projektu, ponechat TableAdapter tříd v původním projektu.Proto vytvořit objekt dataset v projektu, který bude nakonec obsahovat TableAdapters (projekt DataAccessTier).Vytvoří objekt dataset pomocí Průvodce konfigurací zdroje dat.
[!POZNÁMKA]
Musíte mít přístup k ukázkové databázi Northwind vytvořit připojení.Informace o tom, jak nastavit ukázkovou databázi Northwind, viz Jak: Instalace ukázkové databáze.
Chcete-li vytvořit objekt dataset
Klepněte na tlačítko DataAccessTier v Průzkumníku.
V nabídce Data klikněte na tlačítko Zobrazit zdroje dat.
V Zdroje dat okno, klepněte na tlačítko Přidat nový zdroj dat ke spuštění Průvodce konfigurací zdroje dat.
Na Vybrat typ zdroje dat stránky, klepněte na tlačítko databáze a potom klepněte na tlačítko Další.
V Vybrat datové připojení stránky, proveďte jednu z následujících akcí:
Pokud připojení dat k ukázkové databázi Northwind je k dispozici v rozevíracím seznamu, klikněte na něj.
-nebo-
Klepněte na tlačítko Nové připojení Chcete-li otevřít Přidat připojení dialogové okno.Další informace naleznete v tématu Přidat či upravte dialogové okno připojení (Obecné).
Pokud databáze vyžaduje heslo, vyberte možnost k zahrnutí důvěrných osobních údajů, a pak klikněte na tlačítko Další.
[!POZNÁMKA]
Pokud jste vybrali místní databázový soubor (namísto připojení k serveru SQL Server) můžete být požádáni Pokud chcete přidat soubor do projektu.Klepněte na tlačítko Ano do projektu přidat soubor databáze.
Klepněte na tlačítko Další na Uložit připojovací řetězec do konfiguračního souboru aplikace stránky.
Rozbalte uzel Tabulka na stránce Zvolte vaše databázové objekty.
Zaškrtněte políčka u Zákazníci a objednávky tabulky a potom klepněte na tlačítko Dokončit.
NorthwindDataSet je přidána do projektu DataAccessTier a zobrazí se v Zdroje dat okno.
Oddělení TableAdapterů DataSet
Po vytvoření objektu dataset oddělte od TableAdapterů třídy vygenerované datové sady.Můžete to provést nastavením DataSet projektu vlastnost na název projektu, do které chcete uložit oddělených podle třídy dataset.
K oddělení TableAdapterů DataSet
Poklepejte na NorthwindDataSet.xsd v Průzkumníku Chcete-li otevřít objekt dataset v Návrhář datových sad.
Klepněte do prázdné oblasti v návrháři.
Vyhledejte DataSet projektu uzlu Vlastnosti okna.
V DataSet projektu klepněte na položku DataEntityTier.
V nabídce Sestavení klikněte na příkaz Sestavit řešení.
Objekt dataset a TableAdapterů jsou rozděleny do projektů knihovny dvě třídy.Projekt, který původně obsahoval celou datovou sadu (DataAccessTier) nyní obsahuje pouze TableAdapterů.Projekt určený v DataSet projektu vlastnosti (DataEntityTier) obsahuje definované datové sady: NorthwindDataSet.Dataset.Designer.vb (nebo NorthwindDataSet.Dataset.Designer.cs).
[!POZNÁMKA]
Zvláštní definovaných datových sad a TableAdapterů (nastavením DataSet projektu vlastnost), existující třídy dílčí sady dat v projektu nebudou automaticky přesunuty.Existující částečné třídy dataset musíte ručně přesunuty do projektu objekt dataset.
Vytvoření nové aplikace služby
Protože tento návod ukazuje, jak získat přístup k vrstvě přístupu dat pomocí služby WCF, vytvoření nové aplikace služby WCF.
Chcete-li vytvořit novou aplikaci služby WCF
Z soubor nabídce Přidat nový projekt do řešení NTierWalkthrough.
V Nový projekt v dialogovém okně pole typy projektů podokno, klepněte na tlačítko WCF.V šablony podokno, klepněte na tlačítko Knihovny služby WCF.
Název projektu DataService a klepněte na tlačítko OK.
DataService projekt je vytvořen a přidán do řešení NTierWalkthrough.
Vytvořením metod v datovou vrstvou přístupu k zákazníkům a Data objednávek
Po volání dvě metody ve vrstvě přístupu dat služby data: GetCustomers a GetOrders.Tyto metody vrátí tabulky Northwind zákazníci a objednávky.Vytvoření metod GetCustomers a GetOrders v projektu DataAccessTier.
Chcete-li vytvořit metodu ve vrstvě přístupu dat, která vrací tabulku Zákazníci
V Průzkumníku, poklepejte na NorthwindDataset.xsd, chcete-li otevřít objekt dataset v Vytváření a úpravy typovaných datových sad.
Klepněte pravým tlačítkem myši CustomersTableAdapter a klepněte na tlačítko Přidat dotaz Chcete-li otevřít Průvodce konfigurací TableAdapter dotaz.
Na Zvolit typ příkazu stránek, ponechejte výchozí hodnotu pomocí SQL dotazů a klepněte na tlačítko Další.
Na Zvolit typ dotazu stránek, ponechejte výchozí hodnotu Vybrat, která vrací řádky a klepněte na tlačítko Další.
Na zadat příkaz SQL SELECT stránku, ponechte výchozí dotaz a klepněte na tlačítko Další.
Na Zvolit metody generovat stránky, zadejte GetCustomers pro název metody v vrátit objekt DataTable oddílu.
Klepněte na tlačítko Dokončit.
Chcete-li vytvořit metodu ve vrstvě přístupu dat, která vrací tabulku objednávky
Klepněte pravým tlačítkem myši OrdersTableAdapter a klepněte na tlačítko Přidat dotaz.
Na Zvolit typ příkazu stránek, ponechejte výchozí hodnotu pomocí SQL dotazů a klepněte na tlačítko Další.
Na Zvolit typ dotazu stránek, ponechejte výchozí hodnotu Vybrat, která vrací řádky a klepněte na tlačítko Další.
Na zadat příkaz SQL SELECT stránku, ponechte výchozí dotaz a klepněte na tlačítko Další.
Na Zvolit metody generovat stránky, zadejte příkaz GetOrders pro název metody v vrátit objekt DataTable oddílu.
Klepněte na tlačítko Dokončit.
V nabídce Sestavení klikněte na příkaz Sestavit řešení.
Přidání odkazu na datové Entity a úrovní přístupu dat dat služby
Protože služba dat vyžaduje informace z objektu dataset a TableAdapterů, přidáte odkazy na projekty DataEntityTier a DataAccessTier.
Chcete-li přidat odkazy na datové služby
Klepněte pravým tlačítkem myši DataService v Průzkumníku a klepněte na tlačítko Přidat odkaz na.
Klepněte projekty karta v Přidat odkaz na dialogové okno.
Obě tato políčka DataAccessTier a DataEntityTier projektů.
Klikněte na tlačítko OK.
Přidání funkcí do služby k volání GetCustomers a GetOrders metody ve vrstvě přístupu dat
Nyní, že datová vrstva obsahuje metody pro vrácení dat, vytváření metod datovou službu volat metody ve vrstvě aplikace access data.
[!POZNÁMKA]
Pro projekty jazyka C#, je třeba přidat odkaz System.Data.DataSetExtensions sestavení pro následující kód kompilovat.
Chcete-li vytvořit funkce GetCustomers a GetOrders datové služby
V DataService projektu, dvakrát klikněte na IService1.vb nebo IService1.cs.
Přidejte následující kód za Přidat operace služby zde komentář:
<OperationContract()> _ Function GetCustomers() As DataEntityTier.NorthwindDataSet.CustomersDataTable <OperationContract()> _ Function GetOrders() As DataEntityTier.NorthwindDataSet.OrdersDataTable
[OperationContract] DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers(); [OperationContract] DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders();
V projektu DataService poklepejte na Service1.vb (nebo Service1.cs).
Přidejte následující kód do třídy Service1:
Public Function GetCustomers() As DataEntityTier.NorthwindDataSet.CustomersDataTable Implements IService1.GetCustomers Dim CustomersTableAdapter1 As New DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter Return CustomersTableAdapter1.GetCustomers() End Function Public Function GetOrders() As DataEntityTier.NorthwindDataSet.OrdersDataTable Implements IService1.GetOrders Dim OrdersTableAdapter1 As New DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter Return OrdersTableAdapter1.GetOrders() End Function
public DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers() { DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter CustomersTableAdapter1 = new DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter(); return CustomersTableAdapter1.GetCustomers(); } public DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders() { DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter OrdersTableAdapter1 = new DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter(); return OrdersTableAdapter1.GetOrders(); }
V nabídce Sestavení klikněte na příkaz Sestavit řešení.
Vytváření prezentační vrstva zobrazující data z datové služby
Nyní, že roztok obsahuje služba data, která má metody, které volají do vrstvy přístupu dat, vytvořte jiný projekt, který bude volat do provozu data a data uživatelům.V tomto návodu vytvoříte model Windows Forms aplikace; Toto je prezentační vrstva aplikace n vrstvé.
Chcete-li vytvořit projekt prezentační vrstvy
Z soubor nabídce Přidat nový projekt do řešení NTierWalkthrough.
V Nový projekt v dialogovém okně pole typy projektů podokno, klepněte na tlačítko Windows.V pod-okně Šablony, klikněte na tlačítko Windows Forms aplikace.
Název projektu PresentationTier a klepněte na tlačítko OK.
PresentationTier projekt je vytvořen a přidán do řešení NTierWalkthrough.
Nastavení PresentationTier projekt jako projekt při spuštění
Prezentační vrstva je skutečné klientská aplikace, která slouží k prezentaci a pracovat s daty, a proto je nutné nastavit PresentationTier projekt jako projekt při spuštění.
Chcete-li nastavit jako projekt při spuštění nového projektu prezentační vrstvy
- V Průzkumníku, klepněte pravým tlačítkem PresentationTier a klepněte na tlačítko nastavit jako projekt při spuštění.
Přidávání odkazů na prezentační vrstva
Klientská aplikace PresentationTier vyžaduje odkaz na datovou službu službu k zajištění přístupu metody ve službě.Kromě toho odkaz na objekt dataset je nutný pro aktivaci sdílení službou WCF typu.Až po povolení sdílení prostřednictvím služby datového typu, kód do třídy dataset částečné nebude k dispozici pro prezentační vrstva.Protože kód, jako je například ověřování se obvykle přidávají do řádků a sloupců, změna události z tabulky dat, je pravděpodobné, že budete chtít přístup k tomuto kódu z klienta.
Chcete-li přidat odkaz na prezentační vrstva
V Průzkumníku, klepněte pravým tlačítkem myši PresentationTier a klepněte na tlačítko Přidat odkaz na.
V Přidat odkaz na dialogové okno, klepněte projekty kartu.
Vyberte DataEntityTier a klepněte na tlačítko OK.
Chcete-li přidat odkaz na službu pro prezentační vrstva
V Průzkumníku, klepněte pravým tlačítkem myši PresentationTier a klepněte na tlačítko Přidat odkaz na službu.
V dialogovém okně Přidat odkaz na službu klikněte na položku Zjišťování.
Vyberte Service1 a klepněte na tlačítko OK.
[!POZNÁMKA]
Máte-li více služeb v aktuálním počítači, vyberte službu, kterou jste vytvořili dříve v tomto návodu (služba, která obsahuje metody GetCustomers a GetOrders).
Přidání DataGridViews do formuláře a zobrazit Data vrácená Data Service
Poté, co přidáte odkaz na službu na datovou službu Zdroje dat okna je automaticky naplněna data, která je vrácena službou.
Chcete-li přidat dva datové vázaný DataGridViews do formuláře
V Průzkumníku, vyberte projekt PresentationTier.
V Zdroje dat okno, rozbalte položku NorthwindDataSet a vyhledejte Zákazníci uzlu.
Přetáhněte Zákazníci uzel na Form1.
V Zdroje dat okno, rozbalte Zákazníci uzlu a vyhledejte související objednávky uzel ( objednávky uzel vnořen v Zákazníci uzlu).
Přetáhněte související objednávky uzel na Form1.
Vytvoření Form1_Load obslužnou rutinu události, poklepejte na prázdnou oblast formuláře.
Přidejte následující kód, který Form1_Load obslužnou rutinu události.
Dim DataSvc As New ServiceReference1.Service1Client NorthwindDataSet.Customers.Merge(DataSvc.GetCustomers) NorthwindDataSet.Orders.Merge(DataSvc.GetOrders)
ServiceReference1.Service1Client DataSvc = new ServiceReference1.Service1Client(); northwindDataSet.Customers.Merge(DataSvc.GetCustomers()); northwindDataSet.Orders.Merge(DataSvc.GetOrders());
Zvětšení maximální velikosti zprávy povolený službou
Protože služba vrací data z tabulky Zákazníci a objednávky, výchozí hodnota pro maxReceivedMessageSize není dostatečně velká pro uložení dat a musí být zvýšena.V tomto návodu se změní hodnotu 6553600.Změní hodnotu na straně klienta, a to bude automaticky aktualizovat odkaz na službu.
[!POZNÁMKA]
Nižší výchozí velikost je určena k omezení rizika útoky odmítnutí služby (DoS).Další informace naleznete v tématu MaxReceivedMessageSize.
Chcete-li zvýšit hodnotu maxReceivedMessageSize
V Průzkumníku, poklepejte na soubor app.config projektu PresentationTier.
Vyhledejte maxReceivedMessage velikost atributu a změňte hodnotu na 6553600.
Testování aplikace
Spusťte aplikaci.Data jsou získána data service a zobrazí ve formuláři.
Testování aplikace
Stisknutím klávesy F5.
Data z tabulky Zákazníci a objednávky je získána data service a zobrazí ve formuláři.
Další kroky
V závislosti na požadavcích aplikace existuje několik kroků, které můžete chtít provést po uložení souvisejících dat v aplikaci založené na systému Windows.Například byste mohli provést následující vylepšení této aplikace:
Přidání ověřování k objektu dataset.Informace naleznete v části Názorný postup: Přidání ověření dat aplikace N-té.
Přidejte další metody služby pro aktualizaci dat zpět do databáze.
Viz také
Koncepty
Novinky ve vývoji datových aplikací v sadě Visual Studio 2012