Wskazówki: tworzenie aplikacji warstwowych

N-warstwowa aplikacji, które dostęp do danych i są podzielone na wielu warstw logicznej, są aplikacje danych lub warstwy.Oddzielenie składników aplikacji do warstwy dyskretnych zwiększa łatwość i skalowalność aplikacji.Jest to, należy włączyć łatwiejsze wdrażania nowych technologii, które można zastosować do pojedyncza warstwa bez konieczności zmiany projektu całej rozwiązania.N-warstwowa architektura zawiera warstwy prezentacji, warstwy środkowej, i warstwy danych.Warstwy środkowej zwykle obejmują Warstwa dostępu do danych, warstwy logiki biznesowej i współużytkowanych składników, takich jak uwierzytelnianie i sprawdzania poprawności.Warstwa danych zawiera relacyjnej bazy danych.N-warstwowa aplikacje zwykle przechowywania poufnych informacji w warstwę dostępu do danych w warstwie środkowej zachowanie izolacji od użytkowników końcowych, którzy dostępu do warstwy prezentacji.Aby uzyskać więcej informacji, zobacz Aplikacje warstwowe — Przegląd.

Jednym ze sposobów Rozdziel różnych poziomów w aplikacji n warstwowa jest tworzenie dyskretnych projektów dla każdej warstwy, które mają zostać uwzględnione w aplikacji.Zawiera typizowaną zestawów danych DataSet Project Właściwości określający, które projekty wygenerowanego zestawu danych i TableAdapter kod, należy przejść do.

Niniejszy przewodnik pokazuje, jak Rozdziel zestawu danych i TableAdapter kod w projektach biblioteki klas dyskretne przy użyciu Designer zestawu danych.Po należy rozdzielić zestawu danych i Obiekt TableAdapter kodu, utworzy Usługi Windows Communication Foundation i usługi danych WCF w programie Visual Studio usługi do wywołania w warstwie dostępu do danych.Ponadto pozwala utworzyć aplikacji Windows Forms jako warstwy prezentacji.Ta warstwa uzyskuje dostęp do danych z usługi danych.

Podczas tej procedury będzie wykonywać następujące kroki:

  • Utwórz nowe rozwiązanie n warstwowa, który będzie zawierać wiele projektów.

  • Dodaj dwa projektach biblioteki klas do rozwiązania n warstwowa.

  • Utwórz typizowaną zestawu danych przy użyciu Kreatora konfiguracji źródła danych.

  • Rozdziel wygenerowany TableAdapters i zestawu danych kod w projektach dyskretnych.

  • Tworzenie usługi Windows Communication Foundation (WCF) do wywołania w warstwie dostępu do danych.

  • Utwórz funkcji w usłudze można pobrać danych z warstwy dostępu do danych.

  • Tworzenie aplikacji programu Windows Forms jako warstwy prezentacji.

  • Utwórz Windows formantami, które jest powiązana ze źródłem danych.

  • Wpisz kod do wypełnienia tabel danych.

łącze do wideoWideo wersję tego tematu, zobacz wideo jak: tworzenie aplikacji danych N-warstwowa.

Wymagania wstępne

Aby ukończyć tej procedury, należy:

Tworzenie rozwiązania N-warstwowa i bibliotece klas do przechowywania zestawu danych (DataEntityTier)

Pierwszy krok okna niniejszy przewodnik jest tworzenie rozwiązanie i dwie projektach biblioteki klas.Biblioteka najwyższej klasy będą przechowywane w zestawie danych (wygenerowany wpisany klasy zestawu danych i DataTables, w którym będą przechowywane dane aplikacji).Ten projekt jest używany jako warstwa jednostki danych aplikacji i zwykle znajduje się w warstwie pośredniej.Tworzenie i edytowanie wpisanych zestawów danych jest używany do tworzenia początkowego zestawu danych i automatycznie oddzielenie kod do biblioteki dwóch klas.

[!UWAGA]

Należy upewnić się, że nazwa projektu i rozwiązania prawidłowo przed kliknięciem przycisku OK.Ten sposób ułatwi można wykonać tej procedury.

Tworzenie rozwiązania n warstwowa i bibliotece klas DataEntityTier

  1. Z pliku menu, Utwórz nowy projekt.

    [!UWAGA]

    Designer zestawu danych jest obsługiwana w Visual Basic i C# projektów.Utwórz nowy projekt w jednym z tych języków.

  2. W Nowy projekt dialogowym typy projektów okienku kliknij Windows.

  3. Kliknij przycisk biblioteki klas szablonu.

  4. Nazwa projektu DataEntityTier.

  5. Nazwa rozwiązania NTierWalkthrough.

  6. Kliknij przycisk OK.

    Rozwiązanie NTierWalkthrough, które zawiera projekt DataEntityTier zostało utworzone i dodane do Eksploratora rozwiązań.

Trwa tworzenie biblioteki klas przechowujący TableAdapters (DataAccessTier)

Następnym krokiem po utworzeniu projektu DataEntityTier jest można utworzyć inny projekcie biblioteki klas.Ten projekt będą przechowywane wygenerowany TableAdapters i jest wywoływana Warstwa dostępu do danych aplikacji.Warstwa dostępu do danych zawiera informacje wymagane do nawiązania połączenia z bazą danych, który znajduje się w warstwie pośredniej.

Aby utworzyć nową bibliotekę klasy dla TableAdapters

  1. Z pliku menu, Dodaj nowy projekt do rozwiązania NTierWalkthrough.

  2. W Nowy projekt dialogowym Szablony okienku kliknij biblioteki klas.

  3. Nadaj nazwę projektowi DataAccessTier, a następnie kliknij przycisk OK.

    Projekt DataAccessTier jest tworzony i dodawany do rozwiązania NTierWalkthrough.

Tworzenie zestawu danych

Następnym krokiem jest tworzenie typizowaną zestawu danych.Typizowaną zestawów danych są tworzone za pomocą obu klasy zestawu danych (w tym klasy DataTables) i TableAdapter klasy w pojedynczego projektu.(Wszystkie klasy są generowane w jednym pliku). Szczegółowych zestawu danych i TableAdapters do różnych projektów, jest klasa zestawu danych, która zostanie przeniesiona do innych projektów, pozostawiając TableAdapter klasy w oryginalnego projektu.W związku z tym, Utwórz zestaw danych w projekcie, które będzie zawierał ostatecznie TableAdapters (projektu DataAccessTier).Zestaw danych zostanie utworzony przy użyciu Kreatora konfiguracji źródła danych.

[!UWAGA]

Musisz mieć dostęp do przykładowej bazy danych Northwind do utworzenia połączenia.Aby dowiedzieć się, jak skonfigurować w bazie danych Northwind, zobacz Porady: instalacja przykładowych baz danych.

Aby utworzyć zestaw danych

  1. Kliknij przycisk DataAccessTier w Eksploratora rozwiązań.

  2. W menu Dane kliknij przycisk Pokaż źródła danych.

  3. W źródła danych okna, kliknij przycisk Dodaj nowe źródło danych można uruchomić Kreatora konfiguracji źródła danych.

  4. Na Wybierz typ źródła danych kliknij przycisk bazy danych a następnie kliknij przycisk Dalej.

  5. Na Wybieranie połączenia danych swojego strony, wykonaj jedną z następujących czynności:

    Jeśli połączenie danych z bazie danych Northwind jest dostępna na liście rozwijanej, kliknij go.

    —lub—

    Kliknij przycisk nowe połączenie można otworzyć Dodawanie połączenia okno dialogowe.

  6. Jeśli baza danych wymaga hasła, wybierz opcję, aby dołączyć dane poufne, a następnie kliknij przycisk Dalej.

    [!UWAGA]

    W przypadku wybrania lokalnego pliku bazy danych (a nie jest połączony z serwerem SQL) może zostać poproszony, jeśli chcesz dodać plik do projektu.Kliknij przycisk Tak do dodania do projektu plik bazy danych.

  7. Kliknij przycisk Dalej na zapisać ciąg połączenia do pliku konfiguracji aplikacji strony.

  8. Rozwiń węzeł tabel węzła na Wybierz obiekty bazy danych użytkownika strony.

  9. Kliknij pola wyboru dla klienci i zamówienia tabel, a następnie kliknij przycisk Zakończ.

    NorthwindDataSet jest dodawany do projektu DataAccessTier i pojawi się w źródła danych okna.

Oddzielanie TableAdapters z zestawu danych

Po utworzeniu zestawu danych z TableAdapters należy oddzielić klasy wygenerowanego zestawu danych.Można to zrobić przez ustawienie zestawu danych projektu nazwę projektu, w którym będą przechowywane rozdzielonych limit klasy zestawu danych.

Oddzielić TableAdapters z zestawu danych

  1. Kliknij dwukrotnie NorthwindDataSet.xsd w Eksploratora rozwiązań można otworzyć zestawu danych w Designer zestawu danych.

  2. Kliknij wolne miejsce w projektancie.

  3. Zlokalizuj zestawu danych projektu w węźle właściwości okna.

  4. W zestawu danych projektu kliknij DataEntityTier.

  5. W menu Kompilacja kliknij Kompiluj rozwiązanie.

Zestaw danych i TableAdapters są podzielone na dwie klasy biblioteki projektów.Projekt zawierający pierwotnie cały zestaw danych (DataAccessTier) teraz zawiera tylko TableAdapters.Określony projekt w zestawu danych projektu właściwość (DataEntityTier) zawiera typizowaną zestawu danych: NorthwindDataSet.Dataset.Designer.vb (lub NorthwindDataSet.Dataset.Designer.cs).

[!UWAGA]

Szczegółowych zestawów danych i TableAdapters (przez ustawienie zestawu danych projektu właściwości), istniejących klas częściowy zestaw danych w projekcie nie zostaną automatycznie przeniesione.Istniejące klasy częściowy zestaw danych należy ręcznie przenieść do projektu zestawu danych.

Tworzenie nowej aplikacji usługi

Ponieważ niniejszy przewodnik pokazuje, jak uzyskać dostęp do warstwy dostępu do danych za pomocą usługi WCF, należy utworzyć nową aplikację usługi WCF.

Aby utworzyć nową aplikację usługi WCF

  1. Z pliku menu, Dodaj nowy projekt do rozwiązania NTierWalkthrough.

  2. W Nowy projekt dialogowym typy projektów okienku kliknij WCF.W Szablony okienku kliknij Biblioteka usług WCF.

  3. Nadaj nazwę projektowi usługi danych, a następnie kliknij przycisk OK.

    Usługi danych projektu jest tworzony i dodawany do rozwiązania NTierWalkthrough.

Tworzenie metod w warstwie dostępu do danych, aby powrócić do klientów i porządkuje danych

Usługi danych ma dwie metody należy wywołać w warstwie dostępu do danych: GetCustomers i GetOrders.Te metody powodują zwróci tabele Northwind klienci i zamówienia.Utwórz metod GetCustomers i GetOrders w projekcie DataAccessTier.

Aby utworzyć metodę w warstwie dostępu do danych zwracające tabelę Klienci

  1. W Eksploratora rozwiązań, kliknij dwukrotnie plik NorthwindDataset.xsd, aby otworzyć zestawu danych w Tworzenie i edytowanie wpisanych zestawów danych.

  2. Kliknij prawym przyciskiem myszy CustomersTableAdapter, a następnie kliknij przycisk Dodaj zapytanie można otworzyć TableAdapter Kreator konfiguracji zapytania.

  3. Na Wybierz typ polecenia strony, pozostaw wartość domyślną instrukcji SQL użyj i kliknij przycisk Dalej.

  4. Na Wybierz typ kwerendy strony, pozostaw wartość domyślną Wybierz, która zwraca wierszy i kliknij przycisk Dalej.

  5. Na określić instrukcję SQL SELECT strony, pozostaw domyślne zapytanie i kliknij przycisk Dalej.

  6. Na Wybierz metody służące do generowania wpisz GetCustomers dla nazwę metody w zwrócić DataTable sekcji.

  7. Kliknij Zakończ.

Aby utworzyć metodę w warstwie dostępu do danych, który zwraca tabeli zamówienia

  1. Kliknij prawym przyciskiem myszy OrdersTableAdapter, a następnie kliknij przycisk Dodaj zapytanie.

  2. Na Wybierz typ polecenia strony, pozostaw wartość domyślną instrukcji SQL użyj i kliknij przycisk Dalej.

  3. Na Wybierz typ kwerendy strony, pozostaw wartość domyślną Wybierz, która zwraca wierszy i kliknij przycisk Dalej.

  4. Na określić instrukcję SQL SELECT strony, pozostaw domyślne zapytanie i kliknij przycisk Dalej.

  5. Na Wybierz metody służące do generowania wpisz GetOrders dla nazwę metody w zwrócić DataTable sekcji.

  6. Kliknij Zakończ.

  7. W menu Kompilacja kliknij Kompiluj rozwiązanie.

Dodawanie odwołania do jednostki danych i dostępu do danych do usługi danych

Usługi danych wymaga informacji z zestawu danych i TableAdapters, należy dodać odwołań do projektów DataEntityTier i DataAccessTier.

Aby dodać odwołanie do usługi danych

  1. Kliknij prawym przyciskiem myszy usługi danych w Eksploratora rozwiązań i kliknij przycisk Dodaj odwołanie.

  2. Kliknij przycisk projektów kartę w Dodaj odwołanie okno dialogowe.

  3. Wybierz oba DataAccessTier i DataEntityTier projektów.

  4. Kliknij przycisk OK.

Dodawanie funkcji do usługi w celu wywołania GetCustomers i GetOrders metody w danych dostępu do warstwy

Teraz, kiedy warstwa dostępu do danych zawiera metody, które zwracają dane, należy utworzyć metody w usłudze danych do wywołania metody w warstwie dostępu do danych.

[!UWAGA]

C# projektów, należy dodać odwołanie do System.Data.DataSetExtensions zestawu dla następującego kodu, aby skompilować.

Aby utworzyć funkcji GetCustomers i GetOrders w usłudze danych

  1. W usługi danych projektu, kliknij dwukrotnie IService1.vb lub IService1.cs.

  2. Dodaj następujący kod w obszarze swoje działania usługi w tym miejscu Dodaj komentarz:

    <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. Usługi danych projektu kliknij dwukrotnie Service1.vb (lub Service1.cs).

  4. Dodaj następujący kod do klasy 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. W menu Kompilacja kliknij Kompiluj rozwiązanie.

Tworzenie warstwy prezentacji, aby wyświetlić dane z usługi danych

Teraz, kiedy to rozwiązanie zawiera usługę danych, która zawiera metody odwołujące się do warstwy dostępu do danych, należy utworzyć inny projektu, telefonicznie w ramach usługi danych i przedstawiają dane do użytkowników.Dla tej procedury tworzenia aplikacji Windows Forms; jest to warstwy prezentacji n warstwowa aplikacji.

Aby utworzyć projekt warstwy prezentacji

  1. Z pliku menu, Dodaj nowy projekt do rozwiązania NTierWalkthrough.

  2. W Nowy projekt dialogowym typy projektów okienku kliknij Windows.W Szablony okienku kliknij aplikacji programu Windows Forms.

  3. Nadaj nazwę projektowi PresentationTier, a następnie kliknij przycisk OK.

  4. Projekt PresentationTier jest tworzony i dodawany do rozwiązania NTierWalkthrough.

Ustawienia projektu PresentationTier jako projekt startowy

Warstwa prezentacji jest aplikacji klienckiej rzeczywista, która służy do prezentowania i interakcję z danymi, należy ustawić projektu PresentationTier jako projekt startowy.

Aby ustawić jako projekt startowy nowy projekt warstwy prezentacji

  • W Eksploratora rozwiązań, kliknij prawym przyciskiem myszy PresentationTier i kliknij przycisk ustawiony jako projekt startowy.

Dodawanie odwołania do warstwy prezentacji

Aplikacja kliencka PresentationTier wymaga usługi odwołanie do usługi danych, aby uzyskać dostęp do metod w usłudze.Ponadto odwołanie do zestawu danych są wymagane do włączenia typu udostępnianie przez usługę WCF.Dopóki nie zostanie włączone udostępnianie za pośrednictwem usługi danych typu, kod dodawane do klasy częściowy zestaw danych nie będzie dostępny do warstwy prezentacji.Ponieważ zazwyczaj kodu, takich jak sprawdzanie poprawności są dodawane do wierszy i kolumn, zmienianie zdarzenia w tabeli danych, istnieje duże prawdopodobieństwo, czy można uzyskać dostęp do tego kodu z klienta.

Aby dodać odwołanie do warstwy prezentacji

  1. W Eksploratora rozwiązań, kliknij prawym przyciskiem myszy PresentationTier i kliknij przycisk Dodaj odwołanie.

  2. W Dodaj odwołanie okno dialogowe, kliknij przycisk projektów karty.

  3. Wybierz DataEntityTier i kliknij przycisk OK.

Aby dodać usługi odwołanie do warstwy prezentacji

  1. W Eksploratora rozwiązań, kliknij prawym przyciskiem myszy PresentationTier i kliknij przycisk Dodaj odwołanie do usługi.

  2. W Dodaj odwołanie do usługi okno dialogowe, kliknij przycisk Discover.

  3. Wybierz Service1 i kliknij przycisk OK.

    [!UWAGA]

    Jeśli masz wiele usług na bieżącym komputerze, wybierz utworzony wcześniej w tej procedury (usługa zawiera metody GetCustomers i GetOrders) usługi.

Dodawanie DataGridViews do formularza w celu wyświetlania danych zwróconych przez usługę danych

Po dodaniu odwołanie do usługi z usługą danych źródła danych okna jest automatycznie wypełniane z danymi, który jest zwracany przez usługę.

Można dodać danych dotyczących dwóch powiązanych DataGridViews z formularza

  1. W Eksploratora rozwiązań, wybierz projekt PresentationTier.

  2. W źródła danych okna, rozwiń węzeł NorthwindDataSet i zlokalizować klienci węzła.

  3. Przeciągnij klienci węzła na Form1.

  4. W źródła danych okna, rozwiń węzeł klienci węzła i zlokalizować pokrewny zamówienia węzła ( zamówienia zagnieżdżonego węzła w klienci węzła).

  5. Przeciągnij pokrewny zamówienia węzła na Form1.

  6. Utwórz Form1_Load obsługi zdarzeń, klikając dwukrotnie pusty obszar formularza.

  7. Dodaj następujący kod do Form1_Load program obsługi zdarzeń.

    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());
    

Maksymalny dopuszczalny rozmiar wiadomości przez usługę zwiększenie

Ponieważ usługa zwraca dane z tabel Klienci i zamówienia, wartość domyślną dla maxReceivedMessageSize nie jest wystarczający do przechowywania danych i musi być zwiększony.Dla tej procedury zostanie Zmień wartość na 6553600.Zostanie Zmień wartość na kliencie, a to automatycznie aktualizuje odwołanie do usługi.

[!UWAGA]

Domyślny rozmiar mniejszy ma na celu ograniczenie zagrożeń na ataki (DoS).Aby uzyskać więcej informacji, zobacz MaxReceivedMessageSize.

Aby zwiększyć wartość maxReceivedMessageSize

  1. W Eksploratora rozwiązań, kliknij dwukrotnie plik app.config w projekcie PresentationTier.

  2. Zlokalizuj maxReceivedMessage rozmiaru atrybutu i zmień wartość na 6553600.

Testowanie aplikacji

Uruchom aplikację.Dane są pobierane z usługi danych i wyświetlane w formularzu.

Aby przetestować aplikację

  1. Naciśnij F5.

  2. Dane z tabel Klienci i zamówienia jest pobierana z usługi danych i wyświetlane w formularzu.

Następne kroki

W zależności od potrzeb aplikacji istnieje kilka kroków, które chcesz wykonać po zapisaniu powiązane dane w aplikacji opartych na systemie Windows.Na przykład można utworzyć następujące rozszerzenia w tej aplikacji:

Zobacz też

Inne zasoby

Praca z zestawami danych w aplikacjach warstwowych

Hierarchiczna aktualizacja

Uzyskiwanie dostępu do danych w Visual Studio