2012-03-15 14 views
5

Obecnie szukam sposobów, w jakie możemy refaktoryzować nasz kod, aby ułatwić pracę.Migracja z DataSets do EntityFramework

Aplikacja jest dość dużą aplikacją sieci Web Asp.Net, z wszystkimi ustawieniami/odzyskiwanie danych dzieje się za pośrednictwem usług sieci Web. Obecnie te WebServices zwracają DataSets, zawierające 1 lub więcej tabel zwróconych z Przechowanych procedur. Baza kodów jest dość ściśle związana z kodowaniem ASP, które wywołuje WebServices w wielu miejscach, a większość logiki biznesowej dzieje się w kodzie z tyłu lub w procedurach przechowywanych.

Od jakiegoś czasu szukamy możliwych sposobów aktualizacji aplikacji i modernizacji bazy kodów. Nie możemy (i nie chcemy) ponownie napisać całej aplikacji, ale byłoby świetnie, gdybyśmy mogli zacząć przenosić ją, krok po kroku, w kierunku nowej architektury. Przyjrzałem się architekturze MVP, która wydaje się pasować do naszej obecnej architektury - nie będzie zawierała zbyt wielu poprawek, ale nadal powinna skutkować bardziej testowalnym kodem (innym celem - obecnie nie mamy automatycznego testowanie).

Chciałbym jednak wiedzieć, czy ktoś ma jakieś wskazówki/informacje/artykuły dotyczące przejścia z DataSets do EntityFramework. Sądzę, że przyniosłoby to nam największą korzyść, ponieważ pozwoliłoby nam modelować nasze dane i testować je znacznie łatwiej. Niestety, nie udało mi się jeszcze znaleźć niczego w Internecie na temat tego rodzaju migracji. Nasz projekt bazy danych jest całkiem dobry (na szczęście), ale musieliśmy przez jakiś czas pracować z DataSet i EntityFramework, dopóki nie pozbyliśmy się DataSets - nie ma możliwości, abyśmy mogli zrobić to wszystko naraz.

Kto może udzielić porady na ten temat?

+1

Czy nadal używasz WebServices do zwracania danych, które są obecnie w formularzu DataSet? A może Twoja aplikacja bezpośrednio dotknie bazy danych poprzez EntityFramework? –

+0

@John Myślę, że nadal potrzebowalibyśmy w jakiś sposób korzystać z Web Services. Używamy tych samych usług sieci Web do pobierania danych w Microsoft InfoPath, których nie możemy się jeszcze pozbyć. –

Odpowiedz

3

Wygląda na to, że potrzebujesz rozwiązać dwa oddzielne problemy.

  1. Jak skorzystać z EntityFramework wewnątrz usługa sieci Web (s).
  2. Po drugie, w jaki sposób przekazujesz te wyniki do iz serwisów internetowych.

Dla # 1 możemy tylko zgadywać o istotnych szczegółach twojej obecnej implementacji. Prawdopodobnie jest to powszechna zmiana, którą możesz wyszukać i znaleźć pomoc.

Dla # 2, prawdopodobnie chcesz zdefiniować serię obiektów biznesowych, które się tam przechodzą. Usługa internetowa może tłumaczyć między nimi a obiektami EntityFramework. (Prawdopodobnie można przekazać obiekty EF bezpośrednio, ale mogą pojawić się problemy w zależności od scenariusza.)

+0

Jestem ciekawy, co masz na myśli, odnosząc się do "obiektów biznesowych". Masz na myśli serializowanie go do XML/JSON, czy odnosisz się do czegoś innego? –

+0

@ a_m0d: "Obiekty biznesowe" to po prostu klasy z właściwościami. Ich sposób transportu (XML, JSON itp.) Jest całkowicie odrębnym zagadnieniem. –

+0

W jaki sposób obiekt biznesowy różni się od klasy POCO? –