Nejlepší řešení pro .NET často mění Database

hlasů
8

V současné době jsem architecting malou crud Určení. Jejich databáze je obrovský zmatek a bude často mění v průběhu příštích 6 měsíců až jeden rok. Co byste doporučil pro můj datové vrstvy:

1) ORM (pokud ano, které?)

2) Linq2Sql

3) uložené procedury

4) parametrické dotazy

Já opravdu potřeba řešení, které bude dostatečně dynamický (jak rychle a snadno), kde bych mohl nahradit tabulky a přidat / odstranit sloupce často.

Poznámka: Nemám moc zkušeností s ORM (jen o málo podzvukovou rychlostí) a obecně mají tendenci používat uložené procedury, takže možná, že by byl způsob, jak jít. Rád bych se dozvědět Ling2Sql nebo NHibernate kdyby buď povolit pro situaci jsem popsal výše.

Položena 15/08/2008 v 02:50
zdroj uživatelem
V jiných jazycích...                            


12 odpovědí

hlasů
6

Jednou z klíčových věcí mít na paměti je, že v případě, že schéma databáze se mění často, chcete mít nějakou úroveň kompilace typovou bezpečnost čas. Zjistil jsem, že se to být problém s NHibernate protože používá mapování XML soubory, takže jestli něco ve svém schématu databáze změní, nevíte, dokud běhu že mapping je přerušeno.

Bude to také problém s uloženými procs.

Používání Linq2Sql vám tu výhodu, že neví, kde přesně váš kód lámání při změně schématu při kompilaci. To pro mě, je něco, co by mít přednost před vším ostatním, když pracuji s často se měnící schéma

Odpovězeno 15/08/2008 v 04:37
zdroj uživatelem

hlasů
5

Já bych se podívat na podzvukovou s poskytovatelem sestavení (Web Project) nastavení. Která funguje skvěle, protože se automaticky regeneruje DAL objekty pokaždé, když budovat svůj projekt, takže pokud databázové změny způsobem, který porušuje svůj kód, dostanete chybu sestavení.

Fungovalo to dobře, dokud schéma databáze byl opravdu složité a my jsme byli bít limity vzoru ActiveRecord, ale tak dlouho, jak schéma není nesmírně složité to funguje docela dobře. Jakmile je schéma stabilizuje, můžete přepínat tak, že jste jen budování DAL, když chcete.

Odpovězeno 15/08/2008 v 04:57
zdroj uživatelem

hlasů
2

Ty určitě chtít použít ORM. Jakékoli ORM je v pořádku, ale chcete něco, co bude generovat silně zadali tříd. Když si pole přidávány, upravovány nebo odstraněny z tabulky, které chcete mít možnost obnovit ty třídy, a zabývat se pouze chyby časové fixace kompilaci. Používáte-li dynamický model, budete pravděpodobně mít mnoho ošklivé chyby runtime. Toto je velmi důležité! Jsem součástí MyGeneration vývojového týmu na SourceForge, a myslím, že je skvělé řešení vašeho problému. Můžete vytvářet doodads, NHibernate, EasyObjects, EntitySpaces apod Chcete-li jít s dražší řešení, jít s CodeSmith nebo LLBLGen Pro . Hodně štěstí - někdo zájem o využití MyGeneration, neváhejte mě kontaktovat s dotazy.

Odpovězeno 16/09/2008 v 19:40
zdroj uživatelem

hlasů
1

Jak jednoduché je aplikace? Pokud bych měl pracovat s schématu / konstrukční věci za pár měsíců, a není opravdu starat o skutečné aplikaci. , , Považoval bych za použití EDM a entity projektu webovou aplikaci Dynamic Data. To získejte jít s co nejmenším úsilím, podle mého názoru. To vás udrží zaměřena na schématu, datových služeb a dalších groovey věcí. Já doufám, že nedostávají příliš mnoho negativní hrboly z této jedné!

Zde je návod, jak bude nový dialog projekt vypadat toto

Odpovězeno 08/05/2010 v 23:00
zdroj uživatelem

hlasů
1

Použít EntitySpaces. mi pošle květiny, se zárukou. jednoduše úžasné. Změna db jak se vám líbí. stiskněte tlačítko, třesk. Všechny změny jsou prováděny. aniž by se změnila svůj vlastní kód. Miluji to.

Odpovězeno 08/05/2010 v 22:09
zdroj uživatelem

hlasů
1

EntitySpaces může regenerovat svůj DAL / Business vrstvu za jednu minutu, a žádná ztráta kód, viz zkušební verzi ==> ZDE

Ne nutná registrace, běží pod Visual Studio stejně.

Odpovězeno 23/01/2009 v 15:30
zdroj uživatelem

hlasů
1

Kdybych byl na vašem místě bych se snažit využít co jsem věděl (sprocs) s Linq2Sql. Linq2Sql i nadále používat své sprocs ale pak máte bonus dávat nový nástroj v pásu. Myslím, že má přehled o Linq2XXX (kde X je náhodná technologie není zábavy pro dospělé .... což není špatný nápad, teď si myslím, že na to) syntaxe a metodika bude skvělým doplňkem vašeho dovednost nastavit pomocí Linq přes kolekci objektů je způsob, jak sladké.

Ale nakonec něco jako NHibernate bude vyhovovat vám lépe v dlouhodobém horizontu.

Odpovězeno 19/08/2008 v 17:54
zdroj uživatelem

hlasů
1

NHibernate , ale pouze tehdy, pokud by byl přístupný s objektově první přístup, kde můžete definovat své třídy, a pak definovat požadovanou strukturu tabulky v souborech mapování, a pak vytvořit schéma databáze pomocí NHibernate vestavěných tříd generace schématu.

Pro dělat to opačně (například, že máte spoustu tabulek a pak založit objekt design na to) jsem našel MyGeneration + NHibernate do práce, i když nejsem s výslednými tříd příliš šťastné (především z důvodu jsem takový puntičkář pro opravdové objektově orientované programování).

Odpovězeno 15/08/2008 v 03:00
zdroj uživatelem

hlasů
0

Jakékoliv řešení, mohou pracovat, co opravdu potřebujete, je sada testů, které zaručí, že základní operace, jako je vložit, vyberte, aktualizace a mazání práce. Tímto způsobem můžete jednoduše spouštět testy a zkontrolujte, zda mapování jsou up-to-date.

Odpovězeno 17/12/2008 v 20:13
zdroj uživatelem

hlasů
0

se podívat na to, proč se mění, a uvidíme, jestli můžete předvídat a generalizovat druhů změn přichází na vás, takže nemají rozbít svůj kód

rámec může ustájení změny snazší, ale hlubší analýza bude mít dlouhodobější přínos

Odpovězeno 17/12/2008 v 20:06
zdroj uživatelem

hlasů
0

Změní-li se často schéma databáze, preferují Entity Framework nad LINQ2SQL. Při změně schématu, za použití L2S musíte
1) Vyjměte a znovu přidat si stůl (ztrátě vlastního nastavení)
2) Změna modelu ručně (jak skončili v StackOverflow)

EF je super sada L2S, takže máte větší flexibilitu ve využití a DBMS-nezávislost

Odpovězeno 16/09/2008 v 19:54
zdroj uživatelem

hlasů
0

Už jste spokojeni s uloženými procs a oni by mohli být dost abstraktní pryč měnící schématu. Pokud ORMS nejsou spokojeni s uloženými procs pak možná, že bych pracovat s pohledy, které udržují proud na vrcholu měnící schématu.

Odpovězeno 15/08/2008 v 03:05
zdroj uživatelem

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