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

Como usar REDIS desde Windows y C# [Visual Studio 2015]

En esta entrada veremos algo sencillo pero útil que nos sirve de introducción a las nuevas tecnologías que cada vez son más escuchadas a la hora de trabajar o estudiar nuevas tecnologías en el día a día.

Es turno de Redis, un motor de base de datos NoSQL del tipo key-value caché con persistencia de información. Esto significa que funciona como cualquier caché muy comunes en frameworks web, funcionando como un array asociativo (por eso su descripción de ser key-value) pero manteniendo una persistencia de los datos tanto en memoria y disco duro.

También Redis es popular por ser un servidor de datos estructurados ya que permite no solo guardar un valor relacionado a una llave, sino estructuras diferentes como hashes, listas, bitmaps, hash ordenados y entre otros.

NOTA: Todas las imágenes al darle click se abrirán en una ventana aparte.

Instalando REDIS en Windows

Continuar leyendo “Como usar REDIS desde Windows y C# [Visual Studio 2015]”

Chat con SignalR 2.0 y MVC 5 (Visual Studio 2013)

Buenas noches a todos!, vengo de nuevo con estos screencast que ya me gusta hacer jaja. He durado bastante tiempo en hacer tutoriales, los últimos fueron tutoriales para mis alumnos del Tecnológico y ahora que me he tomado mucho café, pues se me ha quitado el sueño y decidí platicar acerca de SignalR.

Les paso los videos en youtube, les recomiendo que los vean en HD y cualquier duda ya saben, me la hacen saber y espero poder contestarles (últimamente he tenido este blog muy abandonado, lo siento 😦 )

Parte 1:



Parte 2:

Saludos 😀 y ya se la saben! Code4Fun 😀

Crear un API con .NET y consumirla desde Android

Bueno, en esta entrada vamos a tener dos videos en donde realizo lo que dice el título, crear un API ( o esa, un webservice REST) y consumir ese webservice desde Android/Java.

El vídeo, recomiendo que lo vean en HD y en pantalla completa, el audio no me fijé, pero no quedo del todo bien, espero y les sea de utilidad.

Crear un Webservice REST con WCF y C#

Consumir el WebService JSON desde Android

Código fuente: https://github.com/isaacOjeda/AndroidAPIConsumer

Como comprimir archivos con GZip [C#]

Que tal, ahora estoy intentando escribir mas seguido en el blog, pero para lograr esto lo estaré haciendo con post’s un tanto cortos.

Ahora vamos a ver como comprimir archivos con C#, lo haré lo mas sencillo posible, sin utilizar alguna GUI ni nada, simplemente por consola.

Crear un proyecto de consola

image

Lo nombraré FileGZipCompressor pero pues igual, llamenlo como uds. deseen

Crearemos una clase que se llame GZipHelper (si siguen mis posts, veran que me gusta hacer muchos helpers… jaja)

Clase GZipHelper.cs

En esta clase agregaremos los siguientes namespaces

image

Esta clase tendrá los métodos que comprimen y descomprimen, así que agregaremos un método que comprima para empezar:

image

En la linea 16-17 estamos verificando que el archivo realmente exista, si no existe lanzamos una excepción con una simple información “El archivo no existe”.

En la linea 19 estamos abriendo un Stream del archivo que queremos comprimir, es decir, lo estamos abriendo. en la linea 20 estamos creando un nuevo Stream que se guardará en la misma ruta que el archivo que estamos abriendo en la linea anterior, pero agregandole un “.gz”, es decir, el archivo comprimido ahí se guardará.

Creamos un arreglo de bytes que contendrá el archivo normal (sin comprimir), y este será utilizado para comprimir el archivo y escribirlo en el Stream “destinationFile”

Continuar leyendo “Como comprimir archivos con GZip [C#]”

Encriptación Asimétrica RSA en C#

Saludos!, ya tenía mucho sin escribir algo en el blog y pues la verdad es que no había tenido mucho tiempo.

Ahora quiero tratar un post corto, pero algo interesante. Lo que vamos a hacer es encriptar cualquier cosa en C# utilizando llaves públicas y privadas, o sea encriptación asimétrica.

Empezaremos creando un nuevo proyecto/solución en Visual Studio utilizando WinForms:

image

Teniendo la solución inicial, vamos la siguiente interfaz de usuario :

image

image

Crear las llaves publicas y privadas

Continuar leyendo “Encriptación Asimétrica RSA en C#”

Push notifications en Android a través de Google Cloud Messaging

Buenas noches a todos!, en esta entrada quiero mostrarles de una manera practica la forma de enviar notificaciones remotas a tu dispositivo Android. Me voy a basar en la documentación que ya existe en Android deveolpers, esto para ahorrarme la parte en relación a Google, ya que es un servicio mantenido por el.

Primero que nada necesitamos una cuenta de google, o sea una cuenta de correo gmail para poder acceder a los servicios:

Creando un Proyecto en Google API

  1. Primero tenemos que entrar a la siguiente dirección y abrir la página Google APIs Console page https://code.google.com/apis/console
  2. Si aun no hemos creado un proyecto de google, nos aparecerá la siguiente pantalla:

    Nota: si ya hemos creado un proyecto, la primera página que verás sera tu “dashboard”. Ahí puedes crear un nuevo proyecto abriendo el menú desplegable (en la esquina superior izquierda) escogiendo Other projects > Create.

  3. Clic en Create project. En tu navegador tu URL cambiará en una manera similar a esta:
    https://code.google.com/apis/console/#project:4815162342
  4. Toma nota el valor despues de #project (4815162342 en este ejemplo). Este es tu número de proyecto de google, será utilizado despues como el “GCM Sender ID” en Android.

Habilitando nuestro GCM Service
Continuar leyendo “Push notifications en Android a través de Google Cloud Messaging”