Clase II Clase II • [nombre instructor] [nombre instructor] • [fecha] [fecha]
Clase IIClase II•[nombre instructor][nombre instructor]
•[fecha][fecha]
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 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
AgendaAgenda
IDE Visual Studio 2005IDE Visual Studio 2005 Administrando Proyectos y Administrando Proyectos y
SolucionesSoluciones 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
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
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 la que el desarrollador solo tenga que ocuparse de la funcionalidad específica.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
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
Visual Studio .NET IDEVisual Studio .NET IDEV
isu
al S
tud
io ID
EV
isu
al S
tud
io ID
E
Plantilla de ProyectosPlantilla de ProyectosV
isu
al S
tud
io ID
EV
isu
al S
tud
io ID
E
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.
Vis
ua
l Stu
dio
IDE
Vis
ua
l Stu
dio
IDE
Server ExplorerServer Explorer
Permite crear y Permite crear y manipular manipular conexiones a bases conexiones a bases de datosde datos
Conectarse a Conectarse a servers y explorar servers y explorar su contenidosu contenido
Vis
ua
l Stu
dio
IDE
Vis
ua
l Stu
dio
IDE
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
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 simple
Agrega elementos para crear una Agrega elementos para crear una aplicación en modo textoaplicación en modo texto
Típicamente son las aplicaciones que se Típicamente son las aplicaciones que se diseñan sin interfaz de usuario gráfica y diseñan sin interfaz de usuario gráfica y se compilan en un único ejecutablese compilan 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 Buena herramienta para el estudio de
nuevas técnicas de desarrollo de nuevas técnicas de desarrollo de aplicaciones, sin preocuparse por la UIaplicaciones, sin preocuparse por la UI
Vis
ua
l Stu
dio
IDE
Vis
ua
l Stu
dio
IDE
DemoDemo•Primera Aplicación Modo ConsolaPrimera Aplicación Modo Consola
Vis
ua
l Stu
dio
IDE
Vis
ua
l Stu
dio
IDE
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
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 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
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
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
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
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
Fue un lenguaje creado especialmente para .NET. Totalmente OO.
Sin
taxi
sS
inta
xis
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
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 .NET
Declaradas 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 El contenido de la variable tiene que estar
de acuerdo con su definiciónde acuerdo con su definición
Sin
taxi
sS
inta
xis
Variables - DeclaraciónVariables - Declaración
C#:C#: el tipo de variable precede al identificador el tipo de variable precede al identificador
VB.NET:VB.NET: comienza con Dim o algun modificador comienza con Dim o algun modificador de acceso (Public, Private, etc.) + identificador de acceso (Public, Private, etc.) + identificador de la variable + As Tipo de Variablede 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
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 VB.NET: inicializa automáticamente las variables en CERO o en Nothingvariables 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
Variables - NomenclaturasVariables - Nomenclaturas ¿Cómo declarar una variable?¿Cómo declarar una variable? Nomenclaturas y convencionesNomenclaturas y convenciones
Notación HúngaraNotación Húngara
Sin
taxi
sS
inta
xis
Variables - TiposVariables - Tipos
Tipos de variablesTipos de variables
Sin
taxi
sS
inta
xis
Variables - TiposVariables - Tipos
Tipos de variablesTipos de variables
Sin
taxi
sS
inta
xis
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
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
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
ComentariosComentarios
C# soporta dos tipos de comentariosC# soporta dos tipos de comentarios
VB.NET solo soporta comentarios de VB.NET solo soporta comentarios de una lineauna 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
LaboratorioLaboratorio•Primera aplicación de consolaPrimera aplicación de consola
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
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””
//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 En VB.NET se debe utilizar los operadores AndAlso y OrElseOrElse
‘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 IfS
inta
xis
Sin
taxi
s
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 VB.NET: la sentencia If requiere de la palabra Thenpalabra 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
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
LaboratorioLaboratorio•Estructura de decisiónEstructura de decisión
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-switch (expresion-a-evaluar) { evaluar) {
case valor: case valor:
statementsstatements
break;break;
default:default:
statements statements
break; } break; }
Sin
taxi
sS
inta
xis
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
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;
Sin
taxi
sS
inta
xis
LaboratorioLaboratorio•Estructura de decisión IIEstructura de decisión II
ArreglosArreglos C# utiliza corchetes [ ] para definición C# utiliza corchetes [ ] para definición
de arraysde arrays
VB.NET permite definir arrays de VB.NET permite definir arrays de varias formas con ()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”}
Sin
taxi
sS
inta
xis
Estructuras de iteración – ForEstructuras de iteración – For C#: la sentencia for consta de tres C#: la sentencia for consta de tres
partespartes
VB.NET usa las palabras claves For, VB.NET usa las palabras claves For, To, Next y StepTo, 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
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)
Next
Sin
taxi
sS
inta
xis
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
LaboratorioLaboratorio•Estructura de IteraciónEstructura de Iteración
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 For/Each permite recorrer arreglos y coleccionescolecciones
Sin
taxi
sS
inta
xis
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
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
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
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
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