2012-03-15 12 views
5

Actualmente estoy buscando posibles formas de refactorizar nuestra base de código, para que sea más fácil trabajar con ella.Migrar de DataSets a EntityFramework

La aplicación es bastante grande Asp.Net Webforms, con toda la configuración de datos/recuperación a través de los servicios web. Actualmente, estos WebServices devuelven DataSets, que contienen 1 o más tablas devueltas de Procedimientos almacenados. La base de código está bastante conectada, con el código subyacente ASP llamando a los servicios web en varios lugares, y la mayoría de la lógica de negocios ocurre en el código subyacente o en los procedimientos almacenados.

Desde hace un tiempo, hemos estado buscando formas posibles de actualizar la aplicación y modernizar la base de código. No podemos (y no queremos) volver a escribir la aplicación completa, pero sería genial si pudiéramos comenzar a moverla, poco a poco, hacia una arquitectura más nueva. He examinado la arquitectura MVP, que parece que sería una buena combinación con nuestra arquitectura actual; no implicará demasiada reescritura, pero debería dar como resultado un código más comprobable (otro objetivo). Actualmente no contamos con un sistema automatizado. pruebas).

Me gustaría saber, sin embargo, si alguien tiene algunos consejos/información/artículos sobre cómo pasar de DataSets a EntityFramework. Siento que esto resultaría en la mayor ventaja para nosotros, ya que nos permitiría modelar nuestros datos y probarlos mucho más fácilmente. Desafortunadamente, todavía no he podido encontrar nada en línea con respecto a este tipo de migración. Nuestro diseño de base de datos es bastante bueno (afortunadamente), pero tendríamos que trabajar con DataSets y EntityFramework por un tiempo hasta que nos deshicimos de DataSets, no hay manera de que podamos hacerlo todo de una vez.

¿Alguien capaz de dar consejos sobre esto?

+1

¿Seguiría utilizando los servicios web para devolver los datos que se encuentran actualmente en el formulario del conjunto de datos? ¿O su aplicación tocará directamente la base de datos a través de EntityFramework? –

+0

@John Creo que aún necesitaríamos usar los servicios web de alguna manera. Usamos los mismos servicios web para recuperar datos en Microsoft InfoPath, que tampoco podemos eliminar. –

Respuesta

3

Parece que tiene que resolver dos problemas por separado.

  1. ¿Cómo se hace uso de ADO.NET Entity Framework dentro del servicio web (s).
  2. En segundo lugar, ¿cómo pasa esos resultados ay desde los servicios web.

Para el n. ° 1, solo podemos adivinar los detalles relevantes de su implementación actual. Sin embargo, es probable que sea un cambio común para buscar y encontrar ayuda.

Para el n. ° 2, es probable que desee definir una serie de objetos comerciales que van y vienen. El servicio web podría traducir entre ellos y los objetos EntityFramework. (Presumiblemente, podría pasar los objetos EF directamente, pero podría haber problemas dependiendo de su situación).

+0

Tengo curiosidad por saber a qué se refiere con "objetos comerciales". ¿Quiere decir serializarlo en XML/JSON, o se refiere a algo más? –

+0

@ a_m0d: "Objetos comerciales" son simplemente clases con propiedades. Su método de transporte (XML, JSON, etc.) es un problema completamente diferente. –

+0

¿En qué se diferenciaría un objeto comercial de una clase POCO? –