clase-ii-11579597

50
Clase II Clase II [nombre instructor] [nombre instructor] [fecha] [fecha]

Transcript of clase-ii-11579597

Page 1: clase-ii-11579597

Clase IIClase II[nombre instructor][nombre instructor]

[fecha][fecha]

Page 2: clase-ii-11579597

AgendaAgenda

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

HerramientasHerramientas

Creación de la primera aplicaciónCreación de la primera aplicación

Sintaxis de los lenguajesSintaxis de los lenguajesLógica de programaciónLógica de programación

Elección del lenguajeElección del lenguaje

Variables y tipos de datosVariables y tipos de datos

Estructuras lógicasEstructuras lógicas

Page 3: clase-ii-11579597

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 los lenguajesSintaxis de los lenguajesLógica de programaciónLógica de programación

Elección del lenguajeElección del lenguaje

Variables y tipos de datosVariables y tipos de datos

Estructuras lógicasEstructuras lógicas

Page 4: clase-ii-11579597

Visual Studio .NET Visual Studio .NET

VS.NET simplifica el desarrollo de aplicaciones VS.NET simplifica el desarrollo de aplicaciones basadas en .NET proporcionando un entorno de basadas en .NET proporcionando un entorno de desarrollo simple y unificadodesarrollo simple y unificadoCaracterísticasCaracterísticasUn solo IDE (Integrated Development Environment)Un solo IDE (Integrated Development Environment)Soporte para varios lenguajes .NET (VB.NET, C#,...)Soporte para varios lenguajes .NET (VB.NET, C#,...)Desarrollo de múltiples tipos de proyectosDesarrollo de múltiples tipos de proyectosExplorador Web integrado (basado en IE)Explorador Web integrado (basado en IE)Interfase personalizableInterfase personalizablePosee varias utilidades adicionales: Acceso a datos SQL Posee varias utilidades adicionales: Acceso a datos SQL Server, Depurador, Intellisense, Emuladores para Server, Depurador, Intellisense, Emuladores para móviles, etc.móviles, etc.

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 5: clase-ii-11579597

Proyectos en Visual Studio .NETProyectos en Visual Studio .NET

Los proyectos son contenedores que se ubican Los proyectos son contenedores que se ubican en una solución, para facilitar la administración, en una solución, para facilitar la administración, compilación y almacenado de los ítemscompilación y almacenado de los ítems

Plantillas de ProyectosPlantillas de ProyectosPermiten la generación automática de módulos que serán Permiten la generación automática de módulos que serán administrados fácilmente, de manera tal que el administrados fácilmente, de manera tal que el desarrollador solo tenga que ocuparse de la desarrollador solo tenga que ocuparse de la funcionalidad específica.funcionalidad específica.

Archivos de definición de proyectosArchivos de definición de proyectosContienen metadata del proyectoContienen metadata del proyectoUbicació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-ii-11579597

Soluciones en Visual Studio .NETSoluciones en Visual Studio .NET

Archivos o ítems relacionados se agrupan, Archivos o ítems relacionados se agrupan, a nivel lógico, en un proyectoa 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 mismo Se pueden abrir, cerrar y guardar todos al mismo tiempo.tiempo.

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

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 7: clase-ii-11579597

Visual Studio .NET IDEVisual Studio .NET IDEV

isu

al S

tud

io ID

EV

isu

al S

tud

io ID

E

Page 8: clase-ii-11579597

Plantilla de ProyectosPlantilla de ProyectosV

isu

al S

tud

io ID

EV

isu

al S

tud

io ID

E

Page 9: clase-ii-11579597

Solution ExplorerSolution Explorer

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

Permite eliminar y mover Permite eliminar y mover los archivos del proyectolos archivos del proyecto

Permite agregar nuevos Permite agregar nuevos elementos al proyectoelementos al proyecto

Establecer referencias a Establecer referencias a asemblies y servicios webasemblies y servicios web

Crear carpetasCrear carpetas

Etc.Etc.

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 10: clase-ii-11579597

Server ExplorerServer Explorer

Permite crear y Permite crear y manipular conexiones a manipular conexiones a bases de datosbases de datos

Conectarse a servers y Conectarse a servers y explorar su contenidoexplorar su contenido

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 11: clase-ii-11579597

ToolBoxToolBox

Muestra ítems para utilizar Muestra ítems para utilizar en los distintos proyectos en los distintos proyectos de Visual Studiode Visual Studio

Los ítems cambian Los ítems cambian dependiendo del proyectodependiendo del proyectoComponentes .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 12: clase-ii-11579597

Creando la primera aplicación de Creando la primera aplicación de consola con Visual Studio 2005 IDEconsola con Visual Studio 2005 IDE

El template de proyecto mas simpleEl template de proyecto mas simpleAgrega elementos para crear una aplicación en Agrega elementos para crear una aplicación en modo textomodo texto

Típicamente son las aplicaciones que se Típicamente son las aplicaciones que se diseñan sin interfaz de usuario gráfica y se diseñan sin interfaz de usuario gráfica y se compilan en un único ejecutablecompilan en un único ejecutable

Se ejecutan desde la línea de comandoSe ejecutan desde la línea de comando

Buena herramienta para el estudio de nuevas Buena herramienta para el estudio de nuevas técnicas de desarrollo de aplicaciones, sin técnicas de desarrollo de aplicaciones, sin preocuparse por la UIpreocuparse por la UI

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 13: clase-ii-11579597

DemoDemoPrimera Aplicación Modo ConsolaPrimera Aplicación Modo Consola

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 14: clase-ii-11579597

ResumenResumen

Herramienta de desarrolloHerramienta de desarrollo

Proyectos y SolucionesProyectos y Soluciones

Creación de aplicación en modo Creación de aplicación en modo consolaconsola

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 15: clase-ii-11579597

AgendaAgenda

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

HerramientasHerramientas

Creación de la primera aplicaciónCreación de la primera aplicación

Sintaxis de los lenguajesSintaxis de los lenguajes

Lógica de programaciónLógica de programación

Elección del lenguajeElección del lenguaje

Variables y tipos de datosVariables y tipos de datos

Estructuras lógicasEstructuras lógicas

Page 16: clase-ii-11579597

Lógica de ProgramaciónLógica de Programación

ProcesoProceso

EntradaEntrada

SalidaSalida

Prueba ok?Prueba ok?

EntradaEntrada

SalidaSalida

SiSi

NoNo

Sin

taxi

sS

inta

xis

Page 17: clase-ii-11579597

Lógica de ProgramaciónLógica de Programación

Base de DatosBase de Datos

ProcesoProceso

EntradaEntrada

SalidaSalida

Biblioteca deBiblioteca declasesclases

Servicio WebServicio Web

Sin

taxi

sS

inta

xis

Page 18: clase-ii-11579597

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

HerenciaHerenciaSobrecargaSobrecargaConstructoresConstructoresAdministración Administración estructurada de estructurada de excepcionesexcepcionesComprobación de TiposComprobación de TiposMiembros 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++, JSintaxis similar a C++, J

Tipos segurosTipos seguros

Case-sensitiveCase-sensitive

Atributos accedidos por un puntoAtributos accedidos por un punto

Todo es tratado como objetosTodo es tratado como objetos

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

Sin

taxi

sS

inta

xis

Page 19: clase-ii-11579597

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 20: clase-ii-11579597

VariablesVariables

¿Qué es una variable?¿Qué es una variable?

¿En qué situación se usa una variable?¿En qué situación se usa una variable?

Variables en .NETVariables en .NETDeclaradas en cualquier lugar del lugar del Declaradas en cualquier lugar del lugar del códigocódigo

Todas deben tener un tipoTodas deben tener un tipo

El contenido de la variable tiene que estar de El contenido de la variable tiene que estar de acuerdo con su definiciónacuerdo con su definición

Sin

taxi

sS

inta

xis

Page 21: clase-ii-11579597

Variables - DeclaraciónVariables - Declaración

C#:C#: el tipo de variable precede al identificador el tipo de variable precede al identificador

comienza con Dim o algun modificador de acceso (Public, Private, etc.) + identificador de la variable + As Tipo de Variable comienza con Dim o algun modificador de acceso (Public, Private, etc.) + identificador de la variable + As Tipo de Variable

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

Dim x As Integer ‘Dim es = a Private por defectoDim y As DecimalDim z As RectangleDim cli As Cliente

Sin

taxi

sS

inta

xis

Page 22: clase-ii-11579597

Variables - InicializaciónVariables - Inicialización

C#: toda variable debe ser inicializada C#: toda variable debe ser inicializada EXPLICITAMENTE antes de ser usadaEXPLICITAMENTE antes de ser usada

VB.NET: inicializa automáticamente las variables en CERO o en NothingVB.NET: inicializa automáticamente las variables en CERO o en Nothing

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

Dim tempBalance As Integer'SIN ERROR: tempBalance vale CEROSystem.Console.WriteLine(tempBalance)

Sin

taxi

sS

inta

xis

Page 23: clase-ii-11579597

Variables - NomenclaturasVariables - Nomenclaturas

¿Cómo declarar una variable?¿Cómo declarar una variable?

Nomenclaturas y convencionesNomenclaturas y convencionesNotación HúngaraNotación Húngara

Sin

taxi

sS

inta

xis

Page 24: clase-ii-11579597

Variables - TiposVariables - Tipos

Tipos de variablesTipos de variables

Sin

taxi

sS

inta

xis

Page 25: clase-ii-11579597

Variables - TiposVariables - Tipos

Tipos de variablesTipos de variables

Sin

taxi

sS

inta

xis

Page 26: clase-ii-11579597

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 27: clase-ii-11579597

Case SensitiveCase Sensitive

C# es case-sensitivityC# es case-sensitivity

VB.NET no es case-sensitivityVB.NET no es case-sensitivity

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

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

system.console.writeline(“HOLA”) CORRECTO

System.Console.WriteLine(“HOLA”) CORRECTO

Sin

taxi

sS

inta

xis

Page 28: clase-ii-11579597

Terminaciones de líneaTerminaciones de línea

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

VB.NET la línea finaliza con un CRLFVB.NET la línea finaliza con un CRLF

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

'Una linea con mas de un renglonDim sName As String = sFirstName & _ sLastName

Sin

taxi

sS

inta

xis

Page 29: clase-ii-11579597

ComentariosComentarios

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

VB.NET solo soporta comentarios de una lineaVB.NET solo soporta comentarios de una linea

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

'Comentario simpleDim sName As String = “Juan”

Sin

taxi

sS

inta

xis

Page 30: clase-ii-11579597

LaboratorioLaboratorioPrimera aplicación de consolaPrimera aplicación de consola

Page 31: clase-ii-11579597

Estructuras de Decisión - IFEstructuras de Decisión - IF

IF - VB.NETIF - VB.NET

If condición ThenIf condición Then

statementsstatements

ElseIf condición ThenElseIf condición Then

elseif statementselseif statements

Else Else

else statementselse statements

End IfEnd If

IF - C#IF - C#

if if ((condicióncondición))

statementsstatements

else if else if ((condicióncondición))

statementsstatements

elseelse

statementsstatements

Sin

taxi

sS

inta

xis

Page 32: clase-ii-11579597

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

!=!= <><> DistintoDistintoEn 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()){ {} }

En VB.NET se debe utilizar los operadores AndAlso y OrElseEn VB.NET se debe utilizar los operadores AndAlso y OrElse

‘Si Hacer1() es True, entonces ‘Si Hacer1() es False, entonces‘NO se evalua Hacer2() ‘NO se evalua Hacer2()If Hacer1() OrElse Hacer2() Then If Hacer1() AndAlso Hacer2() Then ... ...End If End If

Sin

taxi

sS

inta

xis

Page 33: clase-ii-11579597

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

VB.NET: la sentencia If requiere de la palabra ThenVB.NET: la sentencia If requiere de la palabra Then

If x > 10 Then Hacer() If x < 10 Then If x < 10 Then If x < 10 Then Hacer1() Hacer1() Hacer1() Hacer2() Else ElseIf x > 20 Then End If Hacer2() Hacer2() End If Else Hacer3() End If

Sin

taxi

sS

inta

xis

Page 34: clase-ii-11579597

If Else – Ejemplo IIIf Else – Ejemplo II

if (nombre ==“Juan”) if (nombre != “Carlos”) if ( nombre==“Juan” || HacerAlgo(); { nombre==“Carlos) Hacer1(); { Hacer2(); Hacer1(); } }

C#: condiciones con stringsC#: condiciones con strings

VB.NET: condiciones con strings. VB.NET: condiciones con strings.

If nombre = “Carlos” Then If nombre <> “Carlos” Or nombre <> “Juan” Then Hacer() Hacer1()

Hacer2() End If

Sin

taxi

sS

inta

xis

Page 35: clase-ii-11579597

LaboratorioLaboratorioEstructura de decisiónEstructura de decisión

Page 36: clase-ii-11579597

Estructuras de decisión - CaseEstructuras de decisión - Case

Select Case – VB.NETSelect Case – VB.NET

Select Case expresion-a-Select Case expresion-a-evaluar evaluar

Case valor Case valor

statements statements

Case Else Case Else

else statementselse statements

End SelectEnd Select

switch – C#switch – C#

switch (expresion-a-evaluar) { switch (expresion-a-evaluar) {

case valor: case valor:

statementsstatements

break;break;

default:default:

statements statements

break; } break; }

Sin

taxi

sS

inta

xis

Page 37: clase-ii-11579597

Select Case – VB.NETSelect Case – VB.NET

Dim Pais As String = valorDim Deporte As StringSelect Case Pais

Case “Brasil” Or “Argentina”Deporte = “Futbol”

Case “USA”Deporte = “Basquet”

Case ElseDeporte = “Tenis”

End Select

Dim DiaSemana As Integer = DateTime.Now.DayOfWeekDim Dia As StringSelect Case DiaSemana

Case 0,6Dia = “Fin de Semana”

Case 1,2,3,4,5Dia = “Entre Semana”

End Select

Sin

taxi

sS

inta

xis

Page 38: clase-ii-11579597

switch – C#switch – C#

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

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

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

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

inta

xis

Sin

taxi

s

Page 39: clase-ii-11579597

LaboratorioLaboratorioEstructura de decisión IIEstructura de decisión II

Page 40: clase-ii-11579597

ArreglosArreglosC# utiliza corchetes [ ] para definición de C# utiliza corchetes [ ] para definición de arraysarrays

VB.NET permite definir arrays de varias formas con ()VB.NET permite definir arrays de varias formas con ()

string[] 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”};

Dim telefonos As String() ó Dim telefonos() As StringDim telefonos(3) As String ‘Crea un array de 4 elementos telefonos(0) = “1245” ‘Seteo del 1er elemento del arreglo

‘Definicion y asignacion de una vezDim telefonos() As String = {“1”,“2”,“3”}S

inta

xis

Sin

taxi

s

Page 41: clase-ii-11579597

Estructuras de iteración – ForEstructuras de iteración – ForC#: la sentencia for consta de tres partesC#: la sentencia for consta de tres partes

VB.NET usa las palabras claves For, To, Next y StepVB.NET usa las palabras claves For, To, Next y Step

//Partes: declaración, prueba, acciónfor (int i=1; i < 10; i++){}

Dim i As Integer For i = 1 To 100 For i = 1 To 100 Step 2 ‘i se incrementa en 1 ‘i se incrementa en 2Next Next

Sin

taxi

sS

inta

xis

Page 42: clase-ii-11579597

For Next – VB.NETFor Next – VB.NET

ForFor contadorcontador == inicioinicio ToTo finfin [ [Step Step incrementoincremento]]

statementsstatements

Exit ForExit For

NextNext

Dim item As IntegerFor item = 1 To 20

Console.WriteLine(item)Next

For item As Integer = 20 To 1 Step -1Console.WriteLine(item)

NextSin

taxi

sS

inta

xis

Page 43: clase-ii-11579597

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 44: clase-ii-11579597

LaboratorioLaboratorioEstructura de IteraciónEstructura de Iteración

Page 45: clase-ii-11579597

Estructuras de Iteración – for / eachEstructuras de Iteración – for / each

C#: usa la palabra foreachC#: usa la palabra foreach

VB.NET usa las palabra ForEachVB.NET usa las palabra ForEach

string[] nombres = new string[5];foreach(string auxNombre in nombres){ //auxNombre es de SOLO LECTURA}

Dim nombres(5) As StringDim auxNombre As StringFor Each auxNombre In nombres ‘auxNombre NO es de SOLO LECTURA Next

For/Each permite recorrer arreglos y coleccionesFor/Each permite recorrer arreglos y colecciones

Sin

taxi

sS

inta

xis

Page 46: clase-ii-11579597

For Each – VB.NETFor Each – VB.NET

For Each elemento In grupoFor Each elemento In grupo

statements statements

Exit For Exit For

NextNext

Dim multDos As Integer = 0Dim noMult As Integer = 0Dim arrayData() As Integer = {1, 5, 8, 45, 25}Dim numero As IntegerFor Each numero In arrayData

If numero MOD 2 = 0 Then multDos += 1

Else noMult +=1

End IfNext

Sin

taxi

sS

inta

xis

Page 47: clase-ii-11579597

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 48: clase-ii-11579597

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

C#: usa las palabras while o do - whileC#: usa las palabras while o do - while

VB.NET while, do o loopVB.NET while, do o loop

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

Dim i As Integer = 0While i >= 20 ‘codigo que entre otras cosas, incrementara i End While

Sin

taxi

sS

inta

xis

Page 49: clase-ii-11579597

While - Todas las opcionesWhile - Todas las opciones

VB.NETVB.NETWhile condicion While condicion

statements statements

End While End While

Do { While | Until } condicionDo { While | Until } condicion

statementsstatements

Exit DoExit Do

Loop Loop

Do Do

statementsstatements

Exit DoExit Do

Loop { While | Until } condicionLoop { While | Until } condicion

C#C#while (expresion){ statements } while (expresion){ statements }

do{ statements } while (expresion); do{ statements } while (expresion);

Sin

taxi

sS

inta

xis

Page 50: clase-ii-11579597

ResumenResumen

Lógica de programaciónLógica de programación

Elección del lenguajeElección del lenguaje

VariablesVariables

Estructuras de decisión e iteraciónEstructuras de decisión e iteración

Sin

taxi

sS

inta

xis