Sdílet prostřednictvím


Návod: Vytvoření víceúrovňové datové aplikace

 

Publikováno: srpen 2016

N-vrstvých data aplikace jsou aplikace, které přístup k datům a jsou rozděleny do několika logických vrstev nebo vrstev. Rozdělení do samostatných vrstev komponent aplikace zvyšuje udržovatelnost a škálovatelnost aplikace. Je to tím, že umožňuje snadnější přijímání nových technologií, které mohou být použity do jedné vrstvy, aniž by bylo nutné 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, vrstva obchodní logiky a sdílené součásti, jako například ověřování a ověřování. Datovou vrstvou patří relační databáze. N-vrstvých aplikací obvykle ukládat citlivé informace do vrstvy přístupu k datům ze střední vrstvy zachovat izolace od koncovým uživatelům, kteří přístup k prezentační vrstva. Další informace naleznete v tématu Přehled vícevrstvých datových aplikací.

Jedním ze způsobů k oddělení různých vrstev v aplikaci n vrstvých je vytvoření 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 rozdělit sady dat a TableAdapter do projektů knihovny samostatné třídy pomocí kódu návrháře Dataset. Po rozdělíte objekt dataset a kódu TableAdapter, vytvoří Služby Windows Communication Foundation a služby WCF Data Services v sadě Visual Studio volat do vrstvy přístupu dat služby. Nakonec vytvoříte model Windows Forms aplikace jako prezentační vrstva. Tato vrstva zpřístupňuje data z datových služeb.

Během tohoto návodu se bude provádět následující kroky:

  • Vytvořte nové řešení n vrstvých, která bude obsahovat více projektů.

  • Přidejte dva projekty knihovny tříd do řešení n vrstvé.

  • Vytvořit zadaný dataset pomocí Průvodce konfigurací zdroje dat.

  • Oddělení generované TableAdapters a kód dataset do samostatných projektů.

  • Vytvořte pro volání do vrstvy přístupu dat služby Windows Communication Foundation (WCF).

  • Funkce vytvořte ve službě načítání dat z aplikace access datovou vrstvou.

  • Vytvoření aplikace model Windows Forms jako prezentační vrstva.

  • Vytvořte model Windows Forms ovládací prvky, které jsou vázány ke zdroji dat.

  • Napište kód k naplnění datových tabulek.

odkaz na video Pro video verzi tohoto tématu naleznete Video postupy: vytvoření datové aplikace s N-vrstvých.

Požadavky

Chcete-li dokončit tento návod, potřebujete:

Vytvoření N-vrstvého řešení a knihovny tříd pro objekt Dataset (DataEntityTier)

Chcete-li vytvořit řešení a dva projekty knihovny tříd je prvním krokem v tomto návodu. První třídy knihovny budou konat dataset (generované zadaný objekt DataSet třída a dataTables zadejte, která bude obsahovat data aplikace). Tento projekt se používá jako vrstvu dat entity 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í sada dat a kód automaticky rozdělit do dvou tříd knihoven.

Poznámka

Nezapomeňte před klepnutím na správně název projektu a řešení OK. To usnadní vám k dokončení tohoto postupu.

Vytvoření n-vrstvého řešení a knihovny tříd DataEntityTier

  1. Pomocí nabídky Soubor vytvořte nový projekt.

    Poznámka

    Návrháře Dataset je podporována v Visual Basic a C# projekty. Vytvořte nový projekt v jednom z těchto jazyků.

  2. V nový projekt dialogové okno, v typy projektů podokno, klepněte na tlačítko Windows.

  3. Klepněte knihovny tříd šablony.

  4. Název projektu DataEntityTier.

  5. Název řešení NTierWalkthrough.

  6. Klikněte na tlačítko OK.

    NTierWalkthrough řešení, které obsahuje projekt DataEntityTier je vytvořen a přidán do Průzkumník řešení.

Vytvoření knihovny tříd pro objekty 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 přístupu dat aplikace. Úroveň 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ě.

Vytvoření nové knihovny tříd pro objekty TableAdapter

  1. Z souboru nabídce Přidat nový projekt do řešení, NTierWalkthrough.

  2. V nový projekt dialogové okno, v šablony podokno, klepněte na tlačítko knihovny tříd.

  3. 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í datové sady

Dalším krokem je vytvořit zadaný objekt dataset. Definovaných datových sad jsou vytvořeny pomocí třídy dataset (včetně dataTables zadejte tříd) 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řesunuta do jiného projektu, opouští TableAdapter tříd v původním projektu. Proto vytvořit datové sady v projektu, který bude obsahovat především 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 pro vytvoření připojení. Informace o způsobu nastavení ukázkové databáze Northwind, viz Postupy: Instalace ukázkových databází.

Vytvoření datové sady

  1. Klepněte na tlačítko DataAccessTier v Průzkumník řešení.

  2. V nabídce Data klikněte na položku Zobrazit zdroje dat.

  3. V zdroje dat okno, klepněte na tlačítko přidat nový zdroj dat spustit Průvodce konfigurací zdroje dat.

  4. Na vyberte typ zdroje dat klepněte na tlačítko databáze a potom klepněte na tlačítko Další.

  5. V vybrat datové připojení stránky, proveďte jednu z následujících akcí:

    Připojení dat k ukázkové databázi Northwind je k dispozici v rozevíracím seznamu, klepněte na něj.

    -nebo-

    Klepněte na tlačítko nové připojení otevřete přidat připojení dialogové okno.

  6. Pokud databáze vyžaduje heslo, vyberte možnost obsahují citlivá data, a klepně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.

  7. Klikněte na tlačítko Další na stránce Uložit připojovací řetězec do konfiguračního souboru aplikace.

  8. Rozbalte tabulky uzel zvolte vaše databázové objekty stránky.

  9. Kliknutím 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í objektů TableAdapter od objektu DataSet

Po vytvoření datové sady oddělte od TableAdapterů třídě 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 mimo třídu dataset.

Oddělení objektů TableAdapter od objektu DataSet

  1. Poklepejte na NorthwindDataSet.xsd v Průzkumník řešení Chcete-li otevřít objekt dataset v návrháře Dataset.

  2. Klepněte do prázdné oblasti v návrháři.

  3. Vyhledejte DataSet projektu uzlu vlastnosti okno.

  4. V DataSet projektu klepněte na DataEntityTier.

  5. 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 zadaný dataset obsahuje vlastnost (DataEntityTier): NorthwindDataSet.Dataset.Designer.vb (nebo NorthwindDataSet.Dataset.Designer.cs).

Poznámka

Po oddělení datových sad a TableAdapterů (nastavením DataSet projektu vlastnost), nebude automaticky přesunout existující třídy dílčí sady dat v projektu. Sada dat projektu musí být ručně přesunuty existující částečné třídy dataset.

Vytvoření nové aplikace služby

Vzhledem k tomu, že tento návod ukazuje, jak získat přístup k úroveň přístupu dat pomocí služby WCF, vytvořte novou aplikaci služby WCF.

Vytvoření nové aplikace služby WCF

  1. Z souboru nabídce Přidat nový projekt do řešení, NTierWalkthrough.

  2. V nový projekt dialogové okno, v typy projektů podokno, klepněte na tlačítko WCF. V šablony podokno, klepněte na tlačítko knihovny služby WCF.

  3. 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í metod, které vrací data zákazníků a objednávek, ve vrstvě přístupu k datům

Data služby musí volat dvě metody ve vrstvě přístupu dat: GetCustomers a GetOrders. Tyto metody vrátí tabulky Northwind zákazníci a objednávky. Vytvořte metody GetCustomers a GetOrders v projektu DataAccessTier.

Vytvoření metody, která vrací tabulku Customers, ve vrstvě přístupu k datům

  1. V Průzkumník řešení, poklepejte NorthwindDataset.xsd otevřít v sadě dat Vytváření a úpravy typovaných datových sad.

  2. CustomersTableAdapter klepněte pravým tlačítkem myši a klepněte na tlačítko přidat dotaz otevřete TableAdapters – úpravy.

  3. Na zvolte typ příkazu ponechte výchozí hodnotu pomocí SQL dotazů a klepněte na tlačítko Další.

  4. Na zvolit typ dotazu ponechte výchozí hodnotu vyberte, které vrací řádky a klepněte na tlačítko Další.

  5. Na zadat příkaz SQL SELECT stránky, ponechte výchozí dotaz a klepněte na tlačítko Další.

  6. Na zvolit metody pro generování zadejte GetCustomers pro název metody v vrátit objekt DataTable oddílu.

  7. Klikněte na tlačítko Dokončit.

Vytvoření metody, která vrací tabulku Orders, ve vrstvě přístupu k datům

  1. OrdersTableAdapter klepněte pravým tlačítkem myši a klepněte na tlačítko přidat dotaz.

  2. Na zvolte typ příkazu ponechte výchozí hodnotu pomocí SQL dotazů a klepněte na tlačítko Další.

  3. Na zvolit typ dotazu ponechte výchozí hodnotu vyberte, které vrací řádky a klepněte na tlačítko Další.

  4. Na zadat příkaz SQL SELECT stránky, ponechte výchozí dotaz a klepněte na tlačítko Další.

  5. Na zvolit metody pro generování zadejte GetOrders pro název metody v vrátit objekt DataTable oddílu.

  6. Klikněte na tlačítko Dokončit.

  7. V nabídce Sestavení klikněte na příkaz Sestavit řešení.

Přidání odkazu na vrstvu datové entity a vrstvu přístupu k datům do datové služby

Vzhledem k tomu, že informace z objektu dataset a TableAdapterů vyžaduje služba data, přidáte odkazy na projekty DataEntityTier a DataAccessTier.

Přidání odkazů do datové služby

  1. Klepněte pravým tlačítkem myši DataService v Průzkumník řešení a klepněte na tlačítko přidat odkaz.

  2. Klepněte projekty karta v přidat odkaz dialogové okno.

  3. Vyberte, jak DataAccessTier a DataEntityTier projektů.

  4. Klikněte na tlačítko OK.

Přidání funkcí do služby za účelem volání metod GetCustomers a GetOrders ve vrstvě přístupu k datům

Nyní, Datová vrstva obsahuje metody vrátit data, vytvořte ve službě data volat metody ve vrstvě přístupu dat metody.

Poznámka

Pro projekty jazyka C#, je třeba přidat odkaz na System.Data.DataSetExtensions následující kód sestavení kompilace.

Vytvoření funkcí GetCustomers a GetOrders v datové službě

  1. V DataService projektu, dvakrát klikněte na IService1.vb nebo IService1.cs.

  2. Přidejte následující kód za přidat vaše servisní operace 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();  
    
  3. V projektu DataService dvakrát klikněte na Service1.vb (nebo Service1.cs).

  4. 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();  
    
    }  
    
  5. V nabídce Sestavení klikněte na příkaz Sestavit řešení.

Vytvoření prezentační vrstvy zobrazující data z datové služby

Řešení obsahuje data služba, která má metody, které volají do vrstvy přístupu dat, vytvořte jiný projekt, který bude volat do datové služby a prezentovat uživatelům. V tomto návodu vytvoříte model Windows Forms aplikace. Toto je prezentační vrstva aplikace n vrstvé.

Vytvoření projektu prezentační vrstvy

  1. Z souboru nabídce Přidat nový projekt do řešení, NTierWalkthrough.

  2. V nový projekt dialogové okno, v typy projektů podokno, klepněte na tlačítko Windows. V šablony podokno, klepněte na tlačítko aplikace model Windows Forms.

  3. Název projektu PresentationTier a klepněte na tlačítko OK.

  4. PresentationTier projekt je vytvořen a přidán do řešení NTierWalkthrough.

Nastavení projektu PresentationTier jako spouštěného projektu

Prezentační vrstva je skutečné klientské aplikace, která slouží k zobrazení a interakci s daty, a proto je třeba nastavit jako projekt při spuštění projektu PresentationTier.

Nastavení nového projektu prezentační vrstvy jako spouštěného projektu

  • V Průzkumník řešení, klepněte pravým tlačítkem myši PresentationTier a klepněte na tlačítko nastavit jako projekt při spuštění.

Přidání odkazů do prezentační vrstvy

Klientské aplikace PresentationTier vyžaduje odkaz na datovou službu služby přístupu metody ve službě. Odkaz na objekt dataset je navíc nutné povolit sdílení služba WCF typu. Dokud nepovolíte sdílení prostřednictvím služby datového typu, přidán do třídy dataset částečného kódu nebude k dispozici pro prezentační vrstva. Vzhledem k tomu, že obvykle přidat kód, jako je například ověřování na řádek a sloupec Změna události z tabulky dat, je pravděpodobné, že budete chtít tento kód přístup z klienta.

Přidání odkazu do prezentační vrstvy

  1. V Průzkumník řešení, klepněte pravým tlačítkem myši PresentationTier a klepněte na tlačítko přidat odkaz.

  2. V přidat odkaz dialogové okno, klepněte projekty kartu.

  3. Vyberte DataEntityTier a klepněte na tlačítko OK.

Přidání odkazu na službu do prezentační vrstvy

  1. V Průzkumník řešení, klepněte pravým tlačítkem myši PresentationTier a klepněte na tlačítko přidat odkaz na službu.

  2. V přidat odkaz na službu dialogové okno, klepněte na tlačítko vyhledávací.

  3. Vyberte Service1 a klepněte na tlačítko OK.

    Poznámka

    Pokud máte v počítači více služeb, vyberte službu, kterou jste vytvořili dříve v tomto návodu (služba, která obsahuje metody GetCustomers a GetOrders).

Přidání ovládacích prvků DataGridView do formuláře a zobrazení dat vrácených datovou službou

Poté, co přidáte odkaz na službu do služby dat zdroje dat okna je automaticky naplněna data, která je vrácena službou.

Přidání dvou ovládacích prvků DataGridView vázaných na data do formuláře

  1. V Průzkumník řešení, vyberte projekt PresentationTier.

  2. V zdroje dat okna, rozbalte NorthwindDataSet a vyhledejte zákazníci uzlu.

  3. Přetáhněte zákazníci uzel na Form1.

  4. In the Data Sources window, expand the Customers node and locate the related Orders node (the Orders node nested in the Customers node).

  5. Přetáhněte související objednávky uzel na Form1.

  6. Vytvořit Form1_Load obslužnou rutinu události, poklepejte na prázdnou oblast formuláře.

  7. 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

Vzhledem k tomu, že služba vrací data z tabulky Zákazníci a objednávky, výchozí hodnota pro maxReceivedMessageSize není dostatečně velké pro uchování dat a musí být zvýšena. V tomto návodu se změní na hodnotu 6553600. Změníte hodnotu v klientském počítači, a to bude automaticky aktualizovat odkaz na službu.

Poznámka

Nižší výchozí velikost je určena k omezení rizika odmítnutí služby (DoS) útoky. Další informace naleznete v tématu MaxReceivedMessageSize.

Zvýšení hodnoty maxReceivedMessageSize

  1. V Průzkumník řešení, poklepejte na soubor app.config projektu PresentationTier.

  2. Vyhledat maxReceivedMessage velikost atributu a změňte hodnotu na 6553600.

Testování aplikace

Spusťte aplikaci. Data načtená z datové služby a zobrazit ve formuláři.

Testování aplikace

  1. Stiskněte klávesu F5.

  2. Data z tabulek 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 provést po uložení dat aplikace založené na systému Windows. Například může vytvořit následující vylepšení této aplikace:

Viz také

Práce s datovými sadami ve vícevrstvých aplikacích
Hierarchická aktualizace
Přístup k datům v sadě Visual Studio