sábado, agosto 28, 2010

Desarrollo Aplicación N-Capas para Windows Mobile ( I )

Hola a tod@s nuevamente, el título de este post me lo han pedido que lo explique muchas veces, me preguntan si es posible desarrollar una aplicación para dispositivos móviles por capas y la respuesta es Sí.

 

A continuación voy a explicar como es la arquitectura de una aplicación de N-Capas, al decir N-Capas, podemos pensar en 2, 3, 4, o más capas, ya depende de organicemos nuestro trabajo y lo que necesitamos desarrollar.

 

En primera instancia un desarrollo con una arquitectura por capas tenemos que concientizarnos de partir las diferentes funcionalidades que deseemos realizar en nuestro desarrollo en varias partes y ubicarlos dentro de una de las capas que hayamos definido dentro de nuestra arquitectura.

 

Particularmente, yo me baso en el siguiente esquema para los desarrollos por capas de mis aplicaciones:

 

image

Capa de Presentación

Como podemos observar de arriba hacia abajo tenemos una serie de capas, en donde la capa inicial es la capa de presentación o de interface de usuario, esta capa esta conformada por los formularios de la aplicación Windows o por las páginas .aspx o web forms de una aplicación ASP.NET. En cuanto al tema de las aplicaciones para dispositivos móviles nuestra capa de Presentación será también nuestra aplicación Windows Mobile.

Esta capa hablando en términos de desarrollo con Visual Studio, es el proyecto de tipo Windows Application, o Web Application, o aplicación Windows para Windows Mobile.

Para el caso de una aplicación que es un Web Service o un Servicio de Windows Communication Foundation (WCF), esta capa seria el servicio como tal que es quien expone al mundo los métodos a consumir o a utilizar por las aplicaciones que consuman dichos servicios.

 

Capa de Negocio

Esta capa es la segunda en la estructura de la imagen, en esta capa es donde debemos colocar el código de nuestra aplicación que se encargue de realizar las operaciones inherentes al negocio o tipo de aplicación que estemos desarrollando.

Algunos se preguntarán, pero cuales son esas tareas del negocio? esto a veces es un poco subjetivo y algunos no alcanzamos a descubrir línea que nos permite saber que es lo que debe ir en esta capa.

Bueno, vamos a tratar de aclarar este punto, en esta capa se definen las operaciones o cálculos que se necesiten realizar para las operaciones de nuestra aplicación.

En esta capa se arman las interfaces para llamar los diferentes métodos que devuelven datos a nuestra aplicación, porque esta es la capa con al cual interactuaremos desde la capa de Presentación.

Esto quiere decir que desde la presentación no estaremos en contacto directo con la capa que maneja los datos de nuestro repositorio de datos.

Esta capa también es la encargada de solicitar los datos a la capa del manejo de los datos y los entrega a la capa de Presentación.

Recuerden en esta capa si necesitamos realizar alguna operación como el calculo de un total, un promedio, etc., aquí es donde debemos realizar esa operación y devolverla a la capa de presentación.

Espero que en el ejemplo esto lo pueda explicar mucho mejor y sea mas claro para todos. En nuestra solución de Visual Studio esta capa es un proyecto de tipo librería de clases que agrupa todas las clases necesarias.

 

 

Capa de Manejo de Datos

Esta es una de las capas mas importantes, esta capa es la encargada de la creación de los diferentes “querys” o consultas a la base de datos para obtener los datos que necesitamos en nuestra aplicación.

Esta capa también es la encargada de convertir los datos que devuelve la capa que interactúa con nuestra base de datos, o sea un datatable, un datareader o un dataset, en una lista genérica o una colección de objetos de tipo entidad como veremos mas adelante en una de las capas ( la capa transversal).

Esta capa esta representada por un proyecto de tipo librería de clases dentro de nuestra solución de Visual Studio.

 

Capa de Acceso a Datos

Esta capa es un proyecto de tipo librería de clases en nuestra solución de Visual Studio, en esta capa vamos a tener una clase que se conecte a la base de datos que vayamos a utilizar y se encarga de realizar todas las operaciones contra la base de datos seleccionada como repositorio de datos de nuestra solución.

La importancia de esta capa radica en que si cambian el motor de base de datos el impacto en nuestra aplicación va a ser mínimo pues solo hay que modificar o corregir esta capa para el acceso y conexión a la nueva base de datos.

 

Capa de Infraestructura Transversal

En esta capa vamos a definir las clases de tipo entidad en la cual vamos a transportar los datos entre las diferentes capas de nuestra solución.

Las clase de tipo entidad son una copia de la estructura de nuestras tablas de la base de datos a utilizar, o de acuerdo a las necesidades que tengamos.

Por ejemplo los resultados que necesitamos para un reporte impreso por lo general son muy variables y toca crear una entidad única para ellos.

 

Bueno esto no es una ley, como dije antes todo depende de nuestro proyecto y de la manera que queramos hacer las cosas, muchas veces las primeras dos capas se unen y quedan en una sola, todo depende de cada uno de nosotros.

 

Bueno por hoy, hasta aquí, pronto haremos un ejemplo de una aplicación usando esta metodología.

Hasta la próxima!

Enjoy develop!

miércoles, agosto 18, 2010

{EVENTO} BogotaDotNet en BarCamp Bogota 2010

Hola a tod@s quiero invitarl@s al evento BarCamp 2010 en Bogotá el próximo sábado 21 de agosto desde las 9 AM en las instalaciones de la fundación universitaria Cafam en el barrio la Floresta.

Los espero a tod@s.

afiche_barcamp-80

Para inscribirse lo pueden hacer en la siguiente dirección: Inscripción BarCamp 2010 Bogotá

La comunidad BogotaDotNet estará presente en este evento con las siguientes conferencias:

09:00 am:  Desarrollo para Windows Phone 7                        - Roberto Alvarado

09:30 am:  Entity Framework 4.0, beneficios como herramienta ORM  - Nelson Venegas

10:00 am:  SQL Server 2008 R2 Express                             - John Alexander Bulla

10:30 am:  Parallel computing development                         - Juan Carlos Ruiz


Además hay mas conferencias hasta las 5 p.m. los esperamos!

lunes, agosto 02, 2010

Operaciones CRUD Windows Mobile, SQL Mobile

Aquí les dejo el código de ejemplo del proyecto de las operaciones CRUD con ADO.NET en Windows Mobile con SQL Mobile en C#.

 Proyecto con el ejemplo del Articulo

Que lo disfruten!