Navrh aplikacie – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Navrh aplikacie – .NET – Fórum – Programujte.comNavrh aplikacie – .NET – Fórum – Programujte.com

 

anonym
~ Anonymní uživatel
454 příspěvků
16. 6. 2011   #1
-
0
-

Ahojte

chcem si napisat jednu "mensiu" aplikaciu skor na precvicenie. Mala a bude komunikovat s DB(MS SQL). Tu aplikacnu resp funkcnu cast aplikacie by som mal zvladnut, no mam problem s navrhom. Niekde som sa docital, ze spravna aplikacia v OOP by mala byt viacvrstvova(datova, prezencna ... ). Co presne to znamena a ako to realizovat ? Mam navrhnut jednu samostatnu triedu, ktora sa bude volat napr "databaza" a bude sluzit na ukladanie dat isteho objektu ? A co graficka cast ? (bude to vo WinForms). Dik

Nahlásit jako SPAM
IP: 158.193.101.–
yterbium0
Stálý člen
16. 6. 2011   #2
-
0
-

Niečo na tento štýl:

http://www.codeproject.com/KB/architecture/three_tier_architecture.aspx

Nahlásit jako SPAM
IP: 89.173.31.–
Fazula
~ Anonymní uživatel
1 příspěvek
16. 6. 2011   #3
-
0
-

Necital si o MVC modeli? Pretoze OOP s tym vela spolocneho nema (aj ked vies OOP vyzit v MVC - zalezi od charakteru ulohy).

Spravidla pre mini aplikacie by si mal oddelit graficke rozhranie a business logiku. Business logika moze byt zapuzdrena v DB / odelena / alebo zdielana. Uplne postaci ak teda oddelis logiku - s cim aj tak vacsina programatorov ma problem, vyextrahovat logiku.

Ak zmyslom aplikacie je napr. komunikovat s nejakym serverom, treba oddelit (alebo zapuzdrit) komunikacnu logiku. Potom vytvorit vseobence rozhranie, co moze byt trieda, ale aj sada statickych metod. Tie preberu udaje z aplikacie a transformuju ich tak, aby sluzba vedela komunikovat so serverom. Vyhodou takehoto pristupu je, ze ak zmenis napr. server (providera / sluzbu / etc.) tak upravujes vzdy len jednu vrstvu. Interface by mal ostat nemenny, cim minimalizujes rizika dopadu takejto zmeny len na komunikaciu (tester uz nemusi znova testovat GUI).

Ak mas takto poodelovanu logiku, vies potom pisat unit testy aj na komplexnejsie ulohy (bez toho aby si vymyslal kde-ake somariny s klikanim mysky po screene). Taktiez takyto kod ak je dobre napisany, je v podstate okamzite znovapouzitelny v inom systeme (prave extrakcia rozhrania a logiky je kumst), cim mozes setrit cas a prostriedky pri vyvoji obdobneho systemu (vyuzivajuci len jednu cast).

V pripade databazy je zasa jednoduchsie migrovat na iny system - vzdy prepises len "ovladac", aplikacie by sa to mohlo dotknut len minimalne.

Ak mas teda logiku rozlezenu po celej aplikacii (GUI / kod / DB) je potom zlozitejsie takyto system rozsirovat a pracovat v teame - pretoze je tazke odhadnut dopad akejkolvek zmeny pre cloveka, ktory danu cast nenavrhoval.

Nahlásit jako SPAM
IP: 88.212.40.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
17. 6. 2011   #4
-
0
-

To Fazula : dik moc. Mrkol som sa na ten priklad, ale jedna vec mi nie je jasna. Preco sa v triede BOcustomer metody add a update ked sa nachadzaju aj v triede DAcustomer ? Teda, chapem, ze to prinasa iste vyhody a pouzijem to, ale je to nevyhnutne ?

Nahlásit jako SPAM
IP: 95.103.185.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
17. 6. 2011   #5
-
0
-

Uz mi to trklo. Ja vlastne budem vsetko ukladat cez instanciu BOcustomer. Ja som to doteraz robil zle a to tak, ze som vsetko ukladal pomocou triedy s metodami Add, Insert, Delete ... ktorych parametrom bol objekt ktory som chcel ulozit.

Nahlásit jako SPAM
IP: 95.103.185.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
25. 6. 2011   #6
-
0
-

este ma zaujima. Pokial teda oddelim datovu vrstvu a data z nej chcem pouzivat napr DataGrodView. Je v poriadku vytvorit v datovej vrstve metodu ktora priamo pracuje s DGV a DGV jej potom predat len ako parameter ? Nenapada ma ako inak to spravit ...

Teda okrem toho, ze by ta metoda vracala DataSet ktory by som v GUI spojil s DGW.

Nahlásit jako SPAM
IP: 95.103.185.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 57 hostů

Podobná vlákna

C++ a graficke aplikacie — založil Tom@sQo

Ikony aplikácie — založil Trebor

Zmena štýlu aplikácie... — založil Mega.Lama

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý