Je lepší vytvořit třídy modelu, nebo zůstat u generických databáze utility třídy?

hlasů
5

Máme jednoduchý nástroj třídu in-house pro naše databázové hovory (lehký obal kolem ADO.NET), ale mám na mysli vytváření tříd pro každou databázi / objektu. By to chytrá věc, aby tak učinily, nebo by to mít prospěch pouze tehdy, pokud jsme používali celý rámec MVC pro ASP.NET?

Takže máme toto:

SQLWrapper.GetRecordset(connstr-alias, sql-statement, parameters);
SQLWrapper.GetDataset(connstr-alias, sql-statement, parameters);
SQLWrapper.Execute(connstr-alias, sql-statement, parameters);

Přemýšlíte, jak to udělat:

Person p = Person.get(id);
p.fname = jon;
p.lname = smith;
p.Save();

nebo na nový rekord -

Person p = new Person();
p.fname = Jon;
p.lname = Smith;
p.Save();
p.Delete();

By to být chytrý, nebo by to zbytečná? Vidím přínos pro opětovné použití, měnící databázi a údržbu / čitelnost.

Položena 05/08/2008 v 21:10
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
8

Tato otázka je vložen, údaje řízené konstrukce vs domény řízený design. Pro jakoukoliv aplikaci, která má dobré množství chování, pak by měly být preferovány domény řízený konstrukce. Reporting, nebo užitkových aplikací má tendenci lépe pracovat (nebo jsou rychlejší rozvoj) s datovým poháněným designem.

Na co se ptáte, je „by měla moje společnost učinit zásadní posun v tom, jak navrhujeme náš kód“. Jako domény magor, můj instinktivní reakci je křičet ano . Nicméně, pomocí jednoduchého charakteru vaší otázky, nejsem si jistý, že plně pochopit rozsah změn se navrhuje. Myslím, že byste se měli více mluvit do svého týmu o tom.

Získat nějakou literaturu, jako je například Evan je DDD knihy, nebo volné nadace ebook , a pak budete v lepší pozici posoudit, kterým směrem byste měli jít.

Odpovězeno 05/08/2008 v 21:28
zdroj uživatelem

hlasů
2

Přístup diskutujete je považován za dobrý mnoho lidu, včetně mě! Učení tohoto přístupu bude vyžadovat určité úsilí, ale nenechte se odradit!

Co jen se snaží o malý projekt s LINQ to SQL ? Třeba najít pěkný referenční projekt na webu Google Code , a studovat, jak jiní pracovali s ním.

Je to jednoduchý nástroj, a vám umožní seznámit se s některými problémy, které přicházejí s mapování objektů na databázích.

Ty pak budou moci získat pocit, pro to , a rozhodnout, zda to stojí za zaučení.

K dispozici budou nové koncepty uchopte a experimentovat s, věci jako:

  • Unit of Work : Po spuštění Uložit a Smazat atd ORM má tendenci to udělat okamžitě, zatímco sada záznamů na základě DAL vůle. To může být překvapivé, takže budete muset naučit něco o tom. Číst až na jednotku práce vzoru získat pochopení tohoto.
  • Hromadné operace jsou problém s OR / M. Čtenář data lze efektivně iterovat tisíc řádků, ale s ORM musíte být opatrní při práci s velkými dávkami objektů. Opět platí, že jeden přečíst na.
  • Sdružení se zdá skvělé, když můžete dělat věci, jako je customer.Orders.Count, ale jsou také příčinou mnoha problémů. Budete muset najít nějaké bezpečných postupů s cílem dodržet při práci s asociacemi.

... abychom jmenovali alespoň některé.

Pro začátek, nebojte se o dědictví a tak, prostě začít jednoduché a mají jednoduché entity, které mapují do tabulek.

Zkuste použít je stejným způsobem byste využít své stávající DAL. Pak začít experimentovat s asociacemi.

Pak možná zkusit uvedení více chování svých subjektů. Pokud začnete mít rád to, a mají pocit, že budete potřebovat více funkcí, zvažte vyzkoušení více rys-bohatý ORM jako Lightspeed nebo NHibernate .

Snad to pomůže!

Odpovězeno 03/10/2008 v 11:07
zdroj uživatelem

hlasů
2

V žádném případě je MVC jediný designový vzor pro web, ale je to užitečné jedna.

Přijetím jen ‚M‘ se vyplatí, podle mého názoru, i když nemůžete / nebude přijímat ‚V‘ nebo ‚C‘.

Odpovězeno 05/08/2008 v 21:13
zdroj uživatelem

hlasů
0

Pro mě to vypadá, jako byste se snaží dělat to, co LINQ lze již udělá za vás. Pokud jste se zasekl ve starším rámec, ve kterém nemůžete používat, že bych mohl navrhnout, že používáte Subconic ( http://subsonicproject.com/ ) místo toho, aby musel ručně vytvořit všechny tyto modelové objekty ručně.

Měl jsem projekt, kde jsem byl v podobné nesnáze a změněn na podzvukový půlce s fantastickými výsledky. Rychlejší vývoj a mnohem čitelnější / použití kódu.

Odpovězeno 26/09/2008 v 15:41
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more