Cómo crear un proyecto nuevo de MVC en Visual Studio 2010
Esta interrogante me llevó a investigar acerca de cómo programar en MVC ;ya que era un requisito de construcción del sistema dentro del curso de Desarrollo de Sistemas Distribuidos.
Investigué la lógica de la programación .Asimismo,también las ventajas y desventajas que presenta .
Ventajas de ASP.NET MVC
- Ha sido diseñados desde cero para realizar SoC y TDD.
- No se realizan postback para atender una petición del usuario.
- El Viewstate no es necesario para mantener el estado de la página.
- No se utilizan controles de servidor con los que se pierde el control del html generado.
- No depende de archivos aspx físicos.
- El entorno de tiempo de ejecución es en gran medida la misma que en formularios Web Forms ASP.NET, pero el ciclo de solicitud es más sencillo y más directa.
- Una parte esencial del modelo de formularios Web Forms, el ciclo de vida de página, ya no es necesaria en ASP.NET MVC.
Inconvenientes de ASP.NET MVC
- Control total sobre HTML, JavaScript y CSS, ASP.NET MVC significa que se introducen manualmente los elementos Web.
- Toma un paso hacia atrás en términos de productividad y facilidad de uso.
- Se requiere familiarización inicial con el patrón MVC. Se tiene que saber cómo funcionan conjuntamente los controladores y vistas en la implementación de ASP.NET.
- No se puede aprender fácilmente experimentando lo que disminuye la productividad de los desarrolladores.
La decisión final sobre que framework utilizar dependerá de cuales de las características de ambos frameworks se adaptan a las necesidades del proyecto a desarrollar. Si quieren empezar a aprender un poco mas sobre el Framework ASP.NET MVC les recomiendo que visiten los siguientes link donde el mismo Scott Guthrie explica las bondades y características del Framework ASP.NET MVC.
A continuación muestro un tutorial que me sirvió de mucho a la hora de iniciar en la construcción del proyecto en el mundo MVC de .NET
- En el menú Archivo, haga clic en Nuevo proyecto.Aparecerá el cuadro de diálogo Nuevo proyecto.
- En la esquina superior derecha, asegúrese de que esté seleccionado .NET Framework 3.5.
- En Tipos de proyecto, expanda Visual Basic o Visual C# y, a continuación, haga clic en Web.
- En Plantillas instaladas de Visual Studio, seleccione Aplicación web de ASP.NET MVC 2.
- En el cuadro Nombre, escriba MvcBasicWalkthrough.
- En el cuadro Ubicación, escriba un nombre para la carpeta de proyecto.
- Si desea que el nombre de la solución difiera del nombre del proyecto, escriba un nombre en el cuadro Nombre de la solución.
- Seleccione Crear directorio para la solución.
- Haga clic en Aceptar.Aparecerá el cuadro de diálogo Crear proyecto de prueba unitaria.
Nota
Si está utilizando las ediciones Standard o Express de Visual Studio, no se muestra el cuadro de diálogo Crear proyecto de prueba unitaria. En su lugar, el nuevo proyecto de aplicación MVC se genera sin un proyecto de prueba. - Seleccione Sí, crear un proyecto de prueba unitaria.De forma predeterminada, el nombre del proyecto de prueba es el nombre del proyecto de aplicación y se le agrega "Tests". Sin embargo, puede cambiar el nombre del proyecto de prueba. De forma predeterminada, el proyecto de prueba utilizará el marco de pruebas unitarias de Visual Studio. Para obtener información sobre cómo utilizar un marco de pruebas de otro fabricante, vea Cómo: Agregar un marco de pruebas de ASP.NET MVC personalizado en Visual Studio.
- Haga clic en Aceptar.Se generan el nuevo proyecto de aplicación MVC y un proyecto de prueba. (Si está utilizando las ediciones Standard o Express de Visual Studio, no se crea el proyecto de prueba.)La estructura de carpetas de un proyecto de MVC difiere de la de un proyecto de sitio web de ASP.NET. El proyecto de MVC contiene las carpetas siguientes:
- Content, para los archivos de compatibilidad del contenido. Esta carpeta contiene la hoja de estilos en cascada (archivo .css) para la aplicación.
- Controllers, para los archivos de controlador. Esta carpeta contiene los controladores de ejemplo de la aplicación, que se denominanAccountController y HomeController. La clase AccountController contiene la lógica de inicio de sesión para la aplicación. La claseHomeController contiene la lógica a la que se llama de forma predeterminada cuando la aplicación se inicia.
- Models, para los archivos de modelo de datos como los archivos .dbml de LINQ to SQL o los archivos de entidad de datos.
- Scripts, para los archivos de script, como los compatibles con ASP.NET AJAX y jQuery.
- Views, para los archivos de paginación de vistas. Esta carpeta contiene tres subcarpetas: Account, Home y Shared. La carpeta Account contiene vistas que se utilizan como interfaz de usuario para el inicio de sesión y para cambiar las contraseñas. La carpeta Home contiene una vista Index (la página de inicio predeterminada para la aplicación) y una vista de página Acerca de. La carpeta Shared contiene la vista de la página maestra para la aplicación.El proyecto de MVC recién generado es una aplicación completa que puede compilar y ejecutar sin cambios. La ilustración siguiente muestra cómo aparecía la aplicación al ejecutarla en un explorador.
El proyecto de prueba unitaria también está listo para compilar y ejecutar. Para este tutorial, agregará un controlador con un método de acción y una vista y agregará una prueba unitaria para el método de acción.
Ahora agregará un controlador que contiene la lógica para descargar mapas urbanos del servicio Web Microsoft Virtual Earth.Para agregar un controlador al proyecto de MVC
- En el Explorador de soluciones, haga clic con el botón secundario en la carpeta Controllers, haga clic en Agregar y, a continuación, haga clic enControlador.Aparece el cuadro de diálogo Agregar controlador.
- En el cuadro Nombre, escriba MapsController.El marco de ASP.NET MVC exige que los nombres de controlador acaben en "Controller", como HomeController, GameController oMapsController.
- Desactive la casilla Agregar métodos de acción para los escenarios Create, Update y Details.
- Haga clic en Agregar.Visual Studio agrega la clase MapsController al proyecto y lo abre en el editor.
Para aplicar técnicas de desarrollo basado en pruebas (TDD) a este proyecto debe escribir la prueba unitaria para un método de acción antes de escribir el propio método de acción. Sin embargo, si desea que su prueba unitaria se compile, debe tener un código auxiliar para el método de acción planeado, que en este tutorial es ViewMaps.Para agregar un código auxiliar de método de acción
- Abra o cambie a la clase MapsController.
- Reemplace el método de acción Index con el código siguiente para crear el código auxiliar de método de acción ViewMaps.
Function ViewMaps() ' Add action logic here Throw New NotImplementedException() End Function
public ActionResult ViewMaps() { // Add action logic here throw new NotImplementedException(); }
Después agregará una vista Maps. Para mantener las vistas organizadas, agregará primero una carpeta Maps bajo la carpeta Views.Para agregar una vista de contenido de página al proyecto de MVC
- Abra la clase MapsController, haga clic con el botón secundario del mouse dentro del método de acción ViewMaps y, a continuación, haga clic enAgregar vista.Se mostrará el cuadro de diálogo Agregar vista.
- En el cuadro Nombre de vista, escriba ViewMaps.
- Desactive las casillas Crear una vista parcial (.ascx) y Crear una vista fuertemente tipada.
- Active la casilla Seleccionar la página maestra y establezca la página maestra en ~/Views/Shared/Site.Master.
- Establezca ContentPlaceHolder ID en "MainContent".
- Haga clic en Agregar.La nueva vista se agrega al proyecto en la carpeta Maps.
A continuación, agregará contenido a la nueva vista.Para agregar contenido a la vista
- Abra ViewMaps.aspx y agregue el contenido siguiente dentro del elemento Content:
<h2>My City Maps</h2> Select map: <select onclick="GetMap(value);"> <option value="Seattle">Seattle, WA</option> <option value="LasVegas">Las Vegas, NV</option> <option value="SaltLake">Salt Lake City, UT</option> <option value="Dallas">Dallas, TX</option> <option value="Chicago">Chicago, IL</option> <option value="NewYork">New York, NY</option> <option value="Rio">Rio de Janeiro, Brazil</option> <option value="Paris">Paris, France</option> <option value="Naples">Naples, Italy</option> <option value="Keta">Keta, Ghana</option> <option value="Beijing">Beijing, China</option> <option value="Sydney">Sydney, Australia</option> </select> <br /> <br /> <div id='earthMap' style="position:relative; width:400px; height:400px;"> </div> <script charset="UTF-8" type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us"> </script> <script type="text/javascript"> var map = null; var mapID = ''; function GetMap(mapID) { switch (mapID) { case 'Seattle': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(47.6, -122.33), 10 ,'i', true); break; case 'LasVegas': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(36.17, -115.14), 10 ,'i' ,true); break; case 'SaltLake': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(40.75, -111.89), 10 ,'i' ,true); break; case 'Dallas': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(32.78, -96.8), 10 ,'i' ,true); break; case 'Chicago': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(41.88, -87.62), 10 ,'i' ,true); break; case 'NewYork': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(40.7, -74), 10 ,'i' ,true); break; case 'Rio': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(-22.91, -43.18), 10 ,'i' ,true); break; case 'Paris': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(48.87, 2.33), 10 ,'i' ,true); break; case 'Naples': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(40.83, 14.25), 10 ,'i' ,true); break; case 'Keta': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(5.92, 0.983), 10 ,'i' ,true); break; case 'Beijing': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(39.91, 116.39), 10 ,'i' ,true); break; case 'Sydney': map = new VEMap('earthMap'); map.LoadMap(new VELatLong(-33.86, 151.21), 10 ,'i' ,true); } } </script>Este marcado define una lista desplegable para seleccionar un mapa y la lógica de JavaScript para recuperar el mapa seleccionado del servicio Web Microsoft Virtual Earth. - Guarde y cierre el archivo.
Agregará ahora un elemento al menú de página maestra que llama al método de acción ViewMaps.Para agregar una pestaña al menú de página maestra
- En la carpeta Shared, abra el archivo Site.master y busque la lista no ordenada (elemento ul) en el elemento div cuyo identificador es "menucontainer".
- Agregue el código siguiente a la lista entre el Índice y las pestañas About Us:
<li><%= Html.ActionLink("My City Maps", "ViewMaps", "Maps")%></li>El método ActionLink es un método auxiliar con vínculos a un método de acción. Toma los parámetros siguientes: el texto del vínculo, el nombre del método de acción y el nombre del controlador. - Guarde y cierre el archivo.
Ya puede probar la aplicación.Para probar la aplicación MVC
- En el menú Prueba, haga clic sucesivamente en Ejecutar, Todas las pruebas de la solución.Los resultados se muestran en la ventana Resultados de pruebas. Esta vez las pruebas se realizan correctamente.
- En Explorador de soluciones, seleccione el proyecto de tutorial y presione CTRL+F5 para ejecutar la aplicación.Se muestra la página Index.aspx, que incluye las pestañas que están definidas en la página maestra.
- Haga clic en la pestaña My City Maps.Se muestra la página My City Maps. Seleccione cualquier mapa para verlo en pantalla.
No hay comentarios:
Publicar un comentario