jump to navigation

CSLA .NET

El autor Rockford Lhotka desde finales de los años 90 ha encabezado la comunidad alrededor de una Arquitectura-Framework open-source para la plataforma Microsoft. Esta se inició en VB6, luego se rehizo completamente para .NET 2003, y se volvió reestructurar para .NET 2005-2008 para aprovechar los Fx como WCF, WPF, etc.

Official Site: http://lhotka.net/cslanet/
Forum Oficial: http://forums.lhotka.net/
More info: http://en.wikipedia.org/wiki/Component-based_Scalable_Logical_Architecture

Para comenzar a utilizar este Framework-Arquitectura, solo debe descargar la versión que necesite y siga los siguientes pasos para descomprimir y compilar el CSLA:
– Colocar los archivos en una carpeta Raíz (ejemplo C:/CSLA). No lo coloque dentro de Mis Documentos.
– Usar o crear un STRONG KEY, el cual trae por defecto y se puede cambiar con snkey.exe dentro Framework .NET. A partir de VS 2005 lo puede generar dentro del mismo IDE.
– Revisar el status del servicio Windows MSDTC (Coordinador de transacciones asíncronas o distribuidas) y del IIS.

Para comenzar a utilizar el ejemplo base del CSLA, llamado Projet Tracker, solo debe seguir los siguientes pasos:

0. DESCOMPRIMiR PROJECT TRACKER y ACTUALIZAR TODAS LAS REFERENCIAS DE CSLA.
– Colocar los archivos en una carpeta Raíz (ejemplo C:/CSLA/PT). No los coloque dentro de Mis Documentos. A la carpeta “www” concedale todos los permisos al usuario ASPNET de la máquina local.
– Validar que el servicio de IIS esté corriendo y funcione.
– Actualizar todas las referencias de CSLA en todos los proyectos que lo consuman (solo se debe referenciar Csla.dll).

1. Agregar los Customs Controls respectivos al Cuadro de Herramientas de VS, y marcando los siguientes:
– BindingSourceRefresh (Csla.Windows)
– BusyAnimation (Csla.Windows)
– CslaActionExtender (Csla.Windows)
– CslaDataSource (Csla.Web)
– ReadWriteAuthorization (Csla.Windows)

2. Crear DIRECTORIOS VIRTUALES en IIS de PTWeb, PTWebService, PTWcfService colocándoles  la versión 2 del ASPNET, y cambiar el inicio de sus proyectos respectivos, especificamente en:
Properties – Start Options – Server – Use custom server, y coloque http://localhost/PROYECTO.

3. Actualizar los puertos en todos los app.config y web.config, utilizando el reemplazar.

4. Registrar el DLL del Entreprise Service, con la consola de VS (regsvcs.exe).

5. Actualizar ruta de BD en todos los app.config y web.config y en la lista de servidores.

6. Valide la forma de acceder a los datos que se está usando en la aplicación interfaz, es decir WCF, Enterprise Services, NET Remoting o WS. Esto lo define en el archivo app.config o web.config de la aplicación, en el parametro CslaDataPortalProxy en AppSettings.

OBJETO CSLA Básico
1. Business Methods:
– Declaración de variables privadas y propias del objeto.
Properties particulares del objeto (get y set, según sea necesario ya que pueden haber readonly) .
– Creación de la metadata asociada a cada Property.
– (Para hijo) Property ReadOnly donde se valida que exista el objeto, sino lo crea.
2. Validation Rules:
– Validaciones propias de cada Property: Basicas (requerido, max y min longitud de texto, max y min de valor entero,
expresiones regulares, etc) y particulares según la necesidad.
3. Authorization Rules:
– Definición de la permisología (roles) para la manipulación de la data: properties y operaciones de objectos.
– Seguridad mapeada a la BD Security.
4. Factory Methods:
– Metodos a consumir en las capas superiores (New, Get y Delete + otros especificos que sean necesarios).
– Manejo de Criterio de Busqueda.
5. Data Access:
– New local que crea un objeto vacío que no tiene equivalente en la BD (definiendo properties basicas y chequeando validaciones)
– Fetch simple con Criterio de Busqueda e invocacion de hijos.
– Insert, Update y Delete (con Criterio de Búsqueda). Todos son Transaccionales e invocan el cambio de los hijos.
– (Para hijo) En el Fetch simple con Criterio de Busqueda, invoca la carga de los hijos (LoadProperty – Get).
– (Para hijo) Insert, Update y Delete (con Criterio de Búsqueda). Todos son Transaccionales e invocan el cambio de los hijos (DataPortal.UpdateChild(ReadProperty)).
6. Exists:
– Valida que exista el identificador

Para la relación Padre-Hijo, las validaciones y autorizaciones las administra el mismo hijo. Los hijos solo se mencionan en 2 partes en la estructura del padre, estas son: Business Methods y Data Access.

OBJETO CSLA Lista de Hijos
1. Business Methods:
– Funciones propias del objeto hijo
– Funciones para eliminar de la lista o validar si ya existe.
2. Factory Methods:
– Basicamente New y Get, que invocan la lógica del hijo.
3. Data Access:
– Fetch para invocar la lógica respectiva del hijo recorriendo la lista.

OBJETO CSLA Hijo
1. Business Methods:
– Properties con sus Get y Sets.
2. validation Rules:
– Para la control de status de properties por reglas
3. Authorization Rules:
– Se manejan los roles para la escritura de properties.
4. Factory Methods:
– Basicamente New y Get
5. Data Access:
– Crea uno vacío
– Carga uno de la BD
– Inserta, Actualiza (de ser necesario) y Elimina

LOGICA DE SEGURIDAD
1. App.Config o Web.config, con la variable <add key=”CslaAuthentication” value=”Csla” />cuyos valores pueden ser Csla o Windows. De hecho esto se puede cambiar en la lógica para que lea un nuevo modo de autenticación según sea necesario.
2. Invocación de Login al inicio de la aplicación para cargar el hilo con la info del user.
3. Manejo de roles en la interfaz para mostrar las opciones.
4. Manejo de roles autorizables en los objetos de negocio.

Recomendaciones para su consumo general:
– Solo crear los objetos Hijos, cuando sea una relación muy natural y estrictamente necesario ya que puede incrementar la complejidad del desarrollo.
– Crear un Stored Procedure en la BD para cada función Get, Delete, Update y Create relacionada con un objeto-tabla. Crear un Get para 1 solo registro y otro Get para varios registros (como las listas) complicaría su mantenimiento. Solo hacerlo cuando sea realmente necesario. Lo único que diferencia es un WHERE.
– Reemplazar palabra “csla” en la programación, proyectos y en especial App.Config o Web.config y directorios virtuales, según sea necesario.
– Unificar las BD de Datos y Seguridad para una mayor simplificación, pero utilizando un conjunto de reglas de nombramientos que permitan una organización interna de las Tablas y Stored Procedures.
– Ajustar las propiedades de consumo de WCF en App.Config o Web.config, según sea necesario.

Bibliografía consultada, publicada en Apress por Rockford Lhotka:
– Expert C# 2005 Business Objects (2005)
– Expert One-on-One Visual Basic .NET Business Objects (2003)

Comments»

1. minimainoraustin - May 3, 2013

Hola Descargue un ejecutable pero como se usa? veo que no se integra al IDE de VS, ni tengo un icon para ejecutarlo

josephforum - May 7, 2013

Hola, se supone que tienes que compilar el proyecto CSLA que descargas (atención con las versiones del motor .NET que uses), luego importar los DLL a tu proyecto aplicado. Con esto tus clases ya podrán heredar sin mayores problemas… =) Espero que te sea de utilidad…

minimainoraustin - May 7, 2013

Hola gracias por responder lo que descargue fue el instalador de CSLA, no una demo de una aplicación, descargue la herramienta, ahora no se como ponerla en marcha si se ejecuta un icono o un ejecutable para ponerme a diseñar el modelo de negocio.

josephforum - May 7, 2013

Por lo general, hay 2 componentes a descargar: la libreria CSLA como tal y un proyecto demo conocido como Project Tracker. En este proyecto demo podrás ver cómo se utiliza o consume la libreria CSLA. El consumo se basa en que construirás clases que heredarán de una clase CSLA dependiendo de tu necesidad de datos. El CSLA no se ejecuta, solo se consume. La aplicación demo si la puedes ejecutar una vez que la hayas compilado.

minimainoraustin - May 7, 2013

Pero entonces como genera código, pq? hasta donde yo se CSLA es un generador de código en eso se basa este framework

josephforum - June 18, 2013

El CSLA es una arquitectura como indican sus siglas: Component Scalable Layer Architecture. Su autor lo define como:
“The CSLA .NET framework is an application development framework that reduces the cost of building and maintaining applications.
CSLA .NET is a software development framework that helps you build a reusable, maintainable object-oriented business layer for your app.”
Puedes encontrar más información en: http://en.wikipedia.org/wiki/Component-based_Scalable_Logical_Architecture


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: