|
La Capa de Acceso de Datos en la Aplicación Framework StrataFrame es independiente (trata cada petición
como una transacción independiente sin relación a cualquier petición anterior), altamente cohesivo y
débilmente acoplado. Diferente de otras aplicaciones de framework o capas de acceso de datos generados
por O/R Mappers, una sola clase se utiliza para todo el acceso de los datos dentro de una aplicación
de StrataFrame. El desarrollador no interconecta directamente con la clase DataAccessLayer, sino algo
indirectamente con el BusinnessLayer.
| |
Descripción
Una capa de acceso de datos debe de ser rápida, eficiente y transparente al desarrollador de aplicaciones;
el DataAccessLayer de StrataFrame es dirigido para resolver cada uno de eses criterios. Esta única clase
contiene la lógica del acceso de los datos para el framework todo. Puesto que sigue siendo independiente,
altamente cohesivo y débilmente acoplado, es utilizado por todos los objetos de negocio como un puente
para tener acceso al almacén de los datos. La capa de acceso de datos es proveedor independiente
(SQL Server, Oracle ú OLE DB) y eso apalanca mucho las características de optimización de los
distintos proveedores y eso garantiza un funcionamiento excelente.
- Base de Datos Soportadas
- SQL Server 2000
- SQL Server 2005
- SQL Server 2008
- Oracle
- OLEDB
| - Anatomía de la Capa de Acceso de Datos
|
StrataFrame soporta nativamente SQL Server, Oracle, Visual FoxPro y Microsoft Access. Además,
cualquier proveedor OLE DB se puede utilizar para conectarse a los datos a través de la capa
de acceso de datos.
Independiente, Altamente Cohesivo y Débilmente Acoplado
La capa de acceso de datos de StrataFrame fue diseñada para ser independiente, altamente cohesivo y
débilmente acoplado. Al tratar cada petición como transacción independiente, permite a todos los objetos
de negocios utilizar un caso de la misma clase DataAccessLayer, no necesitando requerir una
implementación específica de clase de capa de acceso de datos para cada objeto de negocio.
La capa de acceso de datos se separa totalmente de la capa de negocios y realiza solamente
las funciones requeridas específicamente por una capa de acceso de datos.
Transparencia al Desarrollador de Aplicaciones
Conteniendo una instancia de la clase de DataAccessLayer dentro de cada instancia del objeto de
negocio, la capa de acceso de datos llega a ser totalmente transparente al desarrollador de
aplicaciones. El desarrollador nunca la visualiza directamente, pero indirectamente por los métodos
de fabricación y recuperación de datos dentro de un objeto de negocio.
Acceso Dinámico (Streamlined) de los Datos
Las mejoras alcanzadas en ADO.NET 2.0 han permitido que la capa de acceso de los datos llegue a
ser totalmente dinámica, eficiente y optimizada. Además, la capa de acceso de los datos se aprovecha
del proceso asincrónico, permitiéndose hacer los registros en el almacén de los datos a través de
múltiples hilos. Enhebrando el acceso de los datos, la latencia de la aplicación es reducida,
particularmente a través del VPN o de una conexión remota.
Ayuda Total a la Concurrencia (Concurrency)
La clase DataAccessLayer contiene soporte de nivel de núcleo para la concurrencia y ofrece tres opciones al desarrollador:
Ningún |
Este ajuste irá evitar/desviar todo el manejo del registro de la concurrencia.
| Optimista |
Esta técnica sigue directamente la definición de Microsoft de la concurrencia optimista.
(Vea MSDN
para informaciones adicionales)
| Versión de Línea |
Este módulo permite que un campo específico sea especificado para propósitos de hacer versiones de
líneas. Este es el método más optimizado de soporte de la concurrencia, ya que, el requiere el menor
número de testes en el servidor para determinar sí existe un potencial y suave conflicto. Cuándo una
línea es guardada, el DataAccessLayer automáticamente actualiza la versión de la línea. | Time Stamp |
Utilizar un campo “time stamp” es similar a usar el método de la Versión de Línea (Row Version).
Cuándo esa opción es utilizada, una columna “TIMESTAMP” es especificada como un llave para hacer
versiones en lugar de una columna número-basada. | Opciones de Notificación de Conflictos
Cuándo una excepción de la concurrencia es detectada por el framework, el DataAccessLayer recupera el registro en
conflicto de la base de datos y compara la versión local del registro con la versión del servidor. Sí no se
encuentran datos distintos, el registro es guardado y el usuario final nunca será notificado de este conflicto
de datos. Sí se encuentran datos distintos, entonces el usuario final es notificado que alguien ha modificado el
registro antes y el usuario final es presentado con una forma que permita que él corrija las ediciones de la
concurrencia antes de guardar el registro otra vez.
Este manejo automático de los conflictos de datos se puede desactivar y hay las características de como el
desarrollador será notificado si ocurre una excepción de la concurrencia. Por padrón, un evento así es
automáticamente manejado por la forma de nivel superior del objeto de negocio (para presentar al usuario final
la lista de discrepancia de valores), pero un objeto de negocios se puede configurar para tirar una excepción
cuándo un conflicto ocurra.
Sincronizado y Hilo Seguro
La clase del DataAccessLayer fue sincronizada para prevenir repercusiones indeseadas que provengan de accesos
simultáneos de hilos múltiples. Las requisiciones de datos pueden ser hechas por la capa de datos en diferentes
hilos sin requerir al desarrollador sincronizar explícitamente esas peticiones. Además, los acontecimientos
levantados por la capa de acceso de datos se levantan explícitamente en la aplicación principal de hilos para
prevenir excepciones de hilos cruzados cuándo los eventos son mostrados para el usuario de la interfaz.
Ayuda Avanzada a CRUD (Crear, Actualizar y Eliminar)Procedimientos Almacenados
Los ajustes de CRUD son críticos al procurar alcanzar la más optimizada y dinamizada performance de inserción,
actualización y eliminación entre el DataAccessLayer y la base de datos. En algunos casos, la política de la
compañía fuerza al desarrollador utilizar procedimientos almacenados en toda la interacción de CRUD. En esas
situaciones las opciones de CRUD son no sólo provechosas, son vitales. Un procedimiento almacenado se puede
especificar para cada operación CRUD (INSERCIÓN, ACTUALIZACIÓN y ELIMINACIÓN) a través de propiedades en el
objeto de negocio que utiliza esos ajustes alternadamente al trabajar recíprocamente con el DataAccessLayer.
Recuperación Automática del Valor de la Llave Primaria
Cuándo se crea un nuevo expediente, los valores de la llave primaria son recuperados y actualizados automáticamente
dentro de la fuente de datos interna del objeto de negocio. Esta característica se puede ajustar a través de los
ajustes de CRUD también.
Conexiones Ilimitadas de Servidor y Clases de Base de DatosConexiones Ilimitadas de Servidores
Frecuentemente un desarrollador puede tener más de una fuente de datos que será vista, actualizada y eliminada.
Esto es especialmente común al trabajar recíprocamente con datos dispares o datos de herencia. Por lo tanto, una
aplicación StrataFrame permite un número ilimitado de conexiones que pueden accederla simultáneamente. Las
secuencias de conexión separadas necesitadas para cada conexión son manejadas por la ‘Administración de la
Secuencia de la Conexión proveído por StrataFrame.
Soporta Múltiples Clases de Base de Datos
Ampliarse las conexiones ilimitadas de servidores es la capacidad de conectarse con un número ilimitado de base
de datos al mismo tiempo. Esto incluye distintas clases de base de datos tales como SQL Server y FoxPro. Esta
funcionalidad es significativa porque permite que los objetos de negocio se comuniquen a las bases de datos del
SQL Server y del FoxPro, por ejemplo, en la misma forma, el desarrollador no tiene que manejar estas conexiones.
Esto es un medio ventajoso adelante del incremento de migración de aplicaciones de herencia existentes, o creando
conversiones dinámicas de datos.
Métodos Extensos de Recuperación de DatosExtractos ELIGIDOS Personalizados
A diferencia de muchos otros frameworks y Mapeadores O/R, un extracto ELIGIDO personalizado o procedimiento
almacenado se puede fácilmente ejecutar para la recuperación de datos. El desarrollador no se limita a los
procedimientos almacenados, ni a los extractos ELIGIDOS pre-generados utilizados por la capa de accesos de datos.
Comandos Parametrizados y Preguntas de Procedimientos Almacenados
Otra opción útil de recuperación de datos es un DbCommand. Esta es la mejor opción de recuperación de datos al
crear preguntas dinámicas o cuándo una cláusula “DONDE” sea indicada, desde que el DbCommand tenga ayuda a este
parámetro. Un DbCommand con parámetros puede también llamar un procedimiento almacenado.
Preguntas Específicas no Relacionadas a la Base de Datos
Hay circunstancias donde la base de datos del lado del servidor puede cambiar desde un tipo a otro que depende
del ambiente del despliegue. El StrataFrame QueryInformation permite que los desarrolladores creen las preguntas
de proveedor-independiente que son convertidas al apropiado proveedor-específico de sintaxis SQL por la
implementación específica del DbDataSourceItem de la base de datos. Esta poderosa característica permite que una
única pregunta sea escrita y reutilizada para preguntar al SQL Server, FoxPro, Oracle o cualquier clase de base de
datos que esté siendo utilizada por la aplicación, mientras haya consistencia ente las estructuras de datos.
Ayuda Escalar
StrataFrame tiene ayuda escalar completa que permite que un desarrollador recupere rápidamente una pieza única de
datos o ejecute una pregunta que realice un cálculo simple y vuelva el valor calculado.
Procesamiento de TransacciónTransacciones Simultáneas Ilimitadas
StrataFrame lleva la ayuda a la transacción completa a un nuevo nivel permitiendo un número ilimitado de
transacciones sean procesadas al mismo tiempo. Objetos de transacción son manejados por el framework permitiendo
un acercamiento sin manos (hands-free) al procesamiento de transacciones. Cada transacción se puede controlar
individualmente y todos los objetos de negocio tienen la capacidad de que sean incluidos o excluidos de una
transacción. Esto puede ser muy beneficioso cuándo se está procesando una transacción grande y el desarrollador
desee guardar datos de otro objeto de negocio en una transacción separada o una transacción entera.
Acceso Programático Simple
El procesamiento de transacciones se puede controlar a través de métodos muy simples y accesibles, y es tan simple
como llamar a TransactionBegin() junto con TransactionEnd() o TransactionRollBack(). Cualquier error o notificación
que necesiten que sean manejadas serán automáticamente presentadas al desarrollador, que entonces debe decidir
simplemente qué acción tomar.
Modo de Depuración de Datos
El modo de depuración proporciona una vista completa de cada declaración del SQL, ejecutada en una fuente de datos,
incluyendo declaraciones ELIGIR, INSERIR, ACTUALIZAR Y ELIMINAR. Cada declaración se escribe en un fichero de
registro en el formato de HTML y demuestra la sintaxis del SQL, los parámetros, el contexto de la transacción,
la conexión y muchas otras piezas de información. Esta característica es inestimable al intentar localizar cualquier
tipo de error que derive de piezas de procesamiento de datos que no pueden ser fácilmente depurados a través del
Visual Studio.
Especificaciones Técnicas y Característicasexpand all | collapse all | |
| Constructor Dinámico de Comando | | | |
Los comandos utilizados por la clase DataAccessLayer para conducir los datos al almacén de datos se construyen
dinámicamente. Esto permite que la capa de acceso de los datos siga siendo independiente y mejora el funcionamiento
modificando el comando con requisitos particulares para el registro/tabla que esté siendo conducida.
| | |
| | Disponibilidad Almacenada de Procedimientos Inserir/Actualizar | | | |
La capa de acceso de datos soporta el uso de procedimientos almacenados para INCERSIONES y ACTUALIZACIONES. Cuándo
la Aplicación Framework es utilizada conjuntamente con el Database Deployment Toolkit, estos procedimientos
almacenados se generan y se registran automáticamente.
| | |
| | Procedimientos Almacenados y Seleccionados Personalizados Para Recuperación | | | |
A diferencia de muchos otros frameworks y Mapeadores O/R, una declaración SELECCIONAR personalizada o un
procedimiento almacenado se pueden fácilmente ejecutar para recuperación de datos. El desarrollador no está
limitado a los procedimientos almacenados y declaraciones SELECCIONAR pre-generadas utilizadas por la capa de
acceso de datos.
| | |
| | Comandos con Parámetros Dados | | | |
Todos los comandos construidos dinámicamente tienen sus parámetros dados. Los parámetros dados proporcionan una
mejora del rendimiento de los comandos en el almacenamiento de datos y alivia las incompatibilidades y problemas
con los delimitadores, tales como las citas dentro de los valores del VARCHAR.
| | |
| | Transparente al Desarrollador | | | |
La capa de acceso de datos dentro del StrataFrame es transparente al desarrollador de aplicaciones. Un desarrollador
nunca será requerido a interactuar directamente con el objeto DataAccessLayer.
| | |
|
| expand all | collapse all | |
| Procesamiento de Transacción | | | |
StrataFrame da al desarrollador control completo sobre el procesamiento transaccional no distribuido (no COM+). Una
sola transacción puede atravesar bases de datos múltiples y cualquier objeto de negocio se puede guardar en la
transacción. Si la transacción retrocede por cualquier razón, el objeto de negocio que participó de la transacción
también será retrocedido.
| | |
| | Administración de la Secuencia de la Conexión | | | |
La Aplicación Framework de StrataFrame proporciona una interfaz completa para la administración de las secuencias de
la conexión. Mientras que la mayoría de las aplicaciones framework requieren que la secuencia de estas conexiones
esté incrustada dentro de la aplicación o almacenada en el formato de "cleartext" en la máquina del cliente,
StrataFrame permite que el desarrollador almacene la secuencia de la conexión en un archivo cifrado en el servidor.
A través de la interfaz proveída al usuario, un usuario final puede rápidamente instalar o cambiar su secuencia de
conexión. La administración de la secuencia de la conexión también soporta cambios de las secuencias de conexiones
en tiempo real, un archivo de ajustes compartido en la red y múltiples secuencias de conexión por aplicación.
| | |
| | Ayuda a Notificaciones de Preguntas del SQL Server 2005 | | | |
Construyendo con las nuevas funcionalidades proporcionadas por el SQL Server 2005, la capa de acceso de datos soporta
los Servicios de Notificaciones a Preguntas. Cuándo está configurada (por padrón), la capa de acceso de datos irá
colocar automáticamente una notificación de pregunta con cada declaración SELECCIONAR ejecutada para la recuperación
de datos. Sobre la recepción de una notificación del servidor, el evento DataChanged es direccionado hacia la capa de
negocios para procesamiento.
| | |
| | Actualizaciones Multi-Enhebradas | | | |
La capa de acceso de datos de StrataFrame toma una ventaja completa de procesamiento asíncrono proporcionado por
muchos almacenadores de datos (SQL Server 2005, Oracle 10g). Este procesamiento asíncrono permite a la clase del
DataAccessLayer actualizar registros desde hacia un objeto de negocios a través de múltiples ligaciones de tal modo
que aumentan la velocidad dramáticamente.
| | |
|
|
|