Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

31
Clase 2 Clase 2 Curso Microsoft .NET Curso Microsoft .NET I.S.F.T. N° 182 I.S.F.T. N° 182

Transcript of Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Page 1: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Clase 2Clase 2•Curso Microsoft .NETCurso Microsoft .NET

•I.S.F.T. N° 182I.S.F.T. N° 182

Page 2: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

AgendaAgenda

IDE Visual Studio 2005IDE Visual Studio 2005 Administrando Proyectos y SolucionesAdministrando Proyectos y Soluciones HerramientasHerramientas

Sintaxis C#Sintaxis C# Elección del lenguajeElección del lenguaje Variables y tipos de datosVariables y tipos de datos Estructuras lógicasEstructuras lógicas ColeccionesColecciones

Page 3: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

AgendaAgenda

IDE Visual Studio 2005IDE Visual Studio 2005 Administrando Proyectos y Administrando Proyectos y

SolucionesSoluciones HerramientasHerramientas

Sintaxis de C#Sintaxis de C# Elección del lenguajeElección del lenguaje Variables y tipos de datosVariables y tipos de datos Estructuras lógicasEstructuras lógicas ColeccionesColecciones

Page 4: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Visual Studio .NET Visual Studio .NET

VS.NET simplifica el desarrollo de VS.NET simplifica el desarrollo de aplicaciones basadas en .NET aplicaciones basadas en .NET proporcionando un entorno de desarrollo proporcionando un entorno de desarrollo simple y unificadosimple y unificado

CaracterísticasCaracterísticas Un solo IDE (Integrated Development Un solo IDE (Integrated Development

Environment)Environment) Soporte para varios lenguajes .NET (VB.NET, Soporte para varios lenguajes .NET (VB.NET,

C#,...)C#,...) Desarrollo de múltiples tipos de proyectosDesarrollo de múltiples tipos de proyectos Explorador Web integrado (basado en IE)Explorador Web integrado (basado en IE) Interfase personalizableInterfase personalizable Posee varias utilidades adicionales: Acceso a Posee varias utilidades adicionales: Acceso a

datos SQL Server, Depurador, Intellisense, datos SQL Server, Depurador, Intellisense, Emuladores para móviles, etc.Emuladores para móviles, etc.

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 5: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Proyectos en Visual Studio .NETProyectos en Visual Studio .NET Los proyectos son contenedores que se Los proyectos son contenedores que se

ubican en una solución, para facilitar la ubican en una solución, para facilitar la administración, compilación y almacenado de administración, compilación y almacenado de los ítemslos ítems

Plantillas de ProyectosPlantillas de Proyectos Permiten la generación automática de módulos Permiten la generación automática de módulos

que serán administrados fácilmente, de manera tal que serán administrados fácilmente, de manera tal que el desarrollador solo tenga que ocuparse de que el desarrollador solo tenga que ocuparse de la funcionalidad específica.la funcionalidad específica.

Archivos de definición de proyectosArchivos de definición de proyectos Contienen metadata del proyectoContienen metadata del proyecto

Ubicación física de los ítemsUbicación física de los ítems Forma de compilaciónForma de compilación Archivos asociadosArchivos asociados

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 6: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Soluciones en Visual Studio .NETSoluciones en Visual Studio .NET

Archivos o ítems relacionados se Archivos o ítems relacionados se agrupan, a nivel lógico, en un proyectoagrupan, a nivel lógico, en un proyecto

Una solución puede contener varios Una solución puede contener varios proyectos. proyectos. Se pueden abrir, cerrar y guardar todos al Se pueden abrir, cerrar y guardar todos al

mismo tiempo.mismo tiempo.

La relación lógica entre solución y La relación lógica entre solución y proyectos no refleja necesariamente proyectos no refleja necesariamente una relación física.una relación física.

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 7: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Visual Studio .NET IDEVisual Studio .NET IDEV

isu

al S

tud

io ID

EV

isu

al S

tud

io ID

E

Page 8: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Plantilla de ProyectosPlantilla de ProyectosV

isu

al S

tud

io ID

EV

isu

al S

tud

io ID

E

Page 9: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Solution ExplorerSolution Explorer

Muestra los archivos Muestra los archivos de/los proyectos de la de/los proyectos de la soluciónsolución

Permite eliminar y Permite eliminar y mover los archivos del mover los archivos del proyectoproyecto

Permite agregar nuevos Permite agregar nuevos elementos al proyectoelementos al proyecto

Establecer referencias Establecer referencias a asemblies y servicios a asemblies y servicios webweb

Crear carpetasCrear carpetas Etc.Etc.

Muestra los archivos Muestra los archivos de/los proyectos de la de/los proyectos de la soluciónsolución

Permite eliminar y Permite eliminar y mover los archivos del mover los archivos del proyectoproyecto

Permite agregar nuevos Permite agregar nuevos elementos al proyectoelementos al proyecto

Establecer referencias Establecer referencias a asemblies y servicios a asemblies y servicios webweb

Crear carpetasCrear carpetas Etc.Etc.

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 10: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

ToolBoxToolBox

Muestra ítems para Muestra ítems para utilizar en los distintos utilizar en los distintos proyectos de Visual proyectos de Visual StudioStudio

Los ítems cambian Los ítems cambian dependiendo del dependiendo del proyectoproyecto Componentes .NETComponentes .NET Componentes COMComponentes COM Objetos HTMLObjetos HTML Fragmentos de CódigoFragmentos de Código

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 11: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Ventana de PropiedadesVentana de Propiedades

Permite acceder y Permite acceder y modificar a las modificar a las propiedades y propiedades y eventos del objeto eventos del objeto seleccionado (Form, seleccionado (Form, control, clase, etc.)control, clase, etc.)

IDE

Vis

ual S

tud

ioID

E V

isua

l Stu

dio

Page 12: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

AgendaAgenda

IDE Visual Studio 2005IDE Visual Studio 2005 Administrando Proyectos y SolucionesAdministrando Proyectos y Soluciones HerramientasHerramientas Creación de la primera aplicaciónCreación de la primera aplicación

Sintaxis de C#Sintaxis de C# Elección del lenguajeElección del lenguaje Variables y tipos de datosVariables y tipos de datos Estructuras lógicasEstructuras lógicas ColeccionesColecciones

Page 13: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Visual Basic .NET y C#Visual Basic .NET y C#

HerenciaHerencia SobrecargaSobrecarga ConstructoresConstructores Administración Administración

estructurada de estructurada de excepcionesexcepciones

Comprobación de Comprobación de TiposTipos

Miembros SharedMiembros Shared

HerenciaHerencia SobrecargaSobrecarga ConstructoresConstructores Administración Administración

estructurada de estructurada de excepcionesexcepciones

Comprobación de Comprobación de TiposTipos

Miembros SharedMiembros Shared

Re-escrito desde cero para trabajar bajo .NET. Ahora totalmente OO. Mejoras s/VB6:

VB .NETVB .NET Visual C#Visual C#

Sintaxis similar a C++, Sintaxis similar a C++, JJ

Tipos segurosTipos seguros Case-sensitiveCase-sensitive Atributos accedidos Atributos accedidos

por un puntopor un punto Todo es tratado como Todo es tratado como

objetosobjetos

Sintaxis similar a C++, Sintaxis similar a C++, JJ

Tipos segurosTipos seguros Case-sensitiveCase-sensitive Atributos accedidos Atributos accedidos

por un puntopor un punto Todo es tratado como Todo es tratado como

objetosobjetos

Fue un lenguaje creado especialmente para .NET. Totalmente OO.

Sin

taxi

sS

inta

xis

Page 14: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Elección del lenguajeElección del lenguaje

.NET.NET utiliza UN solo runtime (el utiliza UN solo runtime (el CLRCLR) y TODO ) y TODO

lenguaje para .NET compila a lenguaje para .NET compila a MSILMSIL

Prácticamente no hay diferencias de Prácticamente no hay diferencias de

performance entre VB.NET y C#.performance entre VB.NET y C#.

Cual lenguaje usar, en gral. dependerá de su Cual lenguaje usar, en gral. dependerá de su

experiencia previa con otros lenguajes o experiencia previa con otros lenguajes o

decisión personal.decisión personal.

Si conoce Java, C++, etc. >> C#Si conoce Java, C++, etc. >> C#

Si conoce VB o VBScript >> VB.NETSi conoce VB o VBScript >> VB.NET

Sin

taxi

sS

inta

xis

Page 15: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Variables - DeclaraciónVariables - Declaración El tipo de variable precede al identificadorEl tipo de variable precede al identificador El tipo de variable precede al identificadorEl tipo de variable precede al identificador

int x;decimal y;rectangle z;Cliente cli;

Sin

taxi

sS

inta

xis

Variables - InicializaciónVariables - Inicialización Toda variable debe ser inicializada Toda variable debe ser inicializada

EXPLICITAMENTE antes de ser usadaEXPLICITAMENTE antes de ser usada

int tempBalance; //variable local//ERROR: tempBalance NO ha sido inicializadaSystem.Console.WriteLine(tempBalance);

Page 16: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Variables - NomenclaturasVariables - Nomenclaturas ¿Cómo declarar una variable?¿Cómo declarar una variable? Nomenclaturas y convencionesNomenclaturas y convenciones

Notación Camel CaseNotación Camel Case

Sin

taxi

sS

inta

xis

Page 17: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Variables – AlcanceVariables – Alcance Tiempo de vida de una variableTiempo de vida de una variable

string fuera = “Declarada fuera”string temp = “”If ( mostrarValores ){

string dentro = “Mostrada Dentro”temp = dentro

}else{

temp = fuera}

Sin

taxi

sS

inta

xis

Page 18: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Propiedades (Properties)Propiedades (Properties)

Nos permiten utilizar el Nos permiten utilizar el encapsulamiento.encapsulamiento.

Compuestas por Get y Set.Compuestas por Get y Set.

Page 19: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Case SensitiveCase Sensitive

C# es case-sensitivityC# es case-sensitivity

system.console.writeline(“HOLA”); INCORRECTO

System.Console.WriteLine(“HOLA”); CORRECTO

Sin

taxi

sS

inta

xis

Page 20: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Terminaciones de líneaTerminaciones de línea

C# la línea finaliza con un ;C# la línea finaliza con un ;

//Una linea con mas de un renglonstring sName = sFirstName + sLastName; //El punto y coma indica FINAL de linea

Sin

taxi

sS

inta

xis

Page 21: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

ComentariosComentarios

C# soporta dos tipos de comentariosC# soporta dos tipos de comentarios

// Comentario de una sola lineastring sName = “Juan”; /* Comentario con mas de un renglon */

Sin

taxi

sS

inta

xis

Page 22: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Operadores LogicosOperadores LogicosC#C# VB.NETVB.NET OperadorOperador

&&&& AndAnd Operador logico YOperador logico Y

llll OrOr Operador logico OOperador logico O

!! NotNot Negacion logicaNegacion logica

==== == IgualIgual    

!=!= <><> DistintoDistinto

En En C#C# todas las evaluaciones se hacen por todas las evaluaciones se hacen por ““cortocircuitocortocircuito””

En En C#C# todas las evaluaciones se hacen por todas las evaluaciones se hacen por ““cortocircuitocortocircuito””

//Si Hacer1() es True, entonces //Si Hacer1() es False, entonces//NO se evalua Hacer2() //NO se evalua Hacer2()if (Hacer1() || Hacer2()) if (Hacer1() && Hacer2()){ {} }

Sin

taxi

sS

inta

xis

Page 23: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

If Else – Ejemplo IIf Else – Ejemplo I

if (x > 10) if (x < 10) if (x < 10) if (x < 10) HacerAlgo(); { { { Hacer1(); Hacer1(); Hacer1(); Hacer2(); } } } else else if (x > 20) { { Hacer2(); Hacer2(); } } else { Hacer3(); }

C#: sentencia if con varios formatosC#: sentencia if con varios formatos

Sin

taxi

sS

inta

xis

Page 24: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

switch – C#switch – C#

string Pais = valor;string Deporte = “”; switch (Pais)

case “Brasil”: Deporte = “Futbol”;break;case “USA”: Deporte = “Basquet”;default: Deporte = “Tenis”break;

int opcion = valor;string Deporte = “”; switch (opcion)

case 1: Deporte = “Futbol”;break;case 2: Deporte = “Basquet”;default: Deporte = “Tenis”break;

Sin

taxi

sS

inta

xis

Page 25: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

ArreglosArreglos C# utiliza corchetes [ ] para definición C# utiliza corchetes [ ] para definición

de arraysde arraysstring[] telefonos; //Definicion de un Arreglo de stringstelefonos = new string[3]; //De 3 elementostelefonos[0] = “1245”; //Seteo del 1er elemento del arreglo

//Definicion y asignacion de una veztelefonos = new string[] {“1”,“2”,“3”};

Sin

taxi

sS

inta

xis

Page 26: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

For – C#For – C#

for (contador; expresion; incremento)for (contador; expresion; incremento)

{{

statements statements

}}

for (int item = 1; i<=10; i++) Console.WriteLine(i);

for (int item = 1; i<=10; i++){

Console.WriteLine(i);}

Sin

taxi

sS

inta

xis

Page 27: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

foreach – C#foreach – C#

foreach (elemento in grupo){foreach (elemento in grupo){

statements }statements }

int multDos = 0;int noMult = 0;int[] arrayData = {1, 5, 8, 45, 25};foreach (int numero In arrayData){

if (numero MOD 2 == 0) multDos += 1;

else noMult +=1;

}

Sin

taxi

sS

inta

xis

Page 28: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Estructuras de Iteración – While Estructuras de Iteración – While

C#: usa las palabras while o do - whileC#: usa las palabras while o do - whilebool condicion = true;while (condicion){ //codigo que haga que cambie la condicion}

Sin

taxi

sS

inta

xis

bool condicion = true;do{ //codigo que haga que cambie la condicion}while (condicion);

Page 29: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Colecciones: Objetos que, internamente, gestionan arrays, pero que

estan preparados para gestionarlos de forma opimizada

Espacio de Nombres de System.Collection ArrayList: Array cuyo número de elementos puede

modificarse dinámicamente

HashTable: El acceso a los valores del array se realiza a traves de una clave asociada a cada elemento

SortedList: Variación de un HashTable en la que los elementos se ordenan por la clave según van siendo agregados, funcionamiento similar al HashTable

Queue: Útiles para almacenar mensajes en el orden en el que fueron recibidos

Stack: Representa una colección de objetos simple de la clase último en entrar, primero en salir

Colecciones de ObjetosColecciones de ObjetosB

ase

Cla

ss L

ibra

ryB

ase

Cla

ss L

ibra

ry

Page 30: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

ArrayList – Ejemplo (C#)System.Collection.ArrayListSystem.Collection.ArrayList

Ba

se C

lass

Lib

rary

Ba

se C

lass

Lib

rary

Page 31: Clase 2 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

DemoDemo

Aplicación de consolaAplicación de consola