DataLayer.Primitives and DataLayer.Primitives.Core Public Version Released...!!! : Javier Luna blog

Saturday, November 20, 2004

DataLayer.Primitives and DataLayer.Primitives.Core Public Version Released...!!!

Les entrego la version publica del DataLayer.Primitives and DataLayer.Primitives.Core

Que podran descargar de cualquiera de los siguentes lugares:

http://www.msnusers.com/guydotnetxmlwebservices/Documents/DataLayer.zip

http://www.msnusers.com/guydotnetxmlwebservices/Documents/DataLayer.rar


Pero previamente deberan unirse al grupo a traves del siguiente link:
http://groups.msn.com/guydotnetxmlwebservices/join

¿Que es DataLayer.Primitives and DataLayer.Primitives.Core? ¿Y para que sirve?

Es la solucion .NET orientada a la capa de acceso a datos de un producto de software que se desarrolla sobre la tecnologia del .NET Framework.

La intencion es poder construir un producto basado en una arquitectura de tres capas. Que permita flexibilidad y escalabilidad dentro de su tiempo de vida..

¿Como podria usarlo dentro de mi desarrollo de software?

Generalmente, deberiamos contar con tres soluciones, para la construccion de un producto de software.

DataLayer.sln -> Orientado a la capa de acceso a datos.
BusinessLayer.sln -> Orientado a logica de negocio
UserLayer.sln -> Orientado a interfaz del usuario

En esta oportunidad, les entrego la version publica del DataLayer.sln

¿Que existe dentro del DataLayer.sln?

En el encontraremos, los siguientes proyectos .cs.proj

CommonLayer.Customs : Clases customizadas para un uso particular
CommonLayer.Nullables : Tipos de datos que soportan nulo
CommonLayer.Exceptions : Excepciones para su uso dentro del producto
DataLayer.Primitives and DataLayer.Primitives.Core : Bloque orientado a las operaciones contra la BD
DataLayer.WinApp : Proyecto que testea esta capa de la arquitectura.

¿Como interactua el DataLayer.Primitives and DataLayer.Primitives.Core con las demas capas?

El BusinessLayer.sln es el lugar de donde podras interactuar con el DataLayer.Primitives and DataLayer.Primitives.Core y hacer uso de las clases que ella te brinda para poder consruir las operaciones contra la Base de Datos.

Dentro de ls version publica del DataLayer.Primitives, encontraras las siguientes clases:

PrimitiveEntity : Es una clase que debe ser heradada necesariamente para permitirte aprovechar las operaciones basicas para una tabla de base de datos, desde la perspectiva CRUD. Sobre escribiendo los metodos OnSelect, OnInsert, OnUpdate y OnDelete para poder indicar los parametros que han de ser usados para la ejecucion de cada uno de los stores procedures que han de realizar dichas operaciones.
PrimitiveExecutable : Es una clase que simplemente de ser instanciada para poder ejecutar operaciones contra la base de datos, sean estas a traves de store procedures o sentencias sql.
PrimitiveParameter : Es la clase que nos permitira la creacion sencilla de diferentes tipos de parametros para ser entregados en la ejecucion de los stores procedures, al PrimitiveEntity o el PrimitiveExecutable, dependiendo de lo que hayas usado para realizar operaciones contra la DB.
PrimitiveParameterCollection : Es una colleccion de PrimitiveParameter basada en DictionaryBase, para poder tener un acceso inmediato a cada uno de los elementos de la colleccion con solo tener el nombre del parametro. Muy util cuando se deseas retornar valores a traves de los parametros de un store procedure. Pero siempre usado en todo lugar del DataLayer.Primitives donde se necesiten parametros.
PrimitiveProcedure : Es una estructura que encapsula la definicion basica de un store procedure.
PrimitiveSql : Estructura simple para definir una sentencia SQL.

¿Como deberia estar estructurado el BusinessLayer.sln para poder interactuar facilmente con el DataLayer.Primitives and DataLayer.Primtives.Core?

El BusinessLayer.sln deberia contar con los siguientes proyectos:

BusinessLayer.Components and BusinessLayer.Components.Collections : Es el proyecto en el cual se establecen las clases que encapsulan la logica del negocio a la cual esta orientada el producto.
BusinessLayer.Entities : Aqui se definen las entidades que han de ser el medio por el cual se enviar informacion entre la capa del usuario y la logica de negocio.
BusinessLayer.IDataWrapper : Establece las interfaces para realizar operaciones permitidas contra la DB
BusinessLayer.DataAccess : Es el nexo entre las capa de negocio y la capa de datos. Es aqui donde se hace referencia explicita para poder hacer uso de las clases que brinda el DataLayer.Primitives and DataLayer.Primitives.Core.
BusinessLayer.WinApp : Es el proyecto que permite testear esta capa de la arquitectura.

¿Que es lo que no trae esta version publica del DataLayer.Primitives and DataLayer.Primitives.Core?

No todos los tipos de datos nulos estan entregados en esta version publica. Solo he liberado NullInt32, NullString, NullDataTime. Apoyados por la interfaz INullable. Esto dentro del CommonLayer.Nullables

No se ha entregado toda la gama de excepciones usadas para la construccion de los proyectos que lidero. Solo tres excepciones muy basicas. Esto dentro del CommonLayer.Exceptions.

Solo se ha liberado el CustomDataSet. Esto dentro del CommonLayer.Customs.

Del mismo modo, no se ha liberado el soporte para las transacciones contra la DB ni el soporte para todos los tipos de datos, en la creacion de PrimitiveParameter. Esto dentro de DataLayer.Primitives.

¿No hay mayor informacion sobre el DataLayer.Primitives.Core?

Digamos que justamente es el nucleo del DataLayer.Primitives. Las clases que se definen en ese namespace, tienen la particularidad de ser internal por lo que su uso no va mas alla del assembly correspondiente al DataLayer.Primitives.

¿Que tienes pensado liberar proximamente?

Seria ideal poder liberar un BusinessLayer.sln orientado a una realidad de negocio en particular que permita apreciar el uso adecuado del DataLayer.Primitives and DataLayer.Primitives.Core.

¿Cuando lo piensas hacer?

Coming soon...

No comments: