Sdílet prostřednictvím


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

N-vrstvá data aplikace jsou aplikace přístup k datům a jsou rozděleny do více logických vrstev, nebo vrstev.Rozdělit součásti aplikace do samostatné vrstvy zvyšuje požadavků na servis a škálovatelnost aplikace.Je to povolením snazší přijetí nové technologie, které mohou být použity k samostatná vrstva, aniž by bylo třeba změnit návrh celého řešení.N-vrstvá architektura obsahuje prezentační vrstvy střední vrstvy, a datové vrstvy.Střední vrstvy obvykle zahrnuje vrstva přístupu k datům, vrstva obchodní logiky a sdílených komponent, jako jsou ověřování a ověřování.Datové vrstvy patří relační databáze.N-vrstvá aplikace obvykle ukládají citlivé informace v vrstva přístupu k datům ze střední vrstvě udržovat izolaci od koncoví uživatelé, kteří mají přístup prezentační vrstvy.Další informace naleznete v tématu Přehled vícevrstvých datových aplikací.

Jeden ze způsobů pro oddělení různých úrovní v aplikaci n vrstvá se vytvořit samostatné projekty pro každou úroveň, který chcete zahrnout do vaší aplikace.Obsahovat definovaných datových sad DataSet Project vlastnost který určuje, které projekty generovaného datová sada a TableAdapter kódu by měli přejít do.

Tento průvodce ukazuje, jak do samostatných datovou sadu a TableAdapter kódu do projektů knihovny diskrétní třídy pomocí datová sada Designer.Poté, co je oddělit datovou sadu a TableAdapter kódu, můžete vytvořit Služby Windows Communication Foundation a služby WCF Data Services v sadě Visual Studio služby k volání do datové vrstvy přístup.A konečně vytvoříte aplikaci Windows Forms jako prezentační vrstvy.Tato vrstva přistupuje k datům z datové služby.

V tomto návodu se provede následující kroky:

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

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

  • Vytvořit definované datové sady pomocí Průvodce konfigurací zdroje dat.

  • Oddělte generované TableAdapters a datovou sadu kódu do diskrétní projektů.

  • Vytvoření služby Windows Communication Foundation (WCF) k volání do datové vrstvy přístup.

  • Vytvořte funkce v rámci služby k načtení dat z datové vrstvy přístup.

  • Vytvořte aplikaci Windows Forms, která bude sloužit jako prezentační vrstvy.

  • Vytvořte ovládací prvky Windows Forms, které je vázána na zdroj dat.

  • Psaní kódu pro naplnění dat tabulky.

odkaz na videoVideo verzi tohoto tématu, naleznete v části Video postupy: vytvoření datové aplikace s N-vrstvá.

Požadavky

K dokončení tohoto průvodce, budete potřebovat:

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

Prvním krokem v tomto návodu je vytvoření řešení a dva projekty knihovny tříd.Prvotřídní knihovny bude obsahovat datovou sadu (generované zadali třídu datové sady a dataTables zadejte, který bude obsahovat dat aplikace).Tento projekt se používá jako datové vrstvě 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í sadu dat a automaticky rozdělit kód do knihovny dvě třídy.

[!POZNÁMKA]

Ujistěte se, zda jste název projektu a řešení správně, před kliknutím na OK.Tím bude jednodušší pro vás k dokončení tohoto průvodce.

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

  1. Z soubor nabídky, vytvořte nový projekt.

    [!POZNÁMKA]

    Datová sada Designer je podporována v Visual Basic a projekty jazyka C#.Umožňuje vytvořte nový projekt v jednom z těchto jazyků.

  2. V Nový projekt dialogovém typy projektů podokně klikněte na tlačítko Windows.

  3. Klikněte na tlačítko knihovny tříd šablony.

  4. Pojmenujte tento projekt DataEntityTier.

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

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

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

Vytvoření knihovny tříd pro objekty TableAdapter (DataAccessTier)

Dalším krokem po vytvoření projektu DataEntityTier se vytvořit další projekt knihovny tříd.Tento projekt bude obsahovat generované TableAdapters a je volána datové vrstvy přístup aplikace.Vrstva přístupu dat obsahuje informace, které je vyžadováno 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 soubor nabídce Přidat nový projekt do NTierWalkthrough řešení.

  2. V Nový projekt dialogovém šablony podokně klikněte na tlačítko knihovny tříd.

  3. Pojmenujte tento projekt DataAccessTier a klikněte na tlačítko OK.

    DataAccessTier projekt, který je vytvořen a přidán do NTierWalkthrough řešení.

Vytvoření datové sady

Dalším krokem je vytvoření definované datové sady.Zadané datové sady jsou vytvořeny s oběma třídu datové sady (včetně dataTables zadejte třídy) a TableAdapter třídy v jednom projektu.(Všechny třídy jsou generovány do jednoho souboru). Zvláštní datová sada a TableAdapters do různých projektů, je datová sada třídu, která je přesunut do jiného projektu, ponechejte TableAdapter třídy v původním projektu.Proto vytvořit datová sada v projektu, který bude nakonec obsahovat TableAdapters (DataAccessTier projekt).Datová sada bude vytvářet s použitím 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 tom, jak nastavit ukázkové databáze Northwind naleznete v tématu Postupy: Instalace ukázkových databází.

Vytvoření datové sady

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

  2. V nabídce Data klikněte na tlačítko Zobrazit zdroje dat.

  3. V zdroje dat okna, klikněte na tlačítko Přidat nový zdroj dat spustit Průvodce konfigurací zdroje dat.

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

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

    Pokud je k dispozici v rozevíracím seznamu datové připojení k databázi Northwind ukázky, klikněte na něj.

    -nebo-

    Klikněte na tlačítko nové připojení otevřete Přidat připojení dialogového okna.

  6. Pokud databáze vyžaduje heslo, vyberte možnost obsahují citlivá data a potom klikněte na tlačítko Další.

    [!POZNÁMKA]

    Pokud jste vybrali možnost místního databázového souboru (namísto připojení k serveru SQL Server) může být vyzváni, pokud chcete přidat soubor do projektu.Klikněte na tlačítko Ano Chcete-li přidat soubor databáze do projektu.

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

  8. Rozbalit tabulky uzlu na Zvolte vaše databázové objekty stránky.

  9. Klikněte na tlačítko zaškrtnutí políček u Zákazníci a objednávky tabulky a potom klikněte na tlačítko Dokončit.

    NorthwindDataSet je přidána do projektu DataAccessTier a zobrazí se v zdroje dat okna.

Oddělení objektů TableAdapter od objektu DataSet

Po vytvoření datové sadě oddělte od TableAdapterů třídu generované datové sady.Můžete to provést nastavením projektu sady dat vlastnost, která má název projektu, do které můžete ukládat oddělených limit třídu datové sady.

Oddělení objektů TableAdapter od objektu DataSet

  1. Dvakrát klikněte na položku NorthwindDataSet.xsd v Průzkumníka řešení otevřete v sadě dat datová sada Designer.

  2. Kliknutím na prázdnou oblast na návrháře.

  3. Vyhledejte projektu sady dat uzel v Vlastnosti okna.

  4. V projektu sady dat klepněte na položku DataEntityTier.

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

Datová sada a TableAdapterů jsou rozděleny do projektů knihovny dvě třídy.Projekt, který původně obsahovalo celou datovou sadu (DataAccessTier) nyní obsahuje pouze TableAdapterů.Projekt určených v projektu sady dat vlastnost (DataEntityTier) obsahuje definované datové sady: NorthwindDataSet.Dataset.Designer.vb (nebo NorthwindDataSet.Dataset.Designer.cs).

[!POZNÁMKA]

Kdy oddělení datových sad a TableAdapterů (nastavením projektu sady dat vlastnost), nebude automaticky přesunuta existujících dílčí datovou sadu tříd v projektu.Existující třídy dílčí datovou sadu musí být ručně přesunuty do projektu datové sady.

Vytvoření nové aplikace služby

Vzhledem k tomu, že tento průvodce ukazuje, jak lze získat přístup k datové vrstvy přístup pomocí služby WCF, vytvořte novou aplikaci služby WCF.

Vytvoření nové aplikace služby WCF

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

  2. V Nový projekt dialogovém typy projektů podokně klikněte na tlačítko WCF.V šablony podokně klikněte na tlačítko knihovny služby WCF.

  3. Pojmenujte tento projekt DataService a klikněte na tlačítko OK.

    DataService projekt, který je vytvořen a přidán do NTierWalkthrough řešení.

Vytvoření metod, které vrací data zákazníků a objednávek, ve vrstvě přístupu k datům

Služba dat musí volat v datové vrstvě přístup dvěma způsoby: GetCustomers a GetOrders.Tyto metody vrátí tabulky Northwind zákazníci a objednávky.Vytvořte metody GetCustomers a GetOrders v DataAccessTier projektu.

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

  1. V Průzkumníka řešení, dvakrát klikněte na položku NorthwindDataset.xsd Chcete-li otevřít v sadě dat Vytváření a úpravy typovaných datových sad.

  2. Klikněte pravým tlačítkem na CustomersTableAdapter a klikněte na tlačítko dotazu přidat otevřete Průvodce nastavením dotazu TableAdapter.

  3. Na Zvolte typ příkazu ponechte výchozí hodnotu příkazy SQL pomocí a klikněte na tlačítko Další.

  4. Na Zvolte typ dotazu ponechte výchozí hodnotu Vyberte, které vrátí řádky a klikněte na tlačítko Další.

  5. Na Zadejte příkaz SELECT stránky, ponechejte výchozí dotaz a klikněte na tlačítko Další.

  6. Na Zvolte metody pro generování stránky, zadejte GetCustomers pro název metody v vrátit objekt DataTable oddílu.

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

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

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

  2. Na Zvolte typ příkazu ponechte výchozí hodnotu příkazy SQL pomocí a klikněte na tlačítko Další.

  3. Na Zvolte typ dotazu ponechte výchozí hodnotu Vyberte, které vrátí řádky a klikněte na tlačítko Další.

  4. Na Zadejte příkaz SELECT stránky, ponechejte výchozí dotaz a klikněte na tlačítko Další.

  5. Na Zvolte metody pro generování stránky, zadejte GetOrders pro název metody v vrátit objekt DataTable oddílu.

  6. Klepně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 služba dat vyžaduje informace ze sady dat a TableAdapterů, přidáte odkazy na DataEntityTier a DataAccessTier projekty.

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

  1. Klikněte pravým tlačítkem na DataService v Průzkumníka řešení a klikněte na tlačítko Přidat odkaz.

  2. Klikněte na tlačítko projekty kartu v Přidat odkaz dialogového okna.

  3. Vyberte obě DataAccessTier a DataEntityTier projekty.

  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, které se vrátit data, vytvořit metody ve službě dat k volání metod v datové vrstvě přístup.

[!POZNÁMKA]

Pro projekty jazyka C#, je nutné přidat odkaz System.Data.DataSetExtensions sestavení pro následující kód ke kompilaci.

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

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

  2. Přidejte následující kód pod 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 poklepejte 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

Nyní, řešení obsahuje službu data, která obsahuje metody, které volají do datové vrstvy přístup, vytvořte další projekt, který bude volání do služby dat a prezentovat data pro uživatele.V tomto návodu vytvořte aplikaci Windows Forms; Toto je prezentační vrstvou n vrstvá aplikace.

Vytvoření projektu prezentační vrstvy

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

  2. V Nový projekt dialogovém typy projektů podokně klikněte na tlačítko Windows.V šablony podokně klikněte na tlačítko Windows Forms aplikace.

  3. Pojmenujte tento projekt PresentationTier a klikněte na tlačítko OK.

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

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

Vzhledem k tomu prezentační vrstvou skutečný klientská aplikace, která se používá k zobrazení a interakci s daty, je nutné nastavit do projektu PresentationTier projekt při spuštění.

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

  • V Průzkumníka řešení, klikněte pravým tlačítkem na PresentationTier a klikně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 službu službu data pro přístup metody v rámci služby.Kromě toho odkaz k datové sadě, je nutné povolit sdílení službou WCF typu.Až po povolení sdílení prostřednictvím služby datového typu, kód přidán do třídy dílčí datovou sadu nebude k dispozici pro prezentační vrstvy.Vzhledem k tomu obvykle přidat kód jako při ověřování do řádků a sloupců Změna události tabulku dat, je pravděpodobné, že chcete získat přístup k tento kód z klienta.

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

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

  2. V Přidat odkaz dialogového okna, klikněte na tlačítko projekty kartu.

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

Chcete-li přidat odkaz na službu prezentační vrstvy

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

  2. V Přidat odkaz na službu dialogového okna, klikněte na tlačítko Discover.

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

    [!POZNÁMKA]

    Pokud máte 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í ovládacích prvků DataGridView do formuláře a zobrazení dat vrácených datovou službou

Po přidání služby odkaz na službu data zdroje dat okna je automaticky vyplněno 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íka řešení, vyberte projekt PresentationTier.

  2. V zdroje dat okna, rozbalte položku NorthwindDataSet a vyhledejte Zákazníci uzlu.

  3. Přetáhněte Zákazníci uzlu do Form1.

  4. V zdroje dat okna, rozbalte položku Zákazníci uzel a vyhledejte související objednávky uzlu ( objednávky uzel vnořen v Zákazníci uzlu).

  5. Přetáhněte související objednávky uzlu do Form1.

  6. Vytvořit Form1_Load obslužnou rutinu události dvojitým kliknutím na prázdné místo ve formuláři.

  7. Přidat 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 tabulek Zákazníci a objednávky, výchozí hodnotu 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 odmítnutí útoky (DoS service).Další informace naleznete v tématu MaxReceivedMessageSize.

Zvýšení hodnoty maxReceivedMessageSize

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

  2. Vyhledejte maxReceivedMessage velikosti atribut a změnit hodnotu na 6553600.

Testování aplikace

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

Testování aplikace

  1. Stiskněte klávesu F5.

  2. Data z tabulky Zákazníci a objednávky je načten z datové služby a zobrazeny ve formuláři.

Další kroky

V závislosti na požadavcích aplikace existuje několik kroků, které chcete provádět po uložení dat v relaci v aplikaci Windows-based.Například můžete dokonce vytvářet následující vylepšení této aplikace:

Viz také

Další zdroje

Práce s datovými sadami ve vícevrstvých aplikacích

Hierarchická aktualizace

Přístup k datům v sadě Visual Studio