introducción a la plataforma -...
TRANSCRIPT
Integración de Sistemas
Curso 2009 - 2010 1
Introducción a la
plataforma .NET
Integración de Sistemas
Parte II. Diseño e implementación de
aplicaciones Web con .NET
Contenido
� Introducción
� .NET Framework
� Acceso a datos con ADO .NET
� Windows Forms
� Aplicaciones Web: ASP.NET
� Herramientas de desarrollo
Integración de Sistemas
Curso 2009 - 2010 2
¿Qué no es .NET?
� .NET no es un Sistema Operativo
� .NET no es un Lenguaje de Programación
� .NET no es un Entorno de Desarrollo
� .NET no es un Servidor de Aplicaciones
¿Qué es .NET?
� Plataforma de Desarrollo compuesta de
� Entorno de Ejecución (Common Language Runtime)
� Common Type System
� Common Language Specification
� Bibliotecas de Funcionalidad (Class Library)
� Lenguajes de Programación
� Compiladores
� Herramientas de Desarrollo (IDE & Tools)
� Documentación y Guías de Arquitectura
Integración de Sistemas
Curso 2009 - 2010 3
Línea del tiempo de .NET
Visual Studio 6.0Visual BasicVBAVisual FoxProVBScriptC++J++JScriptASP
Visual Studio .NET 2003.NET Framework 1.1.NET Compact FrameworkJ#
Visual Studio 2008.NET Framework 3.5.NET Compact Framework 3.5
2000 2001 2002 2003 2004 2005 2006 2008
Visual Studio 2005 (“Whidbey”).NET Framework 2.0 (“Whidbey”).NET Compact Framework 2.0 (“Whidbey”)
Visual Studio .NET 2002.NET Framework 1.0Visual Basic .NETC#
Características de .NET
� Plataforma independiente del lenguaje
� Múltiples lenguajes (C#, VB .NET, COBOL, Perl, Phython, Eiffel, etc.)
� Código fuente se compila a MSIL (Microsoft Intermediate Language)
� MSIL se compila antes de ser ejecutado (no es interpretado)
� Sentencias MSIL manipulan tipos de datos comunes, compartidos por todos los
lenguajes de .NET
� Juntos forman el Common Type System (CTS)
� Todos los lenguajes proporcionados por Microsoft tienen la misma potencia y capacidad de acceso a los recursos y servicios que expone el .NET Framework
� No condiciona la elección del lenguaje
Integración de Sistemas
Curso 2009 - 2010 4
Características de .NET
� Plataforma de ejecución intermedia
� El Common Language Runtime (CLR) es el responsable de cargar
y ejecutar una aplicación .NET
� Utiliza compilación Just-In-Time (JIT) para traducir MSIL a código máquina
� Código .NET siempre es compilado, nunca interpretado
� No usa máquina virtual para ejecutar aplicaciones
� Código es compilado JIT la primera vez que se llama
� Proceso de compilación genera fichero ejecutable en formato portable executable (PE). Implicaciones:
� CLR nunca sabe, ni le importa, que lenguaje fue usado para crear la aplicación o
componente
� Para que el código funcione en otra plataforma basta reemplazar el compilador JIT
Características de .NET
� Plataforma 100% Orientada a Objetos ⇒ no existen tipos primitivos
� Permite el desarrollo de aplicaciones empresariales
� Modelo de programación único para todo tipo de aplicaciones (consola, Web, aplicaciones móviles, etc.) y dispositivos de hardware (PC, PDA, SmartPhone, etc.)
� Código gestionado
� Además de compilar, CLR gestiona las aplicaciones, haciéndose responsable de:
� Cargar, verificar y ejecutar código, la recolección de basura (Garbage Collector), proteger las
aplicaciones unas de otras, hacer cumplir las restricciones de seguridad, proporcionar
servicios de depuración e incluir soporte para versiones y desarrollo
� Además del MSIL, compiladores generan Metadata
� Metadata describe tipos
� Componentes .NET son autodescriptivos
Integración de Sistemas
Curso 2009 - 2010 5
Características de .NETModelo de ejecución
Todos los lenguajes son compilados a ILExtraído de: Grimes, F. (2002). Microsoft. Net for Programmers: Manning.
MSIL vs. Java bytecode
� Java bytecode específicamente diseñado para soportar lenguaje
Java, mientras MSIL diseñado para soportar múltiples lenguajes
� Java Virtual Machine diseñada para permitir Java bytecode
interpretado o compilado, mientras MSIL fue diseñado
explícitamente para compilación JIT (Just-In-Time Compilation)
Integración de Sistemas
Curso 2009 - 2010 6
Common Type System (CTS)
� El Common Type System (CTS) o Sistema de Tipo Común es el conjunto de reglas que han de seguir las definiciones de tipos de datos para que el CLR las acepte
� Define un conjunto común de tipos de datos orientados a objetos
� Todo lenguaje de programación .NET debe implementar los tipos definidos por el CTS
� Todo tipo hereda directa o indirectamente del tipo System.Object
� Define tipos valor y tipos referencia
Tipos valor vs. Tipos referencia
� CLR administra dos segmentos de memoria:
Stack (Pila) y Heap (Montón)
� Tipos valor (i.e: enteros, caracteres, boleanos,
etc.) se almacenan en el Stack
� Tipos referencia (i.e: strings, clases definidas
por el usuario, etc.) en el Heap
� El Stack es liberado automáticamente una vez
finaliza el procedimiento o el bloque de código,
mientras que el Heap es administrado por el
GC
� Tipo referencia puede ser nulo, tipo valor no
� Posible crear nuevos objetos valor (e.g.
C# struct)
� Para preservar filosofía “Todo es un objeto”,
.NET provee un tipo referencia correspondiente
a cada tipo valor
Integración de Sistemas
Curso 2009 - 2010 7
Assemblies
� Un Assembly o Ensamblado es la unidad mínima de ejecución, distribución, instalación y versionado de aplicaciones .NET� Normalmente, extensión .dll o .exe
� Todo código ejecutable debe formar parte de un Assembly
� Contienen:� Código MSIL
� Manifest (Manifiesto)
� METADATA: información sobre sí mismos y los recursos de los que dependen (son
autodescriptivos)
� Aplicación .NET se compone de uno o más ensamblados
� Pueden ser privados (opción por defecto) o compartidos (se instalan en la Global Assembly Cache)
Assemblies
Combinando módulos gestionados en AssembliesExtraído de: Richter, J. (2003). Applied Microsoft. NET framework programming: Microsoft Press.
Integración de Sistemas
Curso 2009 - 2010 8
Assemblies
� Herramienta MSIL Dissasembler (ildasm.exe), incluida en el .NET
Framework SDK
Assemblies. Global Assembly Cache (GAC)
� Es un repositorio centralizado de ensamblados en el cual se instalan todos los ensamblados que serán utilizados por múltiples aplicaciones en la misma máquina
� Para registrar un ensamblado en la GAC es necesario utilizar la herramienta gacutil.exe, incluida en el .NET Framework SDK
� Obligatorio un nombre distinto para cada librería
� Se consigue con tecnología de cifrado de clave pública
� Es posible distinguir entre versiones de un mismo ensamblado y éstas pueden convivir sin ningún conflicto
� Cada aplicación utiliza la versión de la librería que necesite
� Soluciona problema DLL Hell
� Actualizaciones y desinstalaciones más simples
Integración de Sistemas
Curso 2009 - 2010 9
Assemblies. Global Assembly Cache (GAC)
� Panel de Control > Herramientas Administrativas >
.NET Framework Configuration Administrative tool
Assemblies. Global Assembly Cache (GAC)
Integración de Sistemas
Curso 2009 - 2010 10
Contenido
� Introducción
� .NET Framework
� Acceso a datos con ADO .NET
� Windows Forms
� Aplicaciones Web: ASP.NET
� Herramientas de desarrollo
.NET Framework
� Paquete de software fundamental de la plataforma .NET. Incluye:
� Entorno de ejecución (Runtime)
� Bibliotecas de funcionalidad reutilizable (Class Library)
� Tres variantes principales:
� .NET Framework Redistributable Package (R + CL)
� .NET Framework SDK (R + CL + compiladores, depuradores, etc.)
� .NET Compact Framework
� Distribución libre y gratuita
� Instalado por defecto en Windows 2003 Server, Windows XP SP2 y
Vista
Integración de Sistemas
Curso 2009 - 2010 11
Arquitectura del .NET Framework
Windows COM+ Services
Common Language Runtime
Base Class Library
ADO.NET
Common Language Specification
VB C++ C# J# …
.NE
T F
ram
ew
ork
R
ed
istr
ibu
tab
le
.NE
T F
ram
ew
ork
SD
K
.NE
T F
ram
ew
ork
C
lass L
ibra
ry
WinForms ASP.NET
WPF WCF
LINQ
WF Card Space
ADO.NET Entity Framework
Arquitectura del .NET FrameworkCommon Language Runtime
� El CLR es un entorno de ejecución que puede ser usado por distintos lenguajes de programación
� El CLR es el responsable de cargar y ejecutar una aplicación .NET
� Utiliza compilación Just-In-Time (JIT) para traducir MSIL a código máquina
� Además de compilar, CLR gestiona las aplicaciones, haciéndose responsable de:
� Cargar, verificar y ejecutar código, la recolección de basura (Garbage Collector), proteger las aplicaciones unas de otras, hacer cumplir las restricciones de seguridad, proporcionar servicios de depuración e incluir soporte para versiones y desarrollo
� La gestión del código por parte del CLR proporciona una capa extra que
desacopla la aplicación del SO
Integración de Sistemas
Curso 2009 - 2010 12
Arquitectura del .NET Framework.NET Framework Class Library
� Conjunto de Tipos básicos (clases, interfaces, etc.) que vienen
incluidos en el .NET Framework
� Los tipos están organizados en jerarquías lógicas de nombres,
denominados namespaces
� Los tipos son independientes del lenguaje de programación de alto
nivel que se desee utilizar (C#, VB .NET, etc.)
� Es extensible y totalmente orientada a objetos
� Estas clases están disponibles para todos los lenguajes .NET
Arquitectura del .NET Framework.NET Framework Class Library
� Se divide en dos partes
� Base Class Library
� Incluye un pequeño subconjunto de la class library y es el núcleo de clases que
constituyen el API básica del CLR
� Clases en mscorlib.dll y algunas de las clases en System.dll y System.core.dll
� Las clases de la BCL están disponibles las distinas implementaciones del .NET
Framework
� Framework Class Library
� Es un superconjunto de las clases de la BCL formado por la librería completa de clases
incluidas con el .NET Framework
� Incluye un conjunto extensode librerías como WinForms, ADO.NET, ASP.NET, LINQ,
WPF y WCF, entre otras.
Integración de Sistemas
Curso 2009 - 2010 13
Arquitectura del .NET Framework.NET Framework Class Library
System
System.Data System.Xml
System.Web
GlobalizationGlobalization
DiagnosticsDiagnostics
ConfigurationConfiguration
CollectionsCollections
ResourcesResources
ReflectionReflection
NetNet
IOIO
ThreadingThreading
TextText
ServiceProcessServiceProcess
SecuritySecurity
CommonCommon
OLE DBOLE DB
SqlClientSqlClient
ODBCODBC
XPathXPath
XSLTXSLT
RuntimeRuntime
InteropServicesInteropServices
RemotingRemoting
SerializationSerialization
SerializationSerialization
ConfigurationConfiguration SessionStateSessionState
CachingCaching SecuritySecurity
ServicesServices
DescriptionDescription
DiscoveryDiscovery
ProtocolsProtocols
UIUI
HtmlControlsHtmlControls
WebControlsWebControls
System.Drawing
ImagingImaging
Drawing2DDrawing2D
TextText
PrintingPrinting
System.Windows.FormsDesignDesign ComponentModelComponentModel
Arquitectura del .NET FrameworkCommon Language Specification
� El CLS define el mínimo conjunto de características que todos los lenguajes deben soportar, si pretenden ajustarse al CLR y soportar operatividad multilenguaje� Todos los componentes desarrollados y compilados de acuerdo con la especificación
CLS pueden interactuar entre sí, independientemente del lenguaje de programación de alto nivel en el que fueron escritos
� El CLR/CTS soporta muchas más características que el subconjunto definido por el CLS� Si la operatividad multilenguaje no es un objetivo, se pueden desarrollar tipos más
ricos, limitados solo por el conjunto de características del lenguaje
� El CLS define reglas a las que se deben adherir los tipos y los métodos visibles externamente, para que éstos sean accesibles desde cualquier lenguaje de programación CLS-compatible� Las reglas del CLS no afectan a código que es accesible sólo desde el asembly en
que se define
� Librerías que se adhieren al CLS se dicen CLS-compliant
Integración de Sistemas
Curso 2009 - 2010 14
Arquitectura del .NET FrameworkCommon Language Specification
� El CLR/CTS ofrece un conjunto de características
� Algunos lenguajes exponen un gran subconjunto del CLR/CTS
� El CLS define el mínimo conjunto de características que todos los lenguajes deben soportar
Los lenguajes ofrecen un subconjunto del CLR/CTS y un superconjunto del CLS (pero no necesariamente el mismo superconjunto)
Extraído de: Richter, J. (2003). Applied Microsoft. NET framework programming: Microsoft Press.
Arquitectura del .NET FrameworkCommon Language Specification. Lenguajes compatibles
� Ada
� APL
� Basic (Visual Basic)
� C#
� C
� C++
� Delphi
� Java
� COBOL
� Component Pascal
(Queensland U Tech)
� ECMAScript (JScript)
� Eiffel (Monash U.)
� Fortran
� Haskell (Utrecht U.)
� JavaScript
� Lisp
� lcc (MS Research Redmond)
� Mondrian (Utrecht)
� ML (MS Research Cambridge)
� Mercury (Melbourne U.)
� Oberon (Zurich University)
� Oz (Univ of Saarlandes)
� Perl
� Prolog
� Python
� Scheme (Northwestern U.)
� SmallTalk
Integración de Sistemas
Curso 2009 - 2010 15
CLR Hosting & Application Domains
� Una aplicación .NET necesita una pieza de código llamada Runtime
Host para ejecutarse
� El Runtime Host carga el Runtime (CLR) en un proceso, crea
Application Domains dentro del proceso y carga y ejecuta el código
del usuario dentro de esos Application Domains
Código Gestionado
CLR
CLR Host
AppDomain 1
Código Gestionado
AppDomain N
CLR Hosting & Application Domains
� Los Application Domains son procesos virtuales dentro del CLR
� Se ejecutan dentro de un proceso del Sistema Operativo
� Un proceso puede contener varios Application Domains
� Más eficiente que múltiples procesos del SO
� Todos los ensamblados que conforman una aplicación siempre son cargados en un Application Domain
� Los Application Domains proporcionan un aislamiento entre aplicaciones, que garantiza:
� Una aplicación pueda ser detenida independientemente del resto
� Una aplicación no pueda acceder directamente a código en ejecución de otra aplicación
� Un fallo en una aplicación no afecte al resto de aplicaciones
Integración de Sistemas
Curso 2009 - 2010 16
Funcionamiento: Resumen
Desarrollo
(VisualStudio .NET)Ejecución
(Plataforma .NET)
Análisis y diseño
Código fuente
Compilador
Código MSIL(Ensamblado)
Verificación
Compilación(JIT)
Código Nativo
Ejecución(CLR)
Contenido
� Introducción
� .NET Framework
� Acceso a datos con ADO .NET
� Windows Forms
� Aplicaciones Web: ASP.NET
� Herramientas de desarrollo
Integración de Sistemas
Curso 2009 - 2010 17
Acceso a datos con ADO.NET
System.Data
OleDb
SqlClient
OracleClient
Common
Odbc SqlTypes
System.Xml
Serialization
XPath
XSLT
Schema
ADO.NET - Arquitectura
Integración de Sistemas
Curso 2009 - 2010 18
ADO.NET - DataSet
DataSet
DataTableDataTable
DataTable
DataRowDataRow
DataColumnDataColumn
RelationsRelations
DataRelationDataRelationXML SchemasXML Schemas
Acceso a Bases de Datos Relacionales: Entorno Conectado
� Los usuarios están constantemente conectados a la fuente de datos
� Ventajas:
� Mayor seguridad
� Mejor control de concurrencia
� Los datos se mantienen actualizados
� Desventajas:
� Se requiere una conexión constante (consume recursos del servidor)
� Escalabilidad limitada por cantidad de conexiones
Integración de Sistemas
Curso 2009 - 2010 19
Acceso a Bases de Datos Relacionales: Entorno Conectado
� En un escenario conectado, los
recursos se mantienen en el servidor
hasta que la conexión se cierra
� Pasos
1) Abrir Conexión
2) Ejecutar Comando
3) Procesar Filas en DataReader
4) Cerrar DataReader
5) Cerrar Conexión
Acceso a Bases de Datos Relacionales: Entorno Desconectado
� Una parte de los datos del repositorio central se copia y modifica en forma local, para luego sincronizarse con éste
� Ventajas
� Forma cómoda de trabajar, si los datos únicamente se necesitan para lectura
� Desventajas
� Los datos no están sincronizados
� Sólo es válido para ciertos escenarios
Integración de Sistemas
Curso 2009 - 2010 20
� En un escenario desconectado, los recursos no se mantienen en el servidor mientras los datos se procesan
� Pasos
1) Abrir Conexión
2) Llenar DataSet mediante DataAdapter
3) Cerrar Conexión
4) Procesar DataSet
5) Abrir Conexión
6) Actualizar fuente de datos mediante
DataAdapter
7) Cerrar Conexión
Acceso a Bases de Datos Relacionales: Entorno Desconectado
ADO.NET Entity Framework
� Es un OR/M (Object Relational / Mapping) para .NET
� Incluído en .NET Framework 3.5 SP1 y en VS2008 SP1 (11 de
agosto de 2008)
� A día de hoy ya proporciona soporte para la mayoría de los SGBD
relacionales
� Mapeado:
� Store Schema Definition Language (SSDL)
� Conceptual Schema Definition Language (CSDL)
� Mapping Specificacion Language (MSL)
⇒ VS 2008 incluye asistente gráfico para hacerlo
Integración de Sistemas
Curso 2009 - 2010 21
ADO.NET Entity Framework
� Objetos de servicio
� EntityObject (ModeloConceptual, clase base de los objetos de datos, …)
� ObjectContext (Gestión de la conexión, almacén en memoria de objetos, …)
� ObjectStateManager (Gestiona el estado, identidad, cambios en los objetos de datos, …)
� Las consultas pueden realizarse
� Entity SQL
� Indep. del SGBD
� Strings (Interpretados en tiempo de ejecución)
� LINQ to Entities
� Lenguaje común y semántico
ADO.NET Entity FrameworkEjecución de consultas
Integración de Sistemas
Curso 2009 - 2010 22
Contenido
� Introducción
� .NET Framework
� Acceso a datos con ADO .NET
� Windows Forms
� Aplicaciones Web: ASP.NET
� Herramientas de desarrollo
Windows Forms
� Una clase base común: Control
� Representa un elemento de la interfaz gráfica
� Resto de elementos derivan de Control
� Formulario Windows (Form)
� Básicos (TextBox) y extendidos (DataGrid)
� Funcionalidad encapsulada en propiedades y eventos
Integración de Sistemas
Curso 2009 - 2010 23
System.Drawing
Drawing2D
Imaging
Printing
Text
System.Windows.Forms
Design ComponentModel
Windows Forms
Contenido
� Introducción
� .NET Framework
� Acceso a datos con ADO .NET
� Windows Forms
� Aplicaciones Web: ASP.NET
� Herramientas de desarrollo
Integración de Sistemas
Curso 2009 - 2010 24
Aplicaciones Web: ASP.NET
� Versión para la plataforma .NET de la tecnología ASP
(Active Server Pages)
� Tres partes muy diferenciadas:
� Web Forms
� Server Controls
� Web Services
System.Web
Caching
Configuration
Services UI
SessionState
HtmlControls
WebControls
Description
Discovery
Security
Protocols
Aplicaciones Web: ASP.NET
Integración de Sistemas
Curso 2009 - 2010 25
Arquitectura de aplicaciones Web con ASP.NET
Vista
Lógica Negocio
Datos
Graphic
Files
UI Pages
(.htm)
XML Web Services
(.asmx)
User Controls
(.ascx)
Code-Behind File
(.aspx.vb or .aspx.cs)
Proxy ADO.NET
.NET
Objects
Data Source
COM+
Services
COM
Objects
RCW
Web Form (.aspx)
Contenido
� Introducción
� .NET Framework
� Acceso a datos con ADO .NET
� Windows Forms
� Aplicaciones Web: ASP.NET
� Herramientas de desarrollo
Integración de Sistemas
Curso 2009 - 2010 26
Novatos
Entusiastas
Estudiantes
Hobbyists
Part-Timers
Profesionales
Consultores
Desarrolladores
Arquitectos
Testers
VB6 Devs
Herramientas de desarrollo: Visual Studio 2008
Microsoft®
Visual Studio® 2008Team System
Microsoft®
Visual Studio® 2008Professional Edition
Microsoft®
Visual Studio® 2008Standard Edition
� Herramientas de desarrollo gratuitas: : http://www.microsoft.com/express
� Diseñadas para estudiantes y principiantes
� Hay varias ediciones, según el tipo de aplicación y el lenguaje:
� Visual Web Developer 2008 Express, Visual Basic 2008 Express,
Visual C# 2008 Express y Visual C++ 2008 Express y SQL Server
Express
� Características avanzadas, por ejemplo:
� Refactoring
� Code Snippets
� Diseñadores WYSIWYG para Windows Presentation Foundation
� Depuradores
� Intellisense
� Persistencia mediante “Entity Framework”
Visual Studio 2008 Express Editions
Integración de Sistemas
Curso 2009 - 2010 27
SQL Server 2005 Express
� Es una edición gratuita
� Incluye una interfaz de administración y un editor de consultas:
� SQL Server Management Studio Express
� Tamaño máximo de base: 4 Gb
� No tiene un número máximo conexiones concurrentes
� Integración con Visual Studio 2005/2008
� Mecanismos de seguridad:
� Autenticación, Autorización y Auditoría
� Cifrado de datos
SQL Server 2008 Express
� Nueva edición gratuita:
� SQL Server 2008 Express (Runtime only)
� Motor de Base de Datos
� SQL Server 2008 Express with Tools
+ SQL Server Management Studio Basic
� SQL Server 2008 Express with Advanced Services:
+ Motor de búsqueda de datos de texto
+ Servicios para la creación de informes
� Soporta LINQ, Entity Data Model y ADO.NET Entity Framework
� Funcionalidades para la gestión de datos complejos
� Nuevos tipos de datos Date y Time mejorados
� Nuevos tipos de datos: “Filestream” y “HierarchyID”
� Proporciona “T-SQL Intellisense”
� Integración con Visual Studio 2008 + SP1
� Distribución a partir de noviembre de 2008
Integración de Sistemas
Curso 2009 - 2010 28
Recursos libres� Otras implementaciones del “framework .NET”:
� Portable .NET
� MONO Project
� Entornos de desarrollo
� MonoDevelop
� SharpDevelop
� Repositorios:
� Open Source Software in C#
� http://csharp-source.net/
� IDEs
� Librerías, Fuentes, etc.
� MSDN Code Gallery:
� http://code.msdn.microsoft.com/
� Aplicaciones, snippets
� Ejemplos, guías
Portable .NET
� http://www.dotgnu.org
� Implementación limitada de la plataforma .NET bajo licencia GNU
GPL
� Soporta las librerías:
� Base Class
� XML
� Windows Forms
� Persigue el funcionamiento de .NET sobre cualquier tipo de
plataforma
� De momento, tiene un alcance muy limitado
� El proyecto tiene como objetivos principales de desarrollo de aplicaciones “stand-alone” y servicios Web en C#
Integración de Sistemas
Curso 2009 - 2010 29
Mono Project� http://www.mono-project.com
� Incluye
� CLI: Common Language Infrastructure
� Librería clases sobre CLR
� Compilador C#
� Entornos ejecución:
� Linux, Unix, Solaris
� MacOS X
� Windows
� Portabilidad .NET – MONO
� MoMA
� Patrocinado por Novell Corporation
Mono develop
� http://www.monodevelop.org
Integración de Sistemas
Curso 2009 - 2010 30
Sharp Develop
� SharpDevelop. The Open Source Development Environment for .NET: http://www.sharpdevelop.com
� Soporta:
� C#
� Visual Basic .NET
SharpDevelop
� SharpDevelop:
� Requiere la instalación previa del framework .NET 3.5
� Sistemas operativos Windows XP SP2 y posteriores
� Características
� Soporte para compiladores Microsoft
� Integración con “NUnit” y “NAnt”
� Integración con la documentación de .NET 3.5
� Funcionalidades:
� “IntelliSense”, soporte para “snippets”, código autocompletable
� Diseñador visual de “Windows Forms”
� Navegador de clases y utilidades de definición de código
� Diseñador de bases de datos visual
� Conversión de código C# - VisualBasic
Integración de Sistemas
Curso 2009 - 2010 31
SharpDevelop
� Código Autocompletable:
SharpDevelop
� Diseñador visual de Windows Forms
Integración de Sistemas
Curso 2009 - 2010 32
SharpDevelop
� Navegador de clases y utilidades de definición de código
SharpDevelop
� Conversión de código
Integración de Sistemas
Curso 2009 - 2010 33
Recursos libres
� Open Source Software in C#
� http://csharp-source.net/
� IDEs
� Librerías, Fuentes, etc.
� MSDN Code Gallery:
� http://code.msdn.microsoft.com/
� Aplicaciones, snippets
� Ejemplos, guías