.NET es un conjunto de tecnologías para el desarrollo de
aplicaciones, que permite fabricar sistemas informáticos aprovechando al máximo los recursos existentes en la actualidad. Facilita la tarea de los diseñadores y programadores, ambientando el trabajo en equipo, la programación orientada a objetos, la reutilización de código y la escritura de software robusto y eficiente.
.NET no es un lenguaje de programación, ni un editor de
código. No es un compilador, ni un interprete.
Algunas características sobresalientes
o Programación orientada a objetos. .NET ambienta, estimula
y facilita el paradigma de OOP, proveyendo de una gran cantidad de herramientas que garantizan al programador un óptimo rendimiento en el desarrollo de sus aplicaciones.
o Integración a la WEB. Con el advenimiento de las
comunicaciones online, la banda ancha, las comunicaciones Wireless, la tecnología celular y la masificación de los dispositivos móviles, aparecen necesidades inéditas, como ser la distribución de aplicaciones en forma remota, utilizando Internet como medio conductor. .NET permite al desarrollador sacar provecho al máximo de esta realidad tecnológica.
o Multilenguaje. .NET permite desarrollar aplicaciones en
distintos lenguajes de programación, dándole la libertad al programador de utilizar aquellos que le resulten más adecuados para cada tipo de aplicación o simplemente aquellos cuya sintaxis le resulte más cómoda o familiar.
o Integración con herramientas case para diseño. Las
herramientas de diseño son casi una necesidad para el desarrollo de aplicaciones informáticas. .NET soporta integración con algunas de estas herramientas, como el caso del Rational.
o Integración con el entorno de desarrollo Visual Studio
.NET. El Visual Studio.NET es un entorno de programación que facilita la edición, depuración y testeo de aplicaciones. Si bien es técnicamente posible escribir aplicaciones .NET solamente utilizando el Notepad, el Visual Studio.NET soluciona y facilita muchísimas de las tareas que realiza un programador en forma habitual.
o Integración con herramientas de desarrollo en equipo.
.NET permite integrarse a productos de desarrollo corporativo, que permiten el trabajo en equipo por parte de varios desarrolladores en el mismo proyecto en forma simultánea.
Lenguajes de programación
Toda aplicación, sea cual sea la tecnología en que esté
desarrollada, contiene líneas de código escritas en lenguajes de programación. En .NET es posible escribir código en distintos lenguajes. De hecho, como veremos mas adelante, es posible que un mismo proyecto tenga elementos (formularios, módulos, etc.) escritos en distintos lenguajes.
.NET acepta cualquier lenguaje de programación, siempre y
cuando este cumpla con un conjunto de reglas y convenciones, llamado CLS (Common Language Specification). De esta forma, cualquier empresa puede fabricar un lenguaje que genere código para .NET, simplemente respetando estas especificaciones que Microsoft provee en forma publica y gratuita. Existen en la actualidad unos 70 lenguajes que pueden usarse para .NET, la enorme mayoría de los cuales no son fabricados por Microsoft.
No obstante, Microsoft ha desarrollado algunos lenguajes de
programación, de los cuales, los mas conocidos son el Visual Basic.NET, el Visual J++ y el C.NET (mas conocido como C#).
A diferencia de los otros lenguajes de Microsoft para .NET, C#
es el único que ha sido desarrollado específicamente para .NET desde sus comienzo. C# es un lenguaje sumamente poderoso, de sintaxis amigable, robusto, eficiente y completo, y es por esta razón que hemos decidido abordar la enseñanza de .NET a través de C#. Tipos de proyectos
Un proyecto, al igual que en Visual Basic, es un conjunto de
elementos (formularios, módulos, módulos de clase, etc.) que operan juntos para formar una aplicación.
En .NET existen distintas clases de proyectos, de acuerdo a la
utilización del mismo:
o Windows Aplication (Aplicación de Windows): Es el
proyecto que se utiliza en Visual Basic 6. Consiste en un programa ejecutable que corre sobre Windows (mas adelante veremos requerimientos) y consiste básicamente en formularios que permiten al usuario interactuar con la aplicación, ingresando datos y visualizando información.
o Class Library (Biblioteca de clases): Es un repositorio de
clases que deben ser utilizadas desde otros proyectos. Es decir, este tipo de proyectos SOLAMENTE contiene clases (con sus métodos, propiedades y eventos) para que otros proyectos puedan instanciarlas y utilizarlas. Los proyectos de este tipo, por lo tanto, no tienen “vida propia”, deben ser utilizados conjuntamente con otro proyecto.
o Windows Control Library (Biblioteca de Controles para
Windows): Es un proyecto que contiene controles visuales que son utilizados desde proyectos de tipo Windows Application. Estos controles permiten mejorar la interfase y operatividad de de los controles básicos de .NET, de forma que el desarrollador pueda crear controles mas avanzados y sofisticados para utilizar en sus aplicaciones. o Smart Device Aplication (Aplicación para dispositivos móviles): Proyectos para crear aplicaciones que correrán sobre dispositivos con sistema operativo Pocket PC o Windows Mobile.
o ASP.NET Web Application (Aplicación Web para
ASP.NET). Proyectos para aplicaciones que correrán sobre un servidor Web de ASP.NET, y serán utilizadas accediendo a través de un browser. o ASP.NET Web Service (Servicio Web para ASP.NET). Muy resumidamente, un WebService es una función a la que se le envían parámetros y devuelve un valor, tal como en una función común en un programa. La diferencia reside en que mientras la definición de la función y el código que la utiliza (también llamado “la consume”) deben estar en el mismo proyecto, la “consumición” de un Web Service puede hacerse desde otro proyecto distinto del que contiene la definición de la función. Incluso, el otro proyecto puede estar en otra maquina de la red local, puede estar escrito en otro lenguaje, o estar en una computadora físicamente remota solo unida por Internet. De esta forma, en la computadora A se encuentra el WebService, y en la computadora B (que esta en otro país) hay un programa que a través de Internet le manda parámetros al WebService y obtiene los resultados. Un proyecto de tipo WebService entonces, es un conjunto de funciones que permiten ser consultadas a través de la WEB. Al igual que las Class Library, dado que solo proveen servicios a otras aplicaciones, no tienen un ciclo de vida propio, sino que son “consumidas” por aplicaciones que las requieren.
o ASP.NET Web Mobile Application (Aplicaciones móviles
para ASP.NET). Proyectos para crear aplicaciones que se ejecutaran sobre PDA, celulares, u otros dispositivos móviles.
o Web Control Library (Biblioteca de controles Web).
Equivalente a Windows Control Library (Biblioteca de controles para aplicaciones Windows), pero para aplicaciones Web
o Console Application (Aplicaciones de consola). Aplicación
que se ejecuta desde línea de comandos D.O.S.
o Windows Service (Servicios de Windows). Aplicaciones
que correrán como servicios del sistema operativo, es decir, que no requieren iniciar una sesión de usuario para ejecutarse. En algunas situaciones, es necesario combinar distintos proyectos para crear un proyecto mas complejo. Esta unión de dos o mas proyectos para formar una aplicación mas grande se denomina “Solución”. Como mínimo, una aplicación consiste en un proyecto, contenido dentro de una solución. Posteriormente, a la misma solución se le pueden ir agregando nuevos proyectos, del mismo tipo, o de distinto tipo. Imaginemos este escenario: un video club quiere desarrollar un sistema que permita consultar el estado de alquiler de sus películas, y efectuar reservas. Podríamos entonces desarrollar una solución con cuatro proyectos:
1. Una biblioteca de clases, que tendrá la definición de todas las
clases a utilizar con sus métodos, propiedades y eventos. Por ejemplo, una clase “Película” con una propiedad “Estado” y un método “Reservar”.
2. Una Windows Application, para generar un sistema de escritorio
que pueda ser ejecutado en las computadoras del mostrador del negocio. Esta aplicación utiliza las clases del punto 1.
3. Una ASP.NET Web Aplication que permita que los socios
acceder desde sus casas por medio de Internet. Esta aplicación también utiliza las clases del punto 1.
4. Una ASP.NET Web Service, que permita a aplicaciones de
escritorio de otras sucursales del video club acceder vía Web y consultar online el estado de la películas.
Por que elegimos .NET?
Porque creemos que es una tecnología sumamente avanzada,
que cada vez tendrá mayores adeptos en el mundo informático, y que el mercado demandara en forma incremental. Consideramos importante que nuestros alumnos estén formados en las tecnologías que mas se utilizaran en un futuro cercano, y .NET se perfila como una tecnología de amplia difusión en todo el mundo.
Que es el Framework .NET ?
El Framework.NET es el núcleo de la plataforma .NET. Es un
conjunto de recursos entre los que se destacan tres elementos principales: el compilador, la CLR (Common Language Runtime) y la BCL (Base Class Library). El compilador es el encargado de “recibir” el código fuente escrito por el programador, y generar instrucciones en un lenguaje intermedio llamado MSIL (Microsoft Intermediate Languaje). Estas instrucciones MSIL son idénticas, sea cual fuere el lenguaje en que haya sido escrito el código fuente original. Este código MSIL, al momento de ser ejecutado, se ira compilando por partes, de forma que solo se compila el fragmento de la aplicación que se va a ejecutar. A esta forma de compilación se la llama “compilación JIT” (Just In Time).
Esta compilación se ejecuta sobre una maquina virtual,
denominada CLR (Common Language Runtime), de forma que cualquier lenguaje que compile MSIL puede ejecutarse en forma idéntica. Y, por otro lado, cualquier clase de equipo para el que exista un Framework.NET podrá ejecutar aplicaciones .NET (dispositivos móviles, celulares, etc.).
Por ultimo, .NET provee de una extensísima biblioteca de
funciones y utilidades, que están disponibles para cualquier aplicación que se ejecute sobre el Framework, llamada BCL (Base Class Library)
Propuesta de Implementación Del Marco de Desarrollo Ágil (SCRUM) en El Departamento de Sistemas y en El Curso Análisis de Sistemas II de La Escuela de Ingeniería en UNADECA.