Migración a Visual Basic .NET

Slides:



Advertisements
Presentaciones similares
Descubriendo el Potencial de Desarrollo en Visio 2003 Segundo Leon Horna Consultor OXINET
Advertisements

Conexión a Bases de Datos
INSTRUCTOR: LI Ramiro Robles Villanueva
Programación orientada a objetos en Visual Basic .NET
Conceptos fundamentales de ADO.NET
Programación para Office 2003 con Visual Studio Tools for Office System Octavio Hernández Servicios Profesionales Danysoft.
La plataforma .NET David Carmona
<Nombre> < > <Empresa>
Microsoft SQL Server 2005 Integration Services
Unidad 2 IDE Visual Studio.Net [UTN - Tecnologías de desarrollo de software IDE] [2009]
Introducción a la plataforma .NET.
Introducción a Microsoft .NET
Rossy Garita Componentes fundamentales de CLR y
ASP.NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft.
Introducción a Microsoft .NET
Acceso a datos con Microsoft ADO.NET
Acceso a datos con ADO.NET
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Agenda Conceptos Claves.
INTRODUCCIÓN A JAVA.
Microsoft SQL Server 2008 – SQL Server Integration Services
ADO.NET.
Programación Visual de Sistemas
Introducción a Microsoft .NET
ADO ActiveX Data Object.
Introducción a la plataforma .NET.
Visual Basic.NET Daniel A. Seara NDSoft Consultoría y Desarrollo
Seguridad en ASP.NET Daniel Laco
Daniel A. Seara Director Regional MSDN NDSoft
Acceso a datos y paso de datos entre capas
ADO.NET Daniel A. Seara Director Regional MSDN Buenos Aires – ARGENTINA NDSoft.
Estrella 1 Introducción a Microsoft .NET
César de la Torre – Programas Técnicos para Partners División de Desarrollo y Plataforma – Microsoft Spain.
.NET para Programadores Java
Carlos Walzer Vemn Sistemas Como crear un sitio con ASP.NET.
Módulo 1: Primeros Pasos
Introducción ADO .Net.
La plataforma .NET David Carmona
ADO.Net TGP (Tecnología de la Programación)
Sistema La Plata Módulo I INTRODUCCION A APLICACIONES WEB.
Interacción Persona Ordenador
Módulo 14 Programación para DBA. TEMARIO Programación y DBAProgramación y DBA.NET Framework.NET Framework Arquitectura ADO.NETArquitectura ADO.NET.NET.
Clase 9 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
Acceso a datos con ADO.NET
1er. Comité de Usuarios. Historia ¿Qué hay de nuevo? No más cygwin. Exportación granular: trabajo distribuído. Compilación de metadatos. Manejo.
Programación e Ingeniería de Software III Informática UNIVERSIDAD AUTÓNOMA DE SINALOA Material Proporcionado por: MC. Gerardo Gálvez Gámez.
TALLER DE PROGRAMACIÓN III
Web Services Daniel Seara. Fundamentos Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización.
Programación e Ingeniería de Software III
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Introducción .NET Framework
Introducción a la plataforma Microsoft.NET. Descripción ¿Qué es la plataforma Microsoft.NET? ¿Qué es el.NET Framework? ¿Cuáles son los componentes del.NET.
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
REALIZADO POR: MERINO MERINO JORGE MORI CORREA JHONATAM VIDARTE DELGADO JAVIER.
Los ensamblados y el código IL Contenido Módulo ¿Qué es un Ensamblado? El código MSIL.
Introducción a la plataforma .NET Erich Bühler
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
Facilitador: Christian Alexander Martinez
Clase I Curso Microsoft .NET I.S.F.T. N° 182.
Introducción a .NET Nombre : Ethel García-Simón Matachana
Materia: Desarrollo e implementación web Carrera: Ing. Informática Docente: M.I. Rosario de Alba Domínguez Rodríguez ALUMNA: Marissa Michelle Juárez Kim.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
• SQL Server Integration Services SSIS
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
ACCESO A DATOS EN ASP.NET Controles de origen de datos Controles enlazados a datos.
VISUAL STUDIO. Paradigmas de Programación Funcionalidad Win16 Win32 COM MFC Componentes Servicios APIs Windows 3.0.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Transcripción de la presentación:

Migración a Visual Basic .NET Rodrigo Bruno Application Development Consultant Soporte Premier a Desarrolladores

Objetivos … Explicar porqué un desarrollador de VB6 debería pasar a VB.NET Ayudar/facilitar la transición de VB6 a VB.NET

Agenda Referencias: Guías de arquitectura, diseño y código Arquitectura del .NET Framework y la CLR Estrategias de migración VB6 vs VB.NET: Diferencias en el lenguaje Acceso a datos: ADO.NET Asistente de Actualización de Aplicaciones Interoperabilidad con COM Implantación de aplicaciones (no touch) Seguridad en el .NET Framework

1.- Guías de arquitectura / diseño y código Guías de Arquitectura (PAG) Estándares de desarrollo Application Blocks Guías de migración

Guías de arquitectura Guías de diseño para aplicaciones .NET Muestran como encaja todo junto Blueprint para decisiones a nivel de diseño Alto riesgo en la etapa de diseño Arquitectos son contrarios al riesgo No es una solución para todos los diseños Hay escenarios específicos Preservar las inversiones “¿Tendré que rehacer todo en el futuro?”

Data Access Components Guías de Arquitectura Operational Management Security Communication Users and Devices Business Presentation Data UI Components UI Process Components Services Svc Interfaces Svc Agents Business Workflows Business Components Business Entities Data Access Components Data Sources

Guías de Arquitectura http://msdn.microsoft.com/practices/ Application Architecture for .NET: Designing Applications and Services .NET Data Access Architecture Guide Building Secure ASP.NET Applications Debugging .NET Applications Exception Management in .NET .NET/COM Migration and Interoperability Monitoring in .NET Deploying .NET Applications Team Development with SourceSafe UNIX Code Migration Guide http://msdn.microsoft.com/practices/

Estándares de desarrollo Ayudan a escribir código robusto y seguro que funciona de manera consistente con el Framework .NET Facilitan la propiedad colectiva del código .NET Framework Design Guidelines http://msdn.microsoft.com/library/en-us/cpgenref/html/cpconnetframeworkdesignguidelines.asp FxCop: analiza el código managed para chequear las prácticas recomendadas http://www.gotdotnet.com/team/libraries/

Application Blocks Data Access Application Block for .NET Componente .NET que contiene código optimizado de acceso a datos Exception Management Application Block for .NET Provee un framework simple y extensible para manejar excepciones

Referencias Estrategia de migración: Guía de migración a .NET: Microsoft .NET/COM Migration and Interoperability: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/cominterop.asp Guía de migración a .NET: Upgrading to .NET: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/upgradingtodotnet.asp  Guía específica para VB: Upgrade to Visual Basic .NET from Visual Basic 6.0: http://msdn.microsoft.com/vbasic/techinfo/articles/upgrade/default.asp Visual Studio 2003: http://msdn.microsoft.com/vbasic/productinfo/vbasic03/features/default.asp

2.- Arquitectura del .NET Framework y la CLR Objetivos de diseño Arquitectura Beneficios Compilación

Introducción a .NET Objetivos de diseño de .NET Framework Entorno consistente de orientación a objetos: mismo modelo para ejecución local, código remoto o entorno distribuido en Internet Minimizar conflictos: implantación y versiones Proporcionar ejecución segura de código Eliminar problemas de rendimiento de código interpretado o con scripting Mayor productividad del desarrollador tanto para aplicaciones Windows como Web Comunicación basada en estándares de la industria

Introducción a .NET Framework, Lenguajes y Herramientas Sistema Operativo Common Language Runtime Base Class Library ADO.NET y XML ASP.NET Web Forms Web Services Mobile Internet Toolkit Windows Forms (.NET CF) Common Language Specification VB C++ C# JScript® J# Visual Studio® .NET

Introducción a .NET Framework, Languajes y herramientas System System.Data System.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Common OleDb SQLTypes SqlClient XPath XSLT Runtime InteropServices Remoting Serialization SessionState Caching Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Printing System.Windows.Forms Design ComponentModel

Introducción a .NET Beneficios del .NET Framework Simplifica el desarrollo y la implantación Proporciona un entorno de ejecución seguro y robusto Unifica modelos de programación Soporta múltiples lenguajes de programación Independiente de la plataforma

Introducción a .NET Beneficios del .NET Framework Sistema común de tipos Instancias y definición de tipos comunes Orientación a objetos: Clases e interfaces Constructores, propiedades, métodos, eventos Herencia cruzada entre lenguajes Interoperabilidad Con COM Con DLLs nativas (del estilo Win32)

Introducción a .NET Beneficios del .NET Framework Elimina la “fontanería” de COM No más … Registro GUIDs Archivos .IDL HRESULTs IUnknown AddRef/Release CoCreateInstance =>Aps autodescriptivas =>namespaces jerárquicos =>objetos autodescriptivos =>excepciones estructuradas =>objeto raiz común =>garbage collector =>operador ”new”

Introducción a .NET Compilación y ejecución Assembly Código (IL) Código fuente Compilador del lenguaje Metadatos En instalación o la primera vez que se invoca a cada método Ejecución Compilador JIT Código Nativo

3.- VB6 vs VB.NET: Diferencias en el lenguaje Visual Basic 6 vs. Visual Basic .NET Compatibilidad con Visual Basic 6 Cambios a nivel de código

Se echaba en falta en VB6 ... No totalmente orientado a objetos: herencia No se pueden crear aplicaciones free-threaded Evitar problemas de registro y versiones Una programación Web menos compleja (respecto a la programación Windows) Mecanismos para evitar fugas de memoria Un tratamiento de errores más potente Runtime integrada

Novedades del lenguaje Herencia, sobrecarga, polimorfismo, constructores, … Free-threading (procesamiento asíncrono) No se usa el registry Programación Web: ASP.NET Recolector de basura

Novedades del lenguaje (2) Control de errores estructurado: Try … Catch La runtime de VB.NET forma parte del Framework. Incluida en el redistribuible Más: Punteros a funciones (delegates), nuevos tipos de datos, comprobación estricta de tipos, …

¿ Compatibilidad ? No es fácil VB.NET no es VB6 + nuevas características Nuevas características requieren rediseño Nuevo formato de ficheros Interoperabilidad entre lenguajes Integración con .NET framework

¿ Compatibilidad ? Alternativas Actualizar las aplicaciones VB6 Coexistencia (interop) El nuevo código .NET podrá ser: Creado desde cero Migrado  Upgrade Wizard

Librería de compatibilidad Microsoft.VisualBasic.Compatibility Cuando no haya nada equivalente Cuando lo equivalente sea muy diferente VB6.<nombre de función> No recomendable su utilización 'VB6 Form1.Show Form1.Show vbModal Form1.Show X 'Visual Basic.NET Form1.Show Form1.ShowDialog VB6.ShowForm(Form1, X)

Cambios a nivel de código Tipos Variant: sustituidos por Object No hay propiedades por defecto Variables a nivel de bloque Las llamadas a procedimiento necesitan paréntesis Los procedimientos permiten Return Los parámetros son ByVal por defecto Posible declarar & inicializar variables Más …

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() Public Sub New (ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) m_a = a : m_b = b : m_c = c 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 Namespace

Demo 1 Novedades del lenguaje

4.- Acceso a datos: ADO.NET ADO vs ADO.NET Características de ADO.NET Arquitectura Enlace a datos (binding)

ADO vs ADO.NET ADO trabaja bien, pero: Necesita COM y Windows Los recordsets no viajan bien a través de Internet ADO.NET resuelve estos problemas: Utiliza XML (a bajo nivel) para realizar el transporte de datos XML no tiene requisitos específicos de runtime/transporte No se necesita un código especial para hacer el marshaling a través de Internet ADO .NET, una nueva mentalidad: Entorno desconectado Todo el transporte de datos utiliza XML

ADO.NET DBLib, ODBC, DAO, RDO, ADO, …. ADO.NET System.Data: la clase raiz A partir de ahí, principales namespaces: System.Data.OleDB System.Data.SQLClient System.Data.ODBC, System.Data.OracleClient System.XML: para trabajar directamente con XML

ADO.NET System.Data.OleDb: trabaja con todas las fuentes OLE DB Soporta unmanaged providers de ADO System.Data.SQLClient: sólo SQL Server (managed) VStudio 2003: System.Data.ODBC, System.Data.OracleClient

Arquitectura de ADO.NET Presentación Windows Forms MiAp.Exe DataSet Negocio Datos Web forms Internet intranet Data object (class) IE Data adapter DataSet DataSet Xml Data adapter Business to business (BizTalk, por ejemplo)

Diferencia fundamental En ADO: Buffer de datos Acceso a datos Recordset En ADO.NET: Buffer de datos Acceso a datos DataAdapter DataSet

ADO.NET: Connection OleDbConnection/SQLConnection Representa la sesión contra la BD Utilizados por objetos Data Adapter y Command para recuperar/actualizar Inicia las transacciones Connection.BeginTransaction() devuelve un objeto Transaction xxxTransaction Un comando se enlista en una transacción IsolationLevel Commit() / Rollback() Configuración del pool de conexiones en el connection string

ADO.NET: Command OleDbCommand/SQLCommand Representa Transact-SQL o procedimientos almacenados Devuelve un resultset (ExecuteReader), un valor (ExecuteScalar), o ejecuta sentencias de modificación (ExecuteNonQuery) Generación automática con el objeto CommandBuilder

ADO.NET: DataReader OleDbDataReader/SQLDataReader Stream forward-only read-only Utilizado por el DataAdapter Muy rápido 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 Base de datos SelectCommand InsertCommand UpdateCommand DeleteCommand DataSet TableMappings

ADO.NET: DataSet Objeto estrella en ADO.NET Representa una caché de datos en memoria Contiene DataTables Lee y escribe datos y esquemas en XML Serializable Puede ser tipado o no tipado: Ambos heredan de la clase DataSet El tipado se apoya en un esquema XML (.XSD) para generar la clase El tipado tiene ventajas: Expone estructura como propiedades y métodos: Intellisense Recoge la Primary key

ADO.NET: Otros objetos DataTable DataView DataRelation Representa una tabla en memoria Lo rellena un DataAdapter o a mano Componente principal de los objetos DataSet y DataView DataView Vista personalizada de un objeto DataTable Filtros, ordenación, búsquedas … DataRelation Define relaciones entre tablas Utiliza columnas de un DataTable

ADO.NET - DataSet DataTable DataSet DataColumn DataTable DataRow Relations Constraints XML Schema

ADO.NET: Lecturas Método Fill del objeto DataAdapter Se utiliza el SelectCommand del DataAdapter Inserta/actualiza datos del DataSet Si la tabla existe, actualiza datos Si no existe, crea y rellena la tabla Una tabla por cada resultset Mantiene la conexión en su estado original

ADO.NET: Actualizaciones La funcionalidad en ADO es implícita. Recordset = caja negra. Ejemplo: UpdateBatch En ADO.NET: Se crea un modelo más explícito y transparente. InsertCommand, UpdateCommand, DeleteCommand Eventos de Update CommandBuilder: generación automática de los comandos de Insert, Update y Delete a partir del SelectCommand

ADO.NET: Actualizaciones DataAdapter.Update: Analiza los cambios del DataSet Ejecuta los comandos Insert, Update y Delete necesarios Refresca el DataSet Orden de ejecución por defecto: Insert, Update y Delete.

ADO.NET: Enlace a datos ADO .NET soporta enlazar (binding) DataSets a Windows Forms / Web Forms y sus controles VStudio .NET incluye bastantes wizards para hacer el enlace entre datos y controles

Demo 2: Aplicación maestro-detalle

5.- Asistente de actualización de aplicaciones: código Consideraciones Asistente: lo no soportado Upgrade Wizard Final de la actualización

Consideraciones Opciones El nuevo código .NET podrá ser: Continuar con VB6 Interoperar entre VB6 y VB.NET Actualizar a VB .NET El nuevo código .NET podrá ser: Creado desde cero Migrado  Upgrade Wizard Ventajas de la actualización Aprovechar las características del .NET Framework Aprovechar las características de Visual Basic .NET Desventajas de la actualización Algunas características no se actualizan Más trabajo de desarrollo y pruebas La actualización de código es sólo una parte

Consideraciones Migración horizontal Migración vertical Una sola capa, al completo Migración vertical Aislar y reemplazar una parte en todas las capas

Consideraciones Elegir una estrategia que minimice el riesgo Elegir actividades que permitan continuar utilizando la base de código COM mientras nos movemos a .NET Sacar partido rápidamente a las nuevas funcionalidades del entorno .NET Factores a tener en cuenta: Aislamiento Nueva funcionalidad Uso intensivo de recordsets entre capas Arquitectura existente

Asistente: lo no soportado Data binding de DAO y RDO Controles de Visual Basic 5.0 Aplicaciones DHTML ActiveX® documents Páginas de propiedades Add-ins Controles de usuario (Web classes)

Aspecto del formulario Avisos de comportamiento Upgrade Wizard Aspecto del formulario Controles ActiveX ADO (data binding) Archivos .RES Código Cambios de sintaxis Librerías COM Avisos de comportamiento

Final de la actualización Proyecto Visual Basic .NET El Upgrade Wizard enumera: Upgrade issues Upgrade to-dos Upgrade warnings Upgrade notes Completar los cambios Compilar la aplicación

Demo 3: Upgrade Wizard

6.- Interoperabilidad con COM Migrar o interoperar COM y .NET Llamadas desde .NET a COM Llamadas desde COM a .NET

Migrar o interoperar Migrar Interoperar Todo el código en un entorno consistente Actualizar para tomar ventaja de .NET Interoperar Reutilizar código existente Preservar inversiones Acceso a funcionalidad no migrable

COM y .NET Componentes DCOM COM+ Recordset </> IUnknown/IDispatch GUID/CLSID/etc Assemblies Remoting EnterpriseServices DataSet Serialization </>

COM y .NET COM .NET COM .NET .NET utilizando COM COM utilizando .NET Los tipos .NET pueden acceder a tipos COM Vuelta al registry y a las limitaciones de implantación actuales COM utilizando .NET Los tipos COM pueden acceder a tipos .NET COM .NET COM .NET

Llamadas desde .NET a COM Common Language Runtime Servidor COM Objeto Runtime Callable Wrapper Referencias por contador Cliente Referencias traceadas RCW: Creado con Visual Studio .NET ò tlbimp.exe Primary interop assembly Marshal.ReleaseComObject()

Llamadas desde COM a .NET Common Language Runtime Referencias traceadas Servidor COM IUnknown IDispatch COM Callable Wrapper IPropio Objeto IPropio Referencias por contador Cliente

Llamadas desde COM a .NET Creación del assembly .NET: Definir interface en el componente Tipos públicos Opcional: crear strong name e incluir en la GAC COM Callable Wrapper Crear el assembly con Visual Studio .NET Exportar la librería de tipos con tlbexp.exe Hacer que el assembly esté disponible para COM regasm.exe, ò Global Assembly Cache (GAC)

Demo 4: COM Interop

7.- Implantación Smart Clients Consideraciones Nuevas opciones No-Touch Seguridad Apoyos

Implantación Consideraciones Impacto en el sistema ¿ La instalación de la aplicación 1 romperá la aplicación 2 ? Implantación la primera vez Cada cliente debe tener la aplicación explícitamente instalada Actualización de la aplicación Si hay cambios en el interfaz de usuario, cada cliente debe reinstalar la aplicación para actualizarse

Implantación Consideraciones Problema a resolver: Ejecutar o actualizar una aplicación sin tocar el cliente Si ya utilizamos un software de gestión de instalaciones (IntelliMirror, SMS, etc), continuar utilizándolo.

Implantación Consideraciones Las aplicaciones son aisladas Implantación privada por defecto Las aplicaciones son autodescriptivas Pueden coexistir múltiples versiones La compartición es controlada y explícita: Strong name, GAC Por defecto, las aplicaciones utilizan el assembly con el que fueron construidas, no la última versión Side-by-side

Implantación Nuevas opciones La implantación es simple XCOPY en el cliente Ejecución desde un recurso de red Click sobre un enlace en el browser (no touch) No-touch deployment Por defecto, aislamiento de aplicaciones No se necesita registro Componentes compartidos (strong names, versión)

Implantación No touch Internet Aplicación Explorer cliente MiApp.exe HTTP MiApp.exe Managed Exe? .NET Framework HTTP MiApp.dll Web Server Download Cache

Implantación No-Touch Ejecutable lanzado como URL (IEEXec) Sin instalación, actualización automática Click en un link en el browser El EXE y los assemblies referenciados se descargan Otros assemblies: utilizar Assembly.LoadFrom Almacenamiento en download cache C:\Documents and Settings\usuario\Local Settings\Application Data\assembly Descarga sólo cuando hay actualizaciones Por usuario Descarga de assemblies dependientes: según se van necesitando

Implantación No-Touch con loader Otra opción: EXE local pequeño: loader Carga de assemblies desde un Web server La aplicación se descarga en tiempo de ejecución Para actualizar la aplicación, actualizar los assemblies del servidor Para cargar los assemblies: Assembly.LoadFrom(URL) URL: URL a un assembly Descarga y cachea el assembly Chequeo automático de nuevas versiones Permisos: depende de dónde viene el assembly

Implantación Seguridad Las aplicaciones son semi-confiables Se ejecutan, y pueden realizar un número limitado de tareas Seguridad en función del origen de la aplicación (de dónde viene) Similar a páginas web en el browser Configuración de seguridad: herramienta .NET Framework Configuration Strong names Proporcionan un grado de seguridad mayor Distinto de signcode

Implantación Apoyos Auto Updater (componente): .NET Client Applications: .NET Application Updater Component http://www.gotdotnet.com/team/windowsforms/appupdater.aspx Artículo en MSDN Magazine: Write Auto-Updating Apps with .NET and the Background Intelligent Transfer Service API (utiliza Windows Update) 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 Autenticación Autorización

Seguridad ¿Qué se quiere evitar? Qué aporta .NET: Acceso no controlado a la aplicación, por parte de usuarios no conocidos Acceso ilimitado a toda la aplicación, por parte de usuarios autenticados Qué aporta .NET: Nuevas herramientas para proteger la información del usuario (ej. System.Security.Cryptography) Acceso al código Code-access security (evidencias) Acceso de usuarios * De Windows Genéricos

Seguridad Usuarios: seguridad basada en roles Roles con una serie de permisos Fácil administración Soporte para Grupos de Windows Roles genéricos Import de: System.Threading System.Security.Principal Enterprise Services también dispone de roles

Seguridad Autenticación Identificar al usuario Verificar sus credenciales Seguridad Windows Base de datos Archivo XML Creación del objeto Identity Identifica al usuario Tipo de autenticación: Windows o Generic Creación del objeto Principal Incluye el Identity y almacena la pertenencia al role Se aplica a usuarios Genéricos y de Windows

Seguridad Autenticación 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 Autorización Proceso de autorización de acceso El usuario ya ha sido autenticado El usuario solicita realizar una tarea Se comprueba la pertenencia al role Se restringe el acceso a ciertas partes de la aplicación

Seguridad Autorización Usuarios Windows / Generic If Thread.CurrentPrincipal.IsInRole(“Manager”) Or _ Thread.CurrentPrincipal.IsInRole(“BuiltIn\Admministrators”) Then BindEmployeesGrid() BindEmployeeDetailsGrid() bnViewSalaryReport.Enabled = True Else BindEmployeeGrid() bnViewSalaryReport.Enabled = False End If

Demo 6: Seguridad en las aplicaciones

Preguntas / Dudas </>