Ask The Expert: José Murillo (1 de 2)

Published Friday, March 28, 2008 11:18 AM

Aquí tenéis a José Murillo respondiendo las preguntas que surgieron en uno de los Ask The Expert de Microsoft TechDays {The Evolution Show} (Parte 1 de 2).

 Ask The Expert - Evolución de la plataforma de acceso a datos:

  • Mínimo a implementar para utilizar LINQ to Objects
  • Ficheros de definición de mapeos
  • Gestión de herencia de Entity Framework
  • Implementación de lógica de negocio en clases
  • Plugins y SDK de Visual Studio 2008

Para insertar este vídeo en tu página web:

<IFRAME src="http://silverlight.services.live.com/invoke/34206/murillo1/iframe.html" mce_src="http://silverlight.services.live.com/invoke/34206/murillo1/iframe.html" scrolling="no" frameborder="0" width="525" height="400"></IFRAME>

Comentarios

# Carlos said on Wednesday, April 09, 2008 11:42 AM

Realmente bueno! Alguien me puede aclarar como poder usar las entidades como DTO's (EF/Linq to SQL) a traves de todos los proyectos(3 capas) He visto soluciones, pero la mayoria añaden un referencia desde la capa de presentacion a la capa de datos....

Se pueden generar en otro proyecto independiente?

Gracias y enhorabuena por comando tomate!

# Jose Murillo said on Wednesday, April 09, 2008 12:04 PM

Hola Carlos,

Sin duda, de hecho en una aplicación empresarial 3 capas, la recomendación es que la capa de presentación se comunique con la de negocio (por ejemplo a través de Windows Communication Foundation) y sea la capa de negocio la que mediante EF o LINQ to SQL haga las llamadas a la BD. La capa de negocio la puedes implementar mediante clases en Assemblies .NET (DLLs) que se hospedan y ofrecen al exterior a través de WCF. Esta capa contendría las entidades de negocio generadas con EF/LINQToSQL y la lógica de negocio de las mismas. Las propias entidades pueden ser devuelvas via WCF a la capa de presentación para su uso.

Espero haberte ayudado,

Jose

# Carlos said on Wednesday, April 09, 2008 1:06 PM

Gracias José, interesante opción plateas. Lo q pasa es q me gusta separar conceptos(responsabilidades) ya q hago

uso de contendores IoC, normalmente al hacer test unitarios en la capa de negocio suelo hace

r un mock de la base de datos para poder ejecutarlos rapidamente y poder alimentar a esos test con los

datos necesarios y no tener depender de un bbdd para test.

Por eso no puedo hacer uso de EF desde la capa de negocio directamente.

La referencia establecida entre BL Y DAL no me es un inconveniente...

Yo tenia entendido que WCF es para crear aplicaciones distribuidas no siendo mi caso, aun asi recomiendas el uso de WCF si normalmente los desarrollos que hago siempre se alojan

en la misma maquina(UI/BL/DB)?

Aun asi me parece un idea muy buena ya q podria usar esa logica desde varios clientes uhmmm :)

Bueno José muchas gracias por todo.

Un saludo

Carlos

# Capit&#225;n Tomate said on Wednesday, April 09, 2008 1:24 PM

Hola Carlos,

La sesión de Jose Murillo sobre acceso a datos está colgada en la siguiente url:

www.microsoft.com/.../default.mspx

Allí tienes tanto la ppt como la sesión grabada.

Quizá te interese...

Un saludo

# David Carmona said on Thursday, April 10, 2008 4:51 AM

Si quieres ver un ejemplo de aplicación empresarial desarrollada con LINQ en tres capas tienes Desarrolla con MSDN: www.desarrollaconmsdn.com.

Es una aplicación de ejemplo, ahora la tenemos en versión beta pero la acompañaremos con documentación y videos de ayuda sobre su implementación.

Saludos!

David.

# Carlos said on Thursday, April 10, 2008 10:59 AM

Gracias pero no me termina de convencer msdn video con linq(referencias DB en WEbUI). Todos los ejemplos que he llegado a ver tienen el mismo problema referencian el datacontext por todas las capas para hacer uso

de las entidades generadas, no hay q olvidar q en verdad el datacontext es la capa de datos bajo mi punto de vista, el planteamiento de envolver el datacontext en otra capa(DB) es correcto para abstraernos del origen de datos, pero

al crear las referencias en todos los proyectos nos destroza el diseño.

Para que el uso de linq con 3 capas no es facil de implementar...

Si hubiesen dado la opcion de crear las entidades en otro proyecto independiente todo estos problemas estarian solucionados...

¿Qué opinas?

(requerido) 
(requerido) 
(opcional)
(requerido) 

Enter the numbers above: