{"id":1928,"date":"2023-11-22T14:32:58","date_gmt":"2023-11-22T17:32:58","guid":{"rendered":"https:\/\/stackcodelab.com\/blog\/?p=1928"},"modified":"2023-12-03T10:44:14","modified_gmt":"2023-12-03T13:44:14","slug":"mvc-model-view-controller-en-c","status":"publish","type":"post","link":"https:\/\/stackcodelab.com\/blog\/mvc-model-view-controller-en-c\/","title":{"rendered":"MVC (Model-View-Controller) en C#"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">La arquitectura Model-View-Controller (MVC) es un patr\u00f3n de dise\u00f1o ampliamente utilizado en el desarrollo de aplicaciones de software. Proporciona una estructura organizada y modular para separar las preocupaciones en una aplicaci\u00f3n, lo que facilita el mantenimiento y la escalabilidad. En el contexto de C#, MVC se usa com\u00fanmente para desarrollar aplicaciones web, aunque tambi\u00e9n puede aplicarse a aplicaciones de escritorio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a><strong>Implementaci\u00f3n de Aplicaciones MVC en C#:<\/strong><\/a><strong><\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para implementar una aplicaci\u00f3n MVC en C#, sigue estos pasos generales:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Definir el modelo (Model): <\/strong>El modelo representa la l\u00f3gica de negocio y los datos de la aplicaci\u00f3n. Deber\u00eda ser independiente de la vista y el controlador. En C#, puedes crear clases para representar tus modelos.<\/li>\n\n\n\n<li><strong>Crear la vista (View):<\/strong> La vista es la interfaz de usuario de la aplicaci\u00f3n. En el contexto web, esto se traduce en las p\u00e1ginas web. Las vistas son responsables de presentar los datos del modelo al usuario de una manera comprensible. En ASP.NET MVC, las vistas suelen ser archivos Razor (.cshtml) que combinan HTML y c\u00f3digo C#.<\/li>\n\n\n\n<li><strong>Implementar el controlador (Controller):<\/strong> El controlador act\u00faa como intermediario entre el modelo y la vista. Procesa las solicitudes del usuario, interact\u00faa con el modelo y luego selecciona la vista adecuada para mostrar los resultados. En ASP.NET MVC, los controladores son clases que derivan de <code>Controller<\/code>.<\/li>\n\n\n\n<li><strong>Configurar rutas y enrutamiento: <\/strong>Debes configurar las rutas de las URL para que el enrutador de la aplicaci\u00f3n pueda dirigir las solicitudes al controlador y la acci\u00f3n correctos. Esto se hace a menudo en el archivo <code>RouteConfig.cs<\/code> en una aplicaci\u00f3n ASP.NET MVC.<\/li>\n\n\n\n<li><strong>Ejecutar la aplicaci\u00f3n:<\/strong> Una vez que has definido el modelo, la vista y el controlador, y has configurado las rutas, puedes ejecutar tu aplicaci\u00f3n. Cuando un usuario realiza una solicitud, el enrutador determina qu\u00e9 controlador y acci\u00f3n deben manejarla, y luego se genera la vista correspondiente.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><a><strong>Separaci\u00f3n de la L\u00f3gica de Negocio, la Presentaci\u00f3n y el Control:<\/strong><\/a><strong><\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La clave de MVC es la separaci\u00f3n de preocupaciones. Cada componente tiene una responsabilidad clara:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Model (Modelo):<\/strong> Contiene la l\u00f3gica de negocio y los datos. Aqu\u00ed se realizan operaciones como recuperar datos de la base de datos, aplicar reglas comerciales y procesar la informaci\u00f3n.<\/li>\n\n\n\n<li><strong>View (Vista):<\/strong> Representa la presentaci\u00f3n de los datos al usuario. Esto incluye el dise\u00f1o de la p\u00e1gina, la estructura HTML y c\u00f3mo se muestran los datos.<\/li>\n\n\n\n<li><strong>Controller (Controlador):<\/strong> Act\u00faa como intermediario. Procesa las solicitudes del usuario, interact\u00faa con el modelo y selecciona la vista adecuada para mostrar los resultados.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Esta separaci\u00f3n permite un desarrollo m\u00e1s modular y mantenible. Si necesitas cambiar la forma en que se muestra la informaci\u00f3n al usuario, solo necesitas trabajar en la vista, sin afectar al modelo o al controlador. Del mismo modo, puedes realizar cambios en la l\u00f3gica de negocio sin modificar la vista.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La arquitectura MVC es ampliamente utilizada en el desarrollo de aplicaciones web en C# y es una base s\u00f3lida para crear aplicaciones escalables y mantenibles.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a><strong>Ejemplo: Creaci\u00f3n de una Aplicaci\u00f3n MVC en C#:<\/strong><\/a><strong><\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La creaci\u00f3n de una aplicaci\u00f3n ASP.NET MVC en C# implica varios pasos, que incluyen la configuraci\u00f3n del proyecto, la definici\u00f3n de modelos, vistas y controladores, y la configuraci\u00f3n de las rutas. A continuaci\u00f3n, te proporcionar\u00e9 un resumen de los pasos y el c\u00f3digo de ejemplo para crear una aplicaci\u00f3n MVC b\u00e1sica en C# utilizando Visual Studio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 1: Configurar el Proyecto<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Abre Visual Studio.<\/li>\n\n\n\n<li>Selecciona \u00abFile\u00bb (Archivo) &gt; \u00abNew\u00bb (Nuevo) &gt; \u00abProject\u00bb (Proyecto).<\/li>\n\n\n\n<li>En el panel izquierdo, elige \u00abInstalled\u00bb (Instalado) &gt; \u00abTemplates\u00bb (Plantillas) &gt; \u00abVisual C#\u00bb &gt; \u00abWeb\u00bb.<\/li>\n\n\n\n<li>Selecciona \u00abASP.NET Web Application (.NET Framework)\u00bb.<\/li>\n\n\n\n<li>Asigna un nombre y una ubicaci\u00f3n a tu proyecto y haz clic en \u00abOK\u00bb.<\/li>\n\n\n\n<li>En el siguiente cuadro de di\u00e1logo, selecciona \u00abMVC\u00bb como plantilla y aseg\u00farate de que \u00abAuthentication\u00bb est\u00e9 configurado seg\u00fan tus necesidades. Haz clic en \u00abOK\u00bb para crear el proyecto.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 2: Definir un Modelo<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En una aplicaci\u00f3n MVC, el modelo representa la l\u00f3gica de negocio y los datos. Por ejemplo, aqu\u00ed tienes un modelo simple para representar un Producto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using System.ComponentModel.DataAnnotations;\r\n\r\npublic class Producto\r\n{\r\n    public int ID { get; set; }\r\n\r\n    &#91;Required]\r\n    public string Nombre { get; set; }\r\n\r\n    &#91;Required]\r\n    public decimal Precio { get; set; }\r\n}\r<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 3: Crear un Controlador<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El controlador procesar\u00e1 las solicitudes del usuario y se comunicar\u00e1 con el modelo. Puedes generar un controlador autom\u00e1ticamente en Visual Studio. Haz clic con el bot\u00f3n derecho en la carpeta \u00abControllers\u00bb (Controladores) de tu proyecto y selecciona \u00abAdd\u00bb (Agregar) &gt; \u00abController\u00bb (Controlador). Luego, sigue las instrucciones para crear un controlador basado en un modelo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 4: Crear una Vista<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las vistas son las p\u00e1ginas web que muestran los datos al usuario. Puedes crear vistas para las acciones de tu controlador utilizando archivos Razor (.cshtml) o ASPX (.aspx). Aqu\u00ed tienes un ejemplo simple de una vista Razor para mostrar una lista de productos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@model List&lt;Producto>\r\n\r\n&lt;h2>Lista de Productos&lt;\/h2>\r\n\r\n&lt;table>\r\n    &lt;tr>\r\n        &lt;th>ID&lt;\/th>\r\n        &lt;th>Nombre&lt;\/th>\r\n        &lt;th>Precio&lt;\/th>\r\n    &lt;\/tr>\r\n    @foreach (var producto in Model)\r\n    {\r\n        &lt;tr>\r\n            &lt;td>@producto.ID&lt;\/td>\r\n            &lt;td>@producto.Nombre&lt;\/td>\r\n            &lt;td>@producto.Precio.ToString(\"C\")&lt;\/td>\r\n        &lt;\/tr>\r\n    }\r\n&lt;\/table>\r<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 5: Configurar Rutas<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el archivo <code>RouteConfig.cs<\/code>, puedes configurar rutas para que las URL se asignen a las acciones de los controladores adecuados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 6: Ejecutar la Aplicaci\u00f3n<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Presiona F5 para compilar y ejecutar tu aplicaci\u00f3n MVC. Ahora podr\u00e1s acceder a ella desde tu navegador.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este es un ejemplo b\u00e1sico para crear una aplicaci\u00f3n MVC en C#. Puedes personalizar y ampliar tu aplicaci\u00f3n agregando m\u00e1s modelos, vistas y controladores, y estableciendo la l\u00f3gica de negocio seg\u00fan tus necesidades espec\u00edficas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La arquitectura Model-View-Controller (MVC) es un patr\u00f3n de dise\u00f1o ampliamente utilizado en el desarrollo de aplicaciones de software. Proporciona una estructura organizada y modular para separar las preocupaciones en una aplicaci\u00f3n, lo que facilita el mantenimiento y la escalabilidad. En el contexto de C#, MVC se usa com\u00fanmente para desarrollar aplicaciones web, aunque tambi\u00e9n puede [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2084,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[34],"tags":[],"class_list":["post-1928","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-y-otras-hierbas"],"uagb_featured_image_src":{"full":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/MVC-Model-View-Controller-en-C.jpg",1000,666,false],"thumbnail":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/MVC-Model-View-Controller-en-C-150x150.jpg",150,150,true],"medium":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/MVC-Model-View-Controller-en-C-300x200.jpg",300,200,true],"medium_large":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/MVC-Model-View-Controller-en-C-768x511.jpg",768,511,true],"large":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/MVC-Model-View-Controller-en-C.jpg",1000,666,false],"1536x1536":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/MVC-Model-View-Controller-en-C.jpg",1000,666,false],"2048x2048":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/MVC-Model-View-Controller-en-C.jpg",1000,666,false]},"uagb_author_info":{"display_name":"arquitecto","author_link":"https:\/\/stackcodelab.com\/blog\/author\/arquitecto\/"},"uagb_comment_info":0,"uagb_excerpt":"La arquitectura Model-View-Controller (MVC) es un patr\u00f3n de dise\u00f1o ampliamente utilizado en el desarrollo de aplicaciones de software. Proporciona una estructura organizada y modular para separar las preocupaciones en una aplicaci\u00f3n, lo que facilita el mantenimiento y la escalabilidad. En el contexto de C#, MVC se usa com\u00fanmente para desarrollar aplicaciones web, aunque tambi\u00e9n puede&hellip;","_links":{"self":[{"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/posts\/1928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/comments?post=1928"}],"version-history":[{"count":1,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/posts\/1928\/revisions"}],"predecessor-version":[{"id":1930,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/posts\/1928\/revisions\/1930"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/media\/2084"}],"wp:attachment":[{"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/media?parent=1928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/categories?post=1928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/tags?post=1928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}