Professional Documents
Culture Documents
Objetivos
Agenda
Guas de arquitectura
Guas de Arquitectura
Security
Operational Management
Communication
Presentation
UI Components
UI Process Components
Business
Business
Workflows
Svc
Svc Interfaces
Interfaces
Business Components
Business Entities
Data
Data Access
Components
Data Sources
Svc
Svc Agents
Agents
Services
Guas de Arquitectura
http://msdn.microsoft.com/practices/
Estndares de desarrollo
Ayudan
http://msdn.microsoft.com/library/enus/cpgenref/html/cpconnetframeworkdesignguideli
nes.asp
FxCop:
http://www.gotdotnet.com/team/libraries/
Application Blocks
Data
Exception
for .NET
Referencias
Estrategia de migracin:
http://msdn.microsoft.com/vbasic/productinfo/vbasic03/features/default
.asp
de diseo
Arquitectura
Beneficios
Compilacin
Introduccin a .NET
Objetivos de diseo de .NET Framework
Introduccin a .NET
Framework, Lenguajes y Herramientas
VB
C++
C#
JScript
J#
ADO.NET y XML
Base Class Library
Common Language Runtime
Sistema Operativo
ASP.NET
Web Forms Web Services
Mobile Internet Toolkit
Introduccin a .NET
Framework, Languajes y herramientas
System.Web
Services
Description
UI
HtmlControls
Discovery
WebControls
System.Windows.Forms
Design
Protocols
ComponentModel
System.Drawing
Caching
Security
Drawing2D
Printing
Configuration
SessionState
Imaging
Text
System.Data
System.Xml
OleDb
SqlClient
XSLT
Common
SQLTypes
XPath
Serialization
System
Collections
IO
Security
Runtime
InteropServices
Configuration
Net
ServiceProcess
Diagnostics
Reflection
Text
Remoting
Globalization
Resources
Threading
Serialization
Introduccin a .NET
Beneficios del .NET Framework
Introduccin a .NET
Beneficios del .NET Framework
Orientacin a objetos:
Interoperabilidad
Con COM
Con DLLs nativas (del estilo Win32)
Introduccin a .NET
Beneficios del .NET Framework
Registro
=>Aps autodescriptivas
GUIDs
=>namespaces jerrquicos
Archivos .IDL
=>objetos autodescriptivos
HRESULTs
=>excepciones estructuradas
IUnknown
AddRef/Release
=>garbage collector
CoCreateInstance
=>operador new
Introduccin a .NET
Compilacin y ejecucin
Compilacin
Cdigo
fuente
Cdigo
Nativo
Compilador
del
lenguaje
Compilador
JIT
Ejecucin
Cdigo (IL)
Assembly
Metadatos
En instalacin o la
primera vez que se
invoca a cada
mtodo
Try Catch
Incluida en el redistribuible
Ms:
Compatibilidad ?
No es fcil
Librera de compatibilidad
Microsoft.VisualBasic.Compatibility
Cuando no haya nada equivalente
Cuando lo equivalente sea muy diferente
VB6.<nombre de funcin>
No recomendable su utilizacin
'VB6
'Visual Basic.NET
Form1.Show
Form1.Show
Form1.Show vbModal
Form1.ShowDialog
Form1.Show X
VB6.ShowForm(Form1, X)
Imports System.Math
Namespace Geometria
Public Module Module1
Sub Main()
Dim tri As New Triangulo(2, 3, 4)
Console.WriteLine(tri.CalcularArea())
Console.WriteLine(Circulo.Area(5))
End Sub
End Module
Public Class Triangulo
Dim m_a, m_b, m_c As Integer
Public Sub New()
End Sub
Public Sub New (ByVal a As Integer, ByVal b As Integer, ByVal c As Integer)
m_a = a : m_b = b : m_c = c
End Sub
Public Function CalcularArea() As Double
Dim s As Double = (m_a + m_b + m_c) / 2
Return Sqrt(s * (s m_a) * (s m_b) * (s m_c))
End Function
End Class
Public Class Circulo
Public Shared Function Area(ByVal r As Double) As Double
Return Pi * (r ^ 2)
End Function
End Class
End Namespace
Demo 1
Novedades del lenguaje
ADO vs ADO.NET
Caractersticas de ADO.NET
Arquitectura
Enlace a datos (binding)
ADO vs ADO.NET
Entorno desconectado
Todo el transporte de datos utiliza XML
ADO.NET
System.Data.OleDB
System.Data.SQLClient
System.Data.ODBC, System.Data.OracleClient
ADO.NET
Arquitectura de ADO.NET
Presentacin
Windows Forms
MiAp.Exe
DataSet
Negocio
Web forms
Internet
intranet
IE
DataSet
Business to business
Xml
Datos
Data adapter
Data adapter
Diferencia fundamental
En ADO:
Recordset
Buffer de
datos
Acceso a
datos
En ADO.NET:
Buffer de
datos
DataSet
Acceso a
datos
DataAdapter
ADO.NET: Connection
OleDbConnection/SQLConnection
Representa la sesin contra la BD
Utilizados por objetos Data Adapter y Command
para recuperar/actualizar
Inicia las transacciones
ADO.NET: Command
OleDbCommand/SQLCommand
Representa Transact-SQL o procedimientos
almacenados
Devuelve un resultset (ExecuteReader), un
valor (ExecuteScalar), o ejecuta sentencias de
modificacin (ExecuteNonQuery)
Generacin automtica con el objeto
CommandBuilder
ADO.NET: DataReader
OleDbDataReader/SQLDataReader
Stream forward-only read-only
Utilizado por el DataAdapter
Muy rpido
Creado por un objeto Command
(ExecuteReader)
ADO.NET: DataAdapter
OleDbDataAdapter/SQLDataAdapter
Representa un conjunto de Commands y una
Connection
Puente entre el DataSet y la BD
Lee y actualiza la BD:
SelectCommand, UpdateCommand,
InsertCommand, DeleteCommand
ADO.NET DataAdapter
DataAdapter
SelectCommand
Base de datos
InsertCommand
UpdateCommand
DeleteCommand
TableMappings
DataSet
ADO.NET: DataSet
DataTable
DataView
DataRelation
ADO.NET - DataSet
DataSet
DataTable
DataColumn
DataTable
DataRow
Relations
XML Schema
Constraints
ADO.NET: Lecturas
ADO.NET: Actualizaciones
Ejemplo: UpdateBatch
InsertCommand, UpdateCommand,
DeleteCommand
Eventos de Update
ADO.NET: Actualizaciones
DataAdapter.Update:
Demo 2:
Aplicacin maestrodetalle
Consideraciones
Asistente: lo no soportado
Upgrade Wizard
Final de la actualizacin
Consideraciones
Opciones
Desventajas de la actualizacin
Ventajas de la actualizacin
Consideraciones
Migracin horizontal
Migracin vertical
Consideraciones
Aislamiento
Nueva funcionalidad
Uso intensivo de recordsets entre capas
Arquitectura existente
Asistente: lo no soportado
Upgrade Wizard
Aspecto del formulario
Controles ActiveX
ADO (data binding)
Archivos .RES
Cdigo
Cambios de sintaxis
Libreras COM
Avisos de comportamiento
Final de la actualizacin
Upgrade issues
Upgrade to-dos
Upgrade warnings
Upgrade notes
Demo 3:
Upgrade Wizard
Migrar o interoperar
COM y .NET
Llamadas desde .NET a COM
Llamadas desde COM a .NET
Migrar o interoperar
Migrar
Interoperar
COM y .NET
Componentes
DCOM
COM+
Recordset
</>
IUnknown/IDispatch
GUID/CLSID/etc
Assemblies
Remoting
EnterpriseServices
DataSet
Serialization
</>
</>
COM y .NET
COM
.NET
COM
.NET
Objeto
Runtime
Callable Wrapper
Referencias
por contador
RCW:
Creado con Visual Studio .NET
tlbimp.exe
Primary interop assembly
Marshal.ReleaseComObject()
Cliente
Referencias
traceadas
Servidor COM
IUnknown
IDispatch
Common
Language Runtime
COM
Callable
Wrapper
IPropio
Objeto
IPropio
Referencias
por contador
Cliente
Referencias
traceadas
regasm.exe,
Global Assembly Cache (GAC)
Demo 4:
COM Interop
7.- Implantacin
Smart Clients
Consideraciones
Nuevas opciones
No-Touch
Seguridad
Apoyos
Implantacin
Consideraciones
Impacto en el sistema
Actualizacin de la aplicacin
Implantacin
Consideraciones
Problema a resolver:
Ejecutar o actualizar una aplicacin sin
tocar el cliente
Implantacin
Consideraciones
Implantacin
Nuevas opciones
La implantacin es simple
XCOPY en el cliente
Ejecucin desde un recurso de red
Click sobre un enlace en el browser (no touch)
No-touch deployment
Implantacin
No touch
Aplicacin
cliente
Internet
Explorer
.NET
Framework
HTTP
MiApp.exe
Managed
Exe?
HTTP
MiApp.dll
Web Server
Download
Cache
Implantacin
No-Touch
Implantacin
No-Touch con loader
Implantacin
Seguridad
Implantacin
Apoyos
http://www.gotdotnet.com/team/windowsforms/appupdater.aspx
http://msdn.microsoft.com/msdnmag/issues/03/02/BITS/default.aspx
Demo 5:
No Touch Deployment
8.- Seguridad
en el .NET Framework
Conceptos de seguridad
Seguridad basada en roles
Autenticacin
Autorizacin
Seguridad
Qu se quiere evitar?
Qu aporta .NET:
Acceso de usuarios *
De Windows
Genricos
Seguridad
Usuarios: seguridad basada en roles
Import de:
Grupos de Windows
Roles genricos
System.Threading
System.Security.Principal
Seguridad
Autenticacin
Identificar al usuario
Identifica al usuario
Tipo de autenticacin: Windows o Generic
Seguridad Windows
Base de datos
Archivo XML
Seguridad
Autenticacin
Usuario de Windows
Dim winIdentity as WindowsIdentity = WindowsIdentity.GetCurrent()
Dim winPrincipal As New WindowsPrincipal(winIdentity)
Thread.CurrentPrincipal = winPrincipal
Usuario Generic
Dim genIdentity as New GenericIdentity(John)
Dim Roles() as String = {Employee,Manager}
Dim genPrincipal As New GenericPrincipal(genIdentity, Roles)
Thread.CurrentPrincipal = genPrincipal
Seguridad
Autorizacin
Seguridad
Autorizacin
Demo 6:
Seguridad en las
aplicaciones
Preguntas / Dudas
</>