Desarrollo de Aplicaciones
en .NET
Andrés Reynoso
Jorge Pagano de Harriague
Temario
• Nuevas posibilidades en .NET
– Diferencias entre ASP y ASP.NET
– Diferencias entre ADO y ADO.NET
– Programación 100% orientada a objetos
• Como integrar componentes de negocios COM
en .NET
• Desarrollo de una Aplicación .NET
– Ejemplo práctico de una Aplicación en 3 capas
http://www.microsoft.com/latam/msdn/comunidad/uni.net/default.asp
Nuevas posibilidades en .NET
• ASP
– Tecnología líder en desarrollo para Web
• Más de un millón de desarrolladores en ASP
– Forma de Desarrollo
• HTML combinado con script
• No requiere compilación – “sólo grabar”
– Flexible y extensible
• Soporta lenguajes de scripts
– VBScript, JScript®, etc.
• Puede utilizar Objetos COM para acceder a recursos y
encapsular lógica de negocios
Nuevas posibilidades en .NET
• Desventajas de ASP
–
–
–
–
El código ASP se vuelve complicado!
Código mezclado con contenido
Sólo soporta lenguajes de scripting
La implementación de componentes y la
configuración es compleja
• DLLs bloqueadas, regsvr32, metabase de IIS
1: servidor
– Estado de Session limitado a unDemo
único
Aplicación 3 capas
(VB6 y ASP)
Nuevas posibilidades en .NET
• ASP.NET
– Plataforma para construir, implementar y
ejecutar aplicaciones Web
– Es un cambio radical con respecto a ASP
•
•
•
•
•
Modelo de páginas simplificado y más poderoso
Lenguaje de programación compilado
Arquitectura factorizada
Implementación simplificada
Mejoras en rendimiento y escalabilidad
– Soporte de desarrollo con Visual Studio .NET
Nuevas posibilidades en .NET
• Compatibilidad con ASP
– Migrar aplicaciones de ASP a ASP.NET siempre
va a requerir cierto trabajo
– Se decidió romper la “backward compatibility”
en ciertos puntos para mejorar la plataforma
• Tenemos más tiempo por delante en Internet que
por detrás
• Nos permite asegurar una plataforma por mucho
más tiempo
Nuevas posibilidades en .NET
• Soporte conjunto ASP + ASP.NET
– ASP.NET corre “side-by-side” con ASP
• Extensiones de archivo separadas (.aspx vs .asp)
• Configuraciones separadas
– Las páginas/aplicaciones ASP siguen utilizando el
motor de ASP existente sin problemas
• No se han hecho cambios a ASP.DLL
• Ningún componente se rompe al instalar ASP.NET
– Importante: No se comparte estado entre
páginas/aplicaciones ASP y ASP.NET
Nuevas posibilidades en .NET
• Ventajas de ASP.NET
– Web Forms
• Permiten programar las páginas Webs al estilo de los
formularios de Windows
– ASP.NET permite separar el código de presentación
con la lógica de pagina (Code Behind)
– Server Controls
• Web Forms Controls
• HTML Server Controls
– Eventos en el Servidor
• Captura en el servidor los eventos disparados por los
controles que se visualizan en el cliente
Nuevas posibilidades en .NET
• Ventajas de ASP.NET
–
–
–
–
–
–
–
Herramientas de Profiling, Tracing y Debugging
Configuración autónoma de IIS
Cache del lado del servidor
Fácil Vinculación a datos
Manejo mejorado del “estado”
Instalación XCOPY
Manejo Estructurado de Errores Demo 2:
Mostrar “Code
Behind” en un
WebForm
Nuevas posibilidades en .NET
• ADO.NET
–
–
–
–
Diseñado para acceso desconectado
¡Se puede modelar la información por lógica!
El DataSet reemplaza al RecordSet
El DataSet puede contener múltiples tablas
• No se requiere JOIN
• Se preservan las relaciones: La navegación es relacional
– Los tipos de datos sólo están vinculados al esquema de
XML
– No se requieren conversiones de tipos de datos
– XML, como HTML, es texto plano: “Pasa las barreras”
Nuevas posibilidades en .NET
• Objetos ADO.NET
Nuevas posibilidades en .NET
• Proveedores de Datos de .NET
– Una colección de clases que permiten acceder
a los orígenes de datos:
• Microsoft SQL Server™ 2000, SQL Server 7, y MSDE
• Otros proveedores OLEDB
• Establece la conexión entre los DataSets y el repositorio de
los datos
– Dos proveedores base:
• OLEDB: Namespace System.Data.OleDb
• SQL Server: Namespace System.Data.Sql
• Se pueden agregar otros (Por ejemplo Oracle)
Nuevas posibilidades en .NET
• ADO.NET: Connection
– Representa una única sesión con un origen de datos
– En una conexión, usted puede…
• Personalizar la conexión a la base de datos
• Iniciar, comprometer y abortar transacciones
– Equivalente al objeto ADODB.Connection
Imports System.Data.OleDb
....
Dim miCon As New OleDbConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NWIND_RW.MDB")
miCon.Open()
....
miCon.Close()
Nuevas posibilidades en .NET
• ADO.NET: Command
– Representa un comando que se va a ejecutar
• No necesariamente SQL
– Con un comando ADO usted puede:
• Definir un enunciado para que se ejecute en el servidor
• Establecer información de parámetros para ese comando
• Recuperar valores de retorno de la ejecución del comando
– Corresponde al objeto ADODB.Command
– Puede contener parámetros
• Valores que se van a utilizar cuando se ejecute el enunciado
Nuevas posibilidades en .NET
• ADO.NET: DataReader
– Acceso a datos rápido, únicamente hacia
adelante, únicamente de lectura
– Funciona como un socket
– Permite un acceso escrito de manera sólida
– Se obtiene por el método ExecuteReader de
un OleDbCommand
– Depende del OleDbCommand hasta finalizar
la lectura
• Mantiene la conexión abierta
Nuevas posibilidades en .NET
• ADO.NET: DataSet
– Almacén en memoria para datos del cliente
– Vista relacional de datos
• Tablas, columnas, filas, restricciones, relaciones
– Persisten los datos y el esquema como XML
– Modelo desconectado explícito
• Objeto remoto, desconectado
• Indice en forma de arreglo
– No hay conocimiento de Fuente de datos o
Propiedades
• Modelo común sobre datos heterogéneos
• Características de rendimiento predecibles
Nuevas posibilidades en .NET
• ADO.NET: DataSet
DataSet
Tables
DataTable
DataRow(s)
DataColumn
Relations
Constraint(s)
DataRelation
DataRelation
DataTable
DataTable
DataView
Nuevas posibilidades en .NET
• ADO.NET: DataRelations
– Utilizada para crear relaciones lógicas
• Entre dos (2) objetos DataTable
• Requiere un objeto DataColumn de cada DataTable
• El tipo de datos (DataType) de ambas DataColumns debe
ser el mismo
– No es posible relacionar un Int32 con un String
• Se le asigna un nombre (por el desarrollador)
– DataRelation dr=new DataRelation _
(“miRelacion”,...)
– Permite navegación por relaciones
– RelationsCollection contiene todas las
DataRelations
• Se accede a través de la propiedad Relations del DataSet
Nuevas posibilidades en .NET
• ADO.NET: DataAdapter
– Administra el Intercambio de datos entre DataSet y la
Fuente de datos
• Llenar (DataSet o DataTable)
• Actualizar (DataSet o DataTable)
– Ofrece cruces de información entre tablas y columnas
– El usuario puede anular los comandos: insertar /
actualizar / eliminar
• Componente de autogeneración disponible
– Permite que un único DataSet se llene de
varios orígenes de datos diferentes
Nuevas posibilidades en .NET
• ADO.NET: DataAdapter
DataAdapter
Base de datos
SelectCommand
InsertCommand
UpdateCommand
DeleteCommand
TableMappings
DataSet
Nuevas posibilidades en .NET
• Programación 100% orientada a objetos
– Herencia
• Permiten reutilizar el código
• Polimorfismo (por Clases y por Interfaces)
• Facilita la modelización de la realidad
• Herencia entre lenguajes !
– Clases abstractas
• Defienen clases que deben heredarse (MustInherit )
• Implementan código genérico, que se repite igual en
varias otras
• Al mismo tiempo, definen la interfaz final de ese conjunto
de objetos
• Puede expone métodos públicos con código, para las
generalizaciones
• Pueden declarar como MustOverrides los métodos que las
clases que la heredan deben implementar obligatoriamente
Interoperabilidad COM
• COM Interop
– Permite utilizar los objetos COM existentes mientras se realiza
la transición a .NET a su ritmo
– Permite exponer los Objetos .NET en COM
– Usando Wrappers – (RCW / CCW)
– Siempre existe un marshaling
– Los Variants de VB6 pasan como Object
Demo 3:
– Desde ASP.Net usando late bound con
Aplicación ASP.Net
Server.CreateObject(“ProgId”)
Accediendo a las reglas
• Es necesaria la directiva AspCompat(COM
= “true”
/ VB6). Si hay
mostrar también
– Incluso se puede heredar desde COMtiempo,
!
una aplicación windows y
herencia COM
¿Preguntas?
Nos vemos en un ratito…
Vamos a ver un ejemplo de tres
capas en .NET 
Desarrollo de una Aplicación .NET
• Aplicación “Pachacamac”
Ya esta en línea en:
http://www.microsoft.com/latam/msdn/comunidad/uni.net/default.asp
Temario
• El modelo de 3 capas
• La base de datos
• El servicio de Datos
• Las reglas (Objeto Entidad)
• Heredando Entidad
• Exponiendo un método como Web Service
Desarrollo de una Aplicación .NET
• El modelo de 3 capas
Desarrollo de una Aplicación .NET
• La Base de Datos
– Es una modificación para SQL 7 o 2000 de la base
Neptuno que venia en Access 97
– Se agrego a todas las tablas un campo de
identificación llamado Id del tipo Integer
Autonumérico (Identity)
– Se modificaron las relaciones entre las tablas para
usar el campo ID
– Por lo tanto se modificaron los nombre Demo
de los4:
campos que tienen relación con otraMostrar
tabla DER de
la base de
– Se agregaron los Stored Procedures necesarios
datos
Desarrollo de una Aplicación .NET
El servicio de datos
El Servicio de Datos
• El servicio de datos
– Aprender de los “mayores”
• System.Data
– Common
– SqlServer
– OleDb
– Una clase genérica (gDatos) que implementa la
funcionalidad común
– Dejando en clases “especiales” las acciones que
pueden cambiar de acuerdo al motor de la base de
datos
– Técnicamente hablando, una clase “abstracta”
El Servicio de Datos
• Clase gDatos - Propiedades
– Nombre de la base a utilizar
– Nombre del servidor a utilizar
– Cadena de conexión completa
– Objeto Conexión
El Servicio de Datos
• Clase gDatos – Métodos
– Ejecuta acciones sobre la base de datos
– La función está sobre escrita, para admitir, o no,
argumentos para los procedimientos almacenados
El Servicio de Datos
• Clase gDatos – Métodos
– Devuelve un DataSet a partir del procedimiento
almacenado que se le indica
– Está sobrescrito, para permitir enviarle argumentos
El Servicio de Datos
• Clase gDatos – Métodos
– Devuelve un Objeto DataTable con las mismas
condiciones que el método anterior
El Servicio de Datos
• Clase gDatos – Métodos
– Devuelve el valor de retorno del procedimiento
almacenado
El Servicio de Datos
• Clase gDatos – Métodos
– Permiten administrar Transacciones
El Servicio de Datos
• Clase gDatos – Métodos que deben
sobreescribirse
– Obligan a su definición en las clases que heredan de
ésta
– Están definidos por tipos de interfaz común
El Servicio de Datos
• Clase DatosSQLServer
– Hereda de común y “se ve obligada” a escribir
los métodos forzados
– Internamente conservará en memoria los
procedimientos almacenados ya utilizados
Inherits Curso.Datos.gDatos
Shared mColComandos As New
System.Collections.Hashtable()
El Servicio de Datos
• Clase DatosSQLServer
– Se sobrescriben cada uno de los métodos que están
marcados como “MustOverrides”
Public Overrides Property CadenaConexion() As
String
El Servicio de Datos
• Clase DatosSQLServer
– Todas las acciones a la base de datos se realizan a través de
Procedimientos Almacenados
– Las denominaciones son:
Accion
Nombre
Agregar
<NombreTabla>_A
Modificar
<NombreTabla>_M
Eliminar
<NombreTabla>_E
TraerUno
<NombreTabla>_T
TraerParaEditar
<NombreTabla>_TABM
TraerFiltrado
<NombreTabla>_TX<Filtro>
TraerTodos
<NombreTabla>_TT
TraerParaCombo
<NombreTabla>_TL
TraerValor
<NombreTabla>_TV<Parametro>
Demo 5:
Mostrar el código
y probar el
servicio de datos.
Desarrollo de una Aplicación .NET
Reglas de Negocio
Reglas de Negocio
• Reglas de Negocio
– Encapsular todas las acciones propias del
negocio en ellas
– No depender
• Ni del cliente que las llama
• Ni del motor de base de datos al que acceden
– Definirlas con una interfaz clara y
transparente
• Facilitando la reutilización
Reglas de Negocio
• Objeto Entidad
– Es un objeto genérico que sostiene la
funcionalidad básica
• Tiene Propiedades que establecen el entorno
• Tiene Métodos que pueden llegar a utilizarse en
cualquier objeto
• Establece las facilidades de sobrescribir aquellos
que en casos particulares lo requieran
Reglas de Negocio
• Entidad - Propiedades
– Identificador del registro a utilizar
– Permite establecer una identificación unívoca de un
elemento de información en la tabla (Registro)
Reglas de Negocio
• Entidad - Constructor
Sub New(ByVal NombreEntidad As String)
– Admite la asignación del nombre de la tabla a tratar,
en el momento de la creación del objeto
Reglas de Negocio
• Entidad – Métodos de acción comun
– TraerTodos
• Devuelve todos los registros de la tabla
– <NombreTabla>_TT
– TraerCombo
• Devuelve los registros listos para cargar listas desplegables
– <NombreTabla>_TL
– TraerUno
• Devuelve un registro, el indicado por la propiedad Id
– <NombreTabla>_T
Reglas de Negocio
• Entidad – Métodos de acción comun
– TraerFiltrado
• Devuelve un conjunto de datos, dependiendo del filtro
indicado
– <NombreTabla>_TX<Filtro>
– Traer Valor
• Retorna un valor específico
– <NombreTabla>_TV<DatoaTraer>
– Actualizar
• Actualiza un conjunto de registros
– <NombreTabla>_A
– <NombreTabla>_M
– <NombreTabla>_E
Reglas de Negocio
• Entidad – Propiedad Datos
– Expone un DataSet conteniendo toda la
información necesaria para editar un registro
• Registro a Editar
• Tablas con resultados de TraerCombo de las
tablas relacionadas
• Facilita entonces implementar del lado del cliente
los mecanismos de edición
• <NombreTabla>_TABM
Reglas de Negocio
• Stored Procedures
– Deben cumplir con la estandarización
mencionada para que las reglas funcionen
correctamente
– Se podrían generar automáticamente
Demo 6:
Mostrar SP’s, el
código de las
reglas y probarlas
Reglas de Negocio
• Heredando Entidad – Clase pedidos
– Hereda de Entidad
– Expone además 2 métodos específicos
• DatosDePedido
• Devuelve un DataSet con todas las tablas implicadas en la
generación de un pedido
– Es la “Plantilla” para armar el pedido completo
• Guardar
• Es responsable de almacenar un pedido completo, usando el
DataSet generado en el método anterior
Demo 7:
Mostrar y
probar Pedidos
Desarrollo de una Aplicación .NET
• Publicando un Web Service
– Exponemos DatosDePedido como Web service
– De esta forma nuestros clientes desde una Aplicación
Remota podrían ver los datos de sus pedidos
Demo 8:
Exponer el método
como WebService y
armar el cliente
Muchas Gracias !!!
¿Preguntas?
El ejemplo ya está en línea en:
www.microsoft.com/latam/msdn/comunidad/uni.net/default.asp
Para mayor información…
• Sitio MSDN
www.microsoft.com/argentina/msdn
• Capacitación
www.microsoft.com/argentina/msdn/capacitacion/
• Sitio MUG
www.mug.org.ar
• Regístrese al Newsletter MSDN Flash
www.microsoft.com/latam/msdn/flash
• Email
[email protected]
Descargar

Session Title