Cómo crear una aplicación web modular en C # MVC

Guión

Cuando una aplicación web tiene múltiples módulos (o sub-aplicaciones / características) tiende a agrandarse. Entonces, cuantos más módulos conecte su aplicación, más complejo se volverá a particionar y mantener el código.

¿Cuál es el truco para resolver esto?

Una solución para el problema anterior es desarrollar módulos de aplicación de forma independiente, sin dependencias directas entre ellos y también en el código de la aplicación principal. Los desarrolladores siempre deben optar por una solución modular, en la que los módulos más grandes se mantengan fácilmente con el tiempo, por separado. Una vez que cada módulo está listo para la integración, podrían conectarse a la aplicación principal con poco o ningún ajuste del mismo.

En resumen, la estructura de una aplicación MVC asp.net compleja se puede mantener fácilmente usando áreas. El concepto de esto es permitirnos dividir una aplicación compleja grande en varias secciones pequeñas llamadas áreas.

Estas áreas pueden tener su propio conjunto de:
 1. Modelos
 2. Vistas
 3. Controladores
 4. Rutas

En este artículo vamos a desarrollar una aplicación ASP.NET MVC que contiene módulos sueltos (independientes de la aplicación principal), que luego conectaremos a la aplicación principal.

Beneficios de este enfoque

Este enfoque es extremadamente útil para el desarrollo de productos. Utilizando este enfoque, cada módulo puede desarrollarse e implementarse para el producto por separado. Esto ayuda a crear diferentes versiones del producto, como las versiones básica, profesional, premium y empresarial. También permite a los desarrolladores de productos crear el aislamiento requerido para

ü Cree instaladores separados con las características requeridas para cada versión diferente

ü Una configuración maestra que solo puede instalar características definidas según la clave de licencia utilizada durante la instalación, o

ü Alguna otra configuración que requiera la técnica de separación modular.

Demo para una aplicación modular

Aquí crearemos una aplicación web que contiene los siguientes módulos:

· Venta

· Compra

· Mantenimiento

· Comercialización

· Valores

· Importar

· Exportar

Paso 1:

Abra Visual Studio 2015 y cree un proyecto ASP.NET MVC de la siguiente manera. Déle un nombre significativo (en mi caso, he usado MVCPluggableDemo).

Una vez que se crea, su solución debería verse así:

Paso 2:

Haga clic derecho en la carpeta "Controladores" y seleccione "Agregar -> Controlador". Nómbrelo HomeController y seleccione "Empty MVC Controller" para la plantilla:

Haga clic derecho en el método de índice del controlador y seleccione "Agregar vista". Usando los valores predeterminados, cree la vista de índice para HomeController para formar la página de inicio de la aplicación:

Paso 3:

Ahora edite la sección resaltada en _Layout.cshtml (en la carpeta Vistas \ Compartido) para crear elementos de menú que apunten a los módulos deseados:

Etapa 4:

Ejecute la aplicación y obtendrá el resultado de la siguiente manera:

Ahora nos centraremos en crear módulos separados para nuestra aplicación y luego conectarlos al principal.

Paso 5:

Haga clic derecho en el título del proyecto de la aplicación principal (como en nuestro caso MVCPluggableDemo) en el Explorador de soluciones y seleccione "Agregar-> Área" en el menú contextual. Esto creará una estructura básica de carpetas para el marco de Área. Especifique "Venta" como nombre de área y haga clic en "Agregar".

Luego tenemos una estructura de solución de carpeta que se ve así:

Paso 6:

Realice una copia de seguridad del archivo SaleAreaRegistration.cs. Este archivo será necesario más adelante cuando agreguemos el módulo de Venta a la solución como un proyecto separado.

Ahora elimine la subcarpeta Sale de la carpeta Áreas, manteniendo la carpeta Áreas en su lugar.

A continuación, agregue el nuevo módulo enchufable para "Venta", haga clic con el botón derecho en la solución y seleccione "Agregar-> Nuevo proyecto".

· Seleccione la aplicación ASP.NET MVC vacía

· Nombre para proyectar "Venta"

· Establecer ubicación como "... \ MVCPluggableDemo \ MVCPluggableDemo \ Areas \"

· Se debe crear un nuevo proyecto en la carpeta Áreas (creado previamente).

Después de este paso, su solución debería parecerse a la siguiente:

A medida que guardamos la venta del nuevo proyecto en la carpeta Áreas, aparece como carpeta oculta debajo de la carpeta MVCPluggableDemo / Áreas en el Explorador de soluciones:

Paso 7:

Ajuste el archivo RouteConfig.cs de MVCPluggableDemo para agregar correctamente la sobrecarga correcta del espacio de nombres a las rutas. Método de MapRoute ():

También usaremos la otra versión sobrecargada de route.MapRoute () que toma el espacio de nombres del controlador.

Paso 8:

Establezca el directorio de salida del proyecto Sale en .. \ .. \ bin \ para que sus archivos DLL compilados se coloquen en el directorio bin de la aplicación MVCPluggableDemo:

La configuración relacionada con las cadenas de conexión, la autenticación, la membresía, el administrador de roles, el perfil y el estado de la sesión se colocarán en el archivo web.config de su directorio raíz. Elimine todas estas secciones de la web.config de la venta.

Paso 9:

· Crear el controlador de Venta en el proyecto de Venta.

· Cree una vista de índice y coloque el contenido "Bienvenido al módulo de ventas" en su encabezado.

Paso 10:

Ahora agregue el archivo SaleAreaRegistration.cs (archivo de respaldo del paso 6) al directorio raíz del proyecto Sale y cambie su espacio de nombres a MVCPluggableDemo; use la versión sobrecargada del método context.MapRoute () que acepta el espacio de nombres del controlador para usar de la siguiente manera:

Paso 11:

Ahora construya la solución y verifique la carpeta MVCPluggableDemo \ bin y allí tendrá las DLL compiladas para el módulo de Venta:

Paso 12:

Ahora ejecuta la aplicación! Si ha seguido todos los pasos correctamente, funcionará como se esperaba.

Puede seguir los mismos pasos y crear otros módulos más grandes por separado y conectarlos a su aplicación. ¿No es simple pero una característica tan poderosa cuando se trata del desarrollo de productos?

Publique sus comentarios, dudas y consultas a continuación. La aplicación de demostración también está disponible para descargar aquí. ¡Feliz codificación!