Implementando el patrón Repositorio y Unidad de Trabajo (Unit of Work & Repository) – ASP.NET MVC 5

En esta entrada veremos un patrón de diseño que utilizo ya en todos los proyectos en los que participo, que consiste básicamente en la creación de una capa intermedia que se encuentra entre la Data Layer (acceso a datos) y la Bussiness Layer (reglas de negocio).

El uso de repositorios llega a ser muy común, ya que permite tener bien divida la aplicación, re utilización de código y ademas hace más sencillo el uso de pruebas unitarias, más si usamos interfaces e inyección de dependencias para poder crear  mockups, fake data y ese stuff.

En una unidad de trabajo su función principal es juntar todos los repositorios que conforman nuestra capa de datos y ordenarlos de tal forma que permiten el trabajar en el mismo contexto de Entity Framework y poder hacer operaciones entre repositorios y todo en las mismas transacciones. La unidad de trabajo es utilizada por la capa de negocios, que por lo regular ahí se incluyen las reglas que nuestra aplicación tendrá. Y finalmente el controlador de MVC que es el que nos comunicará con la vista. Sin mencionar que en el front-end podemos tener arquitecturas MVW (AngularJS) o MVVM (KnockoutJS, KendoUI)… un sin fin de patrones que son tan emocionantes!
Continuar leyendo “Implementando el patrón Repositorio y Unidad de Trabajo (Unit of Work & Repository) – ASP.NET MVC 5”

Anuncios

Windows Communication Foundation–Callbacks [C#]

Hola de nuevo, aquí les vengo a traer nuevo material. Trata de WCF Callbacks.

Que es WCF Callbacks?

Un callback, es un termino muy conocido en programación, al menos yo lo he escuchado seguido. Si has trabajado por ejemplo con javascript y jQuery, sabrás de lo que significan las Callbacks. Una callback es una devolución de llamada, o sea, hay una acción o una llamada a una función inicial que al terminar esa función nos devuelve otra acción. Es como un evento.

Como se observa en la imagen, una llamada a una función del cliente al servicio o servidor, y el servicio llama a una función en el cliente. Esto en WCF son las callbacks.

Se pueden hacer una infinidad de cosas con las funciones callbacks. Imagen dropbox, un cliente desde una computadora sube un archivo (llamada al servidor) y una vez que el archivo se subió, los clientes (en otras computadoras claro) deben descargarlo. El servidor provoca un callback diciendo que se subió un archivo nuevo, se los mandaré a los clientes. Y así todos los clientes comienzan a descargar el archivo que subió un cliente.

Un callback necesita un canal bidireccional, para poder hacer llamadas al servicio y el servicio al cliente. En WCF tenemos distintos bindings que soportan canales bidireccionales, de los que tenemos: wsDualHttpBinding (ideal solo para servidor-servidor) y netTcpBinding (ideal para un cliente detras de NAT y routers).

Es necesario usar TCP para no meternos en problemas con routers y NAT si queremos que un cliente normal se conecte en un canal bidireccional. Http por definición es de un unidireccional pero con wsDualHttpBinding se convierte bidireccional, pero es necesario crear un doble canal (por lo tanto el cliente funcionaria como servidor, es por eso el problema de los routers, NAT, etc).

En fin, comencemos.

Tengo un proyecto recién creado, una aplicación WCF (puede ser con .NET 3.0)

image

 

Continuar leyendo “Windows Communication Foundation–Callbacks [C#]”

Como hacer un Chat multi usuario con WCF y C#

Hola a todos 🙂

En este post vengo a traerles algo muy interesante, y esto es un screencast un poco largo (lo siento) pero aprenderán como hacer un chat multi usuario utilizando C# y Windows Comunication Foundation.
El screencast esta divido en dos vídeos, muestro paso por paso como hacer el chat multi usuario con su cliente y su servidor.

Pueden bajar el codigo fuente desde esta pagina http://wcfsimplechat.codeplex.com/ y ademas vean el video HD y en una ventana aparte y se notará todo muy bien!

Parte 1:

Parte 2:

“ABC de Clientes” en ASP.NET & MySQL [Parte 3/3]

Buenas noches! y llegamos a la tercera parte!, en esta continuaremos haciendo la pagina “consultas.aspx”, en esta rellenaremos un Grid View desde puro codigo, o sea sin utilizar un SQL data source.

Antes de comenzar, al masterPage que habiamos agregado, le vamos a agregar dos menus items mas, que nos llevaran a la pagina que ya habiamos hecho (consultas) y otra que haremos mas delante que sera bitacora, el cual nos mostrara los cambios que se han realizado. Para eso nos vamos al codigo html de nuestro master page y hagregamos lo siguiente.

image

Continuar leyendo ““ABC de Clientes” en ASP.NET & MySQL [Parte 3/3]”

“ABC de Clientes” en ASP.NET & MySQL [Parte 1/3]

Buenas noches!, en esta entrada intentaremos hacer un pequeño ABC de clientes, en el cual podremos dar altas y bajas de clientes a una base de datos! (en mysql), poder modificarlos y ademas si se ha realizado algun cambio en los clientes, estos seran guardados para saber quien hizo el cambio (dia,hora etc). (al ir haciendo el post, decidi dividirlo en partes )In love

Lo que vamos a hacer es una base de datos en MySQL WorkBench y  veremos como crear Disparadores (triggers) para que cada vez que se modifiquen los clientes se realize alguna accion (en este caso guardar hora y fecha, etc).

El siguiente video muestra lo que haremos en estos 3 posts

MySQL WorkBench 5.2

 

Continuar leyendo ““ABC de Clientes” en ASP.NET & MySQL [Parte 1/3]”

Conectarse a MySQL desde C# [Visual Studio 2010]

Buenas noches a todos!, en esta entrada vengo a hacer un ejemplo que ya hemos hecho en Java, pero ahora vengo a presentarles como hacerlo desde C# (o VisualBasic que es casi igual).

Lo que vamos a necesitar para esta practica es tener el conector de MySQL para .NET, lo podemos descargar de aqui.

Primero iniciaremos un proyecto nuevo de winforms con C# en Visual Studio 2010, y crearemos una UI muy simple, que contendra un data grid view y un boton para realizar la consulta, mirandose de la siguiente manera:

image

La base de datos es la misma usada en ejemplos anteriores, es la BD Sakila que se puede descargar desde la pagina de MySQL, si no haganla con la BD que ustedes deseen.

Para comenzar tenemos que tener instalado el connector que ya les puse arriba y por si acaso tendremos que agregarlo en referencias:
Continuar leyendo “Conectarse a MySQL desde C# [Visual Studio 2010]”

MegaTutorial(part 3) How to: ASP.NET MVC 2

Despues de un tiempo de ausencia vuelvo aqui con estos tutoriales de MVC, esta es la tercera parte, si no has visitado las anteriores, te recomiendo que lo hagas! Parte 1. Bueno comencemos con la tercera parte, lo que veremos ahora es acceder a una base de datos, la base de datos es esta la puedes bajar de aqui, bueno comencemos!.

Models y Data Access.

Hasta el momento, lo que hemos estado haciendo es solo transmitir cadenas de direcciones URL que van a nuestro  accion controlador (Action Controller) y la manda a nuestra vista. Esa es una buena manera de sentar las bases, pero ahora estamos listos para conectarnos a una base de datos. Empezaremos añadiendo un directorio App_Data que es un directorio especial en ASP.NET que ya cuenta con los permisos de seguridad necesarios para el acceso a base de datos.

Dando click derecho en el projecto y seleccionamos Add | Add ASP.NET Folder | App_Data.

Continuar leyendo “MegaTutorial(part 3) How to: ASP.NET MVC 2”