Sunteți pe pagina 1din 8

Curso de Programación en Lenguajes Estructurados. Tema 2 C# y la plataforma .

NET 1

Tema 2

C# y la plataforma .NET

2.1 Introducción.
C# es un nuevo lenguaje de programación que ha sido diseñado con la intención de desarrollar
aplicaciones para Internet. Esto no quiere decir que no sea posible el desarrollo de otro tipo de aplicaciones
como puedan ser las aplicaciones de propósito general, las aplicaciones con interfaz gráfica, o las aplicaciones
para dispositivos móviles.

Este moderno lenguaje orientado a objetos permite escribir aplicaciones para la plataforma Microsoft
.NET. Este es el nombre de un nuevo conjunto de tecnologías en las que Microsoft ha estado trabajando
durante los últimos años. De forma muy resumida podríamos que es un entorno de desarrollo y ejecución que
proporciona el acceso a los servicios de Windows y que integra tecnologías existentes (Web, COM+) con otras
nuevas, como los servicios Web, todo ello con una clara orientación a Internet.

Para crear aplicaciones para la plataforma .NET, Microsoft ha publicado el llamado kit de desarrollo de
software conocido como .NET Framework SDK. (Herramientas de desarrollo de software para la estructura
.NET, o algo así...). Este paquete de software contiene herramientas para el desarrollo, distribución y ejecución
de aplicaciones .NET. También proporciona, entre otras cosas, un compilador de C#. Con Visual Studio.NET
se puede hacer lo mismo pero de un manera más fácil y cómoda para el desarrollador. Es un IDE (entorno de
desarrollo integrado) basado en ventanas.

2.2 Microsoft .NET.


Para entender mejor la finalidad de esta nueva plataforma .NET, vamos a dar un repaso a las tecnologías
de Internet. Inicialmente la Red se dedicaba a trabajar con la información de una manera estática,
presentándola al usuario como si fuera un tablón de noticias. Posteriormente se consiguió que las aplicaciones
pudieran interaccionar con las personas, como es el caso de las aplicaciones de comercio electrónico.
Actualmente se está intentando que las aplicaciones puedan interaccionar con otras aplicaciones. Por ejemplo
una aplicación de compra de billetes de avión que usa los datos de una aplicación de calendario que también
está en Internet.

La filosofía de .NET se basa en que los sitios Web, actualmente aislados, y los diferentes dispositivos
(ordenadores, agendas, móviles, frigoríficos, etc.), puedan trabajar conectados a través de la Red. Con esto se
pretende que Internet no sólo sea una fuente de datos, sino también de servicios. Para ello es necesario unos
mecanismos estándar y abiertos que permitan la representación y comunicación de la información. Un estándar
de este tipo, y adoptado en la plataforma .NET es XML (Extensible Markup Languaje – lenguaje extensible
para describir documentos - ).

Estos servicios que se pueden proporcionar por Internet (o por una Intranet), se denominan servicios Web.
Básicamente es una aplicación que muestra sus características software en una red, que utiliza protocolos
estándar de Internet para la transmisión de datos (HTML) y el intercambio de los mismos (XML).

Resumiendo. La plataforma .NET ha sido desarrollada fundamentalmente sobre los servicios Web,
creándose día a día tecnologías e infraestructuras que permitan desarrollar este concepto. Estas nuevas
tecnologías de la plataforma .NET se basan en los siguientes componentes:

Carlos Martín Ruiz. Programación en Lenguajes Estructurados


IES Zaidín Vergeles de Granada. Departamento de Informática. Desarrollo de Aplicaciones Informáticas.
2 Curso de Programación en Lenguajes Estructurados. Tema 2 C# y la plataforma .NET

− Herramientas de programación y de desarrollo que permitan crear servicios Web basados en XML. Aquí
podemos encontrar lenguajes (VB.NET, C#, J#, etc), herramientas ( .NET Framework SDK, Visual
Studio .NET, WebMatrix), librerías de clases no sólo para servicios Web, sino también para aplicaciones
Web y aplicaciones Windows; y por último el CLR (la máquina virtual ...).

− Servidores especializados como pueden ser SQL Server (para datos), Exchange (para el correo) o el
servidor BizTalk (para la gestión de comercio electrónico B2B).

− Servicios Web. Podemos pensar en los servicios Web como pequeñas aplicaciones que proporcionan
soluciones. Servicios Web de autentificación de usuario, de almacenamiento de datos, de calendario, etc.
(El proyecto HailStorm es una oferta comercial de servicios Web. También los hay gratuitos...).

− Software para dispositivos .NET (NET enabled) con el fin de obtener cacharros “inteligentes” que usen
los servicios Web. (Teléfonos, consolas, PDA, frigoríficos, ThermoMix, etc.).

2.3 NET Framework.


.NET Framework es el componente principal de la plataforma .NET proporcionando la infraestructura
para el desarrollo de las aplicaciones y la integración de servicios Web. Es un componente de desarrollo
multilenguaje y un entorno de ejecución. La figura siguiente muestra los componentes principales de .NET
Framework.

VB C# C++ JScript ...

CLS: especificación de lenguaje común

ASP.NET: Formularios Windows


Servicios Web
Formularios Web Visual

ADO.NET : Datos y XML Studio

BCL: biblioteca de clases base

CLR: máquina virtual

Windows Servicios COM+

 CLS. Common Language Specification.


.Net proporciona un entorno unificado para todos los lenguajes de programación. El CLS especifica una
serie de reglas que han de seguir las definiciones de los tipos de datos. Estas reglas son comunes para los
lenguajes gestionados en .NET, permitiéndose así que una aplicación o servicio esté escrito usando varios
lenguajes. Actualmente se integran los lenguajes Visual Basic, C#, C++ y JScript. Otros fabricantes
pueden integrar diferentes lenguajes (COBOL, Pascal, etc) a condición de que cumplan las reglas de
integración que marca el CLS.

 ASP.NET. Active Server Page.


Con ASP.NET se suministra una plataforma para poder diseñar aplicaciones Web: formularios Web o
servicios Web. Los formularios Web son aplicaciones en donde la interfaz principal de usuario se
presenta mediante un explorador Web. Son las típicas aplicaciones de Internet. Tienen la ventaja de que el
usuario sólo necesita un explorador para ejecutarlas y que son independientes de la máquina o equipo que
utilice. Los servicios Web son aplicaciones que se instalan en servidores desde los cuales prestarán sus
servicios a las aplicaciones clientes que los soliciten.

Carlos Martín Ruiz. Programación en Lenguajes Estructurados


IES Zaidín Vergeles de Granada. Departamento de Informática. Desarrollo de Aplicaciones Informáticas.
Curso de Programación en Lenguajes Estructurados. Tema 2 C# y la plataforma .NET 3

 Formularios Windows.
Los formularios Windows son las típicas aplicaciones con interfaz gráfica en las que el mayor tiempo de
ejecución transcurre en la máquina cliente. La mayoría de las aplicaciones son de este tipo, como por
ejemplo los juegos de ordenador.

 ADO.NET. ActiveX Data Objects.


ADO.NET proporciona las clases necesarias para el acceso a bases de datos. Tiene la ventaja que usa
XML para la transferencia de datos; esto permite enviar los datos mediante protocolos simples como es el
caso del protocolo HTTP.

 BCL. Biblioteca de clases base.


Una biblioteca de clases es un conjunto de ficheros que contienen clases que definen las tareas más
comunes para que los programadores no tengamos que escribirlas. La BCL define además interfaces y
tipos para facilitar la tarea de programación. Como los lenguajes .NET cumplen con la CLS, la BCL es
compartida por todos ellos. La BCL es muy amplia, por lo que ha sido necesario organizarla en espacios
de nombres que agrupen clases con funcionalidades comunes.

 CLR. Common Languaje RunTime.


El CLR es el núcleo de la plataforma .NET y es un entorno de ejecución. Se trata de una máquina virtual
que administra la ejecución del código y proporciona servicios necesarios en tiempo de ejecución como
son la recolección de basura (objetos no referenciados), el control de los tipos de los datos, la gestión de
memoria, soporte de versiones, seguridad mejorada, etc. La CLR es el encargada de procesar el código de
las aplicaciones .NET.

Una aplicación escrita en cualquier lenguaje de programación debe compilarse para generar un
código nativo compatible con la máquina. En .NET cualquier código escrito en los lenguajes integrados
en la plataforma generan al compilarse un código intermedio denominado MSIL (Microsoft Intermediate
Language). Este código intermedio es independiente de la maquina, y es el que procesa la máquina
virtual. La ventaja de esto es que cualquier código MSIL puede transportarse a cualquier plataforma
(Intel, Sparc, Motorola, PowerPc, etc) que tenga una máquina virtual .NET instalada y ejecutarse.

El MSIL generado al compilar se guardará en disco en un archivo con extensión .exe o .dll llamado
ensamblado. Este archivo, a parte del código intermedio contiene otras informaciones que describen cada
elemento que debe ser manejado por la CLR. Estas informaciones llamados metadatos se refieren a la
administración de memoria, integración de múltiples lenguajes, seguridad, recolección de basura, etc.

Un ensamblado contiene toda la información que necesita el CLR para procesarlo. Por un lado el
MSIL, el cual contiene el proceso a realizar y por otro el llamado manifiesto que incluye los metadatos
que describen al propio ensamblado (versión, tipos, dependencias, etc). La ventaja del ensamblado es que
es portable, en el sentido de que este fichero se puede trasladar y ejecutar en diferentes máquinas siempre
que dispongan de un CLR, ya que en el manifiesto se describa así mismo.

Para que el código MSIL pueda ser ejecutado, debe ser convertido por un compilador JIT (Just in
Time – al instante -) a código nativo o máquina. Esta conversión no se realiza en un solo paso y luego se
ejecuta, sino que lo va convirtiendo a medida que es necesario. Así un trozo de código es compilado a
código nativo cuando es llamado por primera vez para ser ejecutado, y el código nativo que se obtiene se
guarda para que esté disponible para llamadas posteriores. Si el código máquina obtenido cumple con las
especificación CLS se denomina código administrado. El código no administrado también es ejecutado
por la máquina virtual, pero se ejecuta con los servicios mínimos del CLR (sin recolector de basura,
depuración limitada, etc.).

Existe una utilidad ngen.exe con la que es posible compilar completamente cualquier ensamblado
que contenga código gestionado y convertirlo a código nativo. De este modo se dispone de una versión
compilada lista para su ejecución sin necesidad de realizar una compilación dinámica.

 COM+. Component Object Model +.


COM es un modelo de programación que permite desarrollar componentes reutilizables: fragmento de
código reutilizable en cualquier aplicación Windows. El modelo COM+ es una mejora del primitivo
modelo COM prestando servicios para las aplicaciones distribuidas de gran escala. El problema es que

Carlos Martín Ruiz. Programación en Lenguajes Estructurados


IES Zaidín Vergeles de Granada. Departamento de Informática. Desarrollo de Aplicaciones Informáticas.
4 Curso de Programación en Lenguajes Estructurados. Tema 2 C# y la plataforma .NET

este modelo no se puede escalar a Internet debido a que el acoplamiento entre el servicio que proporciona
COM+ y el cliente es muy estrecho. Con .NET se soluciona utilizando otro mecanismo de acoplamiento
basado en mensajería que usa protocolos Web y XML.

 Visual Studio.
Para escribir aplicaciones .NET, Microsoft proporciona el .NET Framework SDK. Este kit de desarrollo
proporciona los componentes expuestos anteriormente más un compilador de C#. El inconveniente del
SDK es que no dispone de herramientas gráficas que ayude al programador en el desarrollo de las
aplicaciones. Visual Studio en cambio proporciona un conjunto muy completo de dichas herramientas.
Dispone de asistentes, plantillas y utilidades para escribir aplicaciones Web, servicios Web, aplicaciones
de consola, de escritorio y para móviles. Incorpora compiladores para todos los lenguajes de .NET
pudiendo crear soluciones multiplataforma. Una gran ventaja que proporciona Visual Studio es que
permite separar el diseño de la aplicación de la parte de la programación.

La versión mas reciente de Visual Studio es Visual Studio 2005. Bajo esta herramienta se presenta
una línea de productos como son:

- Visual Studio 2005 Express. Son herramientas sencillas de aprender y más ligeras. Ideal para
aprendices que quieren crear aplicaciones Windows y sitios Web. Se compone de varios paquetes
de software independientes: Visual Web Developer 2005 Express Edition, VB 2005 EE, VC#
2005 EE, VC++ 2005 EE, SQL Server 2005 EE y VJ# 2005 EE. Cada una de ellas se pueden
descargar gratuitamente del sitio Web de Microsoft y son operativas bajo registro en línea.

- Visual Studio 2005 Standard Edition, VS 2005 Professional Edition, VS 2005 Tools para MS
Office System y VS 2005 Team System. Todas estas permiten desarrollos profesionales y algunas
de ellas están orientadas para escribir soluciones integradas con el paquete Office y para trabajo en
grupo. Por supuesto esta línea de productos es de pago o de mucho pago.

Existe un entorno de desarrollo integrado (EDI) gratuito para construir aplicaciones .NET usando C#
llamado SharpDevelop. Su interfaz es muy parecida a la de Visual Studio, aunque no es una herramienta
tan completa.

2.4 El lenguaje C#.


C# (pronunciado en inglés “C Sharp” y en español “C almohadilla”) es el nuevo lenguaje diseñado por
Microsoft para su plataforma .NET. En concreto, ha sido diseñado por Scott Wiltamuth y Anders Hejlsberg,
éste último muy conocido por haber sido el diseñador del lenguaje Turbo Pascal y la herramienta RAD Delphi.

Aunque en realidad es posible escribir código para la plataforma .NET en muchos otros lenguajes, como
Visual Basic.NET, C# es el único que ha sido diseñado específicamente para ser utilizado en esta plataforma,
por lo que programarla usando C# es mucho más sencillo e intuitivo que hacerlo con cualquiera de los otros
lenguajes. Por esta razón, Microsoft suele referirse a C# como el lenguaje nativo de .NET, y de hecho, gran
parte de la librería de clases base de .NET ha sido escrito en este lenguaje.

C# es un lenguaje orientado a objetos sencillo, moderno, amigable, intuitivo y fácilmente legible que ha
sido diseñado por Microsoft con el ambicioso objetivo de recoger las mejores características de muchos otros
lenguajes, fundamentalmente Visual Basic, Java y C++, y combinarlas en uno sólo en el que se unan la alta
productividad y facilidad de aprendizaje de Visual Basic con la potencia de C++.

Quizás el más directo competidor de C# es Java, lenguaje con el que guarda un enorme parecido en su
sintaxis y características. En este aspecto, es importante señalar que C# incorpora muchos elementos de los
que Java carece (sistema de tipos homogéneo, propiedades, indexadores, tablas multidimensionales,
operadores redefinibles , etc.)

Ahora se expondrán las principales características de C#. Seguramente si no has programado en algún otro
lenguaje orientado a objetos no comprenderás algunas cuestiones. No importa (por ahora, luego sí); a medida
que avancemos en el curso se irán aclarando estas “extrañas”características.

Carlos Martín Ruiz. Programación en Lenguajes Estructurados


IES Zaidín Vergeles de Granada. Departamento de Informática. Desarrollo de Aplicaciones Informáticas.
Curso de Programación en Lenguajes Estructurados. Tema 2 C# y la plataforma .NET 5

 Dispone de todas las características propias de cualquier lenguaje orientado a objetos: encapsulación,
herencia y polimorfismo.

 Ofrece un modelo de programación orientada a objetos homogéneo, en el que todo el código se escribe
dentro de clases y todos los tipos de datos, incluso los básicos, son clases que heredan de System.Object .

 Permite definir estructuras, que son clases un tanto especiales: sus objetos se almacenan en pila, por lo
que se trabaja con ellos directamente y no referencias al montículo, lo que permite accederlos más rápido.
Sin embargo, esta mayor eficiencia en sus accesos tiene también sus inconvenientes, fundamentalmente
que el tiempo necesario para pasarlas como parámetros a métodos es mayor (hay que copiar su valor
completo y no sólo una referencia) y no admiten herencia (aunque sí implementación de interfaces)

 Es un lenguaje fuertemente tipado, lo que significa se controla que todas las conversiones entre tipos se
realicen de forma compatible, lo que asegura que nunca se acceda fuera del espacio de memoria ocupado
por un objeto. Así se evitan frecuentes errores de programación y se consigue que los programas no
puedan poner en peligro la integridad de otras aplicaciones.

 Tiene a su disposición un recolector de basura que libera al programador de la tarea de tener que
eliminar las referencias a objetos que dejen de ser útiles, encargándose de ello éste y evitándose así que se
agote la memoria porque al programador olvide liberar objetos inútiles o que se produzcan errores porque
el programador libere áreas de memoria ya liberadas y reasignadas.

 Incluye soporte nativo para eventos y delegados. Los delegados son similares a los punteros a funciones
de otros lenguajes como C++ aunque más cercanos a la orientación a objetos, y los eventos son
mecanismos mediante los cuales los objetos pueden notificar de la ocurrencia de sucesos. Los eventos
suelen usarse en combinación con los delegados para el diseño de interfaces gráficas de usuario, con lo
que se proporciona al programador un mecanismo cómodo para escribir códigos de respuesta a los
diferentes eventos que puedan surgir a lo largo de la ejecución de la aplicación. (pulsación de un botón,
modificación de un texto, etc.)

 Incorpora propiedades, que son un mecanismo que permite el acceso controlado a miembros de una clase
tal y como si de campos públicos se tratasen. Gracias a ellas se evita la pérdida de legibilidad que en otros
lenguajes causa la utilización de métodos Set() y Get() pero se mantienen todas las ventajas de un acceso
controlado por estos proporcionada.

 Permite la definición del significado de los operadores básicos del lenguaje (+, -, *, &, ==, etc.) para
nuestros propios tipos de datos, lo que facilita enormemente tanto la legibilidad de las aplicaciones como
el esfuerzo necesario para escribirlas. Es más, se puede incluso definir el significado del operador [] en
cualquier clase, lo que permite acceder a sus objetos tal y como si fuesen tablas. A la definición de éste
último operador se le denomina indizador, y es especialmente útil a la hora de escribir o trabajar con
colecciones de objetos.

 Admite unos elementos llamados atributos que no son miembros de las clases sino información sobre
éstas que podemos incluir en su declaración. Por ejemplo, indican si un miembro de una clase ha de
aparecer en la ventana de propiedades de Visual Studio.NET, cuáles son los valores admitidos para cada
miembro en ésta, etc.

2.5 Construcción de un programa en C#


Mediante un ejemplo veremos como se realiza un programa en C#. Los pasos necesarios son: edición del
programa, compilación del mismo, ejecución y si es necesario depuración. Inicialmente usaremos el .NET
Framework SDK que se supone que está ya instalado en la máquina.

Necesitamos una aplicación que nos permita editar el código fuente. Basta con un editor de texto sin
formato, también llamados planos o ASCII. Podemos utilizar el bloc de notas del propio Windows. El
programa que se va a construir es el ya clásico ejemplo que muestra un mensaje de saludo. Una vez que
tenemos el editor en ejecución sólo basta escribir el código fuente. Finalmente hay que guardar en disco el
código. El nombre del archivo puede ser cualquiera, pero con extensión cs; como por ejemplo HolaMundo.cs.

Carlos Martín Ruiz. Programación en Lenguajes Estructurados


IES Zaidín Vergeles de Granada. Departamento de Informática. Desarrollo de Aplicaciones Informáticas.
6 Curso de Programación en Lenguajes Estructurados. Tema 2 C# y la plataforma .NET

/*
Autor: yo
Este programa presenta un saludo por pantalla
*/
class HolaMundo
{
public static void Main(string[] args)
{
System.Console.WriteLine(“Hola mundo”);
}
}

Vamos a comentar un poco las líneas del programa anterior. Las líneas encerradas entre /* y */ son un
comentario. Los comentarios no son tenidos en cuenta por el compilador, su misión es aclarar un programa
cuando se lee. A continuación se declara la clase de objetos HolaMundo. El esqueleto de un programa en C#
se basa como mínimo en la definición de una clase; de hecho todo el código debe estar contenido en una clase
(excepto las instrucciones using, los espacios de nombres y las declaraciones de estructuras). La declaración de
una clase, también llamado el cuerpo de una clase, se escribe entre llaves {}. En el cuerpo de una clase, en
entre otras cosas, se escriben las acciones que debe llevar a cabo un programa en C#.

El cuerpo de la clase contiene el método principal Main(). Todos los métodos acaban después de su
nombre con unos paréntesis (). El cuerpo de un método, encerrado entre llaves, define un bloque de código que
contiene las acciones que tiene que ejecutar dicho método. Todo programa ejecutable de C# debe tener un
método Main(). Este método es el punto de entrada del programa, es decir, cuando se ejecuta el programa, se
hace una llamada al método Main(), ejecutándose todas las acciones definidas en su cuerpo.

Desde Main() se realiza la llamada al método WriteLine() de la clase Console del espacio de nombres
System de la biblioteca de C#. Este método tiene como resultado escribir la cadena de caracteres que tiene
como argumento (entre paréntesis). Una cadena de caracteres es una secuencia de caracteres entre comillas.

Como vemos C# no dispone de instrucciones que escriban datos; este trabajo queda para la biblioteca de
clases de .NET. Esta biblioteca está almacenada en un conjunto de ficheros (con extensión dll, lib, etc.) que
contienen las clases que definen las tareas más comunes. Recordar que un espacio de nombres agrupa a un
conjunto de clases con funcionalidades comunes. En este caso el método WriteLine() es un método de la clase
Console la cual está dentro del espacio de nombres System. Si este método no estuviera definido, deberíamos
nosotros escribir el código que permitiera escribir datos por pantalla. Mejor que no.

Observar que la sentencia que llama al método WriteLine() finaliza con punto y coma. Las líneas que
declaran una clase o un método no finalizan con punto y coma; deben abrir llaves, escribir a continuación su
cuerpo, y cerrar las llaves.

Terminado de escribir el código hay que salvar su contenido en una archivo de disco. El nombre del
archivo NO TIENE que coincidir con el nombre de la clase principal del programa. Sólo es obligatorio que su
extensión sea cs.

A continuación se debe compilar el código fuente a código MSIL. El SDK contiene un programa
ejecutable desde la línea de órdenes, csc, para compilador código escrito en C#. El resultado es un archivo con
el mismo nombre que el archivo fuente pero con extensión exe. Este archivo contiene el MSIL que puede
ejecutar la máquina virtual de .NET cuando lo invoquemos.

Así, la orden para compilar el archivo HolaMundo.cs sería:

csc HolaMundo.cs

Si el sistema operativo da un mensaje del tipo de que no encuentra o no reconoce la orden csc,
posiblemente haya que indicarle al SO la ruta o ubicación del archivo csc.exe. Para ello hay que añadir a la
variable de entorno path la ruta de la carpeta donde se encuentra el compilador. Esto se consigue con la orden:

set path=%path%;C:\WINDOWS\Microsoft.NET\Framework\vx.y.z

Carlos Martín Ruiz. Programación en Lenguajes Estructurados


IES Zaidín Vergeles de Granada. Departamento de Informática. Desarrollo de Aplicaciones Informáticas.
Curso de Programación en Lenguajes Estructurados. Tema 2 C# y la plataforma .NET 7

Lo que aparece como x,y,z, serán números que indicarán la versión del SDK que tengamos instalado.

Si se producen errores de compilación, se mostrarán los mensajes de error correspondientes por pantalla.
El compilador informa del tipo de error y de la línea en donde aparece. Deberemos editar de nuevo el archivo
fuente, subsanar los errores, salvar en disco y volver a compilar. Si la compilación no produce errores, no nos
avisa de ello, sino que aparece el indicador de órdenes del sistema. Para ejecutar el programa basta escribir en
el indicador de órdenes del sistema el nombre del archivo ejecutable (no es necesario escribir la extensión exe)
y pulsar Enter. El resultado deber ser el esperado; la presentación en pantalla del mensaje.

En el proceso de compilación, hay que tener en cuenta que el compilador sólo busca las clases
predefinidas que pertenezcan a la BCL en el archivo mscorlib.dll. Esto es lo que sucede con la clase Console.
Si se usan otras clases que no estuvieran en este archivo, hay que indicárselo al compilador usando la opción
/r. Por ejemplo:

csc /r:System.Windows.Forms.dll, System.Drawing.dll fichero.cs

Puede suceder que la solución que hemos dado no sea correcta. En este caso debemos realizar un análisis
detallado de cómo se comporta el programa a lo largo de sus ejecución; es decir se debe realizar un proceso de
depuración. Hay programas, depuradores, que facilitan esta tarea. Unos son independientes, aunque lo más
cómodo es usar los depuradores que vienen incluidos en los IDE.

2.6 Construcción de un programa en C# con Visual Studio.


Para editar y ejecutar el programa anterior HolaMundo con VS se deben realizar los siguientes pasos:

1. Partiendo de la página de inicio de Visual Studio, hacemos clic Crear: Proyecto... para crear un proyecto
nuevo, o bien ejecutamos la orden Archivo > Nuevo > Proyecto. Esto nos presentará una ventana con una
serie de plantillas que se pueden utilizar. Para que la ventana anterior muestre la lista Ubicación y la caja
de texto Nombre de la solución hay que habilitar, si no lo está, la opción “Guardar nuevos proyectos al
crearlos” que podemos encontrar activando Herramientas > Opciones > Proyectos y soluciones.

2. Para nuestro ejemplo deberemos elegir Aplicación de Consola, especificar el nombre del proyecto y su
ubicación. El proyecto se creará en una carpeta con el mismo nombre. Pulsado el botón Aceptar, se creará
el esqueleto del proyecto de acuerdo con la plantilla seleccionada. Para cambiar el nombre asignado al
fichero .cs, se hace clic sobre Program.cs y utilizando el botón derecho del ratón, aparecerá un menú
contextual con la orden Cambiar nombre.

3. Después de escribir el código del programa podemos comprobar que se trata de una aplicación de consola.
Para ello seleccionar Proyecto > Propiedades de HolaMundo > Aplicación > Tipo de resultado >
Aplicación de consola.

4. Para compilar el programa, ejecutamos la orden Generar HolaMundo del menú Generar. Para ejecutar el
programa se selecciona la orden Iniciar sin depurar del menú Depurar, o bien se pulsa las teclas Ctrl +
F5. También se puede ejecutar la orden Iniciar depuración del mismo menú o con las teclas F5. Los
resultados del proceso de compilación se muestran en la ventana Resultados.

2.7 Depuración de una aplicación con Visual Studio.


El proceso de depuración consiste en ejecutar la aplicación paso a paso, por sentencias o métodos para
observar el flujo seguido durante su ejecución, así como los resultados intermedios que se van obteniendo para
detectar las anomalías que producen un resultado final incorrecto.

Para depurar una aplicación con el depurador de Visual Studio se ejecuta la orden Depurar > Paso por
instrucciones y a continuación se utilizan las órdenes del menú Depurar o los botones correspondientes de la
barra de herramientas. Estas órdenes son:

 Iniciar F5. Inicia la ejecución en modo de depuración hasta encontrar un punto de parada o hasta el final
si no hay puntos de parada.

Carlos Martín Ruiz. Programación en Lenguajes Estructurados


IES Zaidín Vergeles de Granada. Departamento de Informática. Desarrollo de Aplicaciones Informáticas.
8 Curso de Programación en Lenguajes Estructurados. Tema 2 C# y la plataforma .NET

 Alternar puntos de interrupción F9. Pone o quita un punto de parada en la línea sobre la que está el punto
de inserción.

 Detener depuración Mayus+F5. Detiene el proceso de depuración.

 Paso a paso por instrucciones F11. Ejecuta la aplicación paso a paso. Si la línea a ejecutar coincide con
una llamada a un método definido por el usuario, dicho método también se ejecuta paso a paso.

 Paso a paso por procedimientos F10. Ejecuta la aplicación paso a paso. Si la línea a ejecutar coincide con
una llamada a un método definido por el usuario, dicho método NO se ejecuta paso a paso, sino de una
sola vez.

 Paso a paso para salir Mayus+F11. Cuando un método de usuario ha sido invocado para ejecutarse paso
a paso, usando esta orden puede finalizarse su ejecución en un solo paso.

 Ejecutar hasta el cursor Ctrl+F10. Ejecuta el código que hay entre la última línea ejecutada y la línea
donde se encuentra el punto de inserción.

 Inspección rápida Ctrl+Alt+Q. Visualiza el valor de la variable que está bajo el punto de inserción o el
valor de la expresión seleccionada.

 Iniciar sin depurar Ctrl+F5 del menú Depurar. Ejecuta la aplicación en un solo paso.

Durante el proceso de depuración se puede ver en la ventana Automático los valores de las variables y
expresiones que queramos. En la ventana Inspección podemos escribir la expresión que deseamos ver.

También podemos seleccionar de la ventana de código la expresión cuyo valor se quiere inspeccionar y
ejecutar Inspección rápida... Esto mismo se consigue colocando el puntero del ratón sobre la expresión;
aparecerá una etiqueta con el valor.

Carlos Martín Ruiz. Programación en Lenguajes Estructurados


IES Zaidín Vergeles de Granada. Departamento de Informática. Desarrollo de Aplicaciones Informáticas.

S-ar putea să vă placă și