Czy lepiej jest utworzyć klasy model lub trzymać rodzajowe bazy klasie użytkowej?

głosy
5

Mamy prostą klasę użytkową w domu dla naszych połączeń baz danych (lekkie otoki wokół ADO.NET), ale myślę tworzenia klas dla każdej bazy danych / obiektu. Byłoby mądrą rzeczą, aby to zrobić, czy to tylko korzyści, jeśli używaliśmy pełnej ramy MVC dla ASP.NET?

Więc mamy to:

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

Myśląc w ten sposób:

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

lub do nowego rekordu -

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

Byłoby to mądry, czy byłoby przesadą? Widzę korzyści dla ponownego użycia, zmiany bazy i konserwacja / czytelność.

Utwórz 05/08/2008 o 21:10
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
8

To pytanie jest załadowany, dane Driven Design vs domenie napędzane projektu. Dla każdej aplikacji, która ma dobrą ilość zachowań, a następnie powinny być preferowane domeny Driven Design. Raportowania, lub aplikacje użytkowe wydają się działać lepiej (lub są szybsze rozwijanie) z danych Driven Design.

Co pytasz jest „moja firma powinna dokonać fundamentalnej zmiany w jaki projektujemy naszego kodu”. Jako domena-dziwaka, moja reakcja jelit jest krzyczeć tak . Jednak przez prosty charakter Twojego pytania, nie jestem pewien, że w pełni zrozumieć zakres zmian pan proponuje. Myślę, że powinieneś porozmawiać ze swoim zespołem o nim.

Trochę literatury, takich jak DDD Evana książki lub wolnego fundamentów ebook , a następnie będziesz w stanie lepiej ocenić, w jakim kierunku należy się udać.

Odpowiedział 05/08/2008 o 21:28
źródło użytkownik

głosy
2

Podejście omówić jest uważany za dobry przez wielu folk, łącznie ze mną! Uczenie się to podejście będzie wymagało pewnego wysiłku, ale nie pozwól, by to nie zniechęca!

Co po prostu staramy się mały projekt z LINQ do SQL ? Może znaleźć piękny projekt odniesienia na Google Code , i uczyć, jak inni pracowali z nim.

Jest to proste narzędzie, a pozwoli Ci zapoznać się z kilkoma kwestiami, które pojawią się z obiektami mapowania do baz danych.

Będziesz wtedy mógł się czuć na nim , i zdecydować, czy warto krzywa uczenia się.

Pojawią się nowe koncepcje do uchwycenia i eksperymentować z rzeczy, takich jak:

  • Jednostka pracy : Po uruchomieniu zapisywać i usuwać itp ORM ma tendencję do nie tego zrobić natychmiast, podczas gdy zestaw rekordów w oparciu DAL woli. Może to być zaskakujące, więc musisz nauczyć się trochę o tym. Przeczytać na Jednostkę wzorca pracy , aby uzyskać zrozumienie tego.
  • Operacje zbiorcze są problemem z OR / M. Czytelnik dane mogą skutecznie iterację tysięcy wierszy, ale z ORM trzeba być ostrożnym podczas pracy z dużymi partiami obiektów. Ponownie, jeden przeczytać na.
  • Stowarzyszenia wydają się wspaniale, gdy można robić takie rzeczy customer.Orders.Count, ale są też przyczyną wielu problemów. Musisz znaleźć kilka bezpiecznych praktyk do naśladowania podczas pracy ze stowarzyszeniami.

...aby wymienić tylko kilka.

Na początek, nie martw się o dziedziczeniu i rzeczy, po prostu zacząć proste i mają proste podmioty, które mapowane do tabel.

Spróbuj użyć je w taki sam sposób chcesz wykorzystać istniejącą DAL. Potem zacznij eksperymentować ze stowarzyszeniami.

To może spróbuj umieścić więcej zachowań w swoich jednostkach. Jeśli zaczynasz lubić to, i czuję, że trzeba więcej funkcji, należy rozważyć wypróbowanie bardziej bogate w funkcje ORM jak Lightspeed lub NHibernate .

Mam nadzieję że to pomoże!

Odpowiedział 03/10/2008 o 11:07
źródło użytkownik

głosy
2

W żadnym wypadku nie jest to jedyny wzorzec MVC projekt w internecie, ale to jest bardzo przydatna.

Przyjmując tylko „M” będzie wypłacać dywidendy, moim zdaniem, nawet jeśli nie może / nie przyjąć „V” lub „C”.

Odpowiedział 05/08/2008 o 21:13
źródło użytkownik

głosy
0

Dla mnie to wygląda na to, że staramy się robić co LINQ może już zrobić dla ciebie. Jeśli utkniesz w starszym ram, w których nie można wykorzystać, że mógłbym zasugerować, że używasz Subconic ( http://subsonicproject.com/ ) zamiast ręcznie utworzyć wszystkie te obiekty modelu ręką.

Miałem projektu gdzie byłem w podobnym położeniu i zmieniły się w połowie poddźwiękowych z fantastycznymi wynikami. Szybszy rozwój i znacznie łatwiejsze do odczytu / należy użyć kodu.

Odpowiedział 26/09/2008 o 15:41
źródło użytkownik

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