2012-08-31 20 views
5

Estoy trabajando en una aplicación web y más tarde tenemos planeado desarrollar y poner a disposición sus aplicaciones móviles también. No soy un muy experimentado pero sólo en base a mi entendimiento planeando tener esta arquitectura:arquitectura de aplicación con MVC, WCF, EF

  1. MVC proyecto Web front-end que se comunica directamente con WCF servicios.
  2. Las validaciones del lado del servidor se realizarán en el modelo MVC usando anotaciones de datos, luego los datos se pasarán a la capa WCF. La seguridad utilizando el proveedor de membresía del Cliente también se implementará en MVC.
  3. La capa de WCF también funcionará como una capa empresarial. Cuando sea necesario, se comunicará con DAL, que es una biblioteca de clases.
  4. DAL usando EF se va a comunicar a SQL Server *

pregunta por favor

  1. esta arquitectura es bueno?
  2. ¿Es bueno usar WCF como capa de negocios y capa de servicios?
  3. ¿En qué capa debemos implementar qué patrones?
  4. para la validación de datos y la seguridad es el lugar correcto MVC?

Gracias

Editar 5. ¿Es bueno respecto a las pruebas unidad? o para una mejor prueba, ¿debería hacer algunos cambios?

Respuesta

4

Lo que está describiendo es una pila de servidores de Microsoft bastante moderna y buena.

ASP.net MVC es bueno para su interfaz de usuario web. Si va a utilizar asp.net MVC, también debe buscar asp.net webapi (nuevo) para la capa empresarial.

http://www.asp.net/web-api

http://weblogs.asp.net/scottgu/archive/2012/02/23/asp-net-web-api-part-1.aspx

SQL Server y EF son bastante estándar. La otra opción es T-SQL puro si necesita control total y se siente cómodo con SQL directo.

Un beneficio lateral que obtiene de la separación de su IU web (MVC) de su capa empresarial (web-api) es que puede separar los roles y escalar independientemente incluso si inicialmente residen en el mismo rol/máquina. Además, el código html/javascript del lado del cliente podría hacer llamadas de estilo ajax a la API web. Por ese motivo, desearía "registrar" (config) el punto final del servidor web-api. Si lo escala/mueve más tarde, no hay cambios en el código; su código tiene una separación limpia desde el primer día.

Los dispositivos móviles (si son aplicaciones gruesas) podrían usar la aplicación web directamente. A menos que la aplicación móvil sea una aplicación móvil híbrida que utiliza una solución embebida de navegador/JavaScript, entonces es solo un pequeño consumidor de su interfaz de usuario web de MVC.

Para realizar pruebas, puede autoevaluar API web en su propio proceso de línea de comandos y simular los datos si es factible. Eso le permitiría validar la interfaz de usuario web sin un back-end.Al tener una capa de negocios (expuesta por la API web) también puede validar la lógica de back-end & (debería ser la mayoría de su lógica) independiente de la UI.

+0

Gracias @byanmac, no estaba al tanto de la API web. ¿Podrías guiarme en mi diseño donde se instalará y qué reemplazará? Por favor, si es posible, también responda mis otras preguntas numeradas. – user576510

+1

Reemplazaría el nivel medio WCF. Sería un punto final REST para el uso de los roles de la interfaz de usuario web front-end. – bryanmac

+0

gracias. ¿Cómo podré acceder directamente a otros clientes, como aplicaciones móviles que no se están desarrollando en MVC? ¿Te gusta si se trata de una aplicación para andoid que no está en los idiomas nativos del navegador como html o html5? – user576510

Cuestiones relacionadas