Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Troslojna arhitektura, da li je i saveti kako da poboljsam

[es] :: .NET :: .NET Desktop razvoj :: Troslojna arhitektura, da li je i saveti kako da poboljsam

[ Pregleda: 4180 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
109.94.104.*



+20 Profil

icon Troslojna arhitektura, da li je i saveti kako da poboljsam13.07.2010. u 02:34 - pre 167 meseci
Zanima me mishljenje nekoga ko ima iskustva sa ovim, da mi kaze shta je ono shto ne valja ili nedostaje.
Koncept je sledeci:
prvi sloj (DataTier) - klase Connection i TableAdapter.
Connection, ime govori sve za sebe. TableAdapter izvrshava operacije nad bazom(tabelom): insert, update, delete, select.
drugi sloj (Business tier) - S'obzirom da je radjeno za rad sa tabelama Student i Mesto, klase su sledece:
clsEntityStudent klasa koja sadrzi samo polja(atribute) koji opisuju studenta.
clsDbStudent - klasa koja poziva prvi sloj i prosledjuje upite koje prvi sloj izvrshava.
clsCollectionStudent - struktura u kojoj se chuvaju rezultati, ustvari je dataset, s'tim da kada se indeksira(pristupi preko indeksa) vraca tip clsEntityStudent.
clsAppStudent - klasa koju koristi GUI, preko nje se realizuje navigacija kroz kolekciju studenata, pozivaju operacije za azuriranje itd.

na isti fazon su pravljene i klase za tabelu Mesto.

treci sloj - Gui.

Sve ovo radi, ali me zanima da li je ispravno iz neke praktichne i teorijske perspektive.
Zanima me da li sam mozda iz srednjeg sloja trebao da izdvojim clsAppStudent kao zaseban sloj ?
Bilo kakav komentar i savet su dobrodosli.
Hvala unapred


Projekat:
SendSpace
Rapidshare
 
Odgovor na temu

mmwlada
Vladimir Milovanović
Web developer, U.S. Steel Serbia

Član broj: 99390
Poruke: 62
212.5.210.*

Sajt: www.tetraedar.net/mmwlada


+1 Profil

icon Re: Troslojna arhitektura, da li je i saveti kako da poboljsam10.08.2010. u 13:10 - pre 166 meseci
Za početak batali TableAdapter i Datasetove i preorijentiši se na EntityFramework. Mnogo je bolji od klasičnog ADO.NET-a.

E sad, što se tiče troslojne arhitekture. Tu imaš više različitih pristupa. Najbolje bi bilo da pogledaš malo po internetu na temu MVC, MVP... paterna, tj. uzora, ako ćemo srpski.

Kod MVC(Model-View-Controller) uzora se prave sledeći slojevi:
1. DataBroker - obezbeđuje pristup bazi podataka. Ovaj sloj bi trebao da bude potpuno nezavistan od modela i od vrste baze podataka
2. Model - čuva tranzijente podatke u toku rada aplikacije
3. Kontroler (Controller) - ovde se nalazi aplikaciona logika
4. GUI(View) - mislim da je ovo jasno.

Kod tebe su 2. i 3. sloj u okviru drugog sloja.

Inače postoji suptilna, ali bitna razlika između sloja(layer) i nivoa(tier).
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: Troslojna arhitektura, da li je i saveti kako da poboljsam10.08.2010. u 18:12 - pre 166 meseci
U cemu se Entity Framework razlikuje od Enterprise library?
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Troslojna arhitektura, da li je i saveti kako da poboljsam10.08.2010. u 21:26 - pre 166 meseci
Nema potrebe da izdvajate EF, EF je zvanicno deo ADO.NET-a. Cak se i zvanicno zove "ADO.NET Entity Framework", isto tako ga ne bi gurao u svaku corbu jer nije mirodjija, ako ti ne treba nivo apstrakcije koju pruza mozes komotno i da ga zaobidjes (npr ako ti je model identican kao sema SQL Server baze komotno ti EF ne treba uopste)
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.3.*



+6 Profil

icon Re: Troslojna arhitektura, da li je i saveti kako da poboljsam19.08.2010. u 22:50 - pre 166 meseci
Citat:
mmwlada: Za početak batali TableAdapter i Datasetove i preorijentiši se na EntityFramework. Mnogo je bolji od klasičnog ADO.NET-a.

E sad, što se tiče troslojne arhitekture. Tu imaš više različitih pristupa. Najbolje bi bilo da pogledaš malo po internetu na temu MVC, MVP... paterna, tj. uzora, ako ćemo srpski.

Kod MVC(Model-View-Controller) uzora se prave sledeći slojevi:
1. DataBroker - obezbeđuje pristup bazi podataka. Ovaj sloj bi trebao da bude potpuno nezavistan od modela i od vrste baze podataka
2. Model - čuva tranzijente podatke u toku rada aplikacije
3. Kontroler (Controller) - ovde se nalazi aplikaciona logika
4. GUI(View) - mislim da je ovo jasno.

Kod tebe su 2. i 3. sloj u okviru drugog sloja.

Inače postoji suptilna, ali bitna razlika između sloja(layer) i nivoa(tier).


1. To što on navodi inače se zove RecordSet arhitektura, i vjeruj mi, ništa joj ne fali za manje projekte bez jake domain logike. Napraviš generični DAL sa DataAdapterima, za koji je za novu tabelu dovoljno naslijediti generičku/abstraktnu klasu - te dodati mapping detalje kao naziv tabele, te nazivi kolona. Ako kontrolišeš obe strane (i bazu i app), onda je ovo super, jer svaki prim. ključ nazivaš Id itd... Pogledaj Fowler PoEAA za primjere.
2. MVC ne znam kako si ti zamislio, ali to je pattern prezentacijskog sloja, ne arhitekturalni pattern cijele aplikacije. MVC (i to čisti pravi MVC) se upotrebljava kod složene GUI logike, ili potrebe za izdvajanjem view-a (kao recimo u web-u što imaš). MVC varijacije (MVP, MVVM itd...) se lijepo uklapaju sa dosta prezentacijskih tehnologija kao Win/WebForms, WPF - XAML itd...
3. Ta diskusija tier vs layer malo ovdje nema smisla da se napominje - jasno je na šta on misli na logičke cjeline, a ne procese.
My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.3.*



+6 Profil

icon Re: Troslojna arhitektura, da li je i saveti kako da poboljsam19.08.2010. u 22:54 - pre 166 meseci
Citat:
AMD guy: U cemu se Entity Framework razlikuje od Enterprise library?


Entity Framework je ORM alat. Enterprise Library ima samo isto prvo slovo - E :) To je dodatni framework nad .NET-om za probleme tipičnog posovnog software-a. Imaš tu nekih dijelova koji bi se tako reći poklapali sa EF-ovom namjenom (kao Data Access Application Block), ali i drugih korisnih stvarčica (recimo Unity - dependency injection container) ...
My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

mmwlada
Vladimir Milovanović
Web developer, U.S. Steel Serbia

Član broj: 99390
Poruke: 62
212.5.210.*

Sajt: www.tetraedar.net/mmwlada


+1 Profil

icon Re: Troslojna arhitektura, da li je i saveti kako da poboljsam20.08.2010. u 07:10 - pre 166 meseci
Citat:
1. To što on navodi inače se zove RecordSet arhitektura, i vjeruj mi, ništa joj ne fali za manje projekte bez jake domain logike. Napraviš generični DAL sa DataAdapterima, za koji je za novu tabelu dovoljno naslijediti generičku/abstraktnu klasu - te dodati mapping detalje kao naziv tabele, te nazivi kolona. Ako kontrolišeš obe strane (i bazu i app), onda je ovo super, jer svaki prim. ključ nazivaš Id itd... Pogledaj Fowler PoEAA za primjere.

OK. Ima situacija kada se mogu iskoristiti Data adapteri. Ali koliko sam ja do sada primetio, u svakoj ozbiljnoj situaciji sam imao problema sa njima. Zato ih i izbegavam. Možda sam ja radio nešto pogrešno, ali to su moja dosadašnja iskustva.

Citat:
2. MVC ne znam kako si ti zamislio, ali to je pattern prezentacijskog sloja, ne arhitekturalni pattern cijele aplikacije. MVC (i to čisti pravi MVC) se upotrebljava kod složene GUI logike, ili potrebe za izdvajanjem view-a (kao recimo u web-u što imaš). MVC varijacije (MVP, MVVM itd...) se lijepo uklapaju sa dosta prezentacijskih tehnologija kao Win/WebForms, WPF - XAML itd...

MVC nije patern prezentacijskog sloja, već arhitekturni patern. Pogledaj [url=http://en.wikipedia.org/wiki/Model–view–controller]Wikipediju[/url], a zatim i ostale resurse na netu i još par knjiga i videćeš da sam u pravu. Svrha MVC paterna je da obezbedi nezavisnost korisničkog interfejsa(view), modela i kontrolera, kako bi svaki mogao nezavisno da se razvija i testira. Na taj način se povećava fleksibilnost sistema.

Citat:
3. Ta diskusija tier vs layer malo ovdje nema smisla da se napominje - jasno je na šta on misli na logičke cjeline, a ne procese.

Da, jasno je, ali treba biti precizan. Pogotovo što on to koristi kao sinonime. Zato sam i naglasio.

lonelyrider_44 kaže "drugi sloj (Business tier)", a sloj i tier su dve različite stvari. Očigledno je da tek ulazi u ove vode i bolje je da odmah raščisti šta je šta.

[Shadowed: Test oko pogresnog parsiranja url-a]

[Ovu poruku je menjao Shadowed dana 20.08.2010. u 15:30 GMT+1]
 
Odgovor na temu

Sapphire
Denis Biondić
.NET software developer
Nürnberg, Germany

Član broj: 213086
Poruke: 290
62.113.8.*



+6 Profil

icon Re: Troslojna arhitektura, da li je i saveti kako da poboljsam20.08.2010. u 20:13 - pre 166 meseci
Citat:
mmwlada: MVC nije patern prezentacijskog sloja, već arhitekturni patern. Pogledaj [url=http://en.wikipedia.org/wiki/Model–view–controller]Wikipediju[/url], a zatim i ostale resurse na netu i još par knjiga i videćeš da sam u pravu. Svrha MVC paterna je da obezbedi nezavisnost korisničkog interfejsa(view), modela i kontrolera, kako bi svaki mogao nezavisno da se razvija i testira. Na taj način se povećava fleksibilnost sistema.


Ok, nek ostane razlika u mišljenjima, ali razmotri sljedeće - prezentacijski pattern je subset neke generalne arhitekturalne kategorije, i ono što ja hoću da kažem je da se on koristi primarno kod UI logike, s prvom namjenom smanjenja dependancy-a view-a od modela. Ako ga to ne kvalificira kao prezentacijski pattern, ne znam šta je onda? Šta će tebi biti model, to tu nije važno. Zamisli da radiš n-tier sistem sa višestukim consumerima (web, desktop, WCF endpoints, nevažno). MVC tu samo može biti pattern dizajniranja određenih consumer-a, nikako arhitekturalni pattern cijelog sistema. U manjim aplikacijama, i jednostavnijim sistemima (recimo većina web aplikacija) taj M u MVC je direktno i sam domain aplikacije (kojeg ustvari i nema, nego je tu eto samo da podrži komunikaciju sa bazom, najčešće preko ORM-a - i to Active Record verzije), pa možeš reći da je cijela aplikacija MVC.

MVC je nastao (i ostao) kao potpora za GUI framework-e. Kad već citiraš wiki, pogledaj drugu rečenicu:

Citat:
MVC:The pattern isolates "domain logic" (the application logic for the user) from input and presentation (UI), permitting independent development, testing and maintenance of each.


S domain logikom ne završava aplikacija.


[Ovu poruku je menjao Sapphire dana 21.08.2010. u 02:12 GMT+1]
My programs don’t have bugs, they just develop random features.
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Troslojna arhitektura, da li je i saveti kako da poboljsam

[ Pregleda: 4180 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.