c# 5 los fundamentos del lenguaje (2012)

Upload: pat-bonil

Post on 02-Mar-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    1/367

    L s fundame to l g j

    V

    Thier y G ROIUS A D

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    2/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69365

    C# 5Los fundamentos del lenguaje - Desarrollar con Visual Studio 2012

    Este libro sobre C# se dirige a los desarrolladores , incluso principiantes, que desean dominar ellenguaje C# en su versin 5.

    Despus de una descripcin del entorno de desarrollo ( Visual Studio 2012 ), el lector descubrir lasbases de la programacin orientada a objetos con C#. Evolucionar gradualmente hacia su puesta

    en marcha con el desarrollo de aplicaciones Windows Form . Las novedades que presenta estelenguaje en lo relativo a la programacin asncrona le permitirn mejorar el rendimiento y lareactividad de sus aplicaciones. Los numerosos ejemplos y consejos de uso de las herramientas dedepuracin le proporcionarn una gran ayuda para la implementacin de una aplicacin.

    Se dedica un captulo al acceso a las bases de datos con la ayuda de ADO.NET y de SQL, lo que lepermitir evolucionar hacia el desarrollo de aplicaciones cliente-servidor. Tambin se detallan laspotentes funcionalidades de LINQ para facilitar el acceso a los datos y el trabajo con ellos.Igualmente se presenta el uso del lenguaje XML , ya que facilita el intercambio de datos con otrasaplicaciones.

    Los usuarios de las versiones anteriores descubrirn las novedades y mejoras de esta versin 2012para desarrollar an ms rpida y fcilmente aplicaciones para e l framework .NET 4.5 .

    Se presenta la distribucin de una aplicacin utilizando Windows Installer y la tecnologa ClickOnce .

    Los captulos del libro:Prlogo Presentacin de la plataforma .NET Presentacin de Visual Studio Organizacin de unaaplicacin Fundamentos del lenguaje Programacin orientada a objetos Gestin de los erroresy depuracin del cdigo Aplicaciones de W indows Acceso a las bases de datos Presentacin deLINQ Utilizacin de XML Despliegue de componentes y aplicaciones

    Thierry GROUSSARDDespus de ms de 10 aos como analista y desarrollador, Thierry Groussard se orient a laformacin, particularmente en el campo del desarrollo. Sus profundos conocimientos de lasnecesidades de la empresa y sus cualidades pedaggicas hacen que sus libros estn espe cialmenteadaptados al aprendizaje y a la puesta en prctica del desarrollo en C#.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    3/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69367

    ndice

    Ttulo, autor...

    Pr logo

    Introduccin

    Escritura, compilacin y ejecucin de unaaplicacin

    Informacin

    Prlogo

    Presentacin de la plataforma .NET

    Presentacin de Visual Studio

    Organizacin de una aplicacin

    Fundamentos del le nguaje

    Programacin orientada a objetos

    Gestin de los errores y depuracin delcdigo

    Aplicaciones de Windows

    Acceso a las bases de datos

    Presentacin de LINQ

    Utilizacin de XML

    Despliegue de componentes yaplicaciones

    PrlogoDesde la primera versin aparecida con Visual Studio en 2002, el lenguaje C# sigui una evolucinconstante hasta esta versin 5.0. Actualmente es el lenguaje de referencia de Microsoft. Paraconvencerse de ello, basta consultar los numerosos recursos disponibles en Internet referentes a laplataforma .NET y darse cuenta de que la mayora de los ejemplos propuestos se d esarrollan con es telenguaje.

    El objetivo de es te libro consiste en prese ntar las base s de este lenguaje pa ra permitirle aprovecharlo mejor posible las funcionalidades de la versin 4.5 del Framework .NET. Despus del aprendizaje deestas bases , usted tendr todas las cartas en la mano para tratar el diseo de aplicaciones grficas.

    Sus futuras aplicaciones necesitarn trabajar seguramente con informacin ubicada en una base dedatos. Los dos captulos dedicados a este tema le aportarn una ayuda preciosa para llevar a caboesta tarea. El primero le familiarizar con la utilizacin de ADO.NET, que es la tecnologa clsica deMicrosoft para la gestin del acceso a una base de datos. El segundo presentar el lenguaje LINQ,cuyo principal objetivo consiste en uniformizar los accesos a los datos de una aplicacin, y ello, seacual sea el origen de estos datos (base de datos, archivos XML, objetos...).

    El despliegue es por supuesto la ltima etapa de la e laboracin de una aplicacin, pero no por ello sedebe desatender. Las dos tecnologas de despliegue disponibles se tratan en el ltimo captulo deeste libro para permitirle simplificar la instalacin de sus aplicaciones en los puestos clientes.

    Este libro no tiene como vocacin sustituir la documentacin del Framework .NET, que debe seguirsiendo su referencia para obtener datos como la lista de los mtodos o propiedades presentes enuna clase.

    Subir

    Condiciones generales de uso Copyright - Editions ENI

    C# 5 - Los fundamentos del lenguaje - D esarrolla r con Visual Studio 2012

    BuscarFavoritoNotas y marca pginasndice

    Inicio Anterior [email protected] Libros gratis

    Bscanos en Fb: InfoLibros

    http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69365http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69367http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69369http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69370http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69370http://www.eni-training.com/client_net/bncourse.aspxhttp://www.eni-training.com/client_net/bncourse.aspxhttp://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69370http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69369http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69367http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69365
  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    4/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69369

    ndice

    Ttulo, autor...

    Prlogo

    Introduccin

    Escritura, compilacin y ejecucin de una

    aplicacin

    Informacin

    Prlogo

    Presentacin de la plataforma.NET

    Presentacin de Visual Studio

    Organizacin de una aplicacin

    Fundamentos del le nguaje

    Programacin orientada a objetos

    Gestin de los errores y depuracin delcdigo

    Aplicaciones de Windows

    Acceso a las bases de datos

    Presentacin de LINQ

    Utilizacin de XML

    Despliegue de componentes yaplicaciones

    IntroduccinLa plataforma .NET pone a su disposicin un conjunto de tecnologas y herramientas que simplifican eldesarrollo de aplicaciones y propone una solucin para casi cualquier tipo de aplicaciones:

    aplicaciones W indows clsicas;

    aplicaciones Web ;

    servicios W indows;

    servicios W eb.

    Todas estas aplicaciones se pueden realizar gracias a un elemento esencial: el Framework .NET. EsteFramework se encarga, por medio de numerosas capas de software superpuestas, de la integridadde la vida de una aplicacin, desde el desarrollo hasta la ejecucin. El sistema operativo, con el queva a interactuar, debe albergar el framework. El primer sistema que permite acogerlo es, porsupuesto, Windows, pero hay otras versiones disponibles que permiten la adaptacin de laplataforma .NET a sistemas ta les como Linux o Unix.

    El framework contiene dos elementos principales: el Common Language Runtime y la librera de clases

    C# 5 - Los fundamentos del lenguaje - D esarrolla r con Visual Studio 2012

    BuscarFavoritoNotas y marca pginasndice

    Inicio Anterior [email protected] Libros gratis

    Bscanos en Fb: InfoLibros

    http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69365http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69367http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69369http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69370http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69370http://www.eni-training.com/client_net/bncourse.aspxhttp://www.eni-training.com/client_net/bncourse.aspxhttp://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69370http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69369http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69367http://www.eni-training.com/client_net/mediabook.aspx?idr=69363&ida=69365
  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    5/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    using System;class Program{

    static String mensaje = "Hola";static void Main(String[] args){Console.WriteLine(mensaje);}

    }

    Escritura, compilacin y ejecucin de una aplicacinEn es te captulo, vamos a de tallar el ciclo de vida de una aplicacin desde la redaccin del cdigo hasta laejecucin de la aplicacin, estudiando en deta lle los mecanismos puestos en marcha.

    1. Escritura del cdigo

    La inmensa mayora de las aplicaciones se desarrollan gracias a un entorno integrado que agrupa lasprincipales herramientas necesa rias, a saber:

    un editor de texto;

    un compilador;

    un depurador.

    Este enfoque es, de lejos, el ms cmodo. Sin embargo necesita una pequea fase de aprendizajepara familiarizarse con la herramienta. Para nuestra primera aplicacin, vamos a utilizar una manera dehacer un poco diferente, ya que vamos a utilizar herramientas individuales: el bloc de notas deWindows para la escritura del cdigo y el compilador en lnea de comandos para Visual C#.

    Nuestra primera aplicacin ser muy sencilla, ya que visualizar s implemente e l mensaje Hola en unaventana de comando. A continuacin se presenta el cdigo de nuestra primera aplicacin, que luegoexplicaremos lnea por lnea. Se debe introducir usando el bloc de notas de Windows o cualquier otroeditor de texto siempre y cuando ste no aada ningn cdigo de formato en el interior del documento,como s hacen por ejemplo programas de tratamiento de texto.

    Ejemplo

    Se debe guardar este cdigo en un archivo con la extensin .cs. Esta extensin no es obligatoria, peropermite respetar las convenciones utilizadas por Visual Studio. Detallamos ahora algunas lneas denuestra primera aplicacin.

    using System

    Esta lnea permite dejar directamente accesibles los e lementos presentes en el namespaceSystem. Sin ella, habra que utilizar los nombres plenamente cualificados para todos loselementos contenidos en el namespace. En nuestro caso, deberamos utilizarentonces: System.Console.Writeline("Hola");

    class Program

    En Visual C#, cualquier porcin de cdigo debe estar contenida en una clase.

    static String mensaje= "Hola";

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    6/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    Esta lnea declara una variable. Se debe declarar todas las variables antes de poderutilizarlas. La declaracin permite especificar el tipo de informacin que la variable va acontener: aqu, una cadena de caracteres y eventualmente un valor inicial, hola ennuestro caso.

    static void Main (String[]args)

    Todas las instrucciones, aparte de las declaraciones, deben estar ubicadas en unprocedimiento o una funcin. La mayor parte del cdigo se sita entonces entre loscaracteres { y } , de limitando cada procedimiento o funcin. Entre todos los procedimientosy funciones , se des igna a uno de ellos como el punto de entrada en la aplicacin. A travsde la ejecucin de este procedimiento arranca la aplicacin. Este procedimiento se debellamar Main y debe ser esttico. Se debe declarar en el interior de una clase o estructura. Eltipo de retorno puede ser void o int . Los parmetros son optativos y, si se utilizan,representan los argumentos pasados en la lnea de comando.

    Console.Writeline("Hola");

    La clase Console definida en el espacio de nombres System provee un conjunto de mtodosque pe rmite la visualizacin de datos en la consola o la lectura de datos desde la consola. Elprocedimiento Writeline permite la visualizacin de una cadena de caracteres en la consola.

    Cabe destacar tambin que Visual C# distingue entre las minsculas y las maysculas en lasintrucciones. Si usted utiliza el editor de Visual Studio para redactar su cdigo, ste le guiar paraevitar errores (IntelliSense).

    2. Compilacin del cdigoEl Framework .NET incluye un compilador en lnea de comando para Visual C#. Para compilar el cdigofuente de nuestro ejemplo, debemos abrir una ventana de comando DOS para poder lanzar elcompilador. Para ello la instalacin cre un atajo en el men Inicio. Este ata jo lanza la ejecucin de unarchivo .bat que posiciona algunas variables de entorno necesarias para el correcto funcionamiento delas herramientas Visual Studio en lnea de comando.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    7/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    Desde la ventana de comandos abierta, conviene situarse en el directorio en el cual se encuentra elarchivo fuente. Se lanza la compilacin con el comando csc Hola.cs .

    Despus de un breve instante, el compilador nos devuelve el control. Podemos comprobar la presenciadel archivo ejecutable y comprobar su correcto funcionamiento.

    Nuestra primera aplicacin es realmente muy sencilla. Para aplicaciones ms complejas, ser til aveces especificar algunas opciones para el funcionamiento del compilador. El conjunto de las opcionesdisponibles se puede obtener con el comando csc / ? .

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    8/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    Las principales opciones son:

    /out:archivo.exe

    Esta opcin permite especificar el nombre del archivo resultado de la compilacin. Pordefecto, es e l nombre del archivo fuente en curso de compilacin que se utiliza.

    /target:exe

    Esta opcin pide al compilador la generacin de un archivo ejecutable pa ra una aplicacin enmodo consola.

    /target:winexe

    Esta opcin pide al compilador la generacin de un archivo ejecutable de aplicacin deWindows.

    /target:library

    Esta opcin pide al compilador la generacin de un archivo librera dll.

    /referencia:lista de archivos

    Esta opcin indica al compilador la lista de los archivos referenciados en el cdigo ynecesarios para la compilacin. Los nombres de los archivos se deben separar con unacoma.

    3. Anlisis de un archivo compilado

    Ahora que se ha creado nuestro archivo ejecutable, intentemos ver lo que contiene.

    Primera solucin: abrirlo con el bloc de notas de Windows

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    9/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    El resultado no es muy elocuente, es lo menos que puede decirse!

    Hemos dicho que el compilador genera cdigo MSIL. Por lo tanto es este cdigo lo que visualizamos enel bloc de notas. Para visualizar el contenido de un archivo MSIL, el Framework .NET propone unaherramienta mejor adaptada.

    Segunda solucin: utilizar un desensamblador

    Esta herramienta se ejecuta a partir de la lnea de comando con la instruccin ildasm .

    Permite visualizar un archivo generado por el compilador, ms claramente que con el bloc de notas.Conviene indicar el archivo que se desea examinar por el men Archivo - Abrir . El desensambladorvisualiza entonces su contenido.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    10/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    La informacin presente en el archivo se puede separar en dos categoras: el manifiesto y el cdigoMSIL. El manifiesto contiene los metadatos que permiten describir el contenido del archivo y losrecursos que necesita. Hablamos en este caso de archivo autodescriptivo. Esta tcnica es muyinteresante, ya que en cuanto el Common Language Runtime lee el archivo, dispone de toda lainformacin necesa ria para su ejecucin.

    Ya no es necesario utilizar una grabacin en el registro de la mquina. Se puede visualizar el manifiestocon un doble clic en su nombre.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    11/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    Smbolo Significado

    Ms informacin

    Espacio de nombres

    Clase

    Interfaz

    Clase de valores

    Enumeracin

    Mtodo

    Mtodo esttico

    Campo

    Campo est tico

    Evento

    Propiedad

    Elemento de manifiesto o deinformacin de clase

    Encontramos en este manifiesto datos que indican que, para poder funcionar, la aplicacin necesita elensamblado externo mscorlib.

    La segunda parte corresponde realmente al cdigo MSIL. Un conjunto de iconos se utiliza para facilitarla visualizacin de los datos.

    Como en el caso del manifiesto, un doble clic en un elemento permite obtener ms detalles. As podemos, por ejemplo, visualizar la traduccin de nuestro procedimiento Main.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    12/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    using SystemImports System

    Public Module testDim mensaje As String = "Hola"Public Sub main()

    console.writeline(mensaje)End Sub

    End Module

    En un ejemplo de cdigo tan sencillo, es fcil relacionar el cdigo Visual C# y su traduccin en cdigoMSIL. Para las personas entusiasmadas por el cdigo MSIL, existe un ensamblador MSIL: ilasm . Estaherramienta acepta como parmetro un archivo de texto que contiene cdigo MSIL y lo transforma enformato binario.

    Ya que somos capaces visualizar el cdigo MSIL, podemos verificar que es realmente independiente de llenguaje fuente utilizado para desarrollar la aplicacin. A continuacin veamos el cdigo Visual Basicque realiza lo mismo que nuestro cdigo Visual C#.

    Tras la compilacin y desemblaje por ildasm , veamos lo que nos presenta para el mtodo Main.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    13/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    .method private hidebysig specialname rtspecialname staticvoid .cctor() cil managed

    {// Code size 11 (0xb).maxstack 8IL_0000: ldstr "Hello" IL_0005: stsfld string Program::mensaje

    IL_000a: ret} // end of method Program::.cctor

    No hay ninguna diferencia con respecto a la versin Visual C# del mtodo Main.

    Tambin es posible dar los pasos inversos al transformar un archivo texto que contiene cdigo MSIL enarchivo binario correspondiente. Esta transformacin se hace gracias al ensamblador ilasm. La nicadificultad consiste en crear un archivo texto que contiene e l cdigo MSIL, ya que incluso si la sintaxis esconprensible, no es intuitiva. Una solucin puede consistir en pedir a la herramienta ildasm (eldesemblador) que genere este archivo de texto. Para ello, despus de haber abierto el archivoejecutable o la libreria dll con ildasm, usted debe utilizar la opcin Volcar del men Archivo . Se le invita

    entonces a e legir el nombre del archivo que hay que generar (extension .il).Este archivo se puede modificar con un simple editor de texto. Sustituya, por ejemplo, el contenido dela variable mensaje con la cadena Hello.

    Guarde luego el archivo. Ahora slo queda volver a generar el archivo ejecutable gracias alensamblador ilasm. Para ello, introduzca la lnea de comando s iguiente:

    ilasm Hola.il /output=Hello.exe

    La opcin /output=Hello permite indicar el nombre del archivo generado. Si no se especifica estaopcin, se utilizar el nombre del archivo fuente. Usted puede ahora lanzar el nuevo ejecutable yverificar el mensaje visualizado. Todas estas operaciones se pueden hacer en cualquier archivoejecutable o librera dll. La nica dificultad reside en el volumen de informacin facilitado por la

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    14/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    .class public auto ansi sealed beforefieldinit DotfuscatorAttributeextends [mscorlib]System.Attribute

    {.custom instance void [mscorlib]System.AttributeUsageAttribute::.ctor(value-

    type [mscorlib]System.AttributeTargets) = ( 01 00 01 00 00 00 00 00 ).field private string a.method public hidebysig specialname rtspecialname

    instance void .ctor(string a) cil managed{

    // Code size 14 (0xe).maxstack 2IL_0000: ldarg.0IL_0001: dupIL_0002: call instance void [mscorlib]System.Attribute::.ctor()IL_0007: ldarg.1IL_0008: stfld string DotfuscatorAttribute::aIL_000d: ret

    } // end of method DotfuscatorAttribute::.ctor.method public hidebysig string

    a() cil managed{

    // Code size 7 (0x7).maxstack 1IL_0000: ldarg.0IL_0001: ldfld string DotfuscatorAttribute::aIL_0006: ret

    } // end of method DotfuscatorAttribute::a.property instance string A(){

    .get instance string DotfuscatorAttribute::a()

    } // end of property DotfuscatorAttribute::A} // end of class DotfuscatorAttribute

    .class private auto ansi beforefieldinit a[mscorlib]System.Object

    {.field private static string a.method private hidebysig static void a(string[] A_0) cil managed{

    .entrypoint// Code size 13 (0xd).maxstack 8IL_0000: nop

    descompilacin. Sin embargo, esto crea un problema: cualquier persona que dispone de los archivosejecutables o libreras dll de una aplicacin puede modificar la aplicacin.

    Por supuesto las modificaciones pueden resultar peligrosas, pero se puede considerar la modificacinde un valor que representa una informacin importante para la aplicacin (contrasea, clave delicencia...) Un remedio posible a este tipo de operacin consiste en hacer lo ms incomprensible posibleel cdigo generado por el descompilador. Para ello, hay que actuar a nivel del archivo ejecutable o de lalibrera dll con la modificacin de los datos que contienen sin, por supuesto, perturbar elfuncionamiento. Hay herramientas llamadas ofuscadores que son capaces de realizar esta operacin.

    Visual Studio se suministra con una herramienta de la empresa PreEmptive Solutions llamadaDotFuscator Community Edition. Esta versin permite realizar las operaciones bsicas para embrollarun archivo. El principal tratamiento efectuado en el archivo consiste en renombrar los identificadorescontenidos en l (nombre de las variables, nombre de los procedimientos y funciones...) con valoresmuy poco explcitos, en general a carcter nico. Ah tenemos un extracto de la descompilacin delarchivo Hola.exe tras su tratamiento por Dofuscator Community Edition.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    15/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    IL_0001: ldsfld string a::aIL_0006: call void [mscorlib]System.Console::WriteLine(string)IL_000b: nopIL_000c: ret

    } // end of method a::a.method public hidebysig specialname rtspecialname

    instance void .cil managed{

    // Code size 7 (0x7).maxstack 8IL_0000: ldarg.0IL_0001: call instance void [mscorlib]System.Object::.ctor()IL_0006: ret

    } // end of method a::.ctor.method private hidebysig specialname rtspecialname static

    void .cctor() cil managed{

    // Code size (0xb).maxstack 8IL_0000: ldstr "Hola"IL_0005: stsfld string a::aIL_000a: ret

    } // end of method a::.cctor} // end of class a

    public int CompareTo(Object o){int n = occurrences - ((WordOccurrence)o).occurrences;if (n == 0)

    { n = String.Compare(word, ((WordOccurrence)o).word);}

    return(n);}

    public virtual int _a(Object A_0) {int local0;int local1;local0 = this.a - (c) A_0.a;if (local0 != 0) goto i0;goto i1;while (true) {return local1;i0: local1 = local0;}i1: local0 = System.String.Compare(this.b, (c) A_0.b);

    En este archivo, no queda rastro de los nombres utilizados en el cdigo. La clase se llama a, elprocedimiento Main se llama ahora a, la variable mensaje se llama tambin ahora a. Imagnese elresultado de tal tratamiento en un archivo que contiene varias decenas de variables y procedimientos!

    La versin Professional Edition permite tambin la encriptacin de las cadenas de caracteres, lamodificacin y el aadido de cdigo intil para complicar las estructuras de controles (bucles,condiciones).

    A continuacin presentamos un e jemplo de transformacin de la documentacin de Dotfuscator.

    El cdigo original:

    El cdigo generado:

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    16/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69370

    goto i0;}

    El anlisis de miles de lneas de cdigo de este tipo puede provocar algunas migraas! Por lo tanto, espreferible conservar el cdigo original para las modificaciones posteriores. Dispone de ms informacinen e l sitio http://www.preemptive.com/

    4. Ejecucin del cdigoCuando un usuario ejecuta una aplicacin gestionada, el cargador de cdigo del sistema operativocarga el Common Language Runtime que luego lanza la ejecucin del cdigo gestionado. Como elprocesador de la mquina en la cual se ejecuta la aplicacin no puede encargarse directamente delcdigo MSIL, el Common Language Runtime debe convertirlo a cdigo nativo.

    Esta conversin no incluye la totalidad del cdigo de la aplicacin. Convierte el cdigo segn lasnecesidades. Los pasos adoptados son los siguientes:

    Al cargar una clase, el Common Language Runtime sustituye cada mtodo de la clase con untrozo de cdigo que requiere al compilador JIT que lo compile en lenguaje nativo.

    Luego, cuando se utiliza el mtodo en el cdigo, la porcin de cdigo generado en la cargaentra en accin y compila el mtodo en cdigo nativo.

    El fragmento de cdigo que requiere la compilacin del mtodo es sustituido luego por elcdigo nativo generado.

    Las futuras llamadas de este mtodo se harn directamente en el cdigo nativo generado.

    Bscanos en Fb: InfoLibros

    http://www.preemptive.com/http://www.preemptive.com/
  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    17/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69372

    Componente Mnimo recomendado Prestaciones ptimas

    Procesador Pentium 1,6 GHz o equivalente Pentium 2,2 GHz o equivalente

    RAM 1.024 MB 2.048 MB o ms

    Espacio en disco 1 GB en el disco del sistema yde 2,8 a 5 GB en otro disco

    Vdeo 1.024 x 768 1.280 x 1.024 o superior

    Lector de DVD Indispensable Indispensable

    Sistemaoperativo

    Windows 7Microsoft Windows Server 2008

    Cualquier versin posterior(Windows 8, Windows Server2012)

    Instalacin y primer arranque

    1. Configuracin necesariaPara permitir un correcto funcionamiento, Visual Studio necesita una configuracin mnima. Microsoftaconseja los siguientes valores:

    Procedimiento de instalacin

    Los elementos necesarios son:

    el DVD de Visual Studio.NET;

    espacio disponible en su disco duro (de 5 a 9 GB en funcin de las herramientas instaladas);

    y sobre todo paciencia, ya que la instalacin es larga...

    Despus de insertar el DVD y tras algunos segundos de carga, se muestra la siguiente panta lla:

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    18/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69372

    Esta pantalla le permite escoger la carpeta de instalacin del producto y le indica el espacio de disconecesario para esta instalacin. Para seguir con la instalacin, debe aceptar el contrato de licencia.La siguiente etapa le permite escoger las funcionalidades suplementarias que desea instalar einiciar la instalacin del producto.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    19/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69372

    La siguiente pantalla le informa del progreso de la instalacin.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    20/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69372

    Hay que tener paciencia, pues la instalacin puede ser bastante larga en funcin de las opcionesmarcadas. A este efecto, la siguiente pantalla le informa del xito de la instalacin y le permiteejecutar directamente el producto.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    21/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69372

    2. Primera ejecucinUn acceso directo creado automticamente por el programa de instalacin le permite e jecutar VisualStudio.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    22/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69372

    La primera vez que lo use , Visual Studio le propondr personalizar el entorno de trabajo. En funcinde su preferencia por un lenguaje particular, Visual Studio configura el entorno con las herramientasadaptadas. Se pue de modificar ms tarde esta configuracin con el men Herramientas - Importar

    y exportar configuraciones .

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    23/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69372

    Visual Studio aplica la configuracin elegida antes de a rrancar.

    Ahora debemos examinar las he rramientas a nuestra disposicin.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    24/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69373

    Descubrimiento del entorno

    1. Pgina de inicioEsta pgina se visualiza cada vez que invoca a Visual Studio. Le permite acceder rpidamente a losltimos proyectos en los cuales ha trabajado, crear un nuevo proyecto o abrir un proyecto existente.

    La pestaa ltimas noticias permite activar un flujo RSS que facilita informacin de las actualizacionesdisponibles.

    Despus de la creacin de un nuevo proyecto o la apertura de un proyecto existente, se arranca elentorno Visual Studio.

    2. Entorno Visual StudioEl entorno se compone de tres tipos de e lementos:

    una zona de barra de mens y de barras de herramientas;

    una zona central de trabajo;

    una multitud de ventanas que constituyen las diferentes herramientas a nuestra disposicin.El conjunto presenta, a pesar de todo, un aspecto cargado, y tras aadir una o dos barras deherramientas y la aparicin de a lgunas ventanas adicionales , la zona de trabajo queda ms restringida,sobre todo en una pantalla de tamao reducido.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    25/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69373

    Afortunadamente hay varias soluciones disponibles para gestionar nuestro espacio de trabajo:

    el anclaje de las ventanas;

    la ocultacin automtica de las ventanas;

    la utilizacin de pestaas.

    El anclaje de ventanas no permite ganar espacio en la pantalla, pero s colgar en un borde de lapantalla o de una ventana una ventana determinada. Tambin es posible convertir cada ventana enflotante haciendo doble clic en su barra de ttulo o utilizando el men contextual. Luego se puededesplazar o anclar esta ventana en otro borde. Para guiarnos en el anclaje de una ventana,Visual Studio muestra, durante el desplazamiento de una ventana, guas que permiten eligir el bordedonde efectuar el anclaje.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    26/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69373

    Los iconos situados en la periferia de la pantalla facilitan el anclaje en el borde

    correspondiente de la pantalla. Los iconos aparecen en el centro de la ventana que se

    est moviendo controlan el anclaje en sus bordes o bajo la forma de una pestaa adicional para laventana.Ms interesante para ganar espacio en la pantalla, las ventanas ocultables slo son visibles si el cursordel ratn se encuentra encima. Si no, slo una zona de pestaas, ubicada en el borde del entorno dedesarrollo, permite hacer que aparezca su contenido. Para conservar una ventana siempre visible,

    basta con bloquearla utilizando la chincheta presente en su barra de ttulo .

    Finalmente, la utilizacin de pestaas permite compartir una misma zona de pantalla entre diferentesventanas ; a este nivel, los diseadores de Visual Studio las han utilizado sin moderacin.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    27/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Las herramientas disponiblesMiremos ms en detalle las diferentes barras de herramientas y ventanas que estn a nuestradisposicin.

    1. Las barras de herramientas

    No menos de treinta barras de herramientas diferentes estn disponibles en Visual Studio. Lavisualizacin de cada una de e llas se puede controlar con el men contextual, accesible haciendo dobleclic en la barra principal de mens.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    28/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Por supuesto, es intil visualizar el conjunto de las barras de herramienta de manera simultnea;conviene mostrar slo las ms tiles.

    Estndar

    Editor de texto

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    29/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Editor de cuadros de dilogo

    Disposicin

    Depurar

    Las otras barras disponibles se visualizarn bajo demanda, en funcin de sus necesidades, con el finde evitar sobrecargar su pantalla.

    Las ventanas disponibles son tambin bastante numerosas y vamos a descubrir las ms corrientes.

    2. El cuadro de herramientasA partir del cuadro de herramientas vamos a elegir los e lementos utilizados para el diseo de la interfazde la aplicacin.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    30/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    El cuadro de herramientas , organizado por secciones, permite encontrar los controles fcilmente.

    Cada uno podr personalizar su cuadro de herramientas al aadirle por ejemplo controles nodisponibles por defecto. Puede ser juicioso, antes de aadir controles a su cuadro de herramientas,crear una nueva seccin para albergarla. Para ello, abra el men contextual del cuadro de herramientas(haciendo clic con el botn derecho del ratn en el cuadro de herramientas), elija la opcin Agregarficha , luego d un nombre a la nueva seccin que acaba de crear. Despus de haber seleccionado estanueva seccin, puede aadirle controles. Visualice de nuevo el men contextual del cuadro deherramientas , luego e lija la opcin Elegir elementos .

    Se presenta entonces la lista de los controles (COM o .NET), disponibles en la mquina, que le permiteseleccionar los controles que hay que aadir en esta seccin del cuadro de herramientas. Laconfiguracin del cuadro de herramientas no est relacionada con el proyecto activo sino con el propioentorno (el cuadro de herramientas ser idntica sea cual sea el proyecto abierto).

    3. El explorador de servidoresEl explorador de servidores est disponible con el men Ver - Explorador de servidores o por e l atajo[Ctrl][Alt] S. Se visualiza en una nueva pestaa de la ventana asociada al cuadro de herramientas .

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    31/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    La mayora de las aplicaciones requieren otras mquinas presentes en la red para poder funcionar. Porlo tanto es necesario tener, durante la fase de desarrollo de una aplicacin, la posibilidad de acceder alos recursos disponibles en otras mquinas.

    El elemento de la ventana del explorador de servidores utilizado de manera ms frecuente ser laseccin Conexiones de datos .

    Permite en particular la gestin de los objetos disponibles en el servidor SQL (tablas, vistas,procedimientos almacenados).

    El explorador de servidores tambin permite gestionar servicios operativos en las mquinas tanto atraves de la interfaz grfica como de cdigo. Ofrece la posibilidad de visualizar la actividad de las

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    32/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    private System.Diagnostics.PerformanceCounter performanceCounter1;this.performanceCounter1 = new System.Diagnostics.PerformanceCounter();this.performanceCounter1.CategoryName = "Memoria"this.performanceCounter1.CounterName = "Kilo-bytes disponibles"this.performanceCounter1.MachineName = "porttil TG"

    mquinas analizando los contadores de rendimiento o recuperando datos guardados en los diferentesregistros de eventos. Un sencillo arrastrar y soltar entre el explorador de servidores y una ventana quese est diseando genera automticamente el cdigo que permite trabajar con este elemento en laaplicacin. Por ejemplo, el desplazamiento de un contador de rendimiento encima de una ventanagenera el cdigo siguiente:

    4. El explorador de solucionesEl explorador de soluciones permite ver los elementos que constituyen una solucin y modificar suspropiedades.

    La utilizacin del explorador de soluciones se presenta en detalle en el captulo dedicado a laorganizacin de una aplicacin.

    5. El visor de clasesEl visor de clases es accesible mediante el men Ver - Vista de clases o con la combinacin de teclas[Ctrl][Shift] C. Comparte su zona de pantalla con el explorador de soluciones.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    33/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    La visualizacin de clases permite tener una visin lgica de una solucin presentando las diferentesclases utilizadas en esa solucin.

    6. La ventana de propiedadesSe puede visualizar la ventana de propiedades usando cualquiera de estos tres mtodos:

    Utilizando el men Ver - Ventana propiedades .

    Con la tecla de funcin [F4].

    Con la opcin Propiedades del men contextual disponible al hacer clic con el botn derechoen uno de los elementos que constituye un proyecto (elemento grfico de la interfaz deusuario, fichero o archivo del proyecto). La ventana de propiedades adaptaautomticamente su contenido en funcin del elemento seleccionado y permite modificarestas caractristicas.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    34/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Los elementos cuyas caractersticas puede modificar se pueden seleccionar directamente en la listadesplegable o en la interfaz de la aplicacin.

    Hay dos presentaciones disponibles para la lista de propiedades:

    El modo Alfabtico , que se activa al hacer clic en el icono .

    El modo Por categora , que se activa al hacer clic en el icono .

    7. La lista de las tareas

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    35/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Esta ventana le permitir sustituir decenas de post-it pegados en el borde de su pantalla. En efecto,Usted puede gestionar lo que queda por hacer en su proyecto teniendo en cuenta una lista de lasmodificaciones que es preciso aportar en su cdigo.

    La informacin presente en la lista puede tener dos orgenes:

    Los comentarios insertados en su cdigo.

    La informacin introducida directamente en la ventana.

    Usted puede ubicar en su cdigo los comentarios que aparecern luego en la lista de las tareas. Estatcnica le permite, por ejemplo, indicar una modificacin que es preciso efectuar ms tarde en sucdigo.

    Basta con que el comentario empiece con ToDo, para luego retomarlo automticamente en la lista delas tareas.

    Tambin puede introducir directamente los datos en la lista de las tareas. Para ello seleccione laopcin Tareas de usuario que se muestra si despliega la zona de lista disponible en la barra de ttulode la lista de las tareas.

    La adicin de una tarea se ejecuta luego con el botn , disponible en la lista de las tareas .

    Es posible especificar ya una descripcin y una prioridad para la nueva tarea haciendo clic en la columnade izquierda en la lista de las tareas. Hay tres niveles de prioridad disponibles:

    Alta.

    Normal.

    Baja.

    Para cada tarea, una casilla de seleccin permite indicar que se ha realizado. Su descripcin apareceentonces tachada en la lista de las tareas. Para las tareas de usuario, no hay enlace automtico con unfragmento cualquiera de cdigo.

    8. La lista de los erroresEl cdigo que va introduciendo es analizado en tiempo real por Visual Studio y los posibles errores de

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    36/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    sintaxis son retomados por Visual Studio en la ventana Lista de errores .

    Para ir directamente a la lnea donde haya aparecido un e rror de sintaxis, basta con hacer doble clic enla lista del elemento correspondiente (en e l ejemplo ante rior, doble clic en Se esperaba } para a lcanzarla lnea 23). No es necesario en absoluto pedir la compilacin completa del cdigo para rastrear todoslos errores de sntaxis. En cuanto el error est corregido, desaparece automticamente de la lista deerrores.

    Los bo tones de e rror, alerta, mensaje activan un filtro sobre los mensajes visualizados en la lista de loserrores.

    9. La ventana de edicin de cdigoVamos a dedicar ms tiempo a esta ventana. Propone muchas funcionalidades que permitenautomatizar las acciones ms corrientes.

    a. Los Snippets

    Los Snippets son fragmentos de cdigo que se puede n incorporar muy fcilmente a un archivo fuente.Permiten escribir muy rpidamente porciones de cdigo correspondiente a situaciones corrientes.Visual Studio propone una multitud de Snippets. Hay dos soluciones disponibles para insertar unSnippet:

    Utilizar la opcin Insertar fragmento de cdigo del men contextual del editor de cdigo.

    Utilizar las combinaciones de teclas [Ctrl] K, luego [Ctrl] X.

    Para estos dos mtodos, Visual Studio le propone elegir en una lista el Snippet que le interesa. Sepueden personalizar estas porciones de cdigo. En principio estn en azul claro. La modificacin deuna de estas porciones de cdigo repercute en todas las instancias en e l Snippet.

    En el ejemplo siguiente, se emple un Snippet para aadir un bucle for en una funcin.

    Se efectur la modificacin de los valores i y length en cascada en el conjunto del cdigo del Snippet.

    Puede tambin disear sus propios Snippets. Para ello, debe crear el archivo XML que va a contenerel cdigo del Snippet. Este archivo debe tener la extensin .snippet.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    37/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    ttuloAuthor>autoratajodescripcin

    SurroundsWithExpansion

    nombrevalor

    $nombre$$selected$ $end$]]>

    Recorrer un arrayThierrytabloeste fragmento aade un bucle que permite recorrer

    un array

    Expansion

    nombreTablalaTabla

    tipoTablatipoDeLaTabla

    Para ayudarle en la creacin de un Snippet, Microsoft tiene previsto un Snippet. Usted puedeincorporarlo en su archivo XML con el men contextual Insertar fragmento de cdigo .

    Debe obtener el documento siguiente:

    Luego puede personalizar su Snippet. En un primer momento, debe modificar la seccin Header

    sustituyendo los valores de las diferentes etiquetas.

    La seccin Declaraciones permite crear parmetros utilizados en el Snippet. Para cada parmetro,debe crear una seccin y facilitar un nombre para e l parmetro y un valor por defecto.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    38/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    tamaoTablatamaoDeLaTabla

    $nombreTabla$ = new $tipoTabla$ [$tamaoTabla$];int index;for (index = 0; index < $nombreTabla$.Length; index++){// insertar el cdigo de tratamiento de la tabla

    }]]>

    Luego debe indicar para qu lenguaje est previsto su Snippet.

    Y finalmente definir en la etiqueta CDATA el cdigo Snippet. En este cdigo, puede utilizar losparmetros del Snippet enmarcndolos entre dos caracteres $.

    Luego puede guardar el archivo y su Snippet est listo. Conviene ahora integrarlo en Visual Studio.Para ello, active el gestor de Snippet usando el men Herramientas - Administrador de fragmentosde cdigo .

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    39/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    El botn Importar permite aadir su Snippet a los ya d isponibles en Visual Studio.

    Despus de haber seleccionado e l archivo que contiene el Snippet, debe elegir la seccin en la cual seguardar.

    Su Snippet est ahora disponible en el editor de cdigo.

    Slo le queda personalizar el cdigo generado.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    40/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    b. Seguimiento de las modificaciones

    Es posible visualizar las porciones de cdigo que ya han sido modificadas desde la ejecucin de VisualStudio. Se identifican las modificaciones con un borde de color que aparece en e l margen del editor decdigo.

    Un borde amarillo indica que se ha modificado e l cdigo pero que an no ha s ido guardado.

    Un borde verde indica que se ha modificado y guardado e l cdigo.

    Tambin puede renombrar un elemento y propagar automticamente la modificacin al resto delcdigo. El uso tpico consiste en cambiar el nombre de una variable o clase. Usted no debe renombrarla variable directamente en el cdigo, sino utilizar el cuadro de dilogo visualizado utilizando laopcin Cambiar nombre del men contextual del editor de cdigo sobre el nombre actual de lavariable.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    41/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Se puede extender la bsqueda para efectuar las sustituciones en los comentarios y en las cadenasde caracteres activando las opciones correspondientes. Por defecto se muestra una vista previa detodas las modificaciones previstas antes de que se efecten realmente.

    Se puede cancelar algunas de ellas desmarcando la casilla correspondiente en la lista.

    La modificacin realizada mediante este cuadro de dilogo repercute sobre el conjunto delcdigo donde se utiliza la variable.

    c. Las herramientas de edicin de cdigo

    Los editores de texto de Visual Studio disponen de muchas funcionalidades que permiten facilitar lasoperaciones efectuadas con frecuencia durante la escritura del cdigo de una aplicacin.

    Seleccin de texto

    Como complemento de las funciones clsicas de selecin de texto y de copiar/pegar, el editor deVisual Studio permite la se leccin de zonas rectangulares de texto manteniendo apretada la tecla [Alt]durante la seleccin. Cuando se introduce luego algo de cdigo en la seleccin, se duplica sobre cadalnea de la seleccin.

    Si, por ejemplo, utiliza e l mtodo siguiente, que visualiza en la consola los datos de una persona:

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    42/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    private void visualizacinResultados(Cliente c){

    Console.Write("apellido:" + c.apellido);Console.Write("nombre:" + c.nombre);Console.Write("calle:" + c.calle);Console.Write("cdigo postal:" + c.cdigoPostal);Console.Write("ciudad:"+ c.ciudad);Console.Write("tl:" + c.tl);Console.Write("email:" + c.email);

    }Para modificar este mtodo y escribir estos datos en un archivo en vez de visualizarlos en la consola,slo debe crear el archivo y luego modificar todas las instrucciones .Write para que se apliquen alarchivo creado. Para ello, aada simplemente la lnea s iguiente para la creacin del archivo:

    StreamWriter archivo=new StreamWriter("resultados");

    Luego debe modificar cada instruccin Write para escribir hacia el archivo, y no hacia la consola.Selecione para ello una zona rectangular que contenga todas las palabras consola e introduzca lapalabra archivo .

    Se sustituye entonces la palabra Consola en todas las lnas de la seleccin.

    Tambin es posible insertar texto simultneamente en varias lneas creando una zona de seleccinrectangular de cero caracteres de ancho en todas las lneas donde se debe efectuar la insercin.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    43/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Luego se inserta el texto introducido en todas las lneas de la seleccin.

    Jerarqua de llamadas

    La jerarqua de llamadas permite visualizar todas las llamadas hacia un mtodo, una propiedad o unconstructor, as como las efectuadas desde este mtodo, propiedad o constructor. Se activa con la

    opcin Ver jerarqua de llamadas del men contextual disponible en el elemento concerniente.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    44/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Se visualiza entonces la ventana siguiente.

    Resaltado de las referencias

    Cuando hace clic en un smbolo en el cdigo fuente, el editor resalta todas las instancias de estesmbolo.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    45/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Funcionalidad Generar a partir de la utilizacin

    Durante el desarrollo de una aplicacin, ocurre a veces que se intenta utilizar un elemento antes desu declaracin posponiendo s ta para ms tarde. Sin embargo,esta solucin tiene el inconveniente deno permitir realizar pruebas hasta que todos los elementos utilizados hayan sido definidos. Tambines frustrante pa ra el desarrollador ver decenas de lneas de cdigo subrayadas en rojo.

    El editor de Visual Studio es capaz de generar el cdigo necesario para los elementos que faltan.Cuando el ratn pasa por encima del elemento referido, aparece un botn bajo este elemento.

    Al hacer clic en este botn aparece un men contextual con las opciones que permiten generar elcdigo que puede resolver los problemas detectados.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    46/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69374

    Las opciones disponibles en este men contextual se adaptan segn la ubicacin del elemento en el

    que ste e st activado. En el ejemplo anterior, el trmino Cliente puede corresponder a un nombre declase, enumeracin, estructura o interfaz. Slo hace falta completar el cuadro de dilogo siguientepara que el esqueleto de cdigo se genere.

    Zoom

    Esta funcionalidad permite efectuar un zoom hacia delante o hacia atrs sobre una ventana de texto.Se puede acceder a ella accionando la rueda del ratn mientras se mantiene pulsada la tecla [Ctrl].

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    47/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    Las soluciones

    1. PresentacinCon objeto de ayudarle en la creacin de aplicaciones, Visual Studio le propone varios elementos quesirven para agrupar los componentes de una aplicacin. El contenedor de ms alto nivel es la solucinen la cual podr ubicar uno o varios proyectos. Estos proyectos contendrn, a su vez, todos loselementos para que el compilador sea capaz de generar el archivo ejecutable o dll del proyecto. Elexplorador de soluciones nos va a permitir manejar todos estos elementos .

    2. Creacin de una solucinLa creacin de una solucin es automtica cuando lanza un nuevo proyecto en Visual Studio. Durante lacreacin de l nuevo proyecto, se le pedir informacin al respecto.

    A travs del cuadro de dilogo, facilitar los da tos siguientes:

    la versin de l Framework necesario para utilizar la aplicacin,el lenguaje utilizado para desarrollar el proyecto,

    el tipo de proyecto que hay que crear,

    el nombre del proyecto,

    el directorio raz donde estarn almacenados los archivos,

    el nombre de la solucin,

    la creacin de un directorio para la solucin.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    48/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    Despus de validar este cuadro de dilogo, el explorador de soluciones le presenta la nueva solucinen la cual usted va a poder trabajar. Todos los archivos de su solucin ya estn creados y guardadosen la ubicacin del disco que usted ha especificado.

    Una solucin contendr al menos los archivos siguientes:

    Un archivo con la extensin .sln, que es el archivo de configuracin de la solucin. Estearchivo contiene entre otros la lista de todos los proyectos que componen la solucin. Secompleta al mismo tiempo que us ted aade nuevos proyectos a la solucin.

    Un archivo con la extensin .suo, en el que se guardan las opciones asociadas a la solucin.Este archivo permite encontrar estas opciones.

    Un archivo para el proyecto que lleva la extensin .csproj. Este archivo contiene toda lainformacin de configuracin del proyecto: en particular, la lista de los archivos queconstituyen el proyecto, la lista de referencias utilizadas por este proyecto, las opciones quehay que utilizar para la compilacin del proyecto, etc.

    Numerosos archivos con la extensin .cs que van a contener el cdigo fuente de todas lasclases, hojas, mdulos que constituyen e l proyecto.

    Un archivo .resx asociado a cada hoja de su aplicacin. Este archivo en formato XNL contieneentre otras la lista de los recursos utilizados en es te proyecto.

    Al final, una solucin contiene otros numerosos archivos en funcin de los elementosutilizados en su proyecto (acceso a una base de datos , archivos html...).

    3. Modificacin de una solucinLas soluciones son contenedores y, por ello, es posible gestionar todos sus elementos. Puede aadir,suprimir, renombrar elementos en la solucin.

    a. Agregar un proyecto

    Hay varias posibilidades para aadir un proyecto:

    Si desea crear un nuevo proyecto, elija la opcin Nuevo Proyecto del men Archivo - Agregar .Un cuadro de dilogo le propone configurar entonces las caractersticas del nuevo proyecto.Este cuadro de dilogo le propone un directorio por defecto para guardar el proyecto. Si estedirectorio no corresponde a la ubicacin donde desea grabar el proyecto, puede seleccionaruna nueva ubicacin. Esta operacin se deber realizar para cada proyecto que quiera aadir.Puede ser interesante modificar la ruta propuesta por defecto para guardar los proyectos.Para ello, abra el men Herramientas - Opciones , en el cuadro de dilogo elija laopcin Proyectos y soluciones y modifique la seccin Ubicacin de los proyectos de VisualStudio.

    Si desea aadir un proyecto ya existente, elija la opcin Proyecto existente delmen Archivo - Agregar . Un cuadro de dilogo de seleccin de archivos le permite elegirentonces el archivo .csproj del proyecto que desea aadir a la solucin.

    Tenga en cuenta que e l proyecto se mantiene en su ubicacin original en el disco.

    b. Suprimir un proyecto

    Para suprimir un proyecto, utilice el men contextual de l explorador de soluciones e fectuandoun clic en e l nombre del proyecto que desea suprimir dentro de la solucin.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    49/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    Se ha e liminado e l proyecto de la solucin, pero queda grabado en e l disco. Para suprimirlo de maneradefinitiva, utilice el explorador de W indows para suprimir los archivos de este proyecto. Si no borra losarchivos, se puede aadir luego de nuevo el proyecto a una solucin.

    c. Renombrar un proyecto

    Para renombrar un proyecto, utilice el men contextual del explorador de solucionesefectuando un clic derecho en el nombre del proyecto que desea renombrar.

    El nombre del proyecto puede modificarse en el explorador de soluciones. Esta modificacin slo tieneefecto en el nombre del archivo .csproj asociado al proyecto. No modifica en ningn caso el nombredel directorio en el cual se encuentran los archivos del proyecto.

    d. Descargar un proyecto

    Si desea excluir de manera temporal un proyecto del proceso de generacin o impedir la edicin desus componentes, puede descargar el proyecto de la solucin gracias a la opcin Descargar elproyecto .

    No se elimina un proyecto descargado de la solucin, sino que simplemente queda marcadocomo no disponible.

    Por supuesto, se puede rehabilitar el proyecto en la solucin utilizando la opcin Volver a cargar elproyecto del men contextual.

    4. Organizacin de una solucinSi est trabajando con una solucin que contiene numerosos proyectos, puede aadir un nuevo nivelde jerarqua creando carpetas de soluciones. stas permiten la agrupacin lgica de proyectos dentro

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    50/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    de una solucin.

    Para ello, cree primero las carpetas en la solucin, luego organice los proyectos en estascarpetas.

    Las soluciones no crean carpetas fsicas en un disco, slo son contenedores lgicos en elinterior de la solucin.

    a. Crear una carpeta de solucin

    Se puede crear una carpeta de solucin con dos mtodos diferentes.

    Para ambos mtodos , seleccione la solucin en el explorador de soluciones.

    Luego, utilice el men Proyecto - Agregar nueva carpeta de soluciones , o incluso el mencontextual disponible con un clic derecho en el nombre de la solucin.

    Sea cual sea el mtodo utilizado , debe facilitar un nombre para el archivo creado.

    b. Crear un proyecto en una carpetaLa creacin de un proyecto en una carpeta de solucin es idntica a la creacin de un proyectodirectamente en la solucin.

    Seleccione simplemente la carpeta en la que desea crear el proyecto.

    c. Desplazar un proyecto a una carpeta

    Ocurre a menudo que es necesario organizar una solucin con archivos cuando ya existen proyectosen la solucin.

    En este caso, cree los archivos y arrastre los proyectos a las carpetas correspondientes.

    5. La carpeta Elementos de solucinLas soluciones contienen principalmente proyectos; sin embargo es posible tener, en una solucin,archivos gestionados de manera independiente de un proyecto particular, pero asociados a la solucin.Es e l caso, por ejemplo, de un archivo icono que desea utilizar en varios proyectos de la solucin. Estosarchivos se llaman elementos de solucin y se encuentran en una carpeta especfica de la solucin.

    Para aadir un nuevo elemento de solucin, abra el men contextual sobre el nombre de lasolucin y seleccione la opcin Agregar - Nuevo elemento o la opcin Agregar - Elementoexistente .

    Se aade entonces el nuevo elemento en la carpeta Elementos de solucin . Debe tener en cuentaque, por defecto, esta carpeta no existe en la solucin, sino que se crea automticamente durante laadicin del primer elemento de solucin. Luego se puede modificar los elementos de solucin con uneditor especfico al tipo de archivo creado.

    6. La carpeta Archivos variosA veces puede desear visualizar el contenido de un archivo mientras est trabajando en una solucin,

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    51/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    como por ejemplo el acta de una reunin. Este archivo no debe pertenecer a la solucin de manerapermanente. Puede abrirlo con un editor externo y guardar tanto con Visual Studio como con esteeditor externo. Pero resulta ms prctico visualizar el archivo directamente en e l entorno Visual Studio.

    Utilice la opcin Abrir - Archivo del men Archivo .

    El cuadro de dilogo le pe rmite elegir el archivo que desea abrir. Segn el tipo de archivo, un editor pordefecto le ser asociado automticamente para permitir su modificacin. Puede resultar til a veceselegir el editor asociado a un archivo. Para ello, el botn Abrir del cuadro de dilogo dispone de unmen que propone la opcin Abrir con que permite la e leccin del editor asociado a l archivo.

    El cuadro de dilogo siguiente le propone la lista de los editores disponibles.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    52/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    Seleccione el editor asociado al archivo con el que desea trabajar, luego acepte.

    El archivo est ahora disponible en la carpeta Archivos varios de la solucin. De la misma manera quecon la carpeta Elementos de solucin , la carpeta Archivos varios no existe por defecto en la solucin,sino que se crea automticamente durante la creacin de un archivo.

    Slo ser visible en el explorador de soluciones si se activa la opcin correspondiente en el entornoVisual Studio. Para ello, abra el men Herramientas - Opciones . Luego, en e l cuadro de dilogo, elija laopcin Entorno - Documentos y active la opcin Mostrar archivos varios en el explorador desoluciones . Como la carpeta Elementos de solucin , ste es una carpeta lgica y no corresponde aninguna ubicacin en el disco.

    7. Configuracin de una solucinLas soluciones disponen de propiedades que permiten configurar su comportamiento durante lageneracin o ejecucin de la aplicacin. Dichas propiedades estn agrupadas en un cuadro de dilogoaccesible con la opcin Propiedades del men contextual de una solucin. Hay cuatro categoras depropiedades disponibles:

    Proyecto de inicio.

    Dependencias del proyecto.Configuracin de anlisis de cdigo.

    Depurar archivos de cdigo fuente.

    Propiedades de configuracin.

    Veamos con ms detalle cada una de ellas.

    a. Configuracin del proyecto de inicio

    Esta pgina de propiedades de la solucin determina, entre los proyectos disponibles, cul o cules

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    53/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    se inician a l ejecutar la so lucin.

    Hay tres opciones disponibles:

    Seleccin actual

    Esta opcin indica que e l proyecto seleccionado en el explorador de soluciones seejecutar cuando se inicie la solucin.

    Proyecto de inicio nico

    Un combo le propone la lista de los proyectos disponibles en la solucin, entre los cualesdebe elegir el que se r ejecutado a l abrir la solucin. Se marca este proyecto en elexplorador de solucin con su nombre en negrita. Esta seleccin tambin se puede hacercon el men contextual del explorador de soluciones elegiendo la opcin Establecer comoproyecto de inicio .

    Proyectos de inicio mltiples

    Hay una tabla que muestra la lista de todos los proyectos disponibles en la solucin. Para

    cada uno de e llos, puede indicar la accin que se debe e jecutar al inicio de la aplicacin.Las opciones posibles son:

    Ninguna

    Iniciar

    Iniciar sin depurar.

    Si elige iniciar varios proyectos a la vez en el lanzamiento de la solucin, tambin debe indicar elorden en el cual se iniciarn estos proyectos. Este orden corresponde en realidad al orden de los

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    54/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    proyectos en la tabla. Los botones y permiten modificar este orden.

    b. Dependencias del proyecto

    La generacin de algunos proyectos requiere la generacin previa de otros proyectos. Es el caso, porejemplo, de la generacin de un proyecto que utiliza una referencia hacia otro: ste se convierteentonces en una dependencia del proyecto inicial.

    La pgina de propiedades siguiente permite configurar es tas dependencias.

    En la lista de los proyectos, seleccione el proyecto cuyas dependencias desea configurar. Losotros proyectos de la solucin aparecen entonces en una lista con una casilla de verificacinpara cada uno. Durante la generacin del proyecto, todos los proyectos de los cuales dependesern regenerados automticamente si han sido modificados desde la ltima generacin o sinunca han sido generados . Algunas dependencias no puede n ser modificadas; por esa raznla casilla de opcin aparece en gris. Suele ser el caso cuando un proyecto posee unareferencia a otro proyecto o cuando la adicin de una dependencia corre peligro de crear unbucle. Por ejemplo, el proyecto1 depende de l proyecto2, y a la inversa.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    55/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    Tambin se puede configurar las dependencias de proyecto con el men contextual del explorador desoluciones mediante la opcin Dependencias del proyecto .

    c. Configuracin de anlisis de cdigo

    Esta pantalla le permite configurar las reglas utilizadas durante el anlisis del cdigo de los distintoselementos de la solucin.

    Para cada proyecto de la solucin, puede indicar qu configuracin utilizarn las herramientas deanlisis.

    La opcin Todas las reglas de Microsoft es la ms estricta y detecta la ms mnima anomala, enparticular:

    Parmetros que se pasan a la funcin y no se utilizan en el interior de la misma.

    Variables locales que no se utilizan.

    Nombres de parmetros poco explcitos.

    Si no se respeta las convenciones respecto a las maysculas y minsculas de losidentificadores.

    d. Depurar archivos de cdigo fuente

    Durante la depuracin de una aplicacin, el entorno de Visual Studio necesita acceder al archivofuente del cdigo que est depurando. Esta pgina de propiedad permite especificar los directoriosque se rn analizados durante la bsqueda del cdigo fuente.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    56/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    La lista Directorios que contienen cdigo fuente muestra el nombre de los directorios que sernabiertos durante la bsqueda de cdigo fuente. Se puede gestionar esta lista gracias a la barra deherramientas cuyos botones permiten:

    Comprobar la existencia del directorio.

    Aadir un nuevo directorio.

    Suprimir el directorio seleccionado de la lista.

    Desplazar el directorio hacia abajo en la lista.

    Desplazar el directorio hacia arriba en la lista.

    La lista No buscar los archivos de cdigo fuente siguientes excluye algunos archivos de labsqueda.

    e. Propiedades de configuracin

    Las opciones de configuracin permiten definir cmo se ge neran varias versiones de una solucin y delos proyectos que la componen. Por defecto, hay dos configuraciones disponibles para una solucin enVisual Studio: la configuracin Debug y la configuracin Release.

    Para cada uno de los proyectos presentes en la solucin, las dos configuraciones tambin estarndisponibles. A nivel de proyecto, las configuraciones permiten definir opciones de compilaciones. Seutiliza la configuracin Debug durante el desarrollo y las pruebas del proyecto. Se utiliza laconfiguracin Release para la generacin final del proyecto.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    57/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69376

    En realidad, tenemos un sistema de tres niveles: para cada configuracin de solucin, se indica quconfiguracin utilizar en cada proyecto, y para cada configuracin de proyecto, se especifica opcionesde compilacin. Se pueden modificar las opciones de compilacin a nivel de las propiedades delproyecto.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    58/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    Los proyectosLos proyectos son los contenedores de segundo nivel en una aplicacin. Se utilizan para organizarlgicamente, gestionar, generar y depurar los componentes de una aplicacin. La generacin de unproyecto suele producir un archivo e jecutable o una librera dll. Un proyecto puede ser muy simple y slocontener dos elementos, un archivo fuente (.cs) y el archivo de proyecto (.csproj). Ms comnmente, losproyectos contienen numerosos archivos fuente , script bs icos de datos, referencias hacia se rvicios W eb,recursos grficos, etc.

    Visual Studio propone por defecto un conjunto de plantillas de proyectos. Estas plantillas representan unpunto de partida para la mayora de las necesidades en el desarrollo de una aplicacin. Para casos msespecficos, puede crear sus propias plantillas de proyecto.

    1. Creacin de un proyectoPara activar la creacin de un proyecto, active el men Archivo - Nuevo proyecto . Un cuadro dedilogo le propone entonces elegir las caractersticas del nuevo proyecto.

    Elija primero la versin del Framework para la cual desea desarrollar el proyecto. La versinelegida influye en los tipos de proyectos que puede crear.

    Elija luego el lenguaje con el cual desea desarrollar el proyecto. Las elecciones disponiblesdependen de los lenguajes instalados en Visual Studio. En nuestro caso, elegimosnaturalmente Visual C#.

    Luego elija el tipo de proyecto que desea desarrollar. El cuadro de dilogo propone entonceslas diferentes plantillas de proyectos disponibles se gn el tipo de proyecto elegido.

    Despus de haber hecho su e leccin, d un nombre al proyecto, una ubicacin para los archivosdel proyecto y un nombre para la solucin. El asistente utiliza la plantilla seleccionada paracrear los e lementos del proyecto.

    Despus de unos instantes, el proyecto estar disponible e n el explorador de soluciones.

    Ahora personalice la plantilla creada.

    a. Las plantillas de proyectos

    Hay numerosas plantillas de proyectos disponibles en Visual Studio. Estas plantillas facilitan loselementos bsicos necesarios para desarrollar cada tipo de proyecto. Siempre contienen al menos elarchivo de proyecto, ms un ejemplar del elemento ms utilizado para el tipo de proyectocorrespondiente. Por ejemplo, para un proyecto de librera clase, se crea un archivo fuente quecontiene un boceto de clase. Las plantillas proveen tambin referencias e importaciones por defectopara las libreras y los espacios de nombres ms tiles en funcin del tipo de proyecto.

    Aplicacin Windows Forms

    Esta plantilla de proyecto es seguramente la ms utilizada. Permite el desarrollo de aplicacin deWindows estndar. La plantilla aade los elementos siguientes al proyecto:

    Un archivo AssemblyInfo.cs utilizado para la descripcin de la aplicacin con la informacinrelativa a la versin.

    Un formulario bsico con su archivo fuente form1.cs.

    Las referencias siguientes se aaden e importan automticamente:

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    59/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    Microsoft.CSharp

    System

    System.Core

    System.Data

    System.Data.DataSetExtensions

    System.Deployment

    System.Drawing

    System.Windows.Forms

    System.Xml

    System.Xml.Linq

    Librera de clases

    Esta plantilla de proyecto se puede utilizar para crear clases y componentes que luego podrn sercompartidos con otros proyectos. Los elementos siguientes se aade n automticamente al proyecto:

    Un archivo AssemblyInfo.cs utilizado para la descripcin del proyecto con la informacinrelativa a la versin.

    Una clase bsica con su archivo fuente class1.cs.

    Las referencias siguientes se aaden e importan automticamente:

    Microsoft.CSharp

    System

    System.Core

    System.DataSystem.Data.DataSetExtensions

    System.Xml

    System.Xml.Linq

    Librera de controles Windows Forms

    Como la plantilla anterior, este tipo de proyecto permite crear una librera de clases utilizable en otrosproyectos. Esta librera es ms especfica, ya que est dedicada a la creacin de controles, utilizablesluego en una aplicacin de Windows. Estos controles amplan el cuadro de herramientas disponible en

    las aplicaciones de Windows. Los elementos siguientes se aaden automticamente al proyecto:Un archivo AssemblyInfo.cs utilizado para la descripcin del proyecto con la informacinrelativa a la versin.

    Una clase UserControl1 que hereda de laclase System.Windows.Forms.UserControl que facilita las funcionalidades bsicas paraun control de Windows, con su archivo fuente UserControl1.cs .

    Las referencias siguientes se aaden e importan automticamente:

    Microsoft.CSharp

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    60/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    System

    System.Core

    System.Data

    System.Data.DataSetExtensions

    System.Drawing

    System.Windows.Forms

    System.Xml

    System.Xml.Linq

    Aplicacin de consola

    Este tipo de aplicacin est destinado a ejecutarse desde la lnea de comandos. Por supuesto estdiseada sin interfaz grfica, y las entradas y salidas van y vienen desde y hacia la consola.

    Este tipo de aplicacin es muy prctica para realizar pruebas con Visual C#, ya que permiteconcentrarse en un punto particular sin tener que preocuparse del aspecto presentacin de laaplicacin.

    Muchos ejemplos de este libro se basan en una aplicacin de consola. Sin embargo, hay que admitirque, aparte de la sencillez de su creacin, este tipo de aplicacin se ha vuelto obsoleta.

    Los elementos siguientes se incorporan por defecto al proyecto:

    Un archivo AssemblyInfo.cs utilizado para la descripcin del proyecto con la informacinrelativa a la versin.

    Una clase bsica con su archivo fuente Program.cs .

    Las referencias siguientes se aaden e importan automticamente:

    Microsoft.CSharpSystem

    System.Core

    System.Data

    System.Data.DataSetExtensions

    System.Xml

    System.Xml.Linq

    Servicio WindowsSe usa este tipo de plantilla para la creacin de aplicaciones que se e jecutan en segundo plano en elsistema. El inicio de este tipo de aplicaciones puede asociarse al del propio sistema y no necesita quehaya una sesin de usuario abierta para poder ejecutarse.

    Este tipo de aplicacin est desprovisto de interfaz de usuario. Si se debe comunicar informacin alusuario, deber transitar por los diarios sistema disponibles en el visor de sucesos. Los elementossiguientes se aaden al proyecto:

    Un archivo AssemblyInfo.cs utilizado para la descripcin del proyecto con la informacinrelativa a la versin.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    61/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    Una clase bsica con el esqueleto de procedimientos OnStart y OnStop llamadaautomticamente en el inicio y la parada del servicio.

    Las referencias siguientes se aaden e importan automticamente:

    Microsoft.CSharp

    System

    System.Core

    System.DataSystem.Data.DataSetExtensions

    System.ServiceProcess

    System.Xml

    System.Xml.Linq

    Aplicacin WPF

    Esta plantilla de proyecto pe rmite beneficiarse del nuevo sistema de visualizacin grfica de Window s,utilizado en Windows Vista.Los elementos siguientes se aaden automticamente al proyecto:

    Un archivo AssemblyInfo.cs utilizado para la descripcin de la aplicacin con lainformacin relativa a la versin.

    Un archivo App.Xaml y su archivo de cdigo asociado, App.Xaml.cs, permite la gestin deeventos desactivados a nivel de aplicacin.

    Una ventana bsica W indow1.Xaml y su archivo de cdigo asociado, Window1.Xaml.cs.

    Las referencias siguientes se aaden e importan automticamente:

    Microsoft.CSharp

    PresentationCore

    PresentationFramework

    System

    System.Core

    System.Data

    System.Data.DataSetExtensions

    System.XamlSystem.Xml

    System.Xml.Linq

    WindowsBase

    Librera de controles usuario WPF

    Como la librera de controles Windows, este tipo de proyecto permite ampliar el cuadro deherramientas ya disponible en las aplicaciones WPF. Se aaden los elementos siguientes al proyecto:

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    62/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    Un archivo AssemblyInfo.cs utilizado para la descripcin de la aplicacin con lainformacin relativa a la versin.

    Un archivo UserControl1.xaml para la definicin del aspecto grfico del control.

    Un archivo UserControl1.xaml.cs para el cdigo asociado a este control.

    Las referencias siguientes se aaden e importan automticamente:

    Microsoft.CSharp

    PresentationCore

    PresentationFramework

    System

    System.Core

    System.Data

    System.Data.DataSetExtensions

    System.Xaml

    System.XmlSystem.Xml.Linq

    WindowsBase

    Librera de controles WPF personalizados

    Este tipo de proyecto tambin tiene por vocacin extender el cuadro de herramientas disponible paralas aplicaciones WPF. A diferencia del tipo de proyecto anterior, los controles no han sido creadoscompletamente, sino que estn basados en controles existentes cuyas caractersticas extienden.

    Las referencias e importaciones son idnticas al tipo de proyecto anterior.

    Proyecto vaco

    Debe utilizar esta plantilla cuando desee crear su propio tipo de proyecto. Slo crea un archivo deproyecto. A cambio, no se aade ningn otro e lemento automticamente ni crea o importa referenciaalguna.

    b. Creacin de una plantilla de proyecto

    Puede crear su propia plantilla de proyecto segn sus costumbres de desarrollo y hacerlo de talmanera que aparezca entre las plantillas predefinidas.

    Debe disear los elementos siguientes:

    Un archivo de definicin que contiene los metadatos de la plantilla. Visual Studio utiliza estearchivo para la visualizacin del proyecto en el entorno de desarrollo y para la asignacin depropiedades por defecto al proyecto. Estos datos estn contenidos en un archivo XML con laextensin .vstemplate.

    Un archivo para el proyecto (.csproj).

    Los archivos fuentes y recursos incluidos por defecto durante la creacin de un proyecto apartir de esta plantilla.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    63/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    *AppliPersoCreacion de un proyecto con una configuracion personalizada

    CSharpAppliPerso

    AssemblyInfo.csHoja1.csHoja1.Designer.csHoja1.resx

    Se debe comprimir estos archivos en un archivo zip. El archivo zip debe contener los archivosindividualmente, y no el directorio en el que es tn ubicados.

    El archivo .vstemplate debe tener el formato siguiente:

    En este archivo encontramos:

    En la seccin Name

    El nombre visualizado por el cuadro de dilogo de creacin de un nuevo proyecto.

    En la seccin Description

    Una descripcin detallada del proyecto.

    En la seccin ProjectType

    El nombre del archivo en el cual este proyecto ser clasificado en el cuadro de dilogo decreacin de proyecto.

    En la seccin DefaultName

    El nombre utilizado por defecto para todos los proyectos creados desde esta plantilla. Se

    completa e ste nombre con un sufijo numrico en la creacin del proyecto.

    En la seccin Project File

    El nombre del archivo proyecto asociado a la plantilla. Este archivo debe estar presente enel archivo z ip de la plantilla.

    En las secciones ProjectItem

    Los elementos que forman parte del proyecto. Tambin estos elementos deben estardisponibles en el archivo zip.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    64/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    c. Modificacin de una plantilla existente

    La modificacin de una plantilla consiste en utilizar un archivo zip existente que contiene loselementos ne cesarios al proyecto y aadir elementos adicionales. Si se aaden archivos a la plantilla,se les debe ubicar en el archivo zip y tambin referenciarlos en el archivo .vstemplate. Las plantillaspredefinidas de Visual Studio estn ubicadas en el directorio C:\Program Files\Microsoft Visual Studio11.0\Common7\IDE\ProjectTemplates\CSharp. Para que se tengan en cuenta las modificaciones, debe

    actualizar la cach utilizada por Visual Studio.Para e llo:

    Abra una ventana de comando Visual Studio.

    Introduzca el comando devenv /setup . Sea paciente, ya que este comando tarda bastante enejecutarse. Despus de la ejecucin del comando, sus modificaciones estn disponibles en laplantilla de proyecto.

    d. Utilizacin de un proyecto existente como plantilla

    Puede que sea la solucin ms simple para construir una plantilla de proyecto.En una primera fase cree la plantilla como un proyecto ordinario.

    Una vez finalizado su proyecto, exprtelo como plantilla. El men Archivo - Exportarplantilla inicia un asistente para guiarle durante la creacin de la plantilla.

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    65/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    Este primer cuadro de dilogo le propone elegir el proyecto que desea exportar.

    Este segundo cuadro de dilogo le invita a elegir un icono para su plantilla de proyecto, un nombre

    para la plantilla y una descripcin. Hay dos opciones adicionales que le permiten tener en cuentainmediatamente la nueva plantilla en Visual Studio y presentarle el resultado de la generacinmostrndole el contenido del archivo zip creado. Despus de validar es te ltimo cuadro de dilogo, lanueva plantilla de proyecto est disponible en Visual Studio.

    Este mtodo es muy simple para construir una nueva plantilla de proyecto y evita enredarsecon la s intaxis del archivo .vstemplate.

    En el marco de un desarrollo en equipo, puede resultar interesante compartir las plantillaspersonalizadas entre todos los miembros del equipo.

    Copie otra vez los archivos z ip en una red compartida.Configure el entorno Visual Studio para pe rmitirle acceder a las plantillas. Esta modificacin seefecta gracias al cuadro de dilogo disponible en el men Herramientas - Opciones .

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    66/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    2. Modificacin de un proyectoLas plantillas de proyectos son muy tiles para crear rpidamente las bases de una aplicacin, pero amenudo necesitarn el aadido de nuevos elementos al proyecto. Estos aadidos se hacen por mediodel men contextual del explorador de proyecto.

    Active la opcin Agregar - Nuevo elemento a fin de elegir el tipo de elemento que desea aadiral proyecto. El cuadro de dilogo propone un nmero impresionante de elementos que sepueden aadir a un proyecto.

    Indique luego un nombre para e l archivo que contiene el nuevo e lemento.

    En funcin de los tipos de proyecto, hay opciones adicionales disponibles en el mencontextual que pe rmiten aadir rpidamente un nue vo elemento. Se visualizan simplemente en

    Bscanos en Fb: InfoLibros

  • 7/26/2019 C# 5 Los Fundamentos Del Lenguaje (2012)

    67/367

    24/4/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=69377

    el cuadro de dilogo anterior con el tipo de elemento correspondiente ya prese leccionado.

    Tambin es posible retomar un elemento existente en otro proyecto y aadirlo a un proyecto. Utilice eneste caso la opcin Agregar - Elemento existente del men contextual del explorador de proyectos. Uncuadro de dilogo le propone la seleccin del archivo que hay que incluir en el proyecto.

    El botn Agre