Академический Документы
Профессиональный Документы
Культура Документы
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Contenidos
TecnologasdeDesarrollo
deSoftwareIDE
Unidad: 1
Plataforma y Entorno de Desarrollo
Captulo: 1
Plataforma de Desarrollo
(ltimaActualizacin:1Abril2015)
Pg.: 1 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
ndice
Unidad1:PlataformayEntornodeDesarrollo
Captulo1:PlataformadeDesarrollo
Introduccin
PlataformadeDesarrollo.Net
Entornodetrabajo.NetFramework
Evolucindeversionesde.NetFramework
ComponentesPrincipales
CommonLanguageRuntime(CLR)
Procesodecompilacinyejecucindecdigoadministrado
CdigoenLenguajeIntermedio(CILoMSIL)
Ensamblados,ManifiestosyMetadatos
DesensambladordeMSIL
ComponentesdelCLR
InfraestructuraComndeLenguajes(CLI)
SistemadeTiposComunes(CTS:CommonTypeSystem)
ClasificacindeTipos
EspecificacinComndeLenguajes(CLS)
BaseClassLibrary(BCL)
OrganizacindelaBCL
EspaciodeNombres(Namespaces)
SoporteamltiplesLenguajesdeProgramacin
ResumendelaUnidad/Captulo
Autoevaluacin
Bibliografa
Nota
: los contenidos fueron generados a partir de diversas fuente de informacin, entre las
que se destacan la oficial presentada en el sitio MSDN, la publicada por la editorial oficial y
ladeotraseditorialesyautoresdereconocidomritoacadmicoy/oprofesional.
Pg.: 2 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Unidad1:PlataformayEntornodeDesarrollo
Captulo1:PlataformadeDesarrollo
IMPORTANTE:
los
contenidos
aqu desarrollados
no sonnecesariamente completos en
su total profundidad, por lo que
se sugiere consultar otras fuentes
, tales como la
Bibliografa
sugeridaporlactedraenelProgramaAnalticoydocentes.
Objetivo(s)
Conocerlosaspectosbsicosdelaplataformadedesarrolloysufuncionamiento.
Temas
1. Laplataformadedesarrollo.Netysufuncionamiento.
a. Problemasqueresuelve.
b. Beneficiosqueofrece.
2. Elentornodetrabajo.NetFrameworkysufuncionamiento.
a. Componentes.
b. Evolucindeversionesliberadas.
3. ElmotordeejecucinCLR(CommonLanguageRuntime)ysufuncionamiento.
a. Componentesyserviciosofrecidosentiempodeejecucin.
i. Recoleccindebasura(garbagecollector)
ii. Restodeservicios...
4. ArquitecturadecompilacinyEjecucin.ElprocesodecompilacinJIT(JustInTime)
5. ElSistemadeTiposComunesCTS(CommonTypeSystem).
a. Categoras.
i. TiposporValoryporReferencia
6. LaLibrera(oBiblioteca)deClasesBaseBCL(BaseClassLibrary).
7. EspaciodeNombres(namespaces)
8. CdigoadministradooInterpretado.CdigoenLenguajeIntermedioCILoMSIL
(MicrosoftIntermediateLanguage)
9. Ensamblados(assemblies),ManifiestosyMetadatos.
10. EspecificacinComndeLenguajesCLS(CommonLanguageSpecification)
11. LaInfraestructuraComndelLenguajeCLI(CommonLanguageInfrastructure).
Estandarizacinylicenciamiento(NormaECMA335ISO/IEC23271).
12. Soporteamltipleslenguajes.
Pg.: 3 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Pg.: 4 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Introduccin
La
plataforma .Net con los componentes principales de su
Framework
,
LibreradeClases
(BCL) y
Motor de Ejecucin (CLR), permiten entender cmo funciona esta plataforma y el
entorno de desarrollo sobre el cual generar y ejecutar cdigo escrito en alguno lenguaje de
programacinsoportadopor.Net.
La
plataforma .NET es un conjunto de tecnologas diseado por Microsoftquepermiten el
desarrollo y ejecucin de software, de forma independiente del lenguaje de programacin,
modelo de objetos, sistema operativo, infraestructura de hardware y dispositivos donde se
ejecuta.
PlataformadeDesarrollo.Net
La plataforma .NET est construido sobre una arquitectura abierta (estndar ECMA335,
ISO/IEC 23271), que permite generaryejecutartantoaplicacionesdeescritorio,aplicaciones
web,servicioswebcomoaplicacionesmviles.
Laplataforma.NETproporcionaentreotrosaspectos:
Un modelo de programacin coherente e independiente del lenguaje para todas las
capasonivelesdeunaaplicacin.
Unainteroperabilidadtransparenteentretecnologas.
Unafcilmigracindesdetecnologasexistentes.
Un completo soporte de tecnologas de Internet independientes de la plataforma y
Pg.: 5 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
basadaenestndares,incluyendoHTTP,XMLySOAP.
Estaconformadaporlassiguientesreastecnolgicas:
Unentornodetrabajodenominado
.NetFramework
.
Unconjuntode
Lenguajes.NetyHerramientasdedesarrollo
.
Entornodetrabajo.NetFramework
En el mbito del
desarrollo de software
, un
framework1 o
infraestructura digital
, es una
estructura conceptual y tecnolgica de soporte definido, normalmente con artefactos o
mdulos de software concretos, con base a la cual otro proyectode
softwarepuedeserms
fcilmente organizado y desarrollado. Tpicamente, puede incluir soporte de
programas
,
bibliotecas
, y un
lenguaje interpretado
,entreotrasherramientas,paraasayudaradiferentes
actores que intervienenen el ciclo de vida del software yunirlosdiferentescomponentesde
unproyecto.
Representa una
arquitectura de software que modela las relaciones generales de las
entidades del dominio,yproveeunaestructurayunaespecialmetodologadetrabajo,lacual
extiendeoutilizalasaplicacionesdeldominio.
El
.NET Framework 2 es la infraestructura ofrecida por Microsoft donde aplicaciones y
servicios son construidosyejecutados,queporsunaturalezaunificadapermitequecualquier
tipo de aplicacinsea desarrollada mediante herramientascomunes haciendo la integracin
muchomssimple.
Evolucindeversionesde.NetFramework
El .Net framework se encuentra en constante evolucin y crecimiento por lo que la empresa
va liberando con el tiempo nuevas versiones que incorporan tanto mejoras de la
funcionalidadexistentecomonuevosdesarrollosytecnologas.
Se muestra un diagrama con las diferentes versiones que fueron surgiendo en un correlato
1
Entrminosgeneralessegnelconceptode
FrameworkenWikipedia
,esunconjuntoestandarizadode
conceptos,prcticasycriteriosparaenfocaruntipodeproblemtica particular,quesirvecomo referencia
paraenfrentaryresolverproblemasdendolesimilar.
2
El .NET Framework se incluye en versiones del sistema operativo WindowsServer 2008 y Windows
Vista en adelante. De igual manera puede ser instalada en Windows XP, y en la familia de sistemas
operativos Windows Server 2003. Una versin "reducida" de .NET Framework est disponible para la
plataforma Windows Mobile y Phone, en telfonos inteligentes. Existen implementaciones en otros
sistemasoperativoscomoporejemploelimplementadoporel
ProyectoMono
paraLinux.
Pg.: 6 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
cronolgicoeneltiempo.
Figura
:Evolucin
deversionesdel.NetFramework(hasta2014,vertablarelacionadasiguiente)
La tabla siguiente relaciona .NET Framework, CLR y las versiones de Visual Studio y
proporciona un breve revisin de cada versin. Tenga en cuenta que Visual Studio proporciona
compatibilidad con mltiples versiones (multi-targeting), por lo que no est limitado a la
versin de .NET Framework que se muestra.
.Net
Incorporado
Descripcin
Framework
al IDE
4.6
N/D
4.5.2
Visual Studio
2013
4.5.1
Visual Studio
2013
4.5
Visual Studio
2012
Visual Studio
Pg.: 7 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
2010
3.5
Visual Studio
2008
3.0
Visual Studio
2005
2.0
Visual Studio
2005
1.1
Visual Studio
.NET 2003
1.0
Visual Studio
.NET
Nota
: ver massobre laevolucindelasversionesde.NetFrameworken elsitioMSDN
.NET
FrameworkVersionsandDependencies
(MSDN)oen
.NETFrameworkversionhistory
ComponentesPrincipales
Esteentornodetrabajoestaformadopordoscomponentesprincipales:
Un
motordeejecucin
llamado
CommonLanguageRuntime
(CLR)
Pg.: 8 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Una
libreradeclases
llamada
BaseClassLibrary
(BCL)
Nota
: ms adelante en la seccin referida alaBCL,semuestragrficamentelaevolucinde
lalibreradeclasesbaserespectoalframework.
CommonLanguageRuntime(CLR)
El
Common Language Runtime3 (
CLR
) maneja el cdigo en tiempo de ejecucin y provee
una serie de serviciosesenciales tales como la integracin de lenguajes, seguridad, manejo
de tipos seguros, manejo de hilos (thread) y manejo de memoria, entre otrasventajas que
proporcionaeste
entornodeejecucinadministrado
.
El CLR es el encargado de
compilar una forma de
cdigo intermedio llamada
Common
Intermediate Language (
CIL
) o tambin conocido como
MicrosoftIntermediateLanguage
(
MSIL
), a
cdigo mquina nativo (
optimizado para el sistema operativo y el hardware donde
correr la aplicacin
), medianteunacompilaci
n
JIT
(JustInTime)
entiempode ejecucin4 a
medida que el programa invoca mtodos. El cdigo ejecutable obtenido se almacena en la
memoria cach del ordenador, siendo recompilado de nuevo slo enel caso de producirse
algncambioenelcdigofuente.
Conocidocomo
CLR
porsussiglaseningls,hacenreferenciaal
motordeejecucin
o
runtime
.
Un
compilador entiempode ejecucin
,es aquel queutiliza unatcnica de compilacin dinmicapara
mejorarelrendimientodesistemasdeprogramacin.
4
Pg.: 9 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Figur
a
:Procesodedesarrolloycompilacinen.Net
1. Elegiruncompilador7 .
Para obtener los beneficios que proporciona el Common Language Runtime, se
deben utilizar uno o ms compiladores por cada lenguaje .Net utilizado para generar
cdigo.
2. Compilar
elcdigo
a
LenguajeintermediodeMicrosoft
(
MSIL
)
.
La compilacin convierte el cdigo fuente en
CIL (o MSIL)
y genera los
metadatos
requeridos.
3. CompilarMSILacdigonativo
.
En tiempo de ejecucin,un
compilador
JustInTime (
JIT
)
convierte CIL
en cdigo
nativo
. Durante esta compilacin, el cdigo debe pasar un procesodecomprobacin
que examina el
CILylosmetadatosparavalidarsielcdigogarantizalaseguridadde
tipos,queesunodelosserviciosquerealizaelCLR.
4. Ejecutarcdigo
.
5
Llamado
IDE
porsussiglaseninglsIntegratedDevelopmentEnvironment,talcomo
VisualStudio
Cadalenguaje.Nettienesupropiocompilador.
7
Considerando el uso del compilador del lenguaje especfico por lnea de comandos. Por ejemplo el
compilador dellenguaje C#es
csc.exe
. Siseutilizaunentornodedesarrollointegrado(IDE)estepasoy
elsiguientelorealizaelmismoentornodemaneraautomtica.
6
Pg.: 10 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
El
CLR
proporciona la infraestructura que permite que la ejecucin tenga lugar, as
comounaampliagamadeserviciosquesepuedenutilizardurantelaejecucin.
Figura
:Procesodecompilacinyejecucindecdigoadministrado
CdigoenLenguajeIntermedio(CILoMSIL)
El cdigo en Lenguaje Intermedio de Microsoft (MSIL o CIL) es unconjuntodeinstrucciones
independientedelaCPUquesepuedeconvertirdeformaeficazencdigonativo.
MSIL incluye instrucciones para cargar, almacenar, inicializar y llamar a mtodos en los
objetos, as como instrucciones para operaciones lgicas y aritmticas, flujo de control,
accesodirectoalamemoria,controldeexcepcionesyotrasoperaciones.
Antes de poder ejecutar cdigo, se debe convertir MSIL a cdigo especfico de la CPU,
medianteunprocesodecompilacinJIT.
EL CLR proporciona uno o varios compiladores JIT para cada arquitectura de equipo
compatible, por lo que se puede compilar y ejecutar elmismoconjuntodeMSILencualquier
arquitecturacompatible.
Cuando el compilador (especfico del lenguaje fuente utilizado) produce MSIL, tambin
genera informacin adicional sobre el cdigo. Esta informacin describe los tipos que
aparecen en el cdigo, incluidas las definiciones de los tipos, las firmas de losmiembros de
tipos, los miembros a los que se hace referencia en el cdigo y otros datosqueel motor de
Pg.: 11 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
ejecucinutilizaentiempodeejecucin.
El motor de ejecucin localiza y extrae los metadatos del archivo cuando son necesarios
durantelaejecucin.
Ensamblados,ManifiestosyMetadatos
Los componentes de cdigo, manejados y ejecutados por el CLR son conocidos como
ensamblados (assemblies) yconformanlaunidadbsicafuncionaldeundesarrollo.Netque
contienen cdigo IL, una coleccin de tipos, recursos y un manifiesto, el cualesunconjunto
demetadatos8 quedescribesucontenido.
Figura:Ensamblado(assembly)
8
Elconceptode
metadato
(o
metadata
eningls)serefiereaunconjuntodedatosquedescribeno
explicanotroconjuntodedatos.Verampliacindelconceptode
metadato
Pg.: 12 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
DesensambladordeMSIL
Puede utilizar la utilidad
ildasm.exe10 que forma parte del SDK11 para examinar y ver
informacindelensamblado.
obibliografasugeridaquetrataeltema.
ComponentesdelCLR
El CLR es el
encargado de gestionar lo que se denomina cdigo administrado, y para ello
cuenta con un conjuntode componentes que proveenuna serie de servicios
automticos al
cdigoqueseejecuta.
Sideseasaberdondeencontrarlautilidad
ILDASM.exe
veaestaentradadel
BlogMSDN
11
Pg.: 13 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Grfico
:ComponentesprincipalesdelCLR
Entrelosserviciosvariadosquecuentaseencuentranlossiguientes:
CargadordeClases
(ClassLoader):permitecargarenmemorialasclases.
Compilador MSIL a nativo (MSIL toNativeCompilers):transformacdigointermedio
de alto nivel independiente del hardware quelo ejecutaa cdigo de mquina propio
deldispositivoqueloejecuta.
Administrador de Cdigo (Code Manager): coordina toda la operacin de los
distintossubsistemasdelCommonLanguageRuntime.
Recolector de Basura (Garbage Collector):elimina dememoriaobjetos noutilizados
automticamente.
Motor de Seguridad
(Security Engine): administra la seguridad del cdigo que se
ejecuta.
Motor de
Depuracin (Debug Engine): permite hacerunseguimientode laejecucin
delcdigoancuandoseutilicenlenguajesdistintos.
Verificador deTipos(TypeChecker):controlaquelasvariablesde laaplicacinusen
elreadememoriaquetienenasignado.
Administrador de Excepciones
(Exception Manager): maneja los errores que se
producendurantelaejecucindelcdigo.
Soporte de
Multiproceso (
hilos
) (Thread Support): permite desarrollar aplicaciones
queejecutencdigoenformaparalela.
Empaquetador de COM (COM Marshaler): coordina la comunicacin con los
componentesCOMparaquepuedanserusadosporel.NETFramework.
Soporte de la Biblioteca de Clases Base (BCL Support): que incluye soporte para
muchasfuncionalidadescomunesenlasaplicaciones.
Pg.: 14 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
InfraestructuraComndeLenguajes(CLI)
La Infraestructura Comn de Lenguajes (
CLI por sus siglas en ingls
Common Language
Infrastructure
) es una especificacinestandarizada que describeun entorno virtual parala
ejecucin de aplicaciones, cuya principal caracterstica es la de permitir que aplicaciones
escritas en distintos lenguajesdealtonivelpuedanluegoejecutarseenmltiplesplataformas
tanto de hardware como de software sin necesidad de reescribir o recompilar su cdigo
fuente.
La especificacin del
CLI est formada por un
Sistema Comn de Tipos
, (
CTS por sus
siglas en ingls de Common Type System),
Metadatos
y
Especificacin Comn del
Lenguaje
(
CLS
porsussiglaseninglsdeCommonLanguageSpecification).
SistemadeTiposComunes(CTS:CommonTypeSystem)
En un sentido amplio, un
Tipo
de datos define un conjunto devaloresylasoperacionesque
sepuedenrealizarsobreestosvalores.
Elsistemadetiposcomnrealizalas
funciones
siguientesentreotras:
12
LaespecificacinparaelCTSseencuentraenel
estndar
ECMA355
quedefinelaarquitecturadela
InfraestructuraComndelLenguaje"(
CLI
:CommonLanguageInfrastructure)yMicrosoft.NETesuna
implementacindelanorma.OtroestndareselECMA334quedefinelaEspecificacindelLenguaje
C#
.
Pg.: 15 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
ClasificacindeTipos
El CTS soporta doscategorasgeneralesdetipos,queasuvezsedividenensubcategoras.
Todoslostiposderivandeltipobase
System.Object
.
Grfico
:
SistemadeTiposComunes(CTS)
TiposdeValor
Los tipos de (o por) valor contienen directamente sus datos y lasinstancias de los tipos de
valor se almacenan en la pila (stack) o se asignan en lnea en una estructura. Los tipos de
valor pueden ser
integrados
(o Incorporados, implementados por el motor en tiempo de
ejecucin),
definidos por el usuario o
enumeraciones
.Para obtener una lista delos tipos
devalorintegrados,vea
Bibliotecadeclasesde.NETFramework
.
TiposdeReferencia
Los tipos de referencia guardan una referencia a la direccin en memoria del valor y se
asignan en un sistema de cola (Heap). Los tipos de referencia pueden ser tipos
autodescriptivos, punteros o de interfaz. A su vez los tipos autodescriptivos se dividen en
Pg.: 16 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
En el siguiente
ejemplo
semuestra la diferencia entre los tipos de referencia y lostipos de
valor.
[C#]
using
System;
classClass1
{
publicint Value = 0;
}
classTest
{
staticvoid Main() {
int val1 = 0;
int val2 = val1;
val2 = 123;
Class1 ref1 =
newClass1();
Class1 ref2 = ref1;
ref2.Value = 123;
Console.WriteLine(
"Values: {0}, {1}"
, val1, val2);
Console.WriteLine(
"Refs: {0}, {1}"
, ref1.Value, ref2.Value);
}
}
Elresultadodelcdigoanterioreselsiguiente:
Values: 0, 123
Refs: 123, 123
DiagramadeClasificacindeTipos
El diagrama siguiente ilustracmoserelacionanlasdiferentescategorasysubcategoriasde
los distintos tipos. Tengaen cuenta que las instancias de los tipos pueden ser simplemente
tiposdevalorotiposautodescriptivos,aunquehayasubcategorasdeestostipos.
Pg.: 17 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Grfico
:CategorasysubcategorasdelCTS
Tipos(GuadeprogramacindeC#)
EspecificacinComndeLenguajes(CLS)
Parapoderinteractuarcompletamenteconotrosobjetos, seacualfuereellenguajeen que se
hayan implementado, los objetos deben exponer slo aquellas caractersticas que sean
comunes para todos los lenguajes con los que deben interoperar. Por este motivo, se ha
definido el
Common Language Specification (
CLS
),quees un conjunto de caractersticas
bsicas del lenguaje, requeridas por la mayora de las aplicaciones que establece los
requisitosdecompatibilidad.
Nota
:puedeampliarsuconocimientosobreeltema
CLSenelsitioMSDN
Pg.: 18 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
BaseClassLibrary(BCL)
Este componente esencial del .Net Framework provee un extenso conjunto de soluciones
predefinidas y unificadas para necesidades generales bsicas y avanzadas de la
programacin de aplicaciones, totalmente orientada a objetos,organizadas en una jerarqua
declasesllamada
BaseClassLibrary
(
BCL
)
Provee una coleccin de tipos y cdigo orientado a objetos reusable para la mayora de las
tareas comunesquese encuentran involucradas eneldesarrollodeaplicaciones,incluyendo
entre otras el acceso y manejo de datos y el desarrollo de formularios Windows, Web y
ServiciosWebXML.
Como para dar una idea de algunas de las operaciones comunes que ofrece podemos
nombrarlassiguientes:
Interaccinconlosdispositivosperifricos.
Accesoaunavariadagamadefuentesdedatos.
TareasdeI/O
Manejodedatos(ADO.NET).
Transmisinyrecepcindedatospordistintosmedios(XML,TCP/IP)
Administracin de componentes Web que corren tanto en el servidor como en el
cliente(ASP.NET).
Cifradodedatos.
Manejoyadministracindeexcepciones.
Manejodelsistemadeventanas(WindowsForm).
Herramientasdedesplieguedegrficos(GDI+).
Manipulacindearchivosdeimgenes.
Herramientasdeseguridadeintegracinconlaseguridaddelsistemaoperativo.
Manejodetiposdedatosunificado.
Interaccinconotrasaplicaciones.
Manejodecadenasdecaracteresyexpresionesregulares.
Manejodearreglosdedatosycolecciones.
Operacionesaritmticas.
Aleatoriedad.
Manipulacindefechas,zonashorariasyperiodosdetiempo.
Pg.: 19 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
ManejodeidiomasyLocalizacin.
InteraccinconelAPIWin32oWindowsAPI.
Administracindememoria.
Generacindecdigo.
Autodescripcindecdigo.
Compilacindecdigo
Estas libreras que son parte fundamental del .Net Framework13 , se encuentran,al igualque
este,enconstanteevolucinyactualizacinconcadanuevaversinliberada.
OrganizacindelaBCL
LaBibliotecadeClasesBaseademsdeseguirunsistemajerrquicodeclasesseencuentra
organizada por medio de
espacios de nombres (namespaces) que concentra clases de
funcionalidadafin.
Existen grupos de tecnologas claves incluidas en la BCL, tales como ASP.NET, Servicios
WebXML,WindowsForms,ADO.NETyotrasquesemuestranenelsiguientegrfico.
13
Veaelconjuntodeespaciosdenombresabarcadosporla
Libreradel.NetFrameworkenelsitio
MSDN
Pg.: 20 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Figura:Arquitecturadel.NETFramework.
ASP.NET
:permiteeldesarrollodepginasWebbajoelmodeloWebForms.
ASP.NET MVC
: permite el desarrollo web, basado en el patrn ModelViewController (esto
fueincorporadoapartirdelSP1de.NETFramework3.5).
AJAX
: permite una interaccin asncrona desde el Browser del cliente, con elservidor Web
denuestraaplicacin.
ADO.NET
: conjunto de clases que exponen servicios de acceso a datos que permiten
conectarse a diferentes orgenes tales como base de basesrelacionales(motores MS SQL
Server, Oracle entre otros o expuestos mediante OLE DByODBC),XMLydeaplicacionesy
recuperar,manipularyactualizarlosdatoscontenidos.
LINQ
(Language Integrated Query): permite emplear sintaxis de consulta para diferentes
tiposdeorgenesdedatos,ejemplo:colecciones,DataSets,XML.
Entity Framework
:permitemanejarunmodelodeobjetosparadiferentesorgenesdedatos,
manejandolapersistenciadedatos(operacionescontraunorigen),basadoencdigo.NET.
WinForm
(Windows Forms): modelo de desarrollo de aplicaciones cliente de escritorio
usandoFormulariosWindowsquecuentaconunavariedaddecontroles.
WPF
(Windows Presentation Foundation): permite la mejora visual de las aplicaciones a
Pg.: 21 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
travs del uso de XAML(eXtensible Application Markup Language), elWPF incorpora como
mejoraprincipalelusodelosaceleradoresdegrfico(Codecs)
WCS
(Windows CardSpace) permite elusodetokensdeidentificacinparaaplicacionesque
ejecutenbajoWindowsXPSP2superior.
WWF
(WindowsWorkflowFoundation)permiteimplementarprocesosdenegociobasadosen
Workflows, y podemos integrarlo con otras plataformas como Microsoft Office SharePoint
Server2007(MOSS).
WCF
(Windows CommunicationFoundation)permiteimplementarserviciosparaaplicaciones
distribuidas, y es la plataforma base actual de Microsoft para la construccin desoluciones
basadasenSOA(ServicesOrientedArchitecture).
XML
: permite manipularyaprovecharfuncionesdelestndarXMLorientadoprincipalmentea
lainteroperabilidadentrelossistemas.
EvaluacindetecnologasincluidasenlaBCLsegnlaevolucindel.NetFramework
Fuente:
Wikipedia
EspaciodeNombres(Namespaces)
Un namespace se utiliza para declarar un mbito que permite organizar el cdigo y
proporcionaunaformadecreartiposglobalmentenicos.
Pg.: 22 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Dentrodeunespaciodenombres,sepuedendeclararunoovariosdelossiguientestipos:
otroespaciodenombres
clase(class)
interfaz
struct
enum
delegado(delegate)
De todosmodosserecomiendaincluirsucdigosiempredentrodeun
namespace
utilizando
como
convencin
algenerarloslasiguiente:
CompanyName
.
TechnologyName
.
SoporteamltiplesLenguajesdeProgramacin
La plataforma .Net soporta14 una gran variedad de lenguajes, dentro de los que se
encuentran los desarrollados por el propio Microsoft, tales como C#15 , Visual Basic .NET,
C++, J# y recientemente F#16 (lenguaje funcional) o los desarrollados por otros fabricantes
14
Puedeverundetalledelos
LenguajesdeProgramacin
.NetenelsitioMSDN
15
Lenguajemultiparadigmaqueconjugala
programacinfuncional
conlaimperativaydeobjetos,
creadoporDonSymedelequipodeinvestigacindeMicrosoftsoportadoapartirdeVisualStudio2010.
Pg.: 23 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
tales como, Cobol, Python17 , Delphi (Object Pascal), Perl, Python, Fortran, Prolog y
PowerBuilderentreotros.
17
Unaimplementacindecdigoabierto(opensource)dePythonesIronPythonhttp://ironpython.net.
Pg.: 24 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
ResumendelaUnidad/Captulo
IMPORTANTE:
los
contenidos
desarrollados en esta seccin
noson completos
, sino que
son un mini resumen de conceptos generales de los temas de mayor importancia de la
unidad/captulo a modode repaso general de los mismos una vez completada la lectura del
mismo.
Microsoft .Net es una plataforma formada por un conjunto de tecnologas que permiten el
desarrolloyejecucindesoftwarebajoel.NetFramework.
El
.Net Framework es el entorno de trabajo de la plataforma .Net,completamenteorientado
aobjetos,cuyoscomponentesprincipalesson:
ElmotordeejecucinCommonLanguageRuntime(CLR)
LalibreradeclasesBaseClassLibrary(BCL)
El
Common Runtime Language (
CLR
) es el motor de ejecucin comn a todos los
lenguajes soportadosporlaplataforma.Netentrelos quesedestacanC#,VisualBasic.NET,
C++, J# y recientemente F#18 (lenguaje funcional) desarrollados por Microsoft y otrostantos
desarrollados por terceros tales, como Cobol, Python, Delphi (Object Pascal), Perl,Python,
Fortran,PrologyPowerBuilderentreotros.
CommonLanguageSpecification
(
CLS
)
Define el conjunto de caractersticas que todo lenguaje compatible con .NET debera
soportar.
El
Common Language Specification (
CLS
), es la Especificacin Comn a todos los
Lenguajes .Net, que englobanlaspautasquedebencumplirestosparapodersersoportados
porlaplataformayquepermitiraotrascompaasproducirlenguajescompatiblescon.NET.
Lenguaje multiparadigma que implementa el
l
enguaje funcional
, creadoporDon Symedel equipo de
investigacindeMicrosoft.
18
Pg.: 25 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
La
Librera (o biblioteca)
de Clases Base (
BCL
)de.NET,esel conjuntodeclasesunificada
para toda la plataforma que componen el .NET framework y que permiten realizar casi
cualquiertareadeunamanerafcilyrpida.
EntrelasconjuntosdeclasesquecontienelaBCLseencuentran:
ADO.NET
, que es la nueva interfaz de bases de datos. No se trata de una evolucin de
ADO, sino que se trata de una interfaz completamente nueva para el manejo de datos enla
aplicacin.
Windows Form cuenta con un conjunto de clases y mtodos que permite el desarrollo de
aplicacionesclientedeescritorio.
ASP.NET
, es la tecnologa para el desarrollo de pginas web dinmicas que reemplaz al
clsicoASP,completamenteintegradadentrodelentorno.NET.
Lenguajes.Netsoportados
Cualquier lenguaje que sea acorde a la Common Language Specification (CLS) puede
ejecutarse sobre la CLR.En .NETFramework,MicrosoftproveeVisualC#,VisualBasic.Net,
Visual C++, VisualJ#oF#.Tercerosproveernuevoslenguajestalescomoimplementaciones
dePython,Pascal,Eiffel,Cobol,SmalltalkyADAentreotros.
Pg.: 26 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Autoevaluacin
1. Queslaplataforma.Netycmofunciona?
2. QueselFramework.Net?Cualessonsuscomponentesprincipalesyquefuncin
yutilidadtienecadauno?
3. QueeselmotordeejecucinCLRde.Net,quefuncindesempeaydequ
manera?
4. DequesetratalaLibreradeClasesBase(BCL)?Nombrealgunascaractersticasy
componentesdelamisma.
5. Expliciteyexpliquelasreastecnologasdefuncionescomunesagrupadasenla
BCL.
6. DequesetrataelRecolectordeBasura(GarbageCollector),dequeformaparte,
cualessurol(ofuncin)ycmofunciona?
7. DequesetrataelCTS?Dequformaestorganizado?
8. CualesladiferenciaentrelosTiposporReferenciayporValor?Citarejemplosde
cadauno.
9. DequesetratalaSeguridaddeTipos?
10. DequesetrataelMSIL?
11. Enquconsisteelprocesodecompilacinyejecucindelcdigodesarrolladoen
.Net?
12. Aqueserefiereelconceptodecdigomanejadoointerpretado?Cualesla
diferenciaentrecdigomanejadoynomanejado?
13. Dequesetrataunensamblado(assembly)?QuerelacintieneconMSIL(oCIL)?
14. AqunosreferimosconMetadata?Nombrealgunascaractersticasdesu
contenido.
15. DequesetratalacompilacinJIT(JustInTime)?Dondesellevaacaboycuando?
16. ExpliquedequsetrataelCLSyrelacineloconelCTS?
17. DequesetrataelCLI:CommonLanguageInfrastructure?Cualessonlaspartes
principalesdelaarquitecturaCLI?Queyquienlodefine?Nombreunejemplo
equivalentedesuimplementacin?
18. QueeslaECMA335,ISO/IEC23271?Qucaractersticastieneycualessu
objetivo?Deejemplosdesuimplementacin?
19. Qucaractersticasdebentenerloslenguajessoportadosporlaplataforma.Net?
Nombrealgunosejemplosdelenguajessoportados.
20. Loslenguajes.Netsondesarrolladosporunnicofabricante?Cadalenguajetiene
supropiocompilador?Elcdigogeneradoporelcompiladoraquelenguajelo
traduce?
Pg.: 27 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Pg.: 28 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
Bibliografa19
IMPORTANTE
: Se sugiere buscar bibliografa adicional a la citada aqu, en el buscador
disponibleen
BibliotecaUTNRosario
.
BALENA,Francesco
ProgramacinavanzadaconMicrosoftVisualBasic.Net.
,Madrid,
McGrawHill,2003.
ISBN:8448137159
Cap
tulo8Tiposbsicosde.Netframeworky14EnsambladosyappDomains
EjemplaresDisponibles:
enbiblioteca
FOXALL,James
VisualC#2005.
,Madrid,Anaya,2006.
ISBN:9788441521216
Cap
tulo24Visingeneralde.NETframework
Disponibilidad:
enbiblioteca
HILLAR,Gastn,
VisualBasic2005y.Net2.0.
BuenosAires,Hasa,2007.
ISBN:9789505282760
Cap
tulo1IntroduccinalEntornodeDesarrollo.Net
Disponibilidad:
enbiblioteca
MACKENZIE,DuncanySHARKEY,Kent.
AprendiendovisualBasic.Neten21lecciones
avanzadas.
Mxico,Pearson,2003.
ISBN:970260379x
Cap
tulo8Presentacindel.NETFrameworky17Usodel.NETFramework
Disponibilidad:
enbiblioteca
SHARP,John.
VisualC#2008:pasoapaso.
Madrid,Anaya,2008.
ISBN:9788441524491
Cap
tulo1BienvenidoaC#
Disponibilidad:
enbiblioteca
19
Pg.: 29 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
FuentesDigitales
+MicrosoftDeveloperNetwork(MSDN)OnLine:
http://msdn.microsoft.com
Framework.Net:
http://msdn.microsoft.com/enus/library/a4t23ktk.aspx
Versionesdel.NetFramework:
http://msdn.microsoft.com/eses/library/bb822049.aspx
CommonLanguageRuntime:
http://msdn.microsoft.com/esar/library/8bs2ecf4(v=vs.80).aspx
Metadatos:
http://msdn.microsoft.com/eses/library/4y7k7c6k(v=vs.80).aspx
EnsambladosyEspaciosdenombres:
http://msdn.microsoft.com/enus/library/ms973231.aspx
Lenguajesdeprogramacion.Net:
http://msdn.microsoft.com/eses/library/aa292164(v=vs.71).aspx
F#:
http://msdn.microsoft.com/eses/magazine/cc164244.aspx
+ArtculoIntroduccina.NETensitiowebDVJoker
http://www.devjoker.com/contenidos/Articulos/25/Introducci%C3%B3naNET.aspx
+Wikipedia,conceptosgenricosyespecficos:
Microsoft.Net:
http://es.wikipedia.org/wiki/Microsoft_.NET
Framework.Net:
http://en.wikipedia.org/wiki/.NET_Framework
CommonLanguageRuntime:
http://es.wikipedia.org/wiki/Common_Language_Runtime
Compilacinentiempodeejecucin:
http://es.wikipedia.org/wiki/Compilaci%C3%B3n_en_tiempo_de_ejecuci%C3%B3n
Pg.: 30 / 31
Unidad 1:
Plataforma y Entorno de
Desarrollo
Captulo 1:
Plataforma de Desarrollo
HistorialdeVersiones
Versin Fecha
Autor
Detalle
1.0
12/03/201
2
EzequielPorta
1.1
21/03/201
2
EzequielPorta
1.2
23/07/201
3
EzequielPorta
Correccionesmenoresyagregadodegrficosobre
tecnologasincluidascomoevolucindel.NetFramework
1.3
01/04/201
5
EzequielPorta
AdaptacinaorganizacinProgramaAnalitico2014donde
Unidad1y2seunificanconvirtindosecadaencaptulosde
lamismaUnidad1.
Correccionesyagregadosmenoresenparticularlorelativoa
laevolucindel.NetFramework
Pg.: 31 / 31