lunes, 24 de agosto de 2015

XML

¿Que es XML?
XML proviene de eXtensible Markup Language (“Lenguaje de Marcas Extensible”). Se trata de un metalenguaje extensible de etiquetas que fue desarrollado por el Word Wide Web Consortium (W3C), una sociedad mercantil internacional que elabora recomendaciones para la World Wide Web.
El XML es una adaptación del SGML (Standard Generalized Markup Language), un lenguaje que permite la organización y el etiquetado de documentos. Esto quiere decir que el XML no es un lenguaje en sí mismo, sino un sistema que permite definir lenguajes de acuerdo a las necesidades. El XHTML, el MathML y el SVG son algunos de los lenguajes que el XML tiene la capacidad de definir.

Sintaxis XML
  • Representa las normas a seguir para la construcción de documentos XML.
  • Estas reglas son dictadas por el organismo W3C (http://www.w3.org/XML). Entre ellas destacan:
  • El XML es Case - Sensitive.
  • Todo elemento tiene que tener su correspondiente etiqueta de inicio y de cierre, o una sola etiqueta vacía.
  • Todo documento, debe haber un elemento (llamado raíz de documento) que contenga a los demás.
  • Todos los elementos deberán estar correctamente anidados.
  • Todos los valores de los atributos deberán ir entre comillas.

Manipulación de los datos XML


Ejemplo:


Diferencia entre XML y HTML
Una diferencia importante de XML con HTML es que este último tiene un conjunto de etiquetas predefinidas que conforman el lenguaje, en cambio XML le permite a los usuarios definir sus propias etiquetas para ser usadas como más les convengan. El objetivo de un documento escrito en XML es describir algo significativo para los autores del documento, de ahí que la flexibilidad de definir etiquetas según convenga sea una ventaja.
Otra diferencia con respecto a otros lenguajes similares, es que XML soporta acceso a bases de datos, facilitando el intercambio de información entre varios componentes de una aplicación. XML es un lenguaje que es usado para intercambio de información no sólo para aplicaciones de Internet, sino también para otras aplicaciones que requieran intercambiar o integrar información.
Entre las ventajas que presenta el uso de XML se pueden mencionar:
  • Es extensible, esto es: se pueden añadir etiquetas para dar un formato a un documento según sea necesario.
  • Los archivos escritos en XML son textos planos, lo que facilita su transmisión y uso por diferentes plataformas.
  • La información que se representa en documentos XML es más rica y fácil de usar e interpretar. Haciendo una generalización simplista: si se puede representar en un árbol, se puede representar en XML.

miércoles, 12 de agosto de 2015

CREACIÓN DE UN CONTROLADOR Y VISTA MEDIANTE MVC EN VISUAL STUDIO 2012


Primeramente ingresamos al visual studio 2012 y nos ubicamos en la pestaña Nuevo y Proyecto. 


En esta ventana elegimos el tipo de proyecto, el nuestro sera en Visual C# en una aplicación Web de ASP.NET MVC 4, y le ponemos un nombre a nuestro proyecto.


Esta es el menú de nuestro proyecto  Prueba1.



Ahora para crear un controlador nos ubicamos sobre la carpeta Controllers le damos clic derecho en Agregar luego Controlador...


Ahora le damos un nombre a nuestro controlador y luego en Agregar.


Luego desplegamos la carpeta Controllers y seleccionamos nuestro controlador creado y al lado izquierdo podemos apreciar el código.


Ahora podemos agregar el siguiente código con un método para dar un ejemplo.


Ahora para crear una vista para este controlador, nos ubicamos sobre el nombre del método (EjemploController) y con clic derecho seleccionamos Agregar Vista...


El nombre lo podemos dar el mismo para referenciarlo o cualquier otro nombre, y le damos clic en Agregar.


Luego si vemos en el explorador de soluciones en carpeta View la desplegamos y en la carpeta Prueba1 podemos ver que esta creada la vista y en la parte derecha vemos su codigo html.


Ahora podemos agregar el siguiente código html para que muestre nuestros datos ingresados. Y finalmente para ejecutar el proyecto pulsamos la tecla F5. 


Esta es la pagina de inicio de nuestro sitio, y en la parte del URL colocamos a continuación Prueba1/Ejemplo que es la ubicación de nuestro ejemplo creado, y le damos Enter.  


Una vez cargado podemos ver nuestra pagina Ejemplo con los datos que habíamos ingresado. y básicamente seria la forma de crear un controlador y una vista.



martes, 11 de agosto de 2015

IIS

Instalación del Servidor Web IIS

En el windows server 2012R2 nos dirigimos al Administrador de servidor y lo abrimos. Luego nos vamos a la pestaña Administrar de la parte superior y seleccionamos Agregar roles y características.


Nos aparece esta ventana donde nos explica como agregar las características o roles, y le damos Siguiente.


Seleccionamos el tipo de instalación que por defecto nos marca Instalación basada en características o en roles, y le damos Siguiente.


Seleccionamos el servidor, en nuestro caso será el servidor de server 2012 marcado con color azul. Y le damos Siguiente.


Seleccionamos el rol que deseamos agregar, en este caso marcamos Servidor web (IIS). 



Nos aparecerá esta ventana donde nos muestra las herramientas del servidor IIS, le damos en Agregar características, luego le damos Siguiente.




En la selección de características vemos que están instaladas las características de .NET Framefork 4.5 y no tenemos que hacer nada, solo damos Siguiente.



En el rol de servidor web (IIS) nos explica un poco lo que es el servidor, y le damos Siguiente.


En Seleccionar servicios de rol por defecto nos marca las siguientes características, le damos Siguiente.  


Y finalmente confirmamos nuestra configuración de la instalación y le damos Instalar.



Luego de completar la instalación del servidor IIS, debemos reiniciar el servidor para que este  termine su configuración. 







Creación de un Sitio Web en el Servidor IIS

Para ingresar al administrador nos vamos al Administrador del Servidor luego nos dirigimos a la pestaña de Herramientas y seleccionamos Administrador de Internet Information Services (IIS).


Esta es la ventana del Administrador de Internet Information Services (IIS), donde nos muestra la página de inicio el nombre del servidor y aquí es donde agregaremos un sitio web a nuestro servidor.


Pero antes nos creamos una carpeta (decopm) en la siguiente dirección del Disco C “C:\inetpub\wwwroot” que son las carpetas del servidor IIS y le damos un nombre a la carpeta. 


Luego entramos a la carpeta creada y creamos un documento de texto, le damos un nombre con la extensión html.


Abrimos en documento de texto y agregamos un código en html para nuestra página, como por ejemplo el siguiente código, lo guardamos y lo cerramos. 


Volviendo al Administrador IIS procedemos a agregar un sitio, en la Página de inicio desplegamos nuestro servidor y en la carpeta Sitios damos clic derecho y seleccionamos Agregar sitio web…    


En esta ventana le damos un nombre al sitio por ejemplo “decopm” el mismo nombre de mi carpeta creada, en la ruta de acceso física la seleccionamos ubicándonos en el cuadro con los puntos en la parte derecha. Buscamos la carpeta “decopm” en su ubicación origen, luego le damos en Aceptar.


Después en el enlace el Tipo será http, Dirección IP nos aparecerá el IP del servidor y lo seleccionamos, el Puerto será en mi caso 8085, pero si no tiene todavía ninguna página creada puede empezar desde el puerto 8080 ya que se designa un puerto por cada página y no importa el orden de los puertos. Y luego le damos en Aceptar.       


Ahora desplegamos la carpeta Sitios y podemos apreciar nuestro sitio creado, luego creamos nuestro documento predeterminado para que pueda cargar nuestra página de inicio. Para esto nos ubicamos sobre Documento predeterminado y hacemos doble clic o clic derecho y seleccionar Abrir característica. 


Luego en la parte derecha en Acciones seleccionamos Agregar… y le damos el nombre de nuestro archivo “prueba.html” donde creamos el código html para la página web y luego en Aceptar


Y finalmente procedemos a ejecutar nuestro sitio. En la parte derecho de la ventana en Examinar sitio web hacemos clic en el link de más abajo con nuestro servidor predeterminado.


Ahora podemos ver que el sitio se está ejecutando correctamente mediante el Internet Explorer.


MVC

¿Qué es MVC?
En líneas generales, MVC (Modelo, Vista, Controlador) es una propuesta de diseño de software utilizada para implementar sistemas donde se requiere el uso de interfaces de usuario. Surge de la necesidad de crear software más robusto con un ciclo de vida más adecuado, donde se potencie la facilidad de mantenimiento, reutilización del código y la separación de conceptos.
Su fundamento es la separación del código en tres capas diferentes, acotadas por su responsabilidad, en lo que se llaman Modelos, Vistas y Controladores, o lo que es lo mismo, Model, Views & Controllers, si lo prefieres en inglés. En este artículo estudiaremos con detalle estos conceptos, así como las ventajas de ponerlos en marcha cuando desarrollamos.
MVC es un "invento" que ya tiene varias décadas y fue presentado incluso antes de la aparición de la Web. No obstante, en los últimos años ha ganado mucha fuerza y seguidores gracias a la aparición de numerosos frameworks de desarrollo web que utilizan el patrón MVC como modelo para la arquitectura de las aplicaciones web.

Por qué MVC
La rama de la ingeniería del software se preocupa por crear procesos que aseguren calidad en los programas que se realizan y esa calidad atiende a diversos parámetros que son deseables para todo desarrollo, como la estructuración de los programas o reutilización del código, lo que debe influir positivamente en la facilidad de desarrollo y el mantenimiento.
Los ingenieros del software se dedican a estudiar de qué manera se pueden mejorar los procesos de creación de software y una de las soluciones a las que han llegado es la arquitectura basada en capas que separan el código en función de sus responsabilidades o conceptos. Por tanto, cuando estudiamos MVC lo primero que tenemos que saber es que está ahí para ayudarnos a crear aplicaciones con mayor calidad.

Modelos
Es la capa donde se trabaja con los datos, por tanto contendrá mecanismos para acceder a la información y también para actualizar su estado. Los datos los tendremos habitualmente en una base de datos, por lo que en los modelos tendremos todas las funciones que accederán a las tablas y harán los correspondientes selects, updates, inserts, etc.
No obstante, cabe mencionar que cuando se trabaja con MCV lo habitual también es utilizar otras librerías como PDO o algún ORM como Doctrine, que nos permiten trabajar con abstracción de bases de datos y persistencia en objetos. Por ello, en vez de usar directamente sentencias SQL, que suelen depender del motor de base de datos con el que se esté trabajando, se utiliza un dialecto de acceso a datos basado en clases y objetos.

Vistas
Las vistas, como su nombre nos hace entender, contienen el código de nuestra aplicación que va a producir la visualización de las interfaces de usuario, o sea, el código que nos permitirá renderizar los estados de nuestra aplicación en HTML. En las vistas nada más tenemos los códigos HTML y PHP que nos permite mostrar la salida.
En la vista generalmente trabajamos con los datos, sin embargo, no se realiza un acceso directo a éstos. Las vistas requerirán los datos a los modelos y ellas se generará la salida, tal como nuestra aplicación requiera.

Controladores
Contiene el código necesario para responder a las acciones que se solicitan en la aplicación, como visualizar un elemento, realizar una compra, una búsqueda de información, etc.
En realidad es una capa que sirve de enlace entre las vistas y los modelos, respondiendo a los mecanismos que puedan requerirse para implementar las necesidades de nuestra aplicación. Sin embargo, su responsabilidad no es manipular directamente datos, ni mostrar ningún tipo de salida, sino servir de enlace entre los modelos y las vistas para implementar las diversas necesidades del desarrollo.

Arquitectura de aplicaciones MVC



En esta imagen se representa con flechas los modos de colaboración entre los distintos elementos que formarían una aplicación MVC, junto con el usuario. Como se puede ver, los controladores, con su lógica de negocio, hacen de puente entre los modelos y las vistas. Pero además en algunos casos los modelos pueden enviar datos a las vistas. Veamos paso a paso cómo sería el flujo de trabajo característico en un esquema MVC.

  1. El usuario realiza una solicitud a nuestro sitio web. Generalmente estará desencadenada por acceder a una página de nuestro sitio. Esa solicitud le llega al controlador.
  2. El controlador comunica tanto con modelos como con vistas. A los modelos les solicita datos o les manda realizar actualizaciones de los datos. A las vistas les solicita la salida correspondiente, una vez se hayan realizado las operaciones pertinentes según la lógica del negocio.
  3. Para producir la salida, en ocasiones las vistas pueden solicitar más información a los modelos. En ocasiones, el controlador será el responsable de solicitar todos los datos a los modelos y de enviarlos a las vistas, haciendo de puente entre unos y otros. Sería corriente tanto una cosa como la otra, todo depende de nuestra implementación; por eso esa flecha la hemos coloreado de otro color.
  4. Las vistas envían al usuario la salida. Aunque en ocasiones esa salida puede ir de vuelta al controlador y sería éste el que hace el envío al cliente, por eso he puesto la flecha en otro color.


viernes, 7 de agosto de 2015

Practica IIS7


¿Qué es un Servidor Web y para que usarlo?

Un servidor web es un programa informático que procesa una aplicación del lado del servidor, realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente y generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado del cliente. El código recibido por el cliente suele ser compilado y ejecutado por un navegador web. Para la transmisión de todos estos datos suele utilizarse algún protocolo. Generalmente se usa el protocolo HTTP para estas comunicaciones, perteneciente a la capa de aplicación del modelo OSI.
Se usan para que los usuarios utilicen sus navegadores web para visitar sitios web, que básicamente se componen de páginas web donde los usuarios pueden acceder a informaciones con texto, videos, imágenes, etc. y acceder a través de enlaces o hipervínculos a otras webs de forma similar cuando entramos mediante internet, pero de manera local sin conexión.

Ventajas de instalar y usar un Servidor Web

Para los que necesitan de acceso frecuente a la información, tener un servidor en el equipo ofrece las siguientes ventajas:
  • Permite acceder a páginas y sitios guardados en el equipo que necesitamos consultar frecuentemente, de la misma manera que lo hacemos en internet pero sin necesidad de conectarnos a la red.
  • Permite probar paginas antes de subirlas a un servidor de internet y comprobar exactamente su funcionamiento, indispensable y útil para publicadores de contenido.

Ventajas de utilizar el servidor IIS dentro de una intranet

Existen varios servidores web, indudablemente el más conocido y popular de ellos es Apache. Al ser software libre permite un control total de la configuración del servidor, pero requiere conocimientos algo avanzados para su uso y no posee ninguna interface de usuario. La gran ventaja del servidor IIS es su facilidad de instalación, configuración y uso, lo que lo hace ideal para el usuario común sin ningún conocimiento avanzado.
Pero si el interés es almacenar páginas y sitios para acceder a ellos offline, ISS es el servidor recomendado.

¿Cómo instalar el servidor IIS en Windows?

  • En el Panel de control abre "Programas y características"
  • En el panel de la izquierda escoge: "Activar o desactivar las características de Windows".
  • En la lista de funciones de Windows marca la casilla: "Internet Information Services" y haz clic en Aceptar.
  • Esta es la instalación predeterminada que incluye las características más comunes.
Si desea tener disponibles funciones para contenido dinámico, entonces realice lo siguiente:
  • En la lista de funciones de Windows, da un clic en el signo más (+) situado junto a Internet Information Services, da un clic en el signo más (+) situado junto a Servicios World Wide Web, da un clic en el signo más (+) situado junto a Características de desarrollo de aplicaciones.
  • Selecciona las funciones que necesites y presiona Aceptar.

¿Cómo administrar y configurar el servidor IIS?

El servidor posee un panel de administración en el cual es posible configurar varios parámetros del funcionamiento de la aplicación.
Dicho panel es posible abrirlo de varias formas:
  • Crea un acceso directo en el Escritorio, en el cuadro "Ubicación del elemento" introduce la ruta:
C:\Windows\System32\inetsrv\InetMgr.exe
  • En el Panel de control selecciona Herramientas administrativas, en ella "Administrador de Internet Information Services (IIS)".
  • Escribe en el cuadro de Inicio o en la pantalla de inicio en Windows 8: inetmgr y presiona la tecla Enter.

¿Cómo acceder al servidor usando el navegador?

Después de instalar el servidor solo introduce en cualquier navegador web que uses la siguiente dirección: “localhost”
También se puede usar: 127.0.0.1, es la dirección IP local del equipo, y se podrá ver la página predeterminada.

¿Qué es un sitio web y una aplicación web cual es la diferencia?

Un sitio web es un sitio (localización) en la World Wide Web que contiene páginas web organizadas jerárquicamente. Cada página web contiene texto y o gráficos que aparecen como información digital en la pantalla de un ordenador. Un sitio puede contener una combinación de gráficos, texto, audio, vídeo, y otros materiales dinámicos o estáticos.

Una aplicación web es cualquier aplicación que es accedida vía web por una red como internet o una intranet. En general son aquellos programas informáticos que son ejecutados en el entorno del navegador (por ejemplo, un applet de Java) o codificado con algún lenguaje soportado por el navegador (como JavaScript, combinado con HTML), confiándose en el navegador web para que ejecute la aplicación.

Una página web es parte de un sitio web y es un único archivo con un nombre de archivo asignado, mientras que un sitio web es un conjunto de archivos llamados páginas web.



6 de AGOSTO


Creación de Bolivia

La invasión de los Incas supuso la imposición de sus leyes, tributos, administración, cultura y lengua (quechua) a gran parte de los pueblos del territorio actual de Bolivia. 
Este extenso territorio dependió del imperio peruano, cuya capital era Cuzco, el “ombligo del mundo”.
Durante la conquista española, Francisco Pizarro mandó a su hermano (Gonzalo Pizarro) a conquistar el Callao y Charcas, Bolivia actual en 1538,
Faltaba alrededor de 60 años para conquistar todo el territorio.
En 1561 se instala en la ciudad de la Plata (actual Sucre) la Real audiencia de Charcas, la autoridad jurídica suprema del Alto Perú. El objetivo era crear un nuevo centro administrativo regional para controlar esa zona, prolífica en plata.
Fue así que el imperialismo español tomó esa parte de América, atraído por las grandes reservas de oro y plata.
Las nuevas ciudades, creadas por los conquistadores, se llenaron de asambleas, de aparatos de justicia, de alcaldías y, por supuesto, de autoridades militares. 
Esta autoridad impuso, por la fuerza y el abuso de poder, su cultura y
religión, explotó al pueblo y se benefició de sus recursos, lo que despertó un sentimiento de odio y rencor hacia el poder español.
Las medidas represivas de los españoles motivaron múltiples rebeliones (como los sublevamientos de 1780), una de ellas fue la de Tupac Catari, que sitió a la ciudad de La Paz durante 109 días. Este movimiento indígena  fue violentamente reprimido y sus líderes fueron ejecutados el 13 de noviembre de 1781.
Las ideas independentistas impulsadas por la revolución francesa (1789), la independencia de los Estados Unidos (1776) y la invasión de España por Napoleón Bonaparte en 1808, se reprodujeron también en los espíritus sudamericanos.
Los primeros sublevamientos tuvieron lugar en 1809 en Chuquisaca y en La Paz.
En 1809, un grupo de revolucionarios de La Paz, bajo el comando de Pedro Domingo Murillo, proclaman, por primera vez, la independencia del Alto Perú.
Un año después, Buenos Aires, capital del Virreinato del Río de la Plata, se declara independiente de la corona.
Tropas argentinas se enfrentaron contra los realistas españoles en la batalla de Suipacha el 7 de noviembre de 1810. Un año después, en la Batalla de Guaqui, el general Goyeneche,comandando fuerzas militares realistas, derrotó a las tropas argentinas.
Los enfrentamientos militares y guerrilleros duraron hasta 1816.
Es a partir de Chile que, en 1820, se pone en movimiento una gran batalla militar para liberar el Alto Perú. El ejército de San Martin, después de múltiples batallas,
logra entrar a Lima el 12 de julio de 1821 y proclama la independencia el 28 de julio de 1821.
El 6 de agosto de 1824, en la batalla de Junín, Bolivar derrota a Canterac, esta victoria constituye el primer paso hacia  la victoria final de Ayacucho.
El 9 de febrero de 1825, el Mariscal Sucre convoca a las provincias del Alt
o Perú a un congreso, donde se decidiría el destino de la nación, que estaba sujeto a tres posibilidades: pertenecer al Río de la Plata, mantener la adhesión al Perú o exigir la independencia total.
La asamblea deliberante, llevada a cabo en Sucre, el 10 de julio de 1825  determina por unanimidad la independencia total del Alto Perú (Bolivia).
Finalmente, el Presidente de la asamblea, José Mariano Serrano, con la ayuda de una comisiónredacta “el Acta de Independencia”, poniendo como fecha simbólica el 6 de agosto 1825, en homenaje a la batalla de Junín.
Por decreto se determina que el nuevo Estado llevará el nombre de Bolivar, en homenaje al Libertador, que al mismo tiempo es declarado Padre de la patria.
Bolivia nace a la vida independiente con los territorios que conformaban la Real Audiencia de Charcas, que en ese entonces comprendía cuatro provincias convertidas en los departamentos: de La Paz, Chuquisaca (con Sucre como capital), Santa Cruz, Cochabamba, Potosí y poco después se crea el departamento de Oruro.

Camino al bicentenario:
Bolivia cumple hoy 185 años y el Presidente Evo Morales decide  hacer una sesión de honor y el pronunciamiento de su discurso en Santa Cruz.
En el contexto político actual, con los problemas de autonomización de las regiones (de Santa Cruz en particular), pronuncia su discurso en Santa Cruz (motor económico del país y centro opositor de gobierno) y reconoce la importancia de esta ciudad.
Las actividades comenzaron a las 6:30 con un tiro de artillería en el parque Urbano. Después el tradicional Te Deum, en la catedral, en homenaje a la iglesia católica. En seguida, otra novedad, sobre la plaza 24 de septiembre, una misa intercultural e interreligiosa, con la participación de autoridades de pueblos originarios de Bolivia, seguida de un desfile cívico.
Los cruceños (habitantes de Santa Cruz) aprovecharon el evento para pedir que no se ice  la wiphala(bandera que representa a las múltiples comunidades indígenas del país), en festividades oficiales, sobre la plaza principal.
Tanto los estudiantes como la gente mayor de la ciudad se manifestaron frente al palacio departamental, cantando el himno cruceño y gritando: “los principios no se negocian”.
El Estado Plurinacional de Bolivia hace honor a su nombre. Esperemos que los esfuerzos de nuestros nuevos gobernantes por conservar la unidad sean recompensados.

miércoles, 5 de agosto de 2015

.NET FRAMEWORK

Que es el .NET Framework 
.NET Framework es una tecnología que admite la compilación y ejecución de la siguiente generación de aplicaciones y servicios Web XML. El diseño de .NET Framework está enfocado a cumplir los siguientes objetivos:
  • Proporcionar un entorno coherente de programación orientada a objetos, en el que el código de los objetos se pueda almacenar y ejecutar de forma local, ejecutar de forma local pero distribuida en Internet o ejecutar de forma remota.
  • Proporcionar un entorno de ejecución de código que minimiza los conflictos en el despliegue y versionado de software.
  • Ofrecer un entorno de ejecución de código que promueva la ejecución segura del mismo, incluso del creado por terceros desconocidos o que no son de plena confianza.
  • Proporcionar un entorno de ejecución de código que elimine los problemas de rendimiento de los entornos en los que se utilizan scripts o intérpretes de comandos.
  • Ofrecer al programador una experiencia coherente entre tipos de aplicaciones muy diferentes, como las basadas en Windows o en el Web.
  • Basar toda la comunicación en estándares del sector para asegurar que el código de .NET Framework se puede integrar con otros tipos de código.
.NET Framework consta de dos componentes principales: 
Common Language Runtime y la biblioteca de clases de .NET Framework. Common Language Runtime es el fundamento de .NET Framework. El motor en tiempo de ejecución se puede considerar como un agente que administra el código en tiempo de ejecución y proporciona servicios centrales, como la administración de memoria, la administración de subprocesos y la comunicación remota, al tiempo que aplica una seguridad estricta a los tipos y otras formas de especificación del código que promueven su seguridad y solidez. De hecho, el concepto de administración de código es un principio fundamental del motor en tiempo de ejecución. El código destinado al motor en tiempo de ejecución se denomina código administrado, a diferencia del resto de código, que se conoce como código no administrado. La biblioteca de clases es una completa colección orientada a objetos de tipos reutilizables que se pueden emplear para desarrollar aplicaciones que abarcan desde las tradicionales herramientas de interfaz gráfica de usuario (GUI) o de línea de comandos hasta las aplicaciones basadas en las innovaciones más recientes proporcionadas por ASP.NET, como Web Forms y Servicios Web XML.
.NET Framework puede hospedarse en componentes no administrados que cargan Common Language Runtime en sus procesos e inician la ejecución de código administrado, con lo que se crea un entorno de software en el que se pueden utilizar características administradas y no administradas. En .NET Framework no sólo se ofrecen varios hosts de motor en tiempo de ejecución, sino que también se admite el desarrollo de estos hosts por parte de terceros.
Por ejemplo, ASP.NET hospeda el motor en tiempo de ejecución para proporcionar un entorno de servidor escalable para el código administrado. ASP.NET trabaja directamente con el motor en tiempo de ejecución para habilitar aplicaciones de ASP.NET y servicios Web XML, que se tratan más adelante en este tema.
Internet Explorer es un ejemplo de aplicación no administrada que hospeda el motor en tiempo de ejecución (en forma de una extensión de tipo MIME). Al usar Internet Explorer para hospedar el motor en tiempo de ejecución, puede incrustar componentes administrados o controles de Windows Forms en documentos HTML. Al hospedar el runtime se hace posible el uso de código móvil administrado, pero con mejoras significativas que solo el código administrado puede ofrecer, como la ejecución con confianza parcial y el almacenamiento aislado de archivos.
En la ilustración siguiente se muestra la relación de Common Language Runtime y la biblioteca de clases con las aplicaciones y el sistema en su conjunto. En la ilustración se representa igualmente cómo funciona el código administrado dentro de una arquitectura mayor.


.NET Framework en contexto

Código administrado dentro de una arquitectura mayor

Características del Common Language Runtime

Common Language Runtime administra la memoria, ejecución de subprocesos, ejecución de código, comprobación de la seguridad del código, compilación y demás servicios del sistema. Estas características son intrínsecas del código administrado que se ejecuta en Common Language Runtime.
Con respecto a la seguridad, los componentes administrados reciben grados de confianza diferentes, en función de una serie de factores entre los que se incluye su origen (como Internet, red empresarial o equipo local). Esto significa que un componente administrado puede ser capaz o no de realizar operaciones de acceso a archivos, operaciones de acceso al Registro y otras funciones delicadas, incluso si se está utilizando en la misma aplicación activa.
El motor en tiempo de ejecución impone la seguridad de acceso del código. Por ejemplo, los usuarios pueden confiar en que un archivo ejecutable incrustado en una página Web puede reproducir una animación en la pantalla o entonar una canción, pero no puede tener acceso a sus datos personales, sistema de archivos o red. Por ello, las características de seguridad del motor en tiempo de ejecución permiten que el software legítimo implementado en Internet sea excepcionalmente variado.
Además, el motor en tiempo de ejecución impone la solidez del código mediante la implementación de una infraestructura estricta de comprobación de tipos y código denominada CTS (Common Type System, Sistema de tipos común). CTS garantiza que todo el código administrado es autodescriptivo. Los diversos compiladores de lenguaje de Microsoft y de otros fabricantes generan código administrado que se atiene al CTS. Esto significa que el código administrado puede consumir otros tipos e instancias administrados, al tiempo que se exige fidelidad de tipos y seguridad de tipos estrictamente.
Además, el entorno administrado del motor en tiempo de ejecución elimina muchos problemas de software comunes. Por ejemplo, el motor en tiempo de ejecución controla automáticamente la disposición de los objetos, administra las referencias a éstos y los libera cuando ya no se utilizan. Esta administración automática de la memoria soluciona los dos errores más comunes de las aplicaciones: la pérdida de memoria y las referencias no válidas a la memoria.
Además, el motor en tiempo de ejecución aumenta la productividad del programador. Por ejemplo, los desarrolladores pueden crear aplicaciones en el lenguaje que prefieran y seguir sacando todo el provecho del motor en tiempo de ejecución, la biblioteca de clases y los componentes escritos en otros lenguajes por otros colegas. El proveedor de un compilador puede elegir destinarlo al motor en tiempo de ejecución. Los compiladores de lenguajes que se destinan a .NET Framework hacen que las características de .NET Framework estén disponibles para el código existente escrito en dicho lenguaje, lo que facilita enormemente el proceso de migración de las aplicaciones existentes.
Aunque el motor en tiempo de ejecución está diseñado para el software del futuro, también es compatible con el software actual y el software antiguo.La interoperabilidad entre el código administrado y no administrado permite que los desarrolladores continúen utilizando los componentes COM y las DLL que necesiten.
El motor en tiempo de ejecución está diseñado para mejorar el rendimiento. Aunque Common Language Runtime proporciona muchos servicios estándar de motor en tiempo de ejecución, el código administrado nunca se interpreta. Una característica denominada compilación JIT (Just-In-Time) permite ejecutar todo el código administrado en el lenguaje máquina nativo del sistema en el que se ejecuta. Mientras tanto, el administrador de memoria evita que la memoria se pueda fragmentar y aumenta la zona de referencia de la memoria para mejorar aún más el rendimiento.
Por último, el runtime se puede hospedar en aplicaciones de servidor de gran rendimiento, como Microsoft SQL Server e Internet Information Services (IIS). Esta infraestructura permite utilizar código administrado para escribir lógica empresarial, al tiempo que se disfruta del superior rendimiento de los mejores servidores empresariales del sector que puedan hospedar el motor en tiempo de ejecución.

Biblioteca de clases de .NET Framework

La biblioteca de clases de .NET Framework es una colección de tipos reutilizables que se integran estrechamente con Common Language Runtime. La biblioteca de clases está orientada a objetos, lo que proporciona tipos de los que su propio código administrado puede derivar funciones. Esto ocasiona que los tipos de .NET Framework sean sencillos de utilizar y reduce el tiempo asociado con el aprendizaje de las nuevas características de .NET Framework. Además, los componentes de terceros se pueden integrar sin dificultades con las clases de .NET Framework.
Por ejemplo, las clases de colección de .NET Framework implementan un conjunto de interfaces que puede usar para desarrollar sus propias clases de colección. Éstas se combinarán fácilmente con las clases de .NET Framework.
Como en cualquier biblioteca de clases orientada a objetos, los tipos de .NET Framework permiten realizar diversas tareas de programación comunes, como son la administración de cadenas, recolección de datos, conectividad de bases de datos y acceso a archivos. Además de estas tareas habituales, la biblioteca de clases incluye tipos adecuados para diversos escenarios de desarrollo especializados. Por ejemplo, puede utilizar .NET Framework para desarrollar los siguientes tipos de aplicaciones y servicios:
  • Aplicaciones de consola.
  • Aplicaciones GUI de Windows (Windows Forms).
  • Aplicaciones de Windows Presentation Foundation (WPF).
  • Aplicaciones de ASP.NET.
  • Servicios de Windows.
  • Aplicaciones orientadas a servicios utilizando Windows Communication Foundation (WCF).
  • Aplicaciones habilitadas para el flujo de trabajo utilizando Windows Workflow Foundation (WF).