|
Vrøvl skrevet foran Baseret på. Den tre-lags arkitektur i .NET kan opdeles i følgende lag: Data Linq-laget, dataadgangslaget, forretningslogiklaget og præsentationslaget. Pilsymbolerne i figur 1 nedenfor illustrerer interaktionen mellem lagene: dataadgangslaget refererer til Data LINQ-laget; Business Logic-laget refererer til dataadgangslaget og entitetsklasserne i Data LINQ-laget. Præsentationslaget refererer til forretningslogiklaget samt entitetsklasserne i Data LINQ-laget. Data LINQ-laget omfatter hovedsageligt entitetsklasser og Data Context-klasser. Typisk er en entitetsklasse for én tabel i databasen. Vi kan oprette instanser af entitetsklasser, der overføres mellem forskellige lag som dataobjekter.
Figur 1: LINQ til SQL tre-lags arkitektur Følgende er et eksempel på loginvinduet, når man opretter et projekt, for at introducere den tre-lags arkitekturudvikling af LINQ til SQL Præparation 1. Først skal du bruge en database og en datatabel til at gemme brugernavn og adgangskode på den indloggede person. Her bruges en SQL Server 2005-database. Databasetabelstrukturen vises i Figur 2.
Figur 2 Databasebrugertabel 2. Åbn VS og opret et nyt projekt ---> andre projekttyper---> Visual Studio-løsninger---> blanke løsninger. Som vist i Figur 3. (Visual Studio 2008 bruges her)
Figur 3 Opret en blank løsning 3. Tilføj et klassebibliotek. Højreklik på den nyoprettede løsning i Solution Explorer ---> tilføje ---> nyt projekt ---> klassebibliotek. Som vist i Figur 4. Den samme metode kræver tilføjelse af tre biblioteker, BLL, DAL og DataLinq, samt et Windows Forms-program (hvis det er en webapplikationsudvikling, vælg ASP.NET webapplikation) og navngiver det UI.
Figur 4 Tilføj et biblioteksprojekt Strukturen efter tilføjelsen vises i Figur 5. Samtidig højreklik på UI'en og sæt UI'en som launch-element.
Figur 5 Projektets strukturdiagram Tilføj et citat I Solution Explorer skal du tilføje referencer til hvert niveau. BLL lag Vælg referencer --->højreklik ---> tilføj referencer. Som vist i Figur 6. Tilføj en reference til System.Data.Linq. Samtidig, ifølge forholdet mellem lagene vist i figur 1 ovenfor, tilføj projektreferencer til DAL og DataLinq. På samme måde tilføjer DAL-laget projektreferencer til System.Data.Linq og DataLinq, DataLinq-laget tilføjer referencer til System.Data.Linq, og UI-laget tilføjer referencer til System.Data.Linq og projektreferencer til BLL og DataLinq.
Figur 6 Tilføj projektreferencer Indtil videre er der etableret en tre-niveaus arkitektur. Følgende er at tilføje deres tilsvarende klasser til hvert lag. 1. Først, DataLinq-laget. Højreklik på DataLinq---> tilføj ---> nyt projekt---> vælg LINQ to SQL-klassen, som vist i figur 7.
Figur 7 Tilføjelse af en LINQ til SQL-klassen 2. Når tilføjelsen er færdig, oprettes en tom designer (.dbml-fil) automatisk med et link til Server Explorer samt den tilhørende dbml.layout-fil (XML-fil) og designer.cs fil. Åbn Server Explorer og etabler et link til databasen.
Figur 8 Open Server Explorer 3. Forbind til databasen. Vælg værktøjet ---> tilføje database. Som vist i figur 9. Vælg den nyoprettede database og bestem forbindelsesdatabasen. På dette tidspunkt vil databasen vises i Server Explorer.
4. Vælg den datatabelbruger, du vil bruge, træk og slip den over i designeren, som vist i figur 10 nedenfor. Gem filen. Nu er DataContext-klasser og entitetsklasser med relaterede egenskaber, metoder og metoder automatisk genereret.
Figur 10 Brugerklasse Tilføj lag af kode DAL-lag Opret en ny UserDAL-klasse og tilføj følgende kode //UserDAL.cs ved brug af DataLinq; ved brug af System.Data.Linq;
navnerum DAL
{ offentlig klasse UserDAL { privat DataLinq.DBLinqDataContext objDataContext = ny DataLinq.DBLinqDataContext();
offentlig bruger SelectRecordByID (streng userid) { Prøv { return (fra u i objDataContext.User hvor u.Id == userid vælg u). Single(); } catch (Undtagelse f.eks.) { Kast eks; } } }
}
BLL lag Opret en ny UserBLL-klasse og tilføj følgende kode //UserBLL.cs ved brug af System.Data.Linq; ved brug af DataLinq;
navnerum BLL
{ offentlig klasse UserBLL { privat DAL. UserDAL objUserDAL = ny DAL. UserDAL();
offentlig bruger SelectRecordByID (streng userid) { return objUserDAL.SelectRecordByID(userid); } }
}
UI-lagkode //LoginForm.cs privat BLL. UserBLL objUserBLL = ny BLL. UserBLL();
privat void btnSubmit_Click(objektafsender, EventArgs e) { string id = txtId.Text.Trim(); string psd = txtPsd.Text.Trim();
Bruger localDataTable = objUserBLL.SelectRecordByID(id);
hvis (localDataTable != null && localDataTable.Psd == psd) { MessageBox.Show("Succes"); } ellers { MessageBox.Show("falsk"); } }
På dette tidspunkt er koden til login-grænsefladen færdig. Du kan køre det for at se effekten.
|