De DNA a 'NET Interoperabilidad y Migracin - PowerPoint PPT Presentation

1 / 106
About This Presentation
Title:

De DNA a 'NET Interoperabilidad y Migracin

Description:

Counted. Traced. Reference. Client. Runtime. Callable Wrapper. Objecto .NET Llamando a COM ... Counted. COM Server. IUnknown. IDispatch. IFoo. IFoo. Cliente ... – PowerPoint PPT presentation

Number of Views:140
Avg rating:3.0/5.0
Slides: 107
Provided by: brad205
Category:

less

Transcript and Presenter's Notes

Title: De DNA a 'NET Interoperabilidad y Migracin


1
De DNA a .NETInteroperabilidad y Migración
2
Agenda
  • Modelo de componentes .NET
  • Interoperabilidad entre COM y .NET
  • .NET utilizando componentes COM
  • COM utilizando componentes .NET
  • Plataform Invoke (P/Invoke)
  • Servicios COM y Enterprise Services
  • Migración de aplicaciones a .NET
  • Migración de VB 6 a VB.NET
  • Migración de ASP a ASP.NET

3
Modelo de Componentes .NET
4
.NET Framework Objetivos
  • Simplificar el desarrollo y el despliegue de
    aplicaciones.
  • Modelo unificado de programación.
  • Proporcionar un entorno de ejecución robusto y
    seguro.
  • Soportar múltiples lenguajes de programación.

5
Framework, Lenguajes, y Herramientas
6
Framework, Lenguajes, y Herramientas
Visual Studio.NET
Common Language Specification
ADO.NET and XML
Base Class Library
Common Language Runtime
Operating System
7
La evolución .NET
Aplicación
Código y estructura de datos
Anteriormente en COM, las aplicaciones eran
entidades completamente separadas con poca o
ninguna integración.
8
La evolución .NET
COM proporciona mecanismos para que los
componentes se integren. Pero cada componente
debe proporcionar la infraetructura de conexión
y los objetos no pueden interactuar directamente.
9
La evolución .NET
Con el CLR (common language runtime) del
Framework de .NET los componentes son construidos
sobre un substrato común. Los objetos pueden
interactuar directamente, sin necesidad de
ninguna infraestructura adicional.
10
Compilación y Ejecución
Compilación
Código (IL)
Código Fuente
Metadatos
Al instalar o la primera vez que un método es
llamado
11
Desarrollo Simplificado
  • Eliminado completamente la infraestructura COM
  • Ya no
  • Registration
  • GUIDs
  • .IDL files
  • HRESULTs
  • IUnknown
  • AddRef/Release
  • CoCreateInstance

gtaplicación autodescrita.
gtjerarquía de namespaces
gtmodelo objectos unificado
gtexcepciones estructuradas
gtobjeto raíz común
gtrecolector automático
gtoperador new
12
Desarrollo Simplificado
  • Sistema común de tipos
  • Definición común de instancias y tipos.
  • Programación OO
  • Clases e interfaces
  • Constructores, propiedades, métodos, eventos
  • Herencia entre lenguajes
  • Interoperatividad incorporada
  • Con COM
  • Con DLL nativas (estilo Win32)

13
Todo es un objeto
  • Perspectiva tradicional sobre tipos primitivos
  • C, Java Son mágicos
  • Smalltalk, Lisp Son objetos completos
  • .NET Framework Value types
  • Unificados sin perdida de rendimiento
  • Gran simplicidad por todo el sistema
  • Mejor extensibilidad y reusabilidad
  • Nuevos tipos primitivos Decimal, SQL
  • Colecciones, etc., funcionan con todos los tipos

14
Todo es un objeto
  • Boxing
  • Reserva caja, copia el valor en ella.
  • Unboxing
  • Comprobar el tipo de la caja, saca el valor

int i 123 object o i int j (int)o
Dim i As Integer 123 Dim o As Object i Dim j
As Integer CInt(o)
15
Entorno Robusto
  • Gestión automática de la vida de los objetos
  • Todos los objetos son gestionados por el
    recolector de basura.
  • Manejadores de Excepciones
  • Gestión de errores de gran calidad
  • Tipos seguros
  • Sin desbordamiento de buffer, sin conversiones de
    datos no seguras, sin variables no inicializadas

16
Entorno Seguro
  • Seguridad por diseño
  • Seguridad reforzada para acceder al código
  • Seguridad basada en la identidad del código
  • Configurable mediante políticas
  • Autenticación integrada en ASP.NET
  • Windows identity, Passport, forms-based,
  • Librería criptográfíca con soporte de XML DSIG
  • Firma digital para XML (www.w3.org/signature)

17
Instalación y Administración Simplificada
  • Instalación impacto cero
  • Aplicaciones y componentes pueden ser compartidas
    o privadas
  • Ejecución múltiples versiones
  • Múltiples versiones de un mismo componente pueden
    coexistir en un mismo sistema
  • Assemblies
  • Contienen la información de dependencias

18
Framework, Lenguajes, y Herramientas
Visual Studio.NET
Common Language Specification
ADO.NET and XML
Base Class Library
Common Language Runtime
Operating System
19
Modelo programación unificada
20
Cuánto más simple?
Windows API
HWND hwndMain CreateWindowEx( 0,
"MainWClass", "Main Window",
WS_OVERLAPPEDWINDOW WS_HSCROLL WS_VSCROLL,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL,
hInstance, NULL) ShowWindow(hwndMain,
SW_SHOWDEFAULT) UpdateWindow(hwndMain)
21
Factorizado y Extensible
  • El Framework no es una caja negra
  • Cualquier clase en .NET puede ser extendida
    mediante herencia
  • Proporciona a los desarrolladores mucha más
    flexibilidad
  • Componentes y subsistemas Plug and Play

22
Librería del .NET Framework
ADO.NET and XML
Base Class Library
23
Librería del .NET Framework
24
Base Framework
System
Security
Collections
ServiceProcess
Configuration
Text
Diagnostics
Threading
Globalization
IO
Runtime
InteropServices
Net
Remoting
Reflection
Serialization
Resources
25
Datos y XML
System.Data
SQLClient
OleDb
SQLTypes
Common
System.Xml
Serialization
XSLT
XPath
26
ASP.NET
System.Web
Services
UI
HtmlControls
Description
WebControls
Discovery
Protocols
Caching
Security
Configuration
SessionState
27
Windows Forms
System.Windows.Forms
Design
ComponentModel
System.Drawing
Drawing2D
Printing
Imaging
Text
28
Framework, Lenguajes, y Herramientas
Visual Studio.NET
Common Language Specification
ADO.NET and XML
Base Class Library
Common Language Runtime
Operating System
29
Lenguajes
  • La plataforma .NET es lenguaje neutral
  • Todos los lenguajes de .NET son igual de
    importantes
  • Permite reaprovechar la experiencia de cada
    programador.
  • Especificaciones de lenguaje comunes
  • Conjunto de características garantizadas en todos
    los lenguajes
  • MS proporciona
  • Visual Basic, C, C, J, JScript
  • Proporcionados por terceros
  • APL, COBOL, Delphi, Pascal, Eiffel, Haskell, ML,
    Oberon, Perl, Python, Scheme, Smalltalk

30
Estandarización
  • Un subconjunto del .NET Framework y C enviados a
    ECMA
  • Adoptado como estándar internacional en Dic.
    2001
  • En la ISO actualmente en proceso.
  • Co-patrocinado por Intel, Hewlett-Packard
  • Infraestructura común de lenguajes
  • Basado en common language runtime y base
    framework
  • Organizado en crecientes niveles de funcionalidad

31
Sumario
  • El .NET Framework
  • Simplifica el desarrollo y el despliegue de
    aplicaciones
  • Modelo unificado de programación
  • Proporciona un entorno de ejecución robusto y
    seguro
  • Soporta múltiples lenguajes de programación

32
Interoperabilidad entre COM y .NET
33
Migración o Interoperar
  • Migración
  • Todo el código en una plataforma unificada
  • Migrar para aprovechar las ventajas de .NET
  • Interoperar
  • Reusar código existente
  • Rentabilizar inversiones ya realizadas
  • Acceso a funcionalidades no portables.

34
COM y .NET
  • COM Interop
  • Comunicación bidireccional entre COM y .NET
  • Preservar/Utilizar las inversiones ya realizadas
  • Facilita la migración incremental
  • Realidad hay cosas que nunca cambian
  • Es necesario interoperar porque hay código que no
    puede migrarse

35
COM and .NET
  • Componentes
  • DCOM
  • COM
  • Recordset
  • ltno equivalentegt
  • IUnknown/IDispatch
  • GUID/CLSID/etc
  • Assemblies
  • Remoting
  • EnterpriseServices
  • DataSet
  • Serialización
  • ltno equivalentgt
  • ltno equivalentgt

36
IntroducciónBidireccional COM Interop
  • .NET usando COM
  • Clases .NET acceden a componentes COM
  • COM usando .NET
  • Componentes COM acceden a clases .NET

.NET
COM
COM
.NET
37
.NET Llamando a COM
Common Language Runtime
38
.NET Llamando a COM
  • Runtime Callable Wrapper
  • Creado mediante Visual Studio .NET
  • Creado mediante tlbimp.exe
  • Primary Interop Assembly
  • Marshal.ReleaseComObject()

39
COM, .NET y el despliegue
  • Volvemos al mundo de COM
  • GUID, CLSID, etc.
  • Windows Registry
  • System-level namespace
  • Las cuestiones de despliegue persisten cuando se
    usa COM desde .NET

40
COM Wrappers
Common Language Runtime
41
COM Llamando a .NET
  • El componente de .NET llamado desde COM debe
    estar registrado
  • COM Callable Wrapper (CCW)
  • Contador de referencias como un objeto COM
  • Hace aparecer una clase .NET como un objeto COM
    de forma transparente.
  • Realiza el marshalling de datos

42
Usando controles ActiveX
  • Similar a utilizar cualquier otro componente COM
  • .NET wrapper delegates to ActiveX
  • Aparece como un control .NET para .NET
  • Actúa como un contenedor de controles ActiveX
    para el control ActiveX

43
COM Llamando a .NET
Common Language Runtime
IFoo
44
COM invocando a .NET
  • COM Callable Wrapper
  • Creado mediante Visual Studio .NET
  • Creado mediante tlbexp.exe
  • Haciendo un assembly disponible en COM
  • Global Assembly Cache (GAC)
  • /codebase switch

45
Plataform Invoke (P/Invoke)
  • Facilita el acceso a DLLs nativas (Win32)
  • Es similar a
  • Sentencia Declare en Visual Basic
  • LoadLibrary/GetProcAddress
  • En C se define el acceso mediante atributos y en
    Visual Basic mediante sentencia Declare
  • Usa el mismo mecanismo de marshalling que COM
    Interop

46
Rendimiento
  • La transición entre código manejado y nativo
    tiene un coste
  • Entre 20-30 instrucciones por llamada
  • La transformación de datos tiene un coste
  • Depende del tipo y tamaño de los datos
  • Tipos básicos no tienen coste

47
Sumario
  • Los componentes COM existentes pueden ser
    reutilizado en .NET
  • Las aplicaciones pueden mezclar .NET con
    componentes preexistentes
  • Win32 y otros APIs pueden ser usados en .NET

48
Usando Servicios COM en .NET Framework
49
Los Servicios de COM son
  • Servicios MTS
  • Transacción
  • Seguridad
  • Administración
  • Además, Nuevos servicios
  • Object Pooling
  • Queued Components
  • Events
  • Others
  • Auto Completion, Compensating Resource Managers

50
Servicios de COMTransacciones
  • MTS Soportaba
  • Atributos transaccionales
  • Required, Requires New, Supports, Does not
    support
  • Gestor de recursos conforme a la especificación
    XA
  • COMTI - COM Transaction Integrator
  • COM Añade
  • AutoComplete, AutoAbort
  • Gestor de Recursos por compensación
  • TIP - Transaction Internet Protocol
  • BYOT - Bring Your Own Transactions

51
Usando Servicios de COM En componentes .NET
  • Componentes .NET pueden ser alojados en
    Aplicaciones de Servicios COM
  • Pueden usar todos los servicios COM
  • Transacciones
  • Activación Just in Time
  • Activity Synchronization
  • Object Pooling
  • Queued Components
  • Events
  • Etc.

52
Usando Servicios de COM En componentes .NET
(cont.)
  • Componentes .NET
  • Activados en un ObjectContext de COM
  • ObjectContext proporciona Servicios
  • Integración con aplicaciones ya existentes de
    COM
  • El Contexto fluye entre componentes COM y
    componentes .NET
  • Independiente del lenguaje de implementación

53
Modelo de programación
  • Atributos para servicios
  • E.g., TransactionAttribute
  • Especificados al desarrollar la clase
  • Compilados en el Metadata
  • Usados para configurar el catálogo de COM
  • Los atributos habilitan COM Services
  • Los componentes son automáticamente creados en un
    ObjectContext de COM

54
Account - Atributos
  • using System
  • namespace CSharpBank
  • public class Account
  • public void Post(int accountNo, int amount)
  • try
  • catch()

using System.EnterpriseServices
TransactionAttribute(TransactionOption.Requir
ed)
ServicedComponent
55
Gestor de Recursos
  • Puedo usar las APIs normales de gestión de
    recursos
  • MSMQ mediante COM Interop
  • Gestores de recursos de 3 Partes
  • Puedo usar nuevas APIs
  • ADO.NET - System.Data.
  • MSMQ Messaging System.Messaging.
  • Enganche Automático con Transacciones COM

56
Account - Recurso
  • using System
  • namespace CSharpBank
  • public class Account
  • public void Post(int accountNo, int amount)
  • try
  • catch()

using System.EnterpriseServices
TransactionAttribute(TransactionOption.Requir
ed)
ServicedComponent
//. . . Do some resource operations
57
Modelo de programación
  • Para construir servicios COM utilizar las APIs
    de System.EnterpriseServices
  • Confirmar transacción
  • ContextUtil.SetComplete
  • Abortar transacción
  • ContextUtil.SetAbort

58
Account Modelo programación
  • using System
  • namespace CSharpBank
  • public class Account
  • public void Post(int accountNo, int amount)
  • try
  • catch()

using System.EnterpriseServices
TransactionAttribute(TransactionOption.Requir
ed)
ServicedComponent
//. . . Do some resource operations
ContextUtil.SetComplete()
ContextUtil.SetAbort()
59
Construir
  • Un Assembly es la unidad de despliegue de código
    manejado
  • Proporcionar un nombre compartido a el Assembly
  • sn -k CSharpBank.snk
  • Compilar el código para crear el Assembly
  • Suministrar el nombre compartido CSharpBank.snk
    en las opciones de línea de comando.

60
Despliegue
  • Crear aplicación COM
  • Usar la herramienta de administración COM
    Component Services o un script de administración
  • Añadir los Assembly al Global Assembly Store
  • al /iCSharpBank.dll
  • Añadir Assembly a una aplicación COM
  • RegSvcs CSharpBank.dll BankApp

61
Atributos de ServiciosSystem.EnterpriseServices
  • Transactions
  • Activación Just in Time
  • Synchronization
  • Más en el futuro

62
ContextUtil ClassSystem.EnterpriseServices
  • Conjunto de operaciones comunes para interactuar
    con COM
  • SetComplete, SetAbort
  • IsCallerInRole
  • IsInTransaction, TransactionId
  • ObjectContext
  • Etc.

63
Registro en COMSystem.EnterpriseServices
  • RegistrationHelper
  • Añade componentes .NET en una Aplicación COM
  • Configura el Catálogo de COM basándose en los
    Atributos de Servicio contenidos en el componente
    .NET

64
SecuritySystem.EnterpriseServices
  • Componentes .NET alojados en COM pueden usar la
    seguridad basada en roles de COM
  • SecurityCallContext
  • SecurityIdentity
  • SecurityCallers
  • Etc.

65
Account ComEmulate
  • using System
  • namespace CSharpBank
  • public class Account
  • public void Post(int accountNo, int amount)
  • //. . .

using System.EnterpriseServices
ComEmulateAttribute(CSharpBank.AccountIntern
al)
GuidAttribute("B9E8F6DE-94EE-4aa9-B2E4-3B0B08
585500")
TransactionAttribute(TransactionOption.Requir
ed)
internal class AccountInternal

66
ADO.NETUsing COM Services
  • SQL Server Provider
  • System.Data.SQL.
  • Todo en código manejado
  • Usa el protocolo nativo TDS de SQL Server
  • Usa el Pool de Objetos de los Servicios COM
  • Enganche a transacciones automáticas

67
Migración de aplicaciones VB 6 a VB.NET
68
VB.NET es más que VB61
  • Construido sobre una nueva plataforma .NET
  • Mejores aplicaciones Windows y COM
  • Lenguaje básico de .NET
  • No es 100 compatible con VB6
  • El Upgrade Wizard convierte el 95
  • Modificaciones manuales un 5
  • Da paso a un nuevo mundo

69
10 Razones Principales para Migrar
  • Código Más Robusto
  • Potentes Aplicaciones Windows
  • Potente y Flexible Acceso a Datos
  • Despliegue Simplificado
  • Creación Componentes Simplificado
  • Creación de Control Mejorada
  • Acceso Directo a la Platforma
  • Reporting Integrado
  • Desarrollo fácil de aplicaciones Web
  • Llevar las inversiones realizadas un paso hacia
    delante

70
Upgrade Wizard
Form Layout
ActiveX Controls
ADO Data Binding
RES files
Code
Syntax Changes
COM Libraries
Behavior warnings
71
Upgrade WizardForm Upgrade
ActiveX controls
User controls
Intrinsic controls
Compatibility class
72
Upgrade WizardLanguage Upgrade
Most code is same
Syntax changes
Compatibility class
Behavior Warning
http//msdn.microsoft.com/vbasic/technical/upgrade
73
Comentarios Upgrade Wizard
  • UPGRADE_ISSUE
  • Errores de compilación
    (debe ser corregido para compilar)
  • UPGRADE_WARNING
  • Diferencias en comportamiento
    (debe ser examinado antes de ejecutar)
  • UPGRADE_TODO
  • Código parcialmente migrado
    (requiere migración manual adicional)
  • UPGRADE_NOTE
  • Código modificado de forma significativa
    (no son necesarios cambios manuales)

74
Cuestiones de detalle
75
No migra automáticamente
  • Documentos ActiveX
  • Páginas ActiveX DHTML
  • Vinculaciones en DAO y RDO
  • Controles OLE de formas
  • Páginas de propiedades a medida
  • Extensiones Add-in
  • Características del lenguaje
  • LSet, ObjPtr, VarPtr, StrPtr,
  • GoSub and Return, Computed Goto

76
Variables Fuertemente Tipadas
  • Código Visual Basic 6.0
  • Después de migrar
  • Resultado funciona perfectamente

Dim myTextBox As TextBox myTextBox "Hey There"
Dim myTextBox As System.Windows.Forms.TextBox myTe
xtBox.Text "Hey There"
77
Variables Fuertemente Tipadas
  • Código Visual Basic 6.0
  • Después de migrar
  • Resultado Error de ejecución

Dim myTextBox myTextBox "Hey There"
Dim myTextBox As Object 'UPGRADE_WARNING
Couldn't resolve default property of object
myTextBox. myTextBox "Hey There"
78
Opciones para solucionarlo
  • Solución 1 Preparar en Visual Basic 6.0
  • Solución 2 Corregir después de migrar

As TextBox
Dim myTextBox myTextBox "Hey There"
Dim myTextBox As Object 'UPGRADE_WARNING
Couldn't resolve default property of object
myTextBox. myTextBox.Text "Hey There"
.Text
79
Propiedades ByRef
  • Get CustId recibe param ByRef
  • Demo Si se pasa Text1.Text
  • Resultado
  • En VB6, Text1.Text Ari
  • En VB.NET, Text1.Text Ari.NET

Private Property Get CustId(CustName As String)
As String CustName CustName .NET
CustId CustName End Property
Text1.Text Ari strCustId CustId(Text1.Text)
Ari.NET
80
Soluciones ByRef
  • Solución 1 Usar ByVal
  • Solución 2 Añadir paréntesis

Private Property Get CustId(ByVal CustName As
String) As String CustName CustName
.NET CustId CustName End Property
ByVal
strCustId CustId((Text1.Text) )
(Text1.Text)
81
Recomendaciones programación
  • Usar el tipo Date para almacenar fechas

Dim dbl As Double Dim dat As Date dat Now
' GOOD dbl dat ' ? dbl DateAdd(d,
1, dbl) ' ?
  • Usar vectores zero-based
  • Vectores Non-zero-based arrays migrados a una
    clase de compatibilidad
  • No usar Option Base 1

Dim a(10) As Integer ' GOOD Dim a(1 to 10) As
Integer ' ?
82
Recomendación Programación
  • Evitar propagación de Null
  • En Visual Basic.NET, funciones y operadores no
    acepta o retorna Null
  • Usar IsNull() para comprobar Null

If IsNull( rs!Field1 ) Then 'GOOD ... End If
  • Usar ADO
  • Viculación de datos
  • Data control
  • Data environment

83
Recomendación Programación
  • Desabilitar Timer

Timer1.Enabled False 'Good Timer1.Interval
0 ' ?
Usar constantes en lugar de valores directos
Form1.BorderStyle vbSizable 'Good Form1.BorderSt
yle 2 ' ? Form1.BorderStyle x
' ?
84
Opciones sobre código VB 6
  • Migración no es un requisito
  • Interoperar con código existente VB 6.0
  • Consideraciones
  • Arquitectura de aplicaciones y de tecnología
  • Mantenimiento y nuevos desarrollos

85
Añadir valor a la migración
  • Ahora disponible para el WEB
  • Remplazar controles ActiveX con controles Windows
    Forms
  • Remplazar ADO con ADO.NET
  • Multitarea
  • Características gráficas

86
Sumario
  • Existen opciones para realizar la migración de
    código VB 6
  • Etapas de la migración
  • Preparar código existente
  • Aprender VB .NET
  • Migrar
  • Añadir valor a la migración

87
Migración ASP a ASP.NET
88
Active Server Pages
  • Plataforma de desarrollo web lider
  • Cerca de 1 millón de desarrolladores usan ASP hoy
  • Múltiples web y aplicaciones bien conocidas
  • Simple y abordable
  • No requiere compiladores
  • Lenguajes y modelo de objeto sencillo de usar
  • Soporte amplio
  • Comunidades Online
  • Soporte mediante Libros/Consultoría/conferencias

89
Por qué migrar a ASP.NET?
90
Cuestiones con ASP clásico
  • Requiere realizar mucha codificación
  • Tareas simples a menudo no son fáciles
  • Aplicaciones contienen código spaghetti
  • Pobre reutilización/encapsulado
  • Lenguaje limitado
  • Late-bound scripting, débilmente tipado
  • Problemas del desarrollo
  • COM y metabase

91
10 Razones para migrar a ASP.NET
  • Es verdaderamente rápido!
  • Despliegue y actualización de aplicaciones con
    XCOPY
  • Apoyado en magníficas herramientas
  • Detección y recuperación automática de errores
  • Estado de la sesión escalable en granjas Web
  • Cache incorporada para fácilmente incrementar el
    rendimiento
  • Soporta un amplio rango de dispositivos móviles
  • Se puede usar un amplio rango de lenguajes
    compilados
  • Construir o usar servicios web es muy fácil
  • Modelo Simple de desarrollo de páginas

92
Ideas generales
  • ASP.NET no es ASP
  • No se puede reutilizar código reescribir
    completamente
  • Fácilmente multiplica por x10 la funcionalidad
    disponible en ASP
  • Compatibilidad con ASP
  • Intenta ser 100 compatible
  • En la realidad esto no es posible

93
Las malas noticias
  • La migración siempre requerirá trabajo
  • No hay herramientas de migración
  • Páginas triviales puede ser sencillo
  • Aplicaciones será mucho más difícil
  • La realidad es
  • No se puede simplemente cambiar la extensión de
    las páginas
  • Múltiples incompatibilidades
  • Existencia de servidores COM

94
Las buenas noticias
  • Elemento que permanecen
  • Objetos básicos de ASP permanecen
  • Codificación con VB
  • Codificación en línea, intercalada con HTML
  • Los beneficios de migrar
  • 2-3 veces mejor rendimiento
  • Soporta Web Farm y despliegue con XCopy
  • Output Caching y Seguridad a medida
  • Controles de Página
  • Infraestructura para Servicios Web

95
Las buenas noticias
  • ASP.NET se puede ejecutar simultáneamente con ASP
  • Extensiones fichero distintas (.aspx vs .asp)
  • Configuración separada
  • No hay modificaciones del ASP.DLL ISAPI
  • Cuestiones de la Integración
  • En el mismo directorio, pero
  • Aplicaciones completamente separadas
  • No hay compartición de sesión

96
Las buenas noticias
  • Magnífica mejora de rendimiento
  • No es un lenguaje interpretado
  • ASP.NET es compilado
  • Fuertemente tipado
  • Impresionante mejoras de productividad
  • Controles de Servidor
  • Cache de salida de la página o parte de la
    página
  • Servicios Web

97
Opciones de la Migración
  • Codo-con-Codo
  • Usar ambos ASP y ASP.NET
  • Aplicaciones separadas
  • Integración
  • Usar ambos ASP y ASP.NET
  • Integración mediante componentes comunes
  • Re-escribir
  • Migrar completamente a ASP.NET
  • Aprovechar las ventajas de ASP.NET

98
Cambios Semánticos
  • Un sólo lenguaje
  • No se pueden mezclar lenguajes
  • Múltiples lenguajes para elegir
  • Funciones en Página
  • Contenidas en bloques ltscript runatservergt
  • Las funciones no pueden usar el estilo en línea
    de ASP lt gt
  • Page Render functions
  • No suportadas, usar Response.Write()

99
Cambios al lenguaje VB
  • Probablemente el mayor problema de la migración
  • No más Set y Let
  • No más propiedad por defecto (aspecto importante)
  • Los paréntesis son necesarios para llamar a
    subrutinas
  • Argumentos a funciones ahora ByVal por defecto
  • Todos los tipos .NET son del tipo Object

100
Gestión de estado
  • Estado a nivel de aplicación
  • ASP y ASP.NET no comparten datos
  • ASP Usar objeto aplicación construido a medida.
  • Sólo usar objeto aplicación para datos de sólo
    lectura
  • Estado a nivel de sesión
  • ASP and ASP.NET no comparten la sesión
  • ASP.NET evento Application_AcquireState
  • Usar objeto sesión construido a medida en ASP

101
Cambios de Configuración
  • ASP Configuración
  • Almacén de Datos Binarios del IIS (metabase)
  • Cambios requieren acceso local al servidor
  • ASP.NET Configuración XML
  • Ficheros Machine.config, web.config
  • Parámetros del IIS no afectan a ASP.NET
  • Cambios no requieren acceso local al servidor

102
Integración con COM
  • Componentes COM
  • Llamar Server.CreateObject(progid) y acceder
    mediante late-bound
  • Crear clases wrapper en .NET
  • Permite early binding
  • Mejor rendimiento
  • Utilidad TLBIMP.exe o Visual Studio

103
Componentes en ASP Clásico
  • Soporte para ASP instrinsics
  • ObjectContext intrinsic Flow
  • Aplicaciones OnStartPage y OnEndPage
  • Modo ASPCompat
  • lt_at_ page aspcompattrue gt
  • ASP.NET ejecuta en STA

104
Consideraciones de rendimiento
  • Coste del Marshalling
  • Llamadas entre ASP.NET and COM
  • Mejor rendimiento si reescribimos COM con .NET
  • ASP.NET Thread Pool ahora MTA -- not STA
  • Perdida de rendimiento con componentes
    apartment
  • VB5 y VB6 Componentes Apartment Model
  • Se puede habilitar STA Thread Pool por página
    para mejorar rendimiento con componentes VB 6
    existentes
  • lt_at_ Page ASPCompattrue gt
  • No necesario en componentes C MTA

105
Sumario
  • Migración no sencilla
  • Requiere cierto trabajo
  • Pero pueden convivir codo-con-codo.
  • Beneficios del esfuerzo
  • Mejor rendimiento
  • Desarrollo mucho más fácil y productivo
  • Código más limpio
  • Aplicaciones preparadas para el futuro

106
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com