introducción a la plataforma -...

30
Integración de Sistemas Curso 2008 - 2009 1 Introducción a la plataforma .NET Integración de Sistemas Integración de Sistemas Parte II. Diseño e implementación de aplicaciones Web con .NET Contenido Introducción NET Framework .NET Framework Acceso a datos con ADO .NET Windows Forms Aplicaciones Web: ASP.NET Herramientas de desarrollo

Upload: nguyenkhanh

Post on 02-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Integración de Sistemas

Curso 2008 - 2009 1

Introducción a la plataforma .NET

Integración de SistemasIntegración de SistemasParte II. Diseño e implementación de aplicaciones Web con .NET

Contenido

IntroducciónNET Framework.NET Framework

Acceso a datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Integración de Sistemas

Curso 2008 - 2009 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

E t d Ej ió (C L R ti )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 2008 - 2009 3

Línea del tiempo de .NETVisual Studio 6.0Visual BasicVBAVBAVisual 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 )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 i id d d l i ipotencia y capacidad de acceso a los recursos y servicios que expone

el .NET FrameworkNo condiciona la elección del lenguaje

Integración de Sistemas

Curso 2008 - 2009 4

Características de .NET

Plataforma de ejecución intermedia

El C L R ti (CLR) l bl dEl 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 interpretadoNo 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

P it l d ll d li i i lPermite 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 gestionadoAdemá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 MetadataMetadata describe tipos

Componentes .NET son autodescriptivos

Integración de Sistemas

Curso 2008 - 2009 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 bytecodeinterpretado o compilado, mientras MSIL fue diseñado explícitamente para compilación JIT (Just-In-Time Compilation)

Integración de Sistemas

Curso 2008 - 2009 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 referenciaCLR administra dos segmentos de memoria: Stack (Pila) y Heap (Montón)

Ti l (i t t b lTipos 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

Ti f i d l i lTipo 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 2008 - 2009 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 exeNormalmente, extensión .dll o .exe

Todo código ejecutable debe formar parte de un Assembly

Contienen:Código MSILManifest (Manifiesto)

METADATA: información sobre sí mismos y los recursos de los que dependen (son autodescriptivos)p )

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 2008 - 2009 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áquinamisma 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 conflictopueden 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 2008 - 2009 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 2008 - 2009 10

Contenido

Introducción

NET Framework.NET FrameworkAcceso 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)j ( )

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 2008 - 2009 11

Arquitectura del .NET Framework

VB C++ C# J#

ADO NET

Common Language Specification

VB C++ C# J# …

ram

ewor

k rib

utab

le

T Fr

amew

ork

SD

K

T Fr

amew

ork

ass

Libr

ary

WinForms ASP NET

WPF WCF

LINQ

WF Card Space

ADO.NET Entity Framework

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET

.NET

Fr

Red

istr

.NE

T

.NET Cla WinForms ASP.NET

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 deproteger 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 2008 - 2009 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 LibraryBase Class Library

Incluye un pequeño subconjunto de la class library y es el núcleo de clasees 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 extemsp de librerías como WinForms, ADO.NET, ASP.NET, LINQ, WPFy WCF, entre otras.

Integración de Sistemas

Curso 2008 - 2009 13

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 multilenguajep g j

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étodosEl 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 defineLibrerías que se adhieren al CLS se dicen CLS-compliant

Arquitectura del .NET FrameworkCommon Language Specification

El CLR/CTS ofrece un conjunto de características

Algunos lenguajes exponen un gran subconjunto del CLR/CTSAlgunos 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.

Integración de Sistemas

Curso 2008 - 2009 14

Arquitectura del .NET FrameworkCommon Language Specification. Lenguajes compatibles

Ada Haskell (Utrecht U.)

APL

Basic (Visual Basic)

C#

C

C++

Delphi

Java

COBOL

Component Pascal

JavaScript

Lisp

lcc (MS Research Redmond)

Mondrian (Utrecht)

ML (MS Research Cambridge)

Mercury (Melbourne U.)

Oberon (Zurich University)

Oz (Univ of Saarlandes)

Perl(Queensland U Tech)

ECMAScript (JScript)

Eiffel (Monash U.)

Fortran

Prolog

Python

Scheme (Northwestern U.)

SmallTalk

CLR Hosting & Application Domains

Una aplicación .NET necesita una pieza de código llamada RuntimeHost 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

CLRCLR Host

Código Gestionado

CLRAppDomain 1

Código Gestionado

AppDomain N

Integración de Sistemas

Curso 2008 - 2009 15

CLR Hosting & Application Domains

Los Application Domains son procesos virtuales dentro del CLRSe ejecutan dentro de un proceso del Sistema OperativoUn proceso puede contener varios Application DomainsMá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:p , q g

Una aplicación pueda ser detenida independientemente del restoUna aplicación no pueda acceder directamente a código en ejecución de otra aplicaciónUn fallo en una aplicación no afecte al resto de aplicaciones

Funcionamiento: Resumen

Desarrollo EjecuciónDesarrollo(VisualStudio .NET)

Ejecución(Plataforma .NET)

Análisis y diseño

Código fuente

Compilador

Verificación

Compilación(JIT)

Código Nativop

Código MSIL(Ensamblado)

Código Nativo

Ejecución(CLR)

Integración de Sistemas

Curso 2008 - 2009 16

Contenido

Introducción

NET Framework.NET Framework

Acceso a datos con ADO .NETWindows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Acceso a datos con ADO.NET

System.Data

OleDbSqlClient

OracleClientCommon

Odbc SqlTypes

System.XmlSerialization

XPathXSLT

Schema

Integración de Sistemas

Curso 2008 - 2009 17

ADO.NET - Arquitectura

ADO.NET - DataSet

DataSet DataTableDataSet

DataTableDataTable

DataTable

DataRowDataRow

DataColumnDataColumn

RelationsRelations

DataRelationDataRelationXML SchemasXML Schemas

Integración de Sistemas

Curso 2008 - 2009 18

Acceso a Bases de Datos Relacionales: Entorno Conectado

Los usuarios están constantemente conectados a la fuente de datos

Ventajas: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

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 D t R d3) Procesar Filas en DataReader

4) Cerrar DataReader

5) Cerrar Conexión

Integración de Sistemas

Curso 2008 - 2009 19

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

En un escenario desconectado, los recursos no se mantienen en el servidor mientras los datos se procesan

Acceso a Bases de Datos Relacionales: Entorno Desconectado

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

Integración de Sistemas

Curso 2008 - 2009 20

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 deIncluí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)Store Schema Definition Language (SSDL)

Conceptual Schema Definition Language (CSDL)

Mapping Specificacion Language (MSL)

⇒ VS 2008 incluye asistente gráfico para hacerlo

ADO.NET Entity Framework

Objetos de servicio

EntityObject (ModeloConceptual, clase base de los objetos de datos, …)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

Integración de Sistemas

Curso 2008 - 2009 21

ADO.NET Entity FrameworkEjecución de consultas

Contenido

Introducción

NET Framework.NET Framework

Acceso a datos con ADO .NET

Windows FormsAplicaciones Web: ASP.NET

Herramientas de desarrollo

Integración de Sistemas

Curso 2008 - 2009 22

Windows Forms

Una clase base común: ControlRepresenta un elemento de la interfaz gráfica

Resto de elementos derivan de ControlFormulario Windows (Form)Básicos (TextBox) y extendidos (DataGrid)

Funcionalidad encapsulada en propiedades y eventos

System Windows Forms

Windows Forms

System.Drawing

System.Windows.FormsDesign ComponentModel

System.DrawingDrawing2DImaging

PrintingText

Integración de Sistemas

Curso 2008 - 2009 23

Contenido

Introducción

NET Framework.NET Framework

Acceso a datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NETHerramientas de desarrollo

Aplicaciones Web: ASP.NET

Versión para la plataforma .NET de la tecnología ASP (Active Server Pages)( g )

Tres partes muy diferenciadas:

Web Forms

Server Controls

Web Services

Integración de Sistemas

Curso 2008 - 2009 24

System.Web

Aplicaciones Web: ASP.NET

System.WebServices UI

HtmlControls

WebControls

Description

Discovery

Protocols

CachingConfiguration SessionState

Security

Protocols

Arquitectura de aplicaciones Web con ASP.NET

VistaUI Pages

(.htm)Web Form

(.aspx)

Lógica Negocio

Graphic Files

( )

User Controls(.ascx)

Code-Behind File(.aspx.vb or .aspx.cs)

Proxy ADO.NET RCW

( p )

Datos

XML Web Services(.asmx)

.NET Objects

Data Source

COM+Services

COMObjects

Integración de Sistemas

Curso 2008 - 2009 25

Contenido

Introducción

NET Framework.NET Framework

Acceso a datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Testers

Herramientas de desarrollo: Visual Studio 2008

Microsoft ®

Visual Studio® 2008

Part Timers

Profesionales

Consultores

Desarrolladores

Arquitectos

VB6 Devs

Visual Studio® 2008Team System

Microsoft ®

Visual Studio® 2008Professional EditionMicrosoft ®

Visual Studio® 2008

Novatos

Entusiastas

Estudiantes

Hobbyists

Part-TimersStandard Edition

Integración de Sistemas

Curso 2008 - 2009 26

Herramientas de desarrollo gratuitas: : http://www.microsoft.com/express

Diseñadas para estudiantes y principiantes

Visual Studio 2008 Express Editions

Diseñadas para estudiantes y principiantesHay 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:RefactoringgCode SnippetsDiseñadores WYSIWYG para Windows Presentation FoundationDepuradoresIntellisensePersistencia mediante “Entity Framework”

SQL Server 2005 Express

Es una edición gratuita

I l i f d d i i ió di d lIncluye 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/2008Integración con Visual Studio 2005/2008

Mecanismos de seguridad:Autenticación, Autorización y AuditoríaCifrado de datos

Integración de Sistemas

Curso 2008 - 2009 27

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 FrameworkFuncionalidades para la gestión de datos complejos

Nuevos tipos de datos Date y Time mejoradosNuevos 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

Recursos libresOtras implementaciones del “framework .NET”:

Portable .NET

MONO ProjectMONO Project

Entornos de desarrollo

MonoDevelop

SharpDevelop

Repositorios:

Open Source Software in C#

http://csharp-source.net/p p

IDEs

Librerías, Fuentes, etc.

MSDN Code Gallery:http://code.msdn.microsoft.com/

Aplicaciones, snippets

Ejemplos, guías

Integración de Sistemas

Curso 2008 - 2009 28

Portable .NET

http://www.dotgnu.org

Implementación limitada de la plataforma NET bajo licencia GNUImplementación limitada de la plataforma .NET bajo licencia GNU GPL

Soporta las librerías:

Base Class

XML

Windows Forms

P i l f i i t d NET b l i ti dPersigue 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#

Mono Projecthttp://www.mono-project.com

Incluye

CLI C L I f t tCLI: Common Language Infrastructure

Librería clases sobre CLR

Compilador C#

Entornos ejecución:

Linux, Unix, Solaris

MacOS X

WindowsWindows

Portabilidad .NET – MONO

MoMA

Patrocinado por Novell Corporation

Integración de Sistemas

Curso 2008 - 2009 29

Mono develop

http://www.monodevelop.org

Sharp Develop

SharpDevelop. The Open Source Development Environment for .NET: http://www.sharpdevelop.com

Soporta:C#

Visual Basic .NET

Integración de Sistemas

Curso 2008 - 2009 30

SharpDevelop

SharpDevelop:Requiere la instalación previa del framework .NET 3.5Sistemas operativos Windows XP SP2 y posteriores

CaracterísticasSoporte para compiladores MicrosoftIntegración con “NUnit” y “NAnt”Integración con la documentación de .NET 3.5

Funcionalidades:“IntelliSense”, soporte para “snippets”, código autocompletable, p p pp , g pDiseñador visual de “Windows Forms”Navegador de clases y utilidades de definición de códigoDiseñador de bases de datos visualConversión de código C# - VisualBasic

Recursos libresOpen 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