|
Hölynpölyä kirjoitettuna edessä Perustuu siihen. .NET:n kolmitasoinen arkkitehtuuri voidaan jakaa seuraaviin kerroksiin: Data Linq -kerros, tiedonhakukerros, liiketoimintalogiikkakerros ja esityskerros. Alla olevassa kuvassa 1 olevat nuolisymbolit havainnollistavat kerrosten välistä vuorovaikutusta: tietojen käyttökerros viittaa Data LINQ -kerrokseen; Liiketoimintalogiikkakerros viittaa datan käyttökerrokseen ja entiteettiluokkiin Data LINQ -kerroksessa. Esityskerros viittaa liiketoimintalogiikkakerrokseen sekä Data LINQ -kerroksen entiteettiluokkiin. Data LINQ -kerros sisältää pääasiassa entiteettiluokat ja Data Context -luokat. Tyypillisesti entiteettiluokka on yksi taulu tietokannassa. Voimme luoda entiteettiluokkien instansseja, jotka siirretään eri kerrosten välillä dataobjekteina.
Kuva 1 LINQ:sta SQL:ään kolmitasoinen arkkitehtuuri Seuraavassa on esimerkki kirjautumisikkunasta, kun luodaan projekti, jolla esitellään LINQ:n kolmitasoinen arkkitehtuurin kehitys SQL:ään Valmistelu 1. Ensiksi tarvitset tietokannan ja tietotaulukon, johon tallennetaan kirjautuneen henkilön käyttäjätunnus ja salasana. Tässä käytetään SQL Server 2005 -tietokantaa. Tietokantataulukon rakenne on esitetty kuvassa 2.
Kuva 2 Tietokannan käyttäjätaulukko 2. Avaa VS ja luo uusi projekti ---> muita projektityyppejä---> Visual Studio -ratkaisuja---> tyhjiä ratkaisuja. Kuten kuvassa 3 näkyy. (Tässä käytetään Visual Studio 2008:aa)
Kuva 3 Luo tyhjä ratkaisu 3. Lisää luokkakirjasto. Napsauta hiiren oikealla Solution Explorerissa uutta ratkaisua ---> lisää ---> uusi projekti ---> luokkakirjasto. Kuten kuvassa 4 näkyy. Sama menetelmä vaatii kolmen kirjaston, BLL:n, DAL:n ja DataLinq:n, sekä Windows Forms -sovelluksen lisäämisen (jos kyseessä on web-sovelluskehitys, valitse ASP.NET Web-sovellus) ja nimen se UI.
Kuva 4 Lisää kirjastoprojekti Lisäyksen jälkeinen rakenne on esitetty kuvassa 5. Samaan aikaan napsauta käyttöliittymää hiiren oikealla painikkeella ja aseta käyttöliittymä julkaisukohteeksi.
Kuva 5 Projektin rakennekaavio Lisää lainaus Lisää Solution Explorerissa viittaukset jokaiseen tasoon. BLL-kerros Valitse viittaukset --->hiiren oikea klikkaus ---> lisää viitteet. Kuten kuvassa 6 näkyy. Lisää viittaus System.Data.Linq-tiedostoon. Samaan aikaan, kuvassa 1 esitettyjen kerrosten välisen suhteen mukaisesti, lisää projektiviittaukset DAL:iin ja DataLinqiin. Samalla tavalla DAL-kerros lisää projektiviittaukset System.Data.Linq- ja DataLinq-tiedostoihin, DataLinq-kerros lisää viittauksia System.Data.Linqiin ja UI-kerros lisää viittauksia System.Data.Linqiin sekä projektiviittauksia LL:ään ja DataLinq'iin.
Kuva 6 Lisää projektiviittaukset Tähän mennessä on perustettu kolmitasoinen arkkitehtuuri. Seuraavaksi lisätään niiden vastaavat luokat jokaiseen kerrokseen. 1. Ensiksi DataLinq-kerros. Napsauta hiiren oikealla DataLinq---> lisää ---> uusi projekti---> valitse LINQ to SQL -luokka, kuten kuvassa 7 näkyy.
Kuva 7 LINQ:n lisääminen SQL-luokkaan 2. Lisäyksen jälkeen luodaan automaattisesti tyhjä suunnittelija (.dbml-tiedosto), jossa on linkki Server Exploreriin sekä siihen liittyvä dbml.layout-tiedosto (XML-tiedosto) ja designer.cs-tiedosto. Avaa Server Explorer ja luo linkki tietokantaan.
Kuva 8 Open Server Explorer 3. Yhdistä tietokantaan. Valitse työkalu ---> lisää tietokanta. Kuten kuvassa 9 näkyy. Valitse uusi tietokanta ja määritä yhteystietokanta. Tässä vaiheessa tietokanta ilmestyy Server Explorerissa.
4. Valitse datataulukko, jota haluat käyttää, raahaa ja pudota se suunnittelijalle, kuten alla olevassa kuvassa 10 näkyy. Tallenna tiedosto. Nyt DataContext-luokat ja entiteettiluokat, joilla on siihen liittyviä ominaisuuksia, metodeja ja metodeja, on luotu automaattisesti.
Kuva 10 Käyttäjäluokka Lisää koodin kerroksia DAL-kerros Luo uusi UserDAL-luokka ja lisää seuraava koodi //UserDAL.cs käyttämällä DataLinqia; käyttäen System.Data.Linq-tiedostoa;
nimiavaruus DAL
{ julkinen luokka UserDAL { private DataLinq.DBLinqDataContext objDataContext = new DataLinq.DBLinqDataContext();
julkinen käyttäjä SelectRecordByID (merkkijono userid) { yritä { return (from u in objDataContext.User missä u.Id == userid valitse u). Single(); } catch (poikkeus esim.) { heitä ex; } } }
}
BLL-kerros Luo uusi UserBLL-luokka ja lisää seuraava koodi //UserBLL.cs käyttäen System.Data.Linq-tiedostoa; käyttämällä DataLinqia;
nimiavaruus BLL
{ julkinen luokka UserBLL { yksityinen DAL. UserDAL objUserDAL = uusi DAL. UserDAL();
julkinen käyttäjä SelectRecordByID (merkkijono userid) { return objUserDAL.SelectRecordByID(userid); } }
}
UI-kerroksen koodi //LoginForm.cs yksityinen BLL. UserBLL objUserBLL = uusi BLL. UserBLL();
private void btnSubmit_Click(objektilähettäjä, EventArgs e) { string id = txtId.Text.Trim(); merkkijono psd = txtPsd.Text.Trim();
Käyttäjä localDataTable = objUserBLL.SelectRecordByID(id);
if (localDataTable != null && localDataTable.Psd == psd) { MessageBox.Show ("Menestys"); } else { MessageBox.Show ("väärin"); } }
Tässä vaiheessa kirjautumisrajapinnan koodi on valmis. Voit ajaa sen nähdäksesi vaikutuksen.
|