Escolar Documentos
Profissional Documentos
Cultura Documentos
La plataforma .NET
(.Net Framework)
ndice
Introduccin
Caractersticas de .NET
Componentes .NET
Plataforma .NET
Novedades Framework 2.0
Ejemplo
Enlaces de inters
Huancayo - 2008
Introduccin
www.microsoft.com/net
www.microsoft.com/latam/net/
Caractersticas de .NET
Huancayo - 2008
Componentes de .NET
Plataforma .NET
.NET Framework SDK
Visual Studio .NET
Servicios Web (Microsoft .NET myServices)
Servidores para empresas (SQL Server.NET...)
Huancayo - 2008
Plataforma .NET
El concepto en el que se basa .NET no es
nuevo.
Java y su entorno de ejecucin (JVM) ya
utilizan el concepto de encapsulamiento
del sistema operativo para permitir la
interoperabilidad entre diferentes
sistemas operativos.
VB
C++
C#
JScript
Windows
Forms
Visual Studio.NET
Huancayo - 2008
Huancayo - 2008
Modelo de ejecucin
Cdigo
fuente
C#
VB
Compilador
Cdigo
manejado
Compilador
C++
Cdigo no
manejado
Compilador
Ejecucin multiplataforma
Integracin de lenguajes
Gestin de memoria (Recolector de basura)
Tratamiento de excepciones
Soporte multi-hilo (multi-threading)
Distribucin transparente
Interoperabilidad con cdigo antiguo
Huancayo - 2008
Huancayo - 2008
System.IO: Manipulacin de
ficheros.
System.Reflection: Acceso a
los metadatos que acompaan a
los mdulos de cdigo.
System.Math: Funciones
logartmicas, trigonomtricas...
Huancayo - 2008
System.Collections:
Colecciones de datos de uso comn
como pilas, colas, listas...
System.Data: Manipulacin de
bases de datos. Forma la
denominada arquitectura ADO.NET.
ASP.NET
Web Forms
Server Controls
Web Services
Windows Forms
Huancayo - 2008
Visual Studio.NET
Huancayo - 2008
Huancayo - 2008
Console.WriteLine(... ),
visualiza un mensaje, invocando
mtodo WriteLine de la clase
Console
Productividad Personalizada
Testers
Arquitectos
Desarrolladores
Consultores
Profesionales
VB6 Devs
Hobbyists
Estudiantes
Entusiastas
Novatos
Lenguaje de Programacion III
Huancayo - 2008
La pgina de Inicio
Barra de
herramientas
Proyectos
recientes
Ayuda
Nuevo proyecto
Proyecto C# .NET
Solucin
C# .NET
Aplicacin
Windows
Huancayo - 2008
Carpeta de los
proyectos de
Visual C#
Aplicacin Windows
seleccionada
Descripcin del
tipo de proyecto
Barra de
Men
Fichas
Ficha
Activa
Formulario
(aplicacin
windows)
Explorador
de
Soluciones
Huancayo - 2008
Ventana de
Propiedades
Carlos Castro Grande
La barra de men
La barra de herramientas
Abrir un fichero
Guardar fichero
Explorador de
Caja de
soluciones
Herramientas
Examinador
de Objetos
Agregar nuevo
elemento al proyecto
Guardar todo
Ventana de
comandos
Pgina de
Inicio
Propiedades
Ventanas de trabajo
Explorador de soluciones
Mostrar todos
los archivos
Actualizar
Propiedades
Ver cdigo
Ver
diseador
Ver
diagrama
de clase
Huancayo - 2008
El cuadro de herramientas
Ventana acoplada:
Ocultacin
automtica
La ventana de propiedades
Componente seleccionado
Ordenacin
alfabtica
Eventos
Clasificacin por
categoras
Nombre de
Valor actual
La propiedad
Descripcin de
La propiedad actual
Huancayo - 2008
Nuevas opciones
El IDE es ms configurable.
Ayuda
Ayuda para
para
acoplar
acoplar las
las
ventanas
ventanas
(Docking)
(Docking)
Huancayo - 2008
Huancayo - 2008
Y adems:
Diseador de Clases
Diseador de aplicaciones
Asistente excepciones,
Huancayo - 2008
El programa:
Formulario que contendr los controles
Etiqueta para mostrar el texto
Guardar el proyecto
Ejecutar el proyecto:
Generar solucin
Iniciar el programa
Huancayo - 2008
ndice
Introduccin
Estructura de los programas
Variables y Tipos de Datos
Operadores y expresiones
Control del flujo
Condicionales
Bucles
Saltos
Funciones y Mtodos
Depuracin y Tratamiento de Errores
Huancayo - 2008
Introduccin
En C# todo es un objeto.
Caractersticas:
Un programa en C# contiene:
void Main()
int Main()
void Main(string[] args)
int Main(string[] args)
o relativo:
using System; ...;
Console.WriteLine(...);
Lenguaje de Programacion III
Huancayo - 2008
Ejemplo:
namespace N1 {
class C1 {
// ...
}
struct S1 {
// ...
}
interface I1 {
// ...
}
delegate int D1();
enum E1 {
// ...
}
}
Comentar el cdigo:
dues lnies
*/
#endregion
Lenguaje de Programacion III
Huancayo - 2008
Tipos
Tipos de
de datos
datos
Tipos
Tipos de
de valor
valor
Tipos
Tipos de
de referencia
referencia
-
- Intrnsecos,
- Enumeraciones,
- Estructuras
Arrays
Clases
Interfaces
Punteros
Descripcin
Bits
Rango de valores
Alias
SByte
[-128, 127]
sbyte
Byte
[ 0 , 255]
byte
Int16
16
[-32.768, 32.767]
short
UInt16
16
[0, 65.535]
ushort
Int32
Enteros normales
32
[-2.147.483.648, 2.147.483.647]
int
UInt32
32
[0, 4.294.967.295]
uint
Enteros largos
64
[-9.223.372.036.854.775.808,
9.223.372.036.854.775.807]
long
UInt64
64
[0-18.446.744.073.709.551.615]
ulong
Single
32
[1,510-45 - 3,41038]
float
Double
64
[5,010-324 - 1,710308]
double
Decimal
128
[1,010-28 - 7,91028]
decimal
Boolean
Valores lgicos
32
true, false
bool
Char
Caracteres Unicode
16
[\u0000, \uFFFF]
char
String
Cadenas de caracteres
Variable
string
Object
Cualquier objeto
Variable
Cualquier objeto
object
Int64
Huancayo - 2008
Identificadores
Dan
Variables
Una
Declaracin:
<tipodedato> <identificador>;
Recordar
Los
Huancayo - 2008
Comparacin
Variables
Variables de
de tipo
tipo valor:
valor:
Contienen
Contienen sus
sus datos
datos
directamente
directamente
Variables
Variables de
de tipo
tipo referencia:
referencia:
Cada
Cada una
una tiene
tiene su
su
propia
propia copia
copia de
de datos
datos
Almacenan
Almacenan referencias
referencias aa
sus
sus datos
datos (conocidos
(conocidos
como
como objetos)
objetos)
Las
Las operaciones
operaciones
sobre
sobre una
una no
no afectan
afectan
aa otra
otra
Dos
Dos variables
variables de
de
referencia
referencia pueden
pueden
apuntar
apuntar alal mismo
mismo objeto
objeto
Las
Las operaciones
operaciones sobre
sobre
una
una pueden
pueden afectar
afectar aa
otra
otra
Inicializacin
de variables en la declaracin:
Huancayo - 2008
Los
Una
C#
Como
mbito
y Visibilidad:
mbito:
mbito: lugar
lugar donde
donde
se
declara
una
variable.
se declara una variable.
Determina
Determina su
su accesibilidad.
accesibilidad.
La
La visibilidad
visibilidad de
de una
una
variable
fuera
de
su
variable fuera de su
mbito
mbito se
se puede
puede modificar
modificar
anteponiendo
anteponiendo public
public oo
private
private en
en su
su declaracin.
declaracin.
using System;
namespace ConsoleAppVisibilitat
{
class Simple
{
public int Var1=10;
private int Var2=20; //local
public int Var3=30;
}
class Class1
{
[STAThread]
static void Main(string[] args)
{
Simple s = new Simple();
Console.WriteLine("Simple:");
Console.WriteLine("Var1={0},
Var3={1}",s.Var1, s.Var3);
Console.ReadLine();
}
}
Huancayo
- 2008
}
static:
static: Variable
Variable
esttica,
esttica, existe
existe durante
durante
toda
la
ejecucin
toda la ejecucin del
del
programa.
programa.
Slo
Slo existe
existe una
una sola
sola
copia
copia de
de la
la misma
misma sin
sin
necesidad
de
crear
necesidad de crear
objeto
objeto alguno.
alguno.
Hay
Hay que
que referirse
referirse aa
ella
ella usando
usando el
el
nombre
nombre completo
completo del
del
tipo
al
que
pertenece.
tipo al que pertenece.
using System;
namespace ConsoleAppVisibilitatSTAT {
class Simple
{
public static int Var3=30; //pblica i
esttica
static int Var4=40; //privada i esttica
public void mostraVar4()
{
Console.WriteLine("Var4={0}", ++Var4);
}
}
class Class1
{
[STAThread]
static void Main(string[] args) {
Simple s = new Simple();
Simple k = new Simple();
Console.WriteLine("Simple:");
Console.WriteLine("Var3={0}",Simple.Var3++);
Console.WriteLine("Var3={0}",Simple.Var3);
s.mostraVar4();
k.mostraVar4();
Console.ReadLine();
No
No afecta
afecta aa su
su
visibilidad
visibilidad
}
}
}
Constantes
El
Class Class1 {
private const int min = 1;
private const int max = 100;
public const int rango = max min;
}
}
Una
Son
implcitamente static.
Huancayo - 2008
Ocurre
Ocurre de
de forma
forma automtica.
automtica.
Siempre
tiene
xito.
Siempre tiene xito.
Nunca
Nunca se
se pierde
pierde informacin
informacin
en
la
conversin.
en la conversin.
Conversin
Conversin explcita
explcita
Requiere
Requiere la
la realizacin
realizacin del
del cast
cast o
o
el
comando
Convert.Toxxx(var)
el comando Convert.Toxxx(var)
Puede
Puede no
no tener
tener xito.
xito.
Puede
perderse
Puede perderse informacin
informacin en
en la
la
conversin.
conversin.
Byte
Sbyte
Short
Ushort
Int
Uint
Long
Ulong
Float
double
Char
Huancayo - 2008
o
colorPaleta = (Color)1; // Tipo int a tipo Color
Definicin:
struct Empleado {
public string nombre;
public int edad;
public int Sueldo = 1200;// error!, no permitido
}
Uso:
El operador new crea una variable tipo Empleado con los valores
asociados:
Huancayo - 2008
Arrays
Los
Sus
ndices comienzan en 0
Para
multidimensionales:
El
Informacin
sobre un array:
Dimensiones:
Nmero de elementos:
Rank
GetLength()
Recorrido
ndices
Huancayo - 2008
Manipulacin de cadenas
Operadores y expresiones
Operadores aritmticos:
Operadores relacionales:
+ Suma unaria: +a
- Resta unaria: -a
++ Incremento ++a o a++
-- Decremento: --a o a-+ Suma a+b
- Resta: a-b
* Multiplicacin: a*b
/ Divisin: a/b
% Resto: a%b
Operadores de manipulacin
de bits:
int i1=32;
int i2=i1<<2; // i2==128
int i3=i1>>3; // i3==4
Huancayo - 2008
==
!=
<
<=
>
>=
!
&
|
^
~
&&
||
Igualdad: a==b
Desigualdad: a!=b
Menor que: a<b
Menor o igual: a<=b
Mayor que: a>b
Mayor que o Igual a: a>=b
Negacin: !a
And binario: a&b
Or binario: a|b
Or exclusivo: a^b
Negacin binaria: ~a
And lgico: a&&b
Or lgico: a||b
Carlos Castro Grande
Otros operadores
Precedencia:
+
Operadores
()
* / %
+ < <= > >=
== !=
=
Asocia tividad
Izquierda a derecha
Izquierda a derecha
Izquierda a derecha
Izquierda a derecha
Izquierda a derecha
Derecha a izquierda
Tipo
Parntesis
Multiplicativos
Adicin
Relacionales
Igualdad
Asignacin
Asociatividad:
Todos
Los
Huancayo - 2008
Instrucciones
Pueden ocupar ms de
una lnea y deben
terminarse con un ;
int i, j;
i=1;
Grupos de instrucciones
se pueden agrupar en
bloques con { y }
{
j=2;
i=i+j;
}
{
}
int i;
...
{
int i;
...
}
int i;
...
...
int i;
...
Condicionales
if (<condicin>)
<sentenciasCondTrue>
if (<condicin>)
{
<sentenciasCondTrue>
[else
{
<sentenciasCondFalse>
}]
Ejemplo:
if (a>b) Mayor=a;
if (a>b)
{
Mayor=a;
Menor=b;
}
else
{
Mayor=b;
Menor=a;
}
Huancayo - 2008
Ejemplo: if en cascada
enum Palo { Treboles, Corazones, Diamantes,
Picas}
Palo cartas = Palo.Corazones;
string color;
if (cartas == Palo.Treboles)
color = Negro;
else if (cartas == Palo.Corazones)
color = Rojo";
else if (palo == Palo.Diamantes)
color = "Rojo";
else
color = Negro";
Condicionales mltiples
switch (<expressin>)
{
case Opc1 :
[<sentencias-1>]
break;
[case Opc2 :
[<sentencias-2>]
break;
default:
<sentencias-def>
break;]
}
Ejemplo:
switch(B)
switch(B)
{{
case
case 5:
5:
Console.WriteLine(B
Console.WriteLine(B es
es ptimo);
ptimo);
A=10;
A=10;
break;
break;
case
case 1:
1:
case
case 2:
2:
case
3:
case 3: //1,2,3
//1,2,3 sin
sin break
break pq
pq estn
estn vacos
vacos
case
case 4:
4:
Console.WriteLine(B
Console.WriteLine(B est
est por
por
debajo
debajo del
del valor
valor ptimo);
ptimo);
A=3;
A=3;
break;
break;
default:
default:
Console.WriteLine(B
Console.WriteLine(B no
no es
es vlido);
vlido);
break;
break;
}}
Huancayo - 2008
Bucles
for
while
while
while (true)
(true) {{
...
...
}}
int
int ii == 10;
10;
while
while (i
(i >> 5)
5) {{
...
...
i--;
i--;
}}
int
int ii == 0;
0;
while
while (i
(i << 10)
10) {{
Console.WriteLine(i);
Console.WriteLine(i);
i++;
i++;
0 1 2 3 4 5 6 7 8 9
}}
Huancayo - 2008
do
... while
Ejecuta instrucciones en funcin de un valor
booleano.
Evala la expresin booleana al final del bucle.
do
do {{
...
...
}} while
while (true);
(true);
int
int ii == 10;
10;
do
do {{
...
...
i--;
i--;
}}
while
while (i
(i >> 5);
5);
int
int ii == 0;
0;
do
do {{
Console.WriteLine(i);
Console.WriteLine(i);
i++;
i++;
0 1 2 3 4 5 6 7 8 9 10
}} while
(i
<=
10);
while (i <= 10);
foreach
public
public static
static void
void
Main(string[]
Main(string[] args)
args)
{{
foreach
foreach (string
(string ss in
in args)
args)
Console.WriteLine(s);
Console.WriteLine(s);
}}
Huancayo - 2008
Instrucciones de salto
continue: Salta el resto de la iteracin y comienza
la siguiente:
break
Funciones y Mtodos
Huancayo - 2008
Variables locales
Se definen dentro del mtodo
Son privadas para el mtodo
Se destruyen a la salida del mtodo
Variables compartidas
Se definen en la clase
Permiten compartir datos entre mtodos
Conflictos de mbito
El compilador no avisa si hay conflictos entre nombres de las
variables locales y las de clase.
Huancayo - 2008
Devolucin de valores
static
static int
int DosMasDos(
DosMasDos( )) {{
int
int a,b;
a,b;
aa == 2;
2;
bb == 2;
2;
return
return aa ++ b;
b;
}}
int
int x;
x;
xx == DosMasDos(
DosMasDos( );
);
Console.WriteLine(x);
Console.WriteLine(x);
Parmetros
En C# todos los parmetros se pasan por valor si no
se indica lo contrario.
Declaracin de parmetros
Llamadas
Paso
static
static void
void MetodoConParametros(int
MetodoConParametros(int n,
n, string
string y)
y)
{{ ...
}
... }
MetodoConParametros(2,
MetodoConParametros(2, "Hola,
"Hola, mundo");
mundo");
Lenguaje de Programacion III
Huancayo - 2008
Paso
por valor
static
static void
void SumaUno(int
SumaUno(int x)
x)
{{
x++;
x++; //
// Incrementar
Incrementar xx
}}
static
static void
void Main(
Main( ))
{{
int
int kk == 6;
6;
SumaUno(k);
SumaUno(k);
Console.WriteLine(k);
Console.WriteLine(k); //
// Muestra
Muestra el
el valor
valor 6,
6, no
no 77
}}
Paso
por referencia
static
static int
int RaizCuarta(ref
RaizCuarta(ref int
int x)
x)
{{
xx == (int)Math.Sqrt(x);
(int)Math.Sqrt(x);
return
return (int)Math.Sqrt(x);
(int)Math.Sqrt(x);
}}
static
static void
void Main(
Main( )) {{
int
int num
num == 625;
625; //siempre
//siempreinicializar
inicializarantes
antesde
deutilizarla!!
utilizarla!!
Console.WriteLine(Raiz
cuarta:
{0},
Console.WriteLine(Raiz cuarta: {0}, el
el nmero
nmero
original
es:
{1},
RaizCuarta(ref
num),
num);
original es: {1}, RaizCuarta(ref num), num);
}}
Lenguaje de Programacion III
Huancayo - 2008
Parmetros
de salida
Lista
Gua
Huancayo - 2008
Devolucin
class
class EjemploArr1
EjemploArr1
{{
static
static void
void Main(
Main( )) {{
int[
int[ ]] array
array == CreateArray(42);
CreateArray(42);
...
...
}}
static
static int[
int[ ]] CreateArray(int
CreateArray(int tamano)
tamano)
{{
int[
int[ ]] creada
creada == new
new int[tamano];
int[tamano];
return
return creada;
creada;
}}
}}
Paso
class
class EjemploArr2
EjemploArr2 {{
static
static void
void Main(
Main( ))
{{
int[
int[ ]] arg
arg == {10,
{10, 9,
9, 8,
8, 7};
7};
Method(arg);
Method(arg);
System.Console.WriteLine(arg[0]);
System.Console.WriteLine(arg[0]);
}}
}}
static
static void
void Metodo(int[
Metodo(int[ ]] parametro)
parametro) {{
parametro[0]++;
parametro[0]++;
}}
Este
Este mtodo
mtodo modificar
modificar
elel array
array original
original
creado
creado en
en Main
Main
Huancayo - 2008
Mtodos recursivos
Hacen llamadas a s mismos
til para resolver ciertos problemas
static
static ulong
ulong Fibonacci(ulong
Fibonacci(ulong n)
n)
{{
if
if (n
(n <=
<= 2)
2)
return
return 1;
1;
else
else
return
return Fibonacci(n-1)
Fibonacci(n-1) ++ Fibonacci(n-2);
Fibonacci(n-2);
}}
Huancayo - 2008
Huancayo - 2008
Excepciones
Las
por
qu usar excepciones?
int
int errorCodigo
errorCodigo == 0;
0;
FileInfo
FileInfo source
source == new
new FileInfo("code.cs");
FileInfo("code.cs");
if
(errorCodigo
==
-1)
if (errorCodigo == -1) goto
goto Fallo;
Fallo;
int
longitud
=
(int)source.Length;
int longitud = (int)source.Length;
if
if (errorCodigo
(errorCodigo ==
== -2)
-2) goto
goto Fallo;
Fallo;
char[]
contenido
=
new
char[longitud];
char[] contenido = new char[longitud];
if
if (errorCodigo
(errorCodigo ==
== -3)
-3) goto
goto Fallo;
Fallo;
//
No
hay
problemas
...
// No hay problemas ...
Trat.
Fallo:
Trat.De
Deerrores
errores
Fallo: ...
...
Huancayo - 2008