February 8, 2016

No Comments

PRIMEROS PASOS EN MVC Y SINTAXIS RAZOR

Para entender un poco más de cómo se utiliza la sintaxis del motor de vistas Razor en MVC vamos a crear un nuevo proyecto para eso abrimos Visual Studio. Nuevo proyecto.

 

Seleccionamos ASP.NET MVC 4 Web Application donde seleccionamos la ubicación y el nombre de nuestro proyecto en este caso el mio es ProjMVC

 

En las plantillas seleccionamos una plantilla Vacía esta plantilla no contiene ningún controlador ni vista. Pero no te preocupes aquí crearemos una.

En cuanto al motor de vista seleccionamos el motor Razor. En cuanto a la opción de pruebas unitarias en esta ocasión la dejamos sin seleccionar.

 

Una vez creado el proyecto podemos ver que ya están cargadas las carpetas con la estructura MVC en este caso son:

  1. Vistas
  2. Modelos
  3. Controladores

 

Para comenzar vamos agregar un nuevo controlador para eso nos colocamos en la carpeta Controller click derecho Add –> Controller. En Controller Name insertamos el nombre que deseamos tener en nuestro controlador en mi caso es Index y por norma se sugiere dejar enseguida de el nombre Controller como es mi caso.

Las plantillas apoyan al desarrollador creando una estructura en la cual pueda agregar, modificar y eliminar información de alguna base de datos. En nuestro caso la dejamos en Controlador MVC Vacío.

 

Al momento de agregar podemos observar que ya se creó el controlador dentro de la carpeta controllers

 

Al dar doble click sobre nuestro controlador tendremos la siguiente vista.

Donde nos creó un método que regresa un ActionResult el cual regresa a nuestra vista. En este caso no tenemos ninguna vista creada aun. Pero para crearla es muy sencillo. Tan solo es dar click derecho sobre el nombre del método y seleccionar Add View (Agregar Vista).

 

Donde nos abrirá una ventana donde nos indica el nombre de la nueva vista en mi caso es Index. El motor de Vistas que en este tutorial es Razor. También tenemos la opción de crear una vista fuertemente tipada a un modelo en este caso no tenemos un modelo creado que se vaya a comunicar con el controlador y la vista así que la dejamos en blanco al igual tenemos la opción de agregar una master page. En este caso igualmente dejamos en blanco a continuación damos click en Agregar.

Podemos observar que ya se creó la vista dentro de la carpeta Views (Vistas) y tenemos la siguiente pantalla al dar doble click.

Esta parte es la que nos interesa en este artículo para conocer un poco de la sintaxis de Razor.

En la parte superior podemos observar que se encuentra una sección declarada con un @{}

Dentro de esa sección nosotros podemos definir variables como comúnmente las manejábamos en el servidor con formularios en asp.net

En este caso declaremos dos inputs y un botón como en la siguiente imagen.

 

Estos input se van a comunicar con razor, ¿de qué manera? bueno como podemos observar en la parte inferior esta una variable llamada @totalMessage Esta variable es declarada en la sección antes mencionada del arroba y corchetes como veremos a continuación.


Dentro de esta sección podemos insertar la lógica como si fuera JavaScript teniendo la oportunidad de comunicarnos con los elementos que están declarados en nuestra página como veremos a continuación en donde obtendremos el valor de los dos textbox y por medio de un postback realizaremos una suma.


Como podemos apreciar con Request y el Id de nuestros controles podemos tener acceso a los mismos con la ventaja de también tener el intellinses para poderte ayudar a completar el código.

En este caso lo que realiza el código anterior es crear la variable de salida: totalMessage. Así como la la variable que alojara el resultado: total. Y dentro de las variables num1 y num2 obtenemos lo que el usuario ingrese en la página y realizamos el total indicándole que tanto num1 como num2 son enteros y guardando el resultado en totalMessage para mostrarlo en la página en esta sección


 

Debemos realizar un paso más antes de poder probar nuestros primeros pasos en MVC el cual es indicar la ruta la cual abrirá nuestra primera página para eso en el Explorado de soluciones buscamos la carpeta App_Start y dentro damos doble click sobre la clase RouteConfig.cs.


 

Este nos abrirá la siguiente página.


En donde nos indica que el controlador tiene por nombre Index que es el nombre que le indicamos al inicio al controlados que quedo como IndexController pero en este caso solo se utiliza index y la acción es el nombre del método que ejecutaremos en este caso el nombre del método es Index. En la parte de id se pueden enviar parámetros pero en esta ocasión no los usaremos.

Ahora si podemos probar nuestros primeros pasos en MVC al dar click en Ejecutar.


Resultado:

 


 

Happy Coding ;=)

Eduardo Sánchez Almazán

 

 


 

February 8, 2016

No Comments

Detectar campo faltante cuando Model State IsValid es false

 

Cuando se desarrolla en MVC tenemos el Modelo, Vista y el Controlador este último se encarga de toda lógica que se envía directo a la vista.

En algunas ocasiones necesitamos actualizar ciertos campos dentro de alguna tabla de nuestra base de datos y nos encontramos con ciertos problemas en los cuales se ve involucrado el ModelState

Como lo veremos en el siguiente ejemplo:

Aquí tenemos el Model del ejemplo:

 

Donde se puede observar que la columna FileName es Requerida

public class Document

{

public int Id { get; set; }

 

[Required(ErrorMessageResourceType = typeof(DocumentResource),

ErrorMessageResourceName = “FileNameError”)]

[Display(Name = “FileName”, ResourceType = typeof(DocumentResource))]

public string FileName { get; set; }

 

public DateTime DateCreated { get; set; }

 

public string CreatedBy { get; set; }

 

}

 

Aqui tenemos el Controller.

public ActionResult Create([Bind(Include = “FileName,DateCreated,CreatedBy”)] Document document)

{

if (ModelState.IsValid)

{

document.DateCreated = DateTime.Now;

document.CreatedBy = “juan perez”;

 

db.Documents.Add(document);

db.SaveChanges();

return RedirectToAction(“Index”);

}

 

return View(document);

}

En este método tenemos que recibe los campos de Id, Name, UserId, DateCreated y CreatedBy

El problema viene aquí en la vista cuando consume el controller de Create. Y está esperando recibir todas las columnas que sean requeridas y si hace falta alguna y el ModelState será False (Para este ejemplo no se está enviando la columna FileName que es requerida)

 

Si deseamos saber el por qué el Model State es False tan solo debemos colocar la siguiente consulta y nos detallara el problema por el cual el ModelState es false.

     var errors = ModelState.Where(x => x.Value.Errors.Count > 0)

              .Select(x => new { x.Key, x.Value.Errors })

              .ToArray();

 

Aquí podemos ver con la consulta el campo que ocasiona la excepción por la cual el ModelState es False

 

Y aquí el detalle con el campo.

February 8, 2016

No Comments

Git – Controlador de versiones

 

Hoy en día para los desarrolladores y los proyectos complejos que requieren una buena planeación y trabajo en equipo, es fundamental hace uso de todas las herramientas tecnológicas con las que hoy contamos, ya que estas nos van a facilitar el proceso de desarrollo.

El controlador de versiones es una de las tareas fundamentales para la administración de un proyecto de desarrollo de software, surge de la necesidad de llevar un control del código que vamos programando, conservando sus distintos estados.

 

Existen 2 tipos de variantes:

 

Sistemas centralizados: En estos sistemas hay un servidor que mantiene el repositorio y en el que cada programador mantiene en local únicamente aquellos archivos con los que está trabajando en un momento dado, es decir, en un sistema centralizado es el único lugar donde se encuentra todo el código del proyecto.

 

Sistemas distribuidos: En este tipo de sistemas cada uno de los integrantes del equipo mantiene una copia local del repositorio completo. Al disponer de un repositorio local, podemos subir cambios, sin necesidad de estar conectado a Internet o cualquier otra red, para posteriormente ser compartido.

 

Git es un controlador de versiones distribuido que tiene como objetivo controlar los cambios en el desarrollo de cualquier tipo de software, permitiendo conocer el estado actual de un proyecto, los cambios que ha realizado un integrante del equipo, los desarrolladores que intervinieron en él, la capacidad para regresar el sistema a un punto estable, etc.

Esto permite un gran rendimiento en grandes desarrollos, las búsquedas son mucho más eficaces lo que genera una gran rapidez para detectar diferencias entre archivos.

 

 

Además, en todo proyecto surge la necesidad de trabajar en distintas ramas al mismo tiempo, introduciendo cambios a los programas, tanto en el proyecto de desarrollo como del que tenemos en producción.

 

Otra de las ventajas con las que contamos al tener git son:

 

  • Comparar el código de un archivo, de modo que podamos ver las diferencias entre versiones
  • Restaurar versiones antiguas
  • Fusionar cambios entre distintas versiones
  • Trabajar con distintas ramas de un proyecto, por ejemplo la de producción y desarrollo
  • Resolver bugs y mantener actualizadas las copias

     

Git es multiplataforma, por lo que podemos usarlo y crear repositorios locales en los sistemas operativos más comunes como: Windows, Linux o Mac, para usarlo es necesario instalarlo en nuestro sistema.

 

Happy coding ;=)

Eduardo Sánchez Almazán