Instruktaż: Tworzenie aplikacji wielowarstwowej danych
N-warstwowa dane aplikacji to aplikacje, które dostęp do danych i są podzielone na wiele warstw logicznych, lub poziomów.Oddzielanie składników aplikacji do warstw dyskretnego zwiększa łatwość konserwacji i skalowalność aplikacji.Odbywa się to poprzez umożliwienie łatwiejsze stosowania nowych technologii, które można stosować na jednym szczeblu bez konieczności wprowadzanie zmian w projekcie całe rozwiązanie.N-warstwowa architektura zawiera Warstwa prezentacji, pośrednią, a poziom danych.Warstwa środkowa zazwyczaj zawiera Warstwa dostępu do danych, warstwę logiki biznesowej i współużytkowanych składników, takich jak uwierzytelnianie i sprawdzanie poprawności.Warstwy danych zawiera relacyjnej bazy danych.N warstwowych aplikacji zwykle przechowywać poufne informacje w warstwie dostępu do danych z warstwy środkowej w celu utrzymania odizolowanie od użytkowników końcowych, którzy uzyskują dostęp Warstwa prezentacji.Aby uzyskać więcej informacji, zobacz Omówienie aplikacji danych wielowarstwowej.
Jednym ze sposobów rozdzielić różne warstwy w aplikacji wielowarstwowej jest utworzenie discrete projektów, dla każdej warstwy, które mają zostać uwzględnione w aplikacji.Wpisane zestawów danych zawierają DataSet Project właściwość określa, które projekty wygenerowanego zestawu danych i TableAdapter kod należy przejść do.
W tym instruktażu przedstawiono jak oddzielić zestawu danych i TableAdapter kod w projektach biblioteki klas dyskretne przy użyciu Projektanta zestawów danych.Po częoci pola zestawu danych i kod TableAdapter spowoduje utworzenie Usług Windows Communication Foundation i usług WCF w danych w programie Visual Studio usługi poddać w warstwie dostępu do danych.Wreszcie utworzysz aplikację Windows Forms jako Warstwa prezentacji.Ta warstwa uzyskuje dostęp do danych z usługi danych.
Podczas tej procedury będzie wykonywać następujące czynności:
Utwórz nowe rozwiązanie wielowarstwowej, która będzie zawierać wiele projektów.
Dwóch projektach biblioteki klas należy dodać do roztworu n warstwowa.
Tworzenie zestawu danych wpisywanych przy użyciu Kreatora konfiguracji źródła danych.
Oddzielić wygenerowanej TableAdapters i kod zestawu danych do dyskretnych projektów.
Tworzenie usługi Windows Communication Foundation (WCF) poddać w warstwie dostępu do danych.
Tworzyć funkcje w usłudze, aby pobierać dane z warstwy dostępu do danych.
Utwórz aplikację Windows Forms, aby służyć jako Warstwa prezentacji.
Tworzenie kontrolek Windows Forms, które są powiązane ze źródłem danych.
Pisanie kodu do wypełniania tabel danych.
Wideo wersję tego tematu, zobacz wideo jak: Tworzenie aplikacji wielowarstwowej danych.
Wymagania wstępne
Do przeprowadzenia tego instruktażu, niezbędne są:
- Dostęp do przykładowej bazy danych Northwind.Aby uzyskać więcej informacji, zobacz Jak: Instalowanie przykładowe bazy danych.
Tworzenie roztwór N-warstwowa i Biblioteka klas, do przechowywania zestawu danych (DataEntityTier)
Pierwszym krokiem w tym instruktażu jest utworzenie rozwiązania i dwóch projektach biblioteki klas.Pierwszej klasy biblioteki odbędzie się zestaw danych (wygenerowanej wpisany klasa DataSet i DataTables, która będzie przechowywać danych aplikacji).Ten projekt jest używany jako warstwa encji danych aplikacji i znajduje się w warstwie środkowej.Tworzenie i edytowanie wpisanych zestawów danych Jest używana do tworzenia początkowego zestawu danych i automatycznie rozdzielić kod do bibliotek dwóch klas.
[!UWAGA]
Należy koniecznie poprawnie nazwę projektu i rozwiązania, przed kliknięciem przycisku OK.W ten sposób będzie łatwiejsze do wykonania tej procedury.
Do tworzenia n warstwowa rozwiązanie i Biblioteka klas DataEntityTier
Z pliku menu, utworzenie nowego projektu.
[!UWAGA]
Projektanta zestawów danych jest obsługiwana w Visual Basic i projektów języka C#.Tworzenie nowego projektu w jednym z tych języków.
W Nowy projekt dialogowe, w typów projektu w okienka, kliknij przycisk systemu Windows.
Kliknij przycisk Biblioteka klas szablonu.
Nazwa projektu DataEntityTier.
Nazwa rozwiązania NTierWalkthrough.
Kliknij przycisk OK.
Roztwór NTierWalkthrough, który zawiera projekt DataEntityTier jest tworzony i dodawany do Solution Explorer.
Tworzenie biblioteki klas do przechowywania TableAdapters (DataAccessTier)
Następnym krokiem po utworzeniu projektu DataEntityTier jest utworzenie innego projektu biblioteki klas.Ten projekt będzie przechowywać wygenerowanej TableAdapters i nosi nazwę Warstwa dostępu do danych aplikacji.W warstwie dostępu do danych zawiera informacje, które jest wymagane do połączenia z bazą danych i znajduje się w warstwie środkowej.
Aby utworzyć nową bibliotekę klas dla TableAdapters
Z pliku menu, dodać nowy projekt do roztworu NTierWalkthrough.
W Nowy projekt dialogowe, w Szablony okienka, kliknij przycisk Biblioteka klas.
Nazwa projektu DataAccessTier, a następnie kliknij przycisk OK.
Projekt DataAccessTier jest tworzony i dodawany do roztworu NTierWalkthrough.
Tworzenie zestawu danych
Następnym krokiem jest utworzenie zestawu danych wpisywanych.Wpisane zestawów danych są tworzone za pomocą obu klasa dataset (łącznie z klasami DataTables) i TableAdapter klas w jednym projekcie.(Wszystkie klasy są generowane w jednym pliku). Kiedy oddzielić zestawu danych i TableAdapters w różnych projektach, jest klasa zestawu danych, która zostanie przeniesiony do innego projektu, pozostawiając TableAdapter klas w oryginalnym pliku projektu.W związku z tym, utworzyć zestaw danych w projekcie, które ostatecznie będą zawierać TableAdapters (projektu DataAccessTier).Użytkownik utworzy zestaw danych za pomocą Kreatora konfiguracji źródła danych.
[!UWAGA]
Musi mieć dostęp do przykładowej bazy danych Northwind do utworzenia połączenia.Aby uzyskać informacje o sposobach konfigurowania przykładowej bazy danych Northwind, zobacz Jak: Instalowanie przykładowe bazy danych.
Aby utworzyć zestaw danych
Kliknij przycisk DataAccessTier w Eksplorator.
Na danych menu, kliknij przycisk Pokaż źródła danych.
W Źródła danych okno, kliknij przycisk Dodać nowe źródło danych zacząć Kreatora konfiguracji źródła danych.
Na Wybierz typ źródła danych strona, kliknij przycisk bazy danych a następnie kliknij przycisk Dalej.
Na Wybieranie połączenia danych strona, wykonaj jedną z następujących czynności:
Jeśli połączenie danych z przykładowej bazy danych Northwind jest dostępne na liście rozwijanej, należy go kliknąć.
-lub-
Kliknij przycisk Nowego połączenia otworzyć Dodawanie połączenia okno dialogowe.Aby uzyskać więcej informacji, zobacz Dodawanie/modyfikowanie połączeń, okno dialogowe (Ogólne).
Jeśli baza danych wymaga podania hasła, wybierz opcję, aby zawierać poufne dane, a następnie kliknij przycisk Dalej.
[!UWAGA]
W przypadku wybrania pliku lokalnej bazy danych (zamiast podłączania do programu SQL Server) może zostać poproszony, jeśli chcesz dodać plik do projektu.Kliknij przycisk Tak Aby dodać plik bazy danych do projektu.
Kliknij przycisk Dalej na Zapisać pliku konfiguracyjnego aplikacji ciągu połączenia strony.
Rozwiń węzeł tabele węzła na Wybierz obiekty bazy danych użytkownika strony.
Kliknij pola wyboru dla Klienci i zamówienia tabele, a następnie kliknij przycisk Zakończ.
NorthwindDataSet jest dodawany do projektu DataAccessTier i pojawia się w Źródła danych okna.
Oddzielenie TableAdapters z zestawu danych
Po utworzeniu zestawu danych, należy oddzielić klasy wygenerowany zestaw danych z TableAdapters.Możesz to zrobić przez ustawienie Zestawu danych projektu właściwość, aby nazwa projektu, w którym chcesz przechowywać oddzielone się klasa dataset.
Aby rozdzielić TableAdapters z zestawu danych
Kliknij dwukrotnie NorthwindDataSet.xsd w Solution Explorer Aby otworzyć element dataset w Projektanta zestawów danych.
Kliknij pusty obszar w projektancie.
Zlokalizuj Zestawu danych projektu węzeł w Właściwości okna.
W Zestawu danych projektu kliknij, DataEntityTier.
W menu Kompilacja kliknij Kompiluj rozwiązanie.
Zestaw danych i TableAdapters są podzielone na dwie klasy projektach biblioteki.Projekt, który początkowo teraz zawierał całego zestawu danych (DataAccessTier) zawiera tylko TableAdapters.Projekt wyznaczonej w Zestawu danych projektu właściwość (DataEntityTier) zawiera zestaw danych wpisywanych: NorthwindDataSet.Dataset.Designer.vb (lub NorthwindDataSet.Dataset.Designer.cs).
[!UWAGA]
Kiedy oddzielenia zestawów danych i TableAdapters (przez ustawienie Zestawu danych projektu właściwość), istniejących klas częściowego zestawu danych w projekcie nie zostaną automatycznie przeniesione.Istniejących klas częściowego zestawu danych, należy ręcznie przenieść do projektu zestawu danych.
Tworzenie nowej aplikacji usługi
Ponieważ w tym instruktażu przedstawiono sposób dostępu do warstwy dostępu do danych przy użyciu usługi WCF, Utwórz nową aplikację usługi WCF.
Aby utworzyć nową aplikację usługi WCF
Z pliku menu, dodać nowy projekt do roztworu NTierWalkthrough.
W Nowy projekt dialogowe, w typów projektu w okienka, kliknij przycisk WCF.W Szablony okienka, kliknij przycisk Biblioteka usług WCF.
Nazwa projektu usługi danych, a następnie kliknij przycisk OK.
Projekt usługi danych jest tworzony i dodawany do roztworu NTierWalkthrough.
Tworzenie metod w warstwie dostępu do danych do zwracania danych zamówień i klientów
Usługa danych ma do wywołania dwóch metod w warstwie dostępu do danych: GetCustomers i GetOrders.Te metody zwróci tabel Northwind klienci i zamówienia.Tworzenie metod GetCustomers i GetOrders w projekcie DataAccessTier.
Aby utworzyć metodę w warstwie dostępu do danych, która zwraca tabelę Kontrahenci
W Solution Explorer, kliknij dwukrotnie NorthwindDataset.xsd, aby otworzyć element dataset w Tworzenie i edytowanie wpisanych zestawów danych.
Kliknij prawym przyciskiem myszy CustomersTableAdapter, a następnie kliknij przycisk Dodaj zapytanie otworzyć Kreator konfiguracji kwerendy TableAdapter.
Na Wybierz typ polecenia strona, pozostaw wartość domyślną z instrukcji SQL użyj i kliknij przycisk Dalej.
Na Wybierz typ kwerendy strona, pozostaw wartość domyślną z Wybierz, które zwraca wiersze i kliknij przycisk Dalej.
Na Określ instrukcję SQL SELECT , pozostawić domyślne zapytanie a kliknij przycisk Dalej.
Na Wyboru metod do generowania stronie, wpisz GetCustomers dla Nazwa metody w zwraca element DataTable sekcji.
Kliknij Zakończ.
Aby utworzyć metodę w warstwie dostępu do danych, która zwraca tabelę zamówienia
Kliknij prawym przyciskiem myszy OrdersTableAdapter, a następnie kliknij przycisk Dodaj zapytanie.
Na Wybierz typ polecenia strona, pozostaw wartość domyślną z instrukcji SQL użyj i kliknij przycisk Dalej.
Na Wybierz typ kwerendy strona, pozostaw wartość domyślną z Wybierz, które zwraca wiersze i kliknij przycisk Dalej.
Na Określ instrukcję SQL SELECT , pozostawić domyślne zapytanie a kliknij przycisk Dalej.
Na Wyboru metod do generowania stronie, wpisz GetOrders dla Nazwa metody w zwraca element DataTable sekcji.
Kliknij Zakończ.
W menu Kompilacja kliknij Kompiluj rozwiązanie.
Dodawanie warstwy dostępu do danych i odniesienie do jednostki danych do usługi danych
Ponieważ usługa danych wymaga informacje z zestawu danych i TableAdapters, dodać odwołania do projektów DataEntityTier i DataAccessTier.
Aby dodać odwołanie do usługi danych
Kliknij prawym przyciskiem myszy usługi danych w Solution Explorer i kliknij przycisk Dodaj odwołanie.
Kliknij przycisk Projekty kartę w Dodaj odwołanie okno dialogowe.
Zaznacz oba DataAccessTier i DataEntityTier projektów.
Kliknij przycisk OK.
Dodawanie funkcji do usługi, aby wywołać GetCustomers i GetOrders metody w warstwie dostępu do danych
Teraz, że w warstwie dostępu do danych zawiera metody, aby zwrócić dane, należy utworzyć metody w usłudze danych wywoływania ich w warstwie dostępu do danych.
[!UWAGA]
W przypadku C# projektów, należy dodać odwołanie do System.Data.DataSetExtensions zestawu dla następujący kod do kompilowania.
Aby utworzyć funkcji GetCustomers i GetOrders w usłudze danych
W usługi danych projektu, kliknij dwukrotnie IService1.vb lub IService1.cs.
Dodaj następujący kod w obszarze dodać swoje działania usługi, w tym miejscu 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();
W projekcie usługi danych kliknij dwukrotnie Service1.vb (lub Service1.cs).
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(); }
W menu Kompilacja kliknij Kompiluj rozwiązanie.
Tworzenie warstwy prezentacji do wyświetlania danych z usługi danych
Teraz, że to rozwiązanie nie zawiera usługi danych, która zawiera metody, które wywołują w warstwie dostępu do danych, należy utworzyć następny projekt, który telefonicznie do usługi danych i prezentować dane użytkownikom.Do wykonania tej procedury należy utworzyć aplikację Windows Forms; jest to warstwa prezentacji aplikacji wielowarstwowej.
Aby utworzyć projekt warstwy prezentacji
Z pliku menu, dodać nowy projekt do roztworu NTierWalkthrough.
W Nowy projekt dialogowe, w typów projektu w okienka, kliknij przycisk systemu Windows.W Szablony okienka, kliknij przycisk Aplikacji Windows Forms.
Nazwa projektu PresentationTier, a następnie kliknij przycisk OK.
Projekt PresentationTier jest tworzony i dodawany do roztworu NTierWalkthrough.
Ustawianie projektu PresentationTier jako projekt uruchamiania
Warstwa prezentacji jest aplikacja kliencka rzeczywisty, który jest używany do prezentowania i interakcję z danymi, dlatego należy ustawić projekt PresentationTier były projekt uruchamiania.
Aby ustawić nowy projekt warstwy prezentacji jako projekt uruchamiania
- W Solution Explorer, kliknij prawym przyciskiem myszy PresentationTier i kliknij przycisk jako projekt uruchamiania.
Dodawanie odwołania do Warstwa prezentacji
Aplikacja kliencka PresentationTier wymaga odwołania usługi do usługi danych, aby uzyskać dostęp do metod w usłudze.Dodatkowo odwołanie do zestawu danych jest wymagane Aby włączyć udostępnianie przez usługi WCF typ.Dopóki nie włączysz udostępnianie za pośrednictwem usługi danych typu kodu dodawane do klasy częściowy zestaw danych nie będą dostępne dla Warstwa prezentacji.Ponieważ zazwyczaj dodaje kod, takich jak sprawdzanie poprawności wiersza i kolumny nagłe wydarzenia tabelę danych, istnieje prawdopodobieństwo, że możesz uzyskać dostęp do tego kodu z klienta.
Aby dodać odwołanie do Warstwa prezentacji
W Solution Explorer, kliknij prawym przyciskiem myszy PresentationTier i kliknij przycisk Dodaj odwołanie.
W Dodaj odwołanie okno dialogowe, kliknij przycisk Projekty kartę.
Wybierz DataEntityTier i kliknij przycisk OK.
Aby dodać odwołanie usługi do Warstwa prezentacji
W Solution Explorer, kliknij prawym przyciskiem myszy PresentationTier i kliknij przycisk Dodać odwołanie do usługi.
W Dodać odwołanie do usługi okno dialogowe, kliknij przycisk Discover.
Wybierz Service1 i kliknij przycisk OK.
[!UWAGA]
Jeśli masz wiele usług na bieżącym komputerze, zaznacz usługę, utworzony wcześniej w tym instruktażu (usługa zawiera metody GetCustomers i GetOrders).
Dodawanie DataGridViews do formularza w celu wyświetlania danych zwróconych przez usługę danych
Po dodaniu odwołania usługi do usługi danych Źródła danych okna jest automatycznie wypełniana danych, który jest zwracany przez usługę.
Aby dodać dane dwa powiązane DataGridViews do formularza
W Solution Explorer, zaznacz projekt, PresentationTier.
W Źródła danych okna, rozwiń węzeł NorthwindDataSet i zlokalizuj Klienci węzła.
Przeciągnij Klienci węzła na formularzu Form1.
W Źródeł danych okna, rozwiń węzeł Klienci węzła i zlokalizuj pokrewne zamówień węzła ( zamówień węzeł zagnieżdżonego w Klienci węzła).
Przeciągnij pokrewne zamówienia węzła na formularzu Form1.
Tworzenie Form1_Load programu obsługi zdarzeń, klikając dwukrotnie pusty obszar formularza.
Dodaj następujący kod do Form1_Load programu 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());
Zwiększenie rozmiaru wiadomości maksimum dozwolone przez usługę
Ponieważ usługa zwraca dane z tabel Klienci i zamówienia, wartość domyślna dla maxReceivedMessageSize nie jest wystarczająco duży, aby pomieścić dane i musi zostać zwiększona.Do wykonania tej procedury będzie Zmień wartość na 6553600.Zmieni wartość na kliencie, a automatycznie zaktualizuje to odwołanie do usługi.
[!UWAGA]
Niższe domyślny rozmiar ma na celu ograniczenia narażenia na ataki wykorzystujące odmowę usługi (DoS).Aby uzyskać więcej informacji, zobacz MaxReceivedMessageSize.
W celu zwiększenia wartości maxReceivedMessageSize
W Solution Explorer, kliknij dwukrotnie plik app.config w projekcie PresentationTier.
Zlokalizuj maxReceivedMessage rozmiar atrybutu i zmień wartość, aby 6553600.
Testowanie aplikacji
Uruchom aplikację.Dane są pobierane z usługi danych i wyświetlana w formularzu.
Aby przetestować aplikację
Naciśnij klawisz F5.
Dane z tabel Klienci i zamówienia jest pobierana z usługi danych i wyświetlana w formularzu.
Następne kroki
W zależności od wymagań aplikacji istnieje kilka czynności, które użytkownik może wykonać po zapisaniu powiązanych danych w aplikacji opartych na systemie Windows.Na przykład można by następujące ulepszenia do tej aplikacji:
Dodawanie sprawdzania poprawności do zestawu danych.Aby uzyskać informacje, zobacz Instruktaż: Dodawanie sprawdzania poprawności danych aplikacji wielowarstwowej.
Dodać dodatkowe metody do usługi aktualizacji danych z powrotem do bazy danych.
Zobacz też
Koncepcje
Co nowego w projektowaniu danych aplikacji w Visual Studio 2012