Descripción
La capa central de una aplicación creada en StrataFrame consiste en uno o más objetos de negocios
heredados de la clase abstracta BusinessLayer. Esta clase proporciona la base de la funcionalidad
para todas las tareas, incluyendo la población del objeto de negocio, manejo de las reglas de negocio,
la validación, la recuperación de datos y la navegación de los datos. Programar en Lengua Preferida del .NET
StrataFrame no tiene lenguas propietarias o de scripting que se deban aprender. Toda la lógica se puede
codificar totalmente en cualquier lengua manejada del .NET, incluyendo VB.NET y C#. Esto aumenta la
velocidad del desarrollo y permite que la lógica del negocio sea reutilizable.
Objetos de Negocio Fuertemente Tipados
Representa la Estructura de Datos
StrataFrame proporciona la habilidad de tipar fuertemente, fácil y rápidamente las propiedades de
la columna del objeto de negocio utilizando el Mapeador de Objetos de Negocios
. Propiedades son creadas en cada objeto de negocio y reflejan en las columnas de datos reales de
la estructura representada.
Confiabilidad del Código Mejorada y IntelliSense™
Desde que el campo de propiedades sea fuertemente tipado, la confiabilidad del código mejora. La primera
razón de esto es que casi todo los tipos de incompatibilidades se pueden resolver en la compilación de
los datos, antes de surgieren en la ejecución. Utilizar un campo fuertemente tipado de manera incoherente
con este tipo de datos irá producir un error de compilación, mientras que utilizando un campo débilmente
tipado en el mismo panorama no.
Tipar Fuertemente Extendido
Hay muchos casos en que una columna en una base de datos representa un tipo distinto de la qué almacena
informaciones en crudo. Por ejemplo, una columna en una tabla se puede definir como INTERNA, pero cuando
el desarrollador interactúa con la propiedad de la caja en el objeto de negocio, él o ella necesitan la
habilidad de tenerla definida como una enumeración y tener el valor automáticamente mantenido en la
base de datos como INTERNA. En otro ejemplo, una columna de datos se puede definir como VARBINARY o
IMAGE, pero representar realmente una BITMAP o un objeto serializado; StrataFrame permite que el
campo de propiedades en el objeto de negocio sea fuertemente tipado como objeto serializado y
automáticamente irá serializar y deserializar los datos hacia y desde la base de datos sin escribir
una sola línea de código.
Ayuda Nativa Avanzada
La capa de negocio de StrataFrame contiene características que alivian muchas de las tareas mundanas
que plagan normalmente el desarrollo de la aplicación. Estas características permiten que el desarrollador
se centre en las especificaciones de la aplicación antes que en el tiempo investido en la creación y el
mantenimiento de las funcionalidades básicas.
Ayuda a la Llave Primaria Compuesta
StrataFrame soporta nativamente llaves primarias compuestas dentro de las estructuras de las tablas.
Este soporte se extiende por toda la navegación y métodos de preguntas dentro de un objeto de negocio
y pronto para se utilizar. El producto se puede utilizar inmediatamente, sin la necesidad de
instalaciones ni componentes adicionales.
Proveedor de Errores Automático
Un ErrorProvider del .NET es utilizado para exhibir errores y reglas de negocio rotas al usuario final.
La puesta en práctica del proveedor de errores no requiere ningún código del desarrollador y su aspecto
se puede modificar ampliamente con requisitos particulares a través de propiedades incluyendo la
capacidad de inhabilitar el proveedor de errores totalmente.
Gerencia Completa de la Relación de Padre-Hijo
Las relaciones se configuran en una base por clase para los objetos de negocio dentro de una aplicación
de capa de negocio del StrataFrame. Una vez que esté configurada, la clase de BusinessLayer irá manejar
automáticamente las llaves primarias/relaciones de llaves externas; las nuevas filas de hijos serán
asignadas con el valor de llave externa de la llave primaria del correspondiente objeto de negocios.
Cuándo nuevos registros son guardados el valor de la llave primaria de las asignaturas de la base
de datos del proveedor se propaga a través de las relaciones de los objetos de negocio de los hijos.
La gerencia de la relación también se utiliza para asegurar que nuevos registros de padre sean
guardados antes de que el correspondiente registro de hijo lo sea.
Inicialización de Campos y Control de Prioridades
Como padrón, todos los campos en un nuevo registro son inicializados por tipos de datos para prevenir
errores de ejecución DBNull. Esta característica se puede inhabilitar configurando una sola propiedad.
Además, todos los objetos de negocio pueden recibir una prioridad de inicialización lo que permite al
desarrollador controlar el orden que los objetos en un formulario serán inicializados.
Modelado Pero Simplificado
La clase BusinessLayer sigue mejor las prácticas para programación de objetos orientados y utiliza muchos
patrones establecidos de diseño. Solamente una sola clase se crea para cada objeto de negocio en una
aplicación de StrataFrame. Heredando de la clase básica BusinessLayer, los objetos de negocio gozan
de toda la funcionalidad necesaria mencionada en la descripción. El diseño firmemente integrado y una
clase simple cohesiva significan mucho al desarrollador porque mejoran grandemente la simplicidad de
la aplicación cuándo se comparada a las 5 a 7 clases requeridas normalmente por objeto de negocio en
las otras opciones de frameworks comerciales.
Optimizado Para Rendimiento
La capa de negocio se ha optimizado para entregar un alto nivel de performance para el desarrollador de
aplicaciones. Un DataTable, antes que un DataSet, se utiliza dentro del objeto de negocio para reducir
la huella de la memoria de cada caso de un objeto de negocio. La navegación con datos personalizados
fue implementada para permitir al desarrollador interactuar a través de los registros dentro del objeto
de negocio (clasificado o sin clasificar, filtrado o sin filtrar) más rápidamente que lo haciendo a
través de entidades dentro de una colección de entidad personalizada.
Localización Centralizada Para la Lógica del Negocio
Toda la lógica del negocio se sitúa dentro de su correspondiente clase de objeto de negocio. No son
requeridas clases adicionales para las reglas del negocio, validación de datos, valores predeterminados,
etc. Los campos requeridos son implementados por la clase de base del BusinessLayer y no se necesita
de ningún código del desarrollador. Esta centralización simplifica el proceso de codificación del
desarrollador y mejora el desempeño manteniendo la clase de avisos y la observación de la lógica del
servidor en un mínimo.
Implementación Simple de Campo Requerido
Como la lógica del campo requerido se puede programar manualmente, StrataFrame proporciona una manera
rápida y fácil de especificar los campos que requieren entradas con un simple clic en una casilla de
verificación. Cada objeto de negocio contiene una oportuna colección nombrada RequiredFields. A través
del componente diseñador dentro del Visual Studio los campos que requieren entrada se pueden fijar
utilizando el editor de tipos integrado.
Ayuda a la Localización Integrada
Todas las áreas de StrataFrame son localizables, incluyendo la lógica del negocio. En lugar de codificar
duramente mensajes de reglas rotas dentro del código, ellas se pueden tirar desde una base de datos de
localización a través de la ayuda extensiva de Mensajería y
Localización.
Configurable y Extensible
Así como con los otros elementos de la Aplicación Framework StrataFrame, la capa de negocio es diseñada
para adicionar poder a los desarrolladores, no limitarlos. La clase BusinessLayer proporciona un gran
incremento de flexibilidad y funcionalidad que se puede eliminar o modificar. Por otra parte, se exponen
las características estratégicas que permiten al desarrollador cambiar mucho la automatización dentro
de los objetos de negocios. Las propiedades creadas por el Mapeador de Objeto de Negocio se pueden
modificar con requisitos particulares o substituir por el código de encargo que el desarrollador
provee.
Acceso Programático Ilimitado
Sí están utilizados programáticamente o configurados para vínculo de datos para los controles, los objetos
de negocios del StrataFrame son diseñados para la comodidad de empleo. Con los campos fuertemente tipados
en un objeto de negocio, todas las propiedades de la caja están disponibles dentro del Intellisense™
proveído por el editor del código dentro del Visual Studio. Nunca irás necesitar mirar una carta de
referencia para comprobar los nombres de sus campos otra vez. El acceso programático es más realzado
por los métodos de clase básica y se pueden utilizar para buscar, filtrar, navegar, iterar ú ordenar
registros dentro del objeto de negocio.
Eventos de Ganchos Direccionados
Cada evento direccionado es intrínsecamente proporcionado para dar al desarrollador control completo al
trabajar recíprocamente con los objetos de negocios. Hay una gran variedad de acontecimientos que existen
proporcionando al desarrollador un control completo. Esta metodología permite una interacción mucho más
exacta con el ambiente y previne la necesidad de eliminación de métodos. Los ganchos incluyen eventos
tales como: antes, después, seguridad, cambio del estado, error, concurrencia, notificaciones de cambio
de datos, inicialización del valor prefijado para nuevos registros y más.
Métodos Extensos de Navegación
Cambiar el CurrentRow del objeto de negocio se hace fácil a través de la funcionalidad proporcionada por
la clase de base del BusinessLayer. Cuando invocados, los métodos de navegación de datos irán modificar
el CurrentRowIndex e irán cambiar la fila acezada por las propiedades fuertemente tipadas de las cajas.
Soporte para ADO Style, FoxPro, y la navegación en UI Bound existe con tales métodos como: MoveFirst(),
MoveNext(), MovePrevious(), MoveLast(), MoveAbsolute(), Seek(), SeekToPrimaryKey(), Navigate(), y
NavigateToPrimaryKey().
Clasificar y Filtrar
Los datos dentro del objeto de negocio se pueden clasificar o filtrar fácilmente por el desarrollador.
Opcionalmente, el filtro actual se puede propagar a los objetos de negocio del hijo.
Componentes Expuestos de ADO.NET
Aunque StrataFrame maneje todas las tareas requeridas para el desarrollo de una aplicación robusta, hay
algunas ocasiones en que el acceso directo es requerido por el desarrollador. Cuando se presentan tales
situaciones, los componentes ADO.NET son directamente accesibles a través de propiedades expuestas en el
objeto de negocio. Esto incluye propiedades como por ejemplo: CurrentDataTable, CurrentView, CurrentRow,
y CurrentRowIndex.
Colección de Reglas Rotas
Cuando la necesidad se presenta para interactuar con las reglas rotas, existe una colección en todos los
objetos de negocios lo que permite al desarrollador manipular y exhiba las reglas rotas según lo deseado.
Rejilla y Ayuda a Vínculo de Terceros
Todos los objetos de negocio tienen la capacidad de apoyar nativamente rejillas a través de las propiedades
expuestas de ADO.NET. La ayuda a la rejilla proporciona la interacción nativa del evento permitiendo al
desarrollador supervisar a los eventos de navegación sin la adición de ningún código. También, la mayoría
de cualquier control de terceros puede interconectar fácilmente al negocio con las opciones de la ayuda
de vínculos que están disponibles en StrataFrame.
Ayuda a la Fuente de Datos de XML
Ocasionalmente es necesario utilizar un archivo de XML como un almacén de datos. Cuando se muestra esta
necesidad, un objeto de negocio se puede tipar fuertemente, leído de y escrito para un archivo XML.
Además, este archivo XML se puede cifrar y descifrar dinámicamente visualizando un solo método.
Serialización del Objeto de Negocio
Los objetos de negocio tienen una ayuda completa a la serialización. Esto permite que un objeto de negocio
sea guardado y restaurado al disco en su estado completo. Por otra parte, se puede serializar un objeto
de negocio para y desde una corriente permitiendo que este sea repartido desde una sola localización
pasada a través de una conexión de la red. Esto proporciona la ayuda para los servicios de la empresa,
acceso remoto y servicios de la red externa.
Especificaciones Técnicasexpand all | collapse all | |
| Fuertemente Tipado | | | |
Las propiedades se crean en cada objeto de negocio y reflejan los valores reales de la caja de la tabla
interna de los datos. Las propiedades se pueblan como subproducto de los métodos de la navegación del
framework. Esto simplifica el acceso al vernáculo simple mybo.myfield , aliviando totalmente
el requisito de los índices que son pasados.
| | |
| | Navegación de Datos | | | |
Cambiar el CurrentRow del objeto de negocio se hace fácil a través de la funcionalidad proporcionada por
la clase de base del BusinessLayer. Cuando invocados los métodos de navegación de datos, irán modificar
el CurrentRowIndex y cambiarán la fila accedida por las propiedades reales del campo.
- Navegación en Estilo ADO
MoveFirst()
MoveNext()
MovePrevious()
MoveLast()
MoveAbsolute() - Navegación en Estilo FoxPro
Seek()
SeekToPrimaryKey() - Navegación en UI-bound
Navigate()
NavigateToPrimaryKey()
| | |
| | Clasificar y Filtrar | | | |
Los datos dentro del objeto de negocio se pueden clasificar o filtrar fácilmente por el desarrollador.
Opcionalmente, el filtro actual se puede propagar para el objeto de negocio del hijo.
| | |
| | Componentes Expuestos del ADO.NET | | | |
Todos los componentes del ADO.NET utilizados dentro del objeto de negocio son expuestos para interacción
del desarrollador.
- CurrentRow -– El DataRow actualmente utilizado por las propiedades del
campo en el objeto de negocio. Esta fila es determinada por el CurrentRowIndex del CurrentDataView.
- CurrentDataTable -– El DataTable interno del objeto de negocio contiene
todos los datos.
- CurrentDataView -– El DefaultView de la tabla de datos interna permite
que el objeto de negocio se clasifique y se filtre.
| | |
| | Evento de Ganchos Direccionados | | | |
Los ganchos son proveídos por el desarrollador para extender la funcionalidad del objeto de negocio.
- Pre-Hooks
- BeforeSave
- BeforeDelete
- BeforeUndo
- CurrentDataTable
- AfterSave
- AfterDelete
- AfterUndo
- Ganchos de Seguridad
- CheckSecurity -- se muestra cuando un objeto de negocio intenta adicionar, modificar, eliminar o
guardar un registro, permitiendo al desarrollador determinar si el usuario tiene el privilegio requerido.
- CheckFieldSecurity -- se muestra cuando el objeto de negocio es configurado para checar el nivel de
seguridad de las cajas y permite al desarrollador blocar campos específicos para que no sean visualizados
por el usuario final.
| | |
| | |
| Propiedades Creadas y Mantenidas Automáticamente | | | |
Las propiedades de campo fuertemente tipadas en cada objeto de negocio son creadas y mantenidas a través
del Mapeador de Objeto de Negocio. El Mapeador de Objeto de Negocio está directamente integrado con el
Visual Studio permitiendo modificar los registros dentro del IDE. Las propiedades de la caja son
almacenadas en el registro de la clase parcial utilizado por el componente de diseño.
| | |
| | Tipos de Datos Personalizados | | | |
Las propiedades del campo no son limitadas a los tipos de datos primarios, pero a cada uno se puede
asignar un tipo de dato particular. Tipos de datos particulares comunes incluyen enumeraciones que
permiten al objeto de negocio retornar la clase de enumeración y aún será almacenado en la base de
datos como un número entero.
| | |
| | Serialización de Objetos | | | |
Las propiedades de los campos pueden también ser complejas, con tipos seriarizables de datos. Cuando
configurado, una propiedad del campo irá serializar y deserializar un objeto dentro y fuera de una
propiedad del campo, la almacenando en la base de datos como un tipo binario de campo. Por ejemplo,
una imagen Bitmap se puede serializar cuando esté en el disco y entonces se puede deserializar para
utilizarse en la capa de presentación; un objeto System.Drawing.Bitmap será retornado por las
propiedades del campo, mejor que un Byte [].
| | |
| | Sin UML o XSD | | | |
No se requiere que el desarrollador mantenga una colección de archivos UML, XSD o XML para definir el
mapeamiento de campos para cada objeto de negocio. El Mapeador de Objetos de Negocios puede utilizar
una fuente de datos cualesquiera o un metadato dentro del Database Deployment Toolkit para derivar
el esquema para el objeto de negocio.
| | |
|
| expand all | collapse all | |
| Todas las Reglas del Negocio Checadas en un Solo Evento | | | |
Un evento de gancho es proporcionado para checar las reglas del negocio. Toda la lógica de las reglas del
negocio está inserida dentro del encargado de este evento. Esto se muestra de dentro de la clase de base
del BusinessLayer cuando el objeto de negocio es guardado. También se muestra si el desarrollador
explícitamente requiere que las reglas sean checadas.
| | |
| | Implementación Simple de Campos Requeridos | | | |
Una colección de campos requeridos es implementada a través de la clase de base del BusinessLayer y cada
campo requerido se selecciona realmente con un simple uso del editor. Estos campos requeridos son
checados cuando las reglas del negocio son checadas, y las reglas rotas son automáticamente adicionadas
a la colección de reglas rotas para cada campo requerido no introducido.
| | |
| | Colecciones de Reglas Rotas | | | |
Cuando las reglas del negocio son checadas, las reglas rotas son adicionadas al objeto de negocio. La
colección de reglas rotas más reciente está disponible para el desarrollador a través de la clase de
base del BusinessLayer.
| | |
| | Limitación Automática del Proveedor de Errores | | | |
Un ErrorProvider .NET es utilizado para visualizar errores y reglas rotas del negocio por el usuario final.
La implementación del proveedor de errores no requiere ningún código del desarrollador y se puede cambiar
entre las opciones.
| | |
| | Programe en la Lengua Preferida de .NET | | | |
Muchas aplicaciones framework implementan su propia lengua de script que son utilizadas para programar
las reglas del objeto de negocio. Con StrataFrame, el desarrollador no tiene que aprender una nueva
lengua de script para checar las reglas del negocio, ya que, toda la lógica del negocio es programada
en .NET que es utilizada para crear el objeto de negocio.
| | |
| | Sin Códigos en el Lado del Servidor Para las Reglas del Negocio | | | |
Mientras el desarrollador pueda utilizar cualquier combinación de lógica en el lado del servidor y en el
lado del cliente para checar las reglas del negocio, StrataFrame no requiere ningún código en el lado
del servidor. Muchas reglas de negocio requieren una pregunta de base de datos o que se cheque un
archivo del sistema; esto es posible cuando todas las reglas del negocio son codificadas dentro del
.NET antes que en el T-SQL o en una lengua propietaria de script.
| | |
| | |
| Acceso de Datos a Través de la Clase DataAccessLayer | | | |
Cada objeto de negocio contiene una instancia interna de la clase DataAccessLayer. Este objeto proporciona
la interfaz entre el objeto de negocio y el almacenamiento de datos. La clase de base BusinessLayer
proporciona varios métodos protegidos para el desarrollador relacionarse con la capa de acceso de datos.
- Métodos de Población -- Todos los métodos de población sustituyen la
tabla de datos internos con el resultado del retorno del sistema por la capa de acceso de datos:
FillDataTable(SELECT)
FillDataTable(DbCommand)
FillByPrimaryKey()
FillByParentPrimaryKey()
FillByParent() - Métodos de Recuperación -– Todos los métodos de recuperación retornan
un DataTable relleno con el resultado del retorno del sistema por la capa de acceso de datos:
GetDataTable(SELECT)
GetDataTable(DbCommand)
GetByPrimaryKey()
GetByParentPrimaryKey()
GetByParent()
Nota: Los métodos de negocio no interrumpen el objeto de negocio real (tabla de datos internos).
Los datos recientemente traídos son autónomos y no interfieren con ningún proceso existente del objeto
de negocio actual.
- Métodos de Contrucción -– El constructor es proveído por la clase de
base del BusinessLayer lo que permite que el desarrollador implemente fábricas con requisitos
particulares o Métodos de Construcción compartidos directamente en la clase del objeto de negocio.
| | |
| | Administración de Relaciones | | | |
La clase de base de BusinessLayer administra relaciones sincronizando los valores de la llave primaria con
los correspondientes valores de la llave externa. Las relaciones son configuradas en el nivel de clase
de cada objeto de negocio.
| | |
| | Guardar Forzado el Padre sí el Hijo es Guardado Primero | | | |
Sí una relación es definida como un objeto de negocio de hijo y el hijo intenta guardar mientras que
el objeto de negocio padre aún esté sin guardar, el objeto de negocio hijo irá forzar que el objeto
de negocio padre sea guardado. Esto permite a los nuevos valores de llave primaria asignados hacia
el objeto de negocio padre por el almacenamiento de datos que sean propagados hacia el objeto
de negocio hijo antes que sea guardado.
| | |
| | ChildAutoFilter | | | |
Un objeto de negocio se puede configurar para filtrar registros automáticamente en un objeto de negocio
hijo donde solamente registros que correspondan a los registros del objeto de negocio padre estarán
visibles dentro del hijo.
| | |
|
|
|