|
Na początku napisane bzdury Na podstawie. Architekturę .NET o trzech warstwach można podzielić na następujące warstwy: warstwę Data Linq, warstwę dostępu do danych, warstwę logiki biznesowej oraz warstwę prezentacji. Symbole strzałek na Rysunku 1 poniżej ilustrują interakcję między warstwami: warstwa dostępu do danych odnosi się do warstwy Data LINQ; Warstwa logiki biznesowej odnosi się do warstwy dostępu do danych oraz klas encji w warstwie Data LINQ. Warstwa prezentacji odnosi się do warstwy logiki biznesowej oraz klas encji w warstwie Data LINQ. Warstwa Data LINQ obejmuje głównie klasy encji i klasy kontekstu danych. Zazwyczaj klasa encji dotyczy jednej tabeli w bazie danych. Możemy tworzyć instancje klas encji przenoszonych między różnymi warstwami jako obiekty danych.
Rysunek 1 Architektura trójwarstwowa LINQ do SQL Poniżej znajduje się przykład okna logowania podczas tworzenia projektu wprowadzającego trójwarstwową architekturę rozwoju LINQ do SQL Preparat 1. Po pierwsze, potrzebujesz bazy danych i tabeli danych do przechowywania nazwy użytkownika i hasła osoby zalogowanej. Tutaj używa się bazy danych SQL Server 2005. Struktura tabeli bazy danych pokazana jest na Rysunku 2.
Rysunek 2 Tabela użytkowników bazy danych 2. Otwórz VS i stwórz nowy projekt ---> innych typach projektów---> rozwiązania Visual Studio---> puste rozwiązania. Jak pokazano na Rysunku 3. (Tutaj używa się Visual Studio 2008)
Rysunek 3 Stwórz puste rozwiązanie 3. Dodaj bibliotekę klas. Kliknij prawym przyciskiem myszy na nowo utworzone rozwiązanie w Eksploratorze rozwiązań---> ---> nowy projekt ---> bibliotekę klasową. Jak pokazano na Rysunku 4. Ta sama metoda wymaga dodania trzech bibliotek: BLL, DAL i DataLinq, oraz aplikacji Windows Forms (jeśli to aplikacja webowa, wybierz ASP.NET aplikacji webowej) i nazwania jej UI.
Rysunek 4 Dodaj projekt biblioteczny Struktura po dodaniu jest przedstawiona na rysunku 5. Jednocześnie kliknij prawym przyciskiem myszy na UI i ustaw UI jako element startowy.
Rysunek 5 Diagram struktury projektu Dodaj cytat W Solution Explorer dodaj odwołania do każdego poziomu. Warstwa BLL Wybierz Referencje --->kliknij prawym przyciskiem ---> dodaj referencje. Jak pokazano na Rysunku 6. Dodaj odwołanie do System.Data.Linq. Jednocześnie, zgodnie z relacją między warstwami pokazanymi na Rysunku 1 powyżej, dodaj odniesienia do projektów do DAL i DataLinq. Podobnie warstwa DAL dodaje odniesienia do projektów do System.Data.Linq i DataLinq, warstwa DataLinq do System.Data.Linq, a warstwa UI dodaje odwołania do System.Data.Linq oraz odniesienia do projektów BLL i DataLinq.
Rysunek 6 Dodaj odniesienia do projektów Jak dotąd ustanowiono architekturę trójpoziomową. Poniżej należy dodać odpowiadające im klasy do każdej warstwy. 1. Najpierw warstwa DataLinq. Kliknij prawym przyciskiem myszy DataLinq---> dodaj ---> nowy projekt---> wybierz klasę LINQ do SQL, jak pokazano na Rysunku 7.
Rysunek 7 Dodanie LINQ do klasy SQL 2. Po zakończeniu dodania automatycznie zostanie utworzony pusty projektant (plik .dbml) z linkiem do Server Explorer, a także powiązany plik dbml.layout (plik XML) i designer.cs plik. Otwórz Eksploratora Serwera i nawiąz link do bazy danych.
Rysunek 8 Open Server Explorer 3. Połącz się z bazą danych. Wybierz narzędzie ---> dodaj bazę danych. Jak pokazano na rysunku 9. Wybierz nowo utworzoną bazę danych i określ bazę połączeń. W tym momencie baza danych pojawi się w Eksploratorze serwerów.
4. Wybierz użytkownika tabeli danych, którego chcesz użyć, przeciągnij go i upuść na projektanta, jak pokazano na rysunku 10 poniżej. Zapisz plik. Obecnie klasy DataContext oraz klasy encji o powiązanych właściwościach, metodach i metodach zostały automatycznie wygenerowane.
Rysunek 10 Klasa użytkownika Dodaj warstwy kodu Warstwa DAL Stwórz nową klasę UserDAL i dodaj poniższy kod //UserDAL.cs używając DataLinq; używając System.Data.Linq;
przestrzeń nazw DAL
{ klasa publiczna UserDAL { private DataLinq.DBLinqDataContext objDataContext = new DataLinq.DBLinqDataContext();
publiczny User SelectRecordByID (string userid) { spróbuj { return (z u w objDataContext.User gdzie u.Id === userid select u). Single(); } złapanie (Wyjątek ex) { Rzuć ex; } } }
}
Warstwa BLL Stwórz nową klasę UserBLL i dodaj następujący kod //UserBLL.cs używając System.Data.Linq; używając DataLinq;
przestrzeń nazw BLL
{ klasa publiczna UserBLL { szeregowy DAL. UserDAL objUserDAL = nowy DAL. UserDAL();
publiczny User SelectRecordByID (string userid) { return objUserDAL.SelectRecordByID(userid); } }
}
Kod warstwy UI //LoginForm.cs szeregowy BLL. UserBLL objUserBLL = nowy BLL. UserBLL();
private void btnSubmit_Click(object sender, EventArgs e) { string id = txtId.Text.Trim(); string psd = txtPsd.Text.Trim();
User localDataTable = objUserBLL.SelectRecordByID(id);
if (localDataTable != null & localDataTable.Psd == psd) { MessageBox.Show ("Sukces"); } else { MessageBox.Show ("false"); } }
W tym momencie kod interfejsu logowania jest ukończony. Możesz go uruchomić, żeby zobaczyć efekt.
|