Vous êtes sur la page 1sur 122

Tecnologa Microsoft.

Net
Jos Antonio Torres Moreno MSP y DCE

Antes de comenzar
Presentacin. Coordinador de Curso. Metodologa del curso. Tiempo de descanso. Asistencia.

Objetivos del curso


Tecnologa .Net Net Framework 2.0 Asp.Net. ADO.Net Lenguaje C#.

Requisitos
XHTML. JavaScript. CSS.

WWW.DCE2005.COM

Tecnologa Microsoft .NET

Objetivo
Presentar una introduccin a la plataforma de desarrollo Microsoft .NET, describiendo sus principios bsicos de funcionamiento, su arquitectura de componentes y sus principales bibliotecas reutilizables, mostrando adems las novedades introducidas en la ltima versin de la misma.

Paradigmas de Programacin

Funcionalidad

Windows 3.0

MFC

Win16
1980 1990

COM Win32
2000

Tecnologa .Net
.NET no es un Sistema Operativo
.NET no es un Lenguaje de Programacin .NET no es un Entorno de Desarrollo .NET no es un Servidor de Aplicaciones .NET no es un producto empaquetado que se pueda comprar como tal

Qu es .NET?
Plataforma de Desarrollo compuesta de
Entorno de Ejecucin (Runtime) Bibliotecas de Funcionalidad (Class Library) Lenguajes de Programacin Compiladores Herramientas de Desarrollo (IDE & Tools)
Visual Studio 2005.

Guas de Arquitectura

La evolucin de la plataforma COM

Demo
Primer vistazo a .Net
Desarrollar nuestra aplicacin Hello World

Caractersticas de .NET
Plataforma de ejecucin intermedia 100% Orientada a Objetos Multilenguaje Plataforma Empresarial de Misin Crtica Modelo de Programacin nico para todo tipo de aplicaciones y dispositivos de hardware Se integra fcilmente con aplicaciones existentes desarrolladas en plataformas Microsoft Se integra fcilmente con aplicaciones desarrolladas en otras plataformas

Arquitectura .Net
Aplicacin .NET
Microsoft .NET

Lenguajes de Programacin Libreras de Funcionalidad Entorno de Ejecucin Entorno de Desarrollo

Sistema Operativo (Familia Windows)

.NET como evolucin de COM


Entorno de Ejecucin (Runtime)
COM: Windows .NET: Common Language Runtime

Libreras de Funcionalidad
COM: Algunas (ADO, FSO, etc.) .NET: Muy extensa (.NET Framework Class Library)

Lenguajes de Programacin
COM: VB, C++, VFP, ASP, J++ .NET: Common Language Specification

Entorno de Desarrollo (IDE)


COM: Uno para cada lenguaje .NET: Uno independiente del lenguaje (VS.NET)

Demo
Mostrar el uso de distinto lenguajes.

Net Framework

Net Framework
Paquete de software fundamental de la plataforma .NET. Incluye:
Entorno de Ejecucin (Runtime) Bibliotecas de Funcionalidad (Class Library)

Se distribuye en forma libre y gratuita Existen tres variantes principales:


.NET Framework Redistributable Package .NET Framework SDK .NET Compact Framework

Est instalado por defecto en Windows 2003 Server o superior

Dnde instalar el .NET Framework?


Cliente
Aplicacin de Escritorio Aplicacin Web

Servidor

Aplicacin de Consola
Aplicacin Mvil

.NET Compact Framework * Slo si la aplicacin es distribuida

Visual Studio 6.0 Visual Basic VBA Visual FoxPro VBScript C++ J++ JScript ASP

Lnea del tiempo de .NET


Visual Studio .NET 2003 .NET Framework 1.1 .NET Compact Framework J# Visual Studio Orcas .NET Framework Orcas .NET Compact Framework Orcas

2000

2001

2002

2003

2004 2005

2006 y ms

Visual Studio .NET 2002 .NET Framework 1.0 Visual Basic .NET C#

Visual Studio 2005 (Whidbey) .NET Framework 2.0 (Whidbey) .NET Compact Framework 2.0 (Whidbey)

Arquitectura del .NET Framework


.NET Framework SDK

VB

C++

C#

J#

Common Language Specification


Class Library .NET Framework

ASP.NET
.NET Framework Redistributable

Windows Forms

ADO.NET y XML

Base Class Library


Common Language Runtime Windows COM+ Services

Demo
Crear Aplicacin en Windows Forms.

Common Language Runtime

CLR Common Languaje Runtime


Arquitecturas de Ejecucin de Aplicaciones

CLR Common Language Runtime


El CLR es el motor de ejecucin (runtime) de .NET Caractersticas
Compilacin Just-In-Time (JIT) Gestin automtica de memoria (Garbage Collector) Gestin de errores consistente (Excepciones) Ejecucin basada en componentes (Assemblies) Gestin de Seguridad Multithreading

CLR Componentes Internos

CLR Proceso de Compilacin

Cdigo Fuente

Assembly (MSIL)

Compilador
Cualquier lenguaje .NET Biblioteca o Ejecutable

Microsoft Intermediately Language


.method private hidebysig static void Main(string[] args) cil managed { .entrypoint maxstack 8 L_0000: ldstr "Hola Mundo" L_0005: call void [mscorlib]System.Console::WriteLine(string) L_000a: ret }

Assembly
Descripcin de Tipos MiBiblioteca.DLL Metadata Recursos Cdigo Compilado MSIL
Clases Clases Base Interfaces Implementadas Atributos de las Clases Mtodos de las Clases

Manifiesto del Assembly


Nombre Versin Cultura
Otros Assemblies Permisos de Seguridad Tipos Externos

Assemblies - Aplicaciones .NET


Uno o ms Assemblies Al ejecutar una aplicacin, cmo ubico los assemblies necesarios?
El Class Loader busca en el directorio local (preferido) Global Assembly Cache (GAC)

Diferentes aplicaciones pueden usar diferentes versiones


Actualizaciones ms simples Desinstalacin ms simple

Demo
Demostrando MSIL

.NET Framework Class Library


Conjunto de Tipos bsicos (clases, interfaces, etc.) que vienen includos en el .NET Framework Los tipos estn organizados en jerarquas lgicas de nombres, denominados NAMESPACES Los tipos son INDEPENDIENTES del lenguaje de desarrollo Es extensible y totalmente orientada a objetos

.NET Framework Class Library


System.Web
Services Description Discovery Protocols Caching Security UI HtmlControls WebControls

System.Windows.Forms
Design ComponentModel

System.Drawing
Drawing2D Printing

Configuration

SessionState

Imaging

Text

System.Data
OleDb Common Odbc SqlClient

System.Xml
XSLT XPath Serialization

System
Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization

Common Language Specification (CLS)


Especificacin que estandariza una serie de caractersticas soportadas por el CLR Contrato entre diseadores de lenguajes de programacin y autores de bibliotecas Permite la interoperabilidad entre lenguajes Microsoft provee implementaciones de 4 lenguajes, todos compatibles con CLS
Microsoft Visual Basic .NET Microsoft Visual C# .NET Microsoft Visual J#.NET Microsoft Visual C++.NET

Common Language Specification (CLS)


El resto de la industria y el sector acadmico han desarrollado ms de 20 lenguajes compatibles con la especificacin CLS

C++.NET Delphi Pascal Oberon Cobol

Visual Basic.NET PHP LISP Smalltalk Perl

C#

J# JavaScript RPG ML Scheme Mercury

Java Haskell

Python Prolog Eiffel

Mondrian
Fortran

APL

Objective Caml

CLS - Eleccin del lenguaje


.NET posee un nico runtime (el CLR) y un nico conjunto de bibliotecas para todos los lenguajes No hay diferencias notorias de performance entre los lenguajes provistos por Microsoft El lenguaje a utilizar, en gral., depender de su experiencia previa con otros lenguajes o de gustos personales
Si conoce Java, Delphi, C++, etc. C# Si conoce Visual Basic o VBScript VB.NET

Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija

Infraestructura de Lenguaje Comn (CLI)


Especificacin patrocinada por Microsoft, Intel, HP y estandarizada por ECMA (2001) e ISO (2003) que describe:
Entorno de Ejecucin de Aplicaciones Conjunto de Libreras Bsicas (BCL) Tipos de Datos Comunes (CTS)

El .NET Framework y el .NET Compact Framework son implementaciones de la especificacin CLI

Sub-Especificaciones de CLI
Lenguajes de Alto Nivel
se ajustan a las reglas de la

CLS (Common Language Specification)


y utilizan las clases de la

BCL (Base Class Library)


cuyos tipos bsicos forman el

CTS (Common Type System)


y se ejecutan bajo el control de y usan los servicios del

CLR (Common Language Runtime)


que est acoplado al y utiliza los servicios del

Sistema Operativo

Modelo de Ejecucin del CLR


Cdigo Fuente
VB.NET Compilador VB.NET C# Compilador C# C++.NET Compilador C++ .NET Componente No Manejado

Cdigo Manejado

Assembly Cdigo MSIL

Assembly Cdigo MSIL

Assembly Cdigo MSIL

Common Language Runtime


Compilador JIT
Cdigo Nativo

Sistema Operativo (Windows)

Desarrollo
Assembly Instalacin

Instalacin
Assembly en la mquina destino
Policy
<?xml version="1.0" encoding="utf-8" ?> <configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissio ns and forms the root of the code group tree."> <IMembershipCondition clas s="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"

Ejecucin
Compilador JIT

Modelo de Ejecucin del CLR


Class Loader

Seguridad

Assembly Loader Garbage Collector

.exe Nativo + Tabla GC

Code Manager

Manejador Excepciones Soporte MultiThread

Debug Engine

COM Interop

Application Domains
Procesos virtuales dentro del CLR
Se ejecutan dentro de un proceso del Sistema Operativo Un proceso del sistema operativo puede contener varios AppDomains Ms eficiente que mltiples procesos del sistema operativo Ms eficiente en el intercambio de contexto de ejecucin

Un Assembly y sus tipos son siempre cargados dentro de un AppDomain Provee una frontera para: Fallos, Tipos, Seguridad

Application Domains - CLR Host


CLR Host
CLR
AppDomain 1
Cdigo Manejado

AppDomain N
Cdigo Manejado

CTS (Common Type System)


Define un conjunto comn de tipos de datos orientados a objetos

Todo lenguaje de programacin .NET debe implementar los tipos definidos por el CTS

Todo tipo hereda directa o indirectamente del tipo System.Object Define Tipos de VALOR y de REFERENCIA

La Memoria y los Tipos de Datos


El CLR administra dos segmentos de memoria: Stack (Pila) y Heap (Montn) El Stack es liberado automticamente y el Heap es administrado por el GC (Garbage Collector)

Los tipos VALOR se almacenan en el Stack Los tipos REFERENCIA se almacenan en el Heap

Demo
Usando tipos de datos

Ventajas de .NET
Unifica los modelos de programacin Simplifica an ms el desarrollo Provee un Entorno de Ejecucin robusto y seguro Es independiente del lenguaje de programacin Interoperabilidad con cdigo existente Simplifica la instalacin y administracin de las aplicaciones Es Extensible

Unificando los Modelos


API consistente mas all del lenguaje o del modelo de programacin

.NET Framework
Desarrollo Rapido, Componentes, Event Driven OOP, Potencia, Acceso a bajo nivel Basado en Servidor, UI Embebido en el cdigo

Visual Basic

MFC/ATL (C++)

ASP

Windows API

Desarrollo Simplificado
Alto nivel de abstraccin
No mas accesos COM a bajo nivel Orientado a Objetos desde el Ncleo

Sistema de tipos unificado (CTS)


Todo es un objeto, no mas variants

Componentes de Software
Propiedades, mtodos, eventos, y atributos incluidos en la construccin de clases

API organizada en forma Jerrquica

Entorno de Ejecucin Robusto y Seguro


Gestin automtica de la memoria
Todos los objetos son administrados por el Garbage Collector

Manejo de Excepciones Fuertemente tipado


Solo casteos seguros Inicializacin de variables obligatoria

Instalacin con Cero Impacto


No requiere registracin en la Registry

Independencia del lenguaje


Libertad en la eleccin del lenguaje
Todas las facilidades de la plataforma .NET estn disponibles a todos los lenguajes de programacin .NET Los componentes de una aplicacin .NET pueden ser escritos en distintos lenguajes de alto nivel compatibles con la plataforma

Herramientas compartidas
Debuggers, profilers, analizadores de cdigo, y otras trabajan para todos los lenguajes

Instalacin y Administracin ms simples


Unidades de Ensamblado (Assemblies)
Mnima unidad de distribucin, versionado y administracin de seguridad de aplicaciones .NET Auto-descriptas a travs de un manifiesto (manifest)

Instalaciones Cero-impacto
Aplicaciones y componentes pueden ser compartidas o privadas

Versioning
Mltiples versiones del mismo componente pueden co-existir, an en el mismo proceso

Extensibilidad
El Framework no es una caja negra Sus clases pueden ser extendidas a travs del mecanismo de herencia
A diferencia de COM, usamos y extendemos las clases en si mismas, no un wrapper

Herencia entre distintos lenguajes

Interoperabilidad
.NET Framework Servicios Web XML

C#
COM INTEROP

COM

C++
Otros...

VB .NET

Demo
Aplicaciones en mltiples lenguajes

Programacin Orientada a Objetos

El mundo color de Objetos


Todo el mundo est compuesto de entidades que se relacionan e interactan entre si Qu es un Objeto?
Todo es un Objeto ~?!

Es lo mismo de siempre con otro nombre?


Pensar en Objetos .

No es el ltimo grito de la moda (1980s)

El mundo color de Objetos


Por qu Orientacin a Objetos (OO)?
Se parece ms al mundo real Permite representar modelos complejos Muy apropiada para aplicaciones de negocios Las empresas ahora s aceptan la OO Las nuevas plataformas de desarrollo la han adoptado (Java / .NET)

Qu es un Objeto?
Informalmente, un objeto representa una entidad del mundo real Entidades Fsicas
(Ej.: Vehculo, Casa, Producto)

Entidades Conceptuales
(Ej.: Proceso Qumico, Transaccin Bancaria)

Entidades de Software
(Ej.: Lista Enlazada, Interfaz Grfica)

Qu es un Objeto?
Definicin Formal :
Un objeto es un concepto, abstraccin o cosa con un significado y lmites claros en el problema en cuestin

Un objeto posee :
Propiedades Comportamiento Identidad

Un objeto posee Propiedades


Lo que el objeto sabe Las propiedades de un objeto es una de las posibles condiciones en que el objeto puede existir Las propiedades normalmente cambia en el transcurso del tiempo Las propiedades de un objeto es implementado por un conjunto de atributos, adems de las conexiones que puede tener con otros objetos

Un objeto posee Comportamiento


Lo que el objeto puede hacer El comportamiento de un objeto determina cmo ste acta y reacciona frente a las peticiones de otros objetos Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar) Se implementa mediante mtodos

Un objeto posee Identidad


Cada objeto tiene una identidad nica, incluso si su estado es idntico al de otro objeto

Qu es una Clase?
Una clase es una descripcin de un grupo de objetos con:
Propiedades en comn (atributos) Comportamiento similar (operaciones) La misma forma de relacionarse con otros objetos (relaciones) Una semntica en comn (significan lo mismo)

Una clase es una abstraccin que:


Enfatiza las caractersticas relevantes Suprime otras caractersticas (simplificacin)

Un objeto es una instancia de una clase

Objetos y Clases
Una clase es una definicin abstracta de un objeto
Define la estructura y el comportamiento compartidos por los objetos Sirve como modelo para la creacin de objetos

Los objetos pueden ser agrupados en clases

Ejemplo de una Clase


Clase: Curso Estado (Atributos)
Nombre Ubicacin Das Ofrecidos Horario de Inicio Horario de Trmino

Comportamiento (Mtodos)
Agregar un Alumno Borrar un Alumno Entregar un Listado del Curso Determinar si est Completo

Modificadores de Acceso
Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o mtodos) de una clase
Publico: Cualquier clase puede ver los miembros pblicos de otra clase Privado: Slo la clase puede ver sus propios miembros privados

Existen otros dos modificadores para propsitos especficos (Paquete, Protegido)

Pilares de la Orientacin a Objetos

Abstraccin

Relaciones

Herencia

Encapsulamiento

Abstraccin
Ignorancia Selectiva
La abstraccin nos ayuda a trabajar con cosas complejas Se enfoca en lo importante Ignora lo que no es importante (simplifica)

Una clase es una abstraccin en la que:


Se enfatizan las caractersticas relevantes Se suprimen otras caractersticas

Una clase debe capturar una y solo una abstraccin clave

Encapsulamiento
Principio que establece que los atributos propios de un objeto no deben ser visibles desde otros objetos
Deben ser declarados como privados

Permite abstraer al resto del mundo de la complejidad de la implementacin interna Permite exponer el estado del objeto slo a travs del comportamiento que le hayamos definido mediante miembros pblicos Por qu es til?
Punto de Control/Validacin Mejor respuesta ante los Cambios

Relaciones
Todo sistema abarca muchas clases y objetos Los objetos contribuyen en el comportamiento de un sistema colaborando entre si
La colaboracin se logra a travs de las relaciones

Existen dos tipos principales de relaciones


Asociacin Agregacin

Herencia
Es una relacin entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch) Cada clase que hereda de otra posee:
Los atributos de la clase base adems de los propios Soporta todos o algunos de los mtodos de la clase base

Clase Base

Transporte -pasajeros +Avanzar() +Detenerse()

Automvil

Avin

Una subclase hereda de una clase base


Clases Derivadas o subclases

Herencia
Herencia Es-Un: herencia real, donde la subclase es un tipo especfico de la superclase
Un Cuadrado es un Rectngulo Un perro es un mamfero Un automvil es un vehculo a motor

Interfaces (1/3)
Recurso de diseo soportado por los lenguajes orientados a objetos que permite definir comportamiento Permite que clases que no estn estrechamente relacionadas entre s deban tener el mismo comportamiento La implementacin de una interfaz es un contrato que obliga a la clase a implementar todos los mtodos definidos en la interfaz

Interfaces (2/3)
Vehiculo

Aereo

Acuatico

Terrestre

Avin

Barco

Automvil

De que clase heredara la clase Hidroavin ?

Interfaces (3/3)
Se crean las interfaces que definen comportamiento Hidroavin deber definir los comportamientos de cada una de las interfaces que implemente
interface Acuatico +Navegar() interface Aereo +Volar()

Hidroavion

Polimorfismo
Es la propiedad que tienen los objetos de permitir invocar genricamente un comportamiento (mtodo) cuya implementacin ser delegada al objeto correspondiente recin en tiempo de ejecucin El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es as

Polimorfismo - Ejemplo
La definicin del mtodo reside en la clase base La implementacin del mtodo reside en la clase derivada La invocacin es resuelta al momento de ejecucin

Transporte Avanzar Frenar

Transporte
Avanzar Frenar
Transporte Avanzar Frenar Transporte Avanzar Frenar

Visual Studio 2005


Testers Arquitectos

Desarrolladores
Consultores Profesionales VB6 Devs Part-Timers Hobbyists Estudiantes Entusiastas Novatos

Visual Studio 2005 Express Editions


Herramientas de desarrollo gratuitas Muy livianas, fciles de usar y de aprender Diseadas para entusiastas, estudiantes y desarrolladores principiantes Hay varias ediciones, segn el tipo de aplicacin y el lenguaje Tiene caractersticas avanzadas, por ejemplo:
Refactoring Code Snippets Diseadores WYSIWYG Depuradores Intellisense

SQL Server 2005 Express


La nueva versin de MSDE Es gratuito Preparado para trabajar integrado con .NET 2.0 Tamao mximo de base: 4 Gb Max. Conexiones Concurrentes: no tiene Incluye una interfaz de administracion y un editor de consultas Mayor integracin con Visual Studio 2005

Visual Studio 2005


IDE (Entorno de Desarrollo Integrado)

Introduccin a Visual Studio .NET

Qu es Visual Studio .NET?


Herramientas de Formularios Web Herramientas de Formularios Windows

Mltiples Lenguajes

Visual Studio .NET


Gestor de errores

Herramientas de Servicios Web XML

Acceso a datos

Diseo

Desarrollo

Depuracin

Implantacin

Qu es una plantilla de aplicacin?


Proporciona archivos de inicio, estructura de proyecto y configuracin del entorno

Cmo utilizar el Explorador de soluciones

Men principal Nuevo proyecto

Explorar el entorno de desarrollo


Diseador de Windows Forms

Cuadro de herramientas

Ventana Propiedades

Mens y barras de herramientas


Men principal Barra de herramientas estndar

Nuevo proyecto

Guardar Form1.vb

Deshacer

Cuadro de herramientas

Controles para crear el interfaz de usuario

Ventana Propiedades

Establecer propiedades como tamao, ttulo y color

Demo
Uso de Visual Studio

Visual C#.NET
Creado especialmente para .NET Estndar ECMA (2002) Orientado a Objetos y Componentes Sintaxis derivada de C, C++, Delphi y Java

Compiladores (1/2)
Compilador de Lnea de Comandos C#

Cumple con la especificacin del CLS <Win>\Microsoft.NET\Framework\<version>\csc.exe Csc /out:XX /target:YY Archivo1.cs Archivo2.cs
Cumple con la especificacin del CLS <Win>\Microsoft.NET\Framework\<version>\vbc.exe vbc /out:XX /target:YY Archivo1.vb Archivo2.vb

Compilador de Lnea de Comandos VB.NET


VB.NET y C# - Terminacin de lnea

C#: la lnea finaliza con un ;


//Una linea con mas de un renglon string nombre = primerNombre + apellido; //El punto y coma indica FINAL de linea

VB.NET y C# - Declaracin de Bloques


En C# los bloques se declaran entre llaves
class MainClass{ public static void Main(string[] args) { Console.WriteLine("Hello World!"); } }

Comentarios
string nombre = Juan; // Comentario de una sola lnea /* Comentario con mas de una lnea*/
/// <summary> /// Documentacin XML que puede ser consumida por otras /// herramientas para mostrar ayuda dinmica o generar /// documentacin en varios formatos /// </summary> public class Matematica { /// <summary> /// Calcula la suma de dos nmeros enteros /// </summary> /// <param name="x">El primer operando de la suma</param> /// <param name="y">El segundo operando de la suma</param> /// <returns> La suma entera de ambos operandos</returns> public int Sumar (int x, int y) {return x + y;} }

Case Sensitivity

system.console.writeline(HOLA); INCORRECTO System.Console.WriteLine(HOLA); CORRECTO

Tipos de Datos
Categora Clase Descripcin C# Alias

Enteros

Byte SByte Int16 Int32 Int64

Un entero sin signo (8-bit) Un entero con signo (8-bit) Un entero con signo (16-bit) Un entero con signo (32-bit) Un entero con signo (64-bit)
Un nmero de punto flotante de simple precisin (32-bit) Un nmero de punto flotante de doble precisin (64-bit) Un nmero decimal de 96-bit Un valor booleano (true o false) Un caracter Unicode (16-bit) La raz de la jerarqua de objetos Una cadena de caracteres unicode inmutable y de tamao fijo

byte sbyte short int long


float double decimal bool char object string

Punto Flotante

Single Double Decimal

Lgicos Otros

Boolean Char Object String

Alcance de miembros
Miembro: se refiere a los campos, propiedades, mtodos, eventos, clases anidadas, etc.
C#: todo miembro es declarado como PRIVATE por default

VB.NET public Public private Private internal Friend protected Protected protected internal Protected Friend

C#

Declaracin de Variables
C#: el tipo de dato precede al identificador (nombre)

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

Conversiones de Tipos
C# no permite conversiones implcitas de tipos
Si falla el cast se devuelve null o InvalidCastException
Cuenta CtaCte CtaCte CtaCte cta = new CtaCte(); cc = cta; //Error: puede que cta no sea una CtaCte cc = (CtaCte)cta; //Conversion explicita CASTING cc = cta as CtaCte; //Usando el operador as

if (cta is CtaCte) ... //Comp. con el operador is

Arreglos
C# utiliza corchetes [ ] para definicin de arrays
string[] telefonos; //Definicion de un Arreglo de strings telefonos = new string[3]; //De 3 elementos telefonos[0] = 1245; //Seteo del 1er elemento del arreglo //Definicion y asignacion de una vez telefonos = new string[] {1,2,3};

Operadores
Descripcin
Asignacin Adicin Sustraccin Multiplicacin Divisin Negacin

C#
= + * / !

Mdulo (Parte entera de la divisin)


Mayor Menor Mayor o Igual Menor o Igual

%
> < >= <=

Operadores Lgicos
C# VB.NET Operador
Operador logico Y Operador logico O Negacion logica

&& ll ! == !=

And Or Not = <>

Igual
Distinto

Sentencias condicionales
C#: sentencia if con varios formatos
if (x > 10) HacerAlgo(); if (x < 10) { Hacer1(); Hacer2(); } if (x < 10) { Hacer1(); } else { Hacer2(); } if (x < 10) { Hacer1(); } else if (x > 20) { Hacer2(); } else { Hacer3(); }

Sentencia for
C#: la sentencia for consta de tres partes
//Partes: declaracin, prueba, accin for (int i=1; i < 10; i++) { }

Sentencia for/each
For/Each permite recorrer arreglos y colecciones

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

C#: usa la palabra foreach

Sentencia while
C#:
bool condicion = true; while (condicion == true){ //En algn momento poner condicion = false }

Clases
C#: las clases son declaradas mediante class
//Definicion de la clase CuentaBancaria class CuentaBancaria { //Definicion de miembros }

Mtodos
Mtodos: acciones que un objeto puede llevar a cabo.
public void importe) //No devuelve valor En C# todoHacerDeposito(int mtodo es una funcin { }
public int ObtenerInventario(int codArticulo) //Devuelve un entero { }

Constructores
Constructor: mtodos dentro de la clase que son llamados automticamente cuando se crea una instancia de dicha clase.

class CtaCte { En C# tienen el mismo nombre de la clase public CtaCte(){...} //Const. por default public CtaCte(int i){...} //Const. con un parametro }

Sobrecarga de Mtodos
Sobrecarga: varios mtodos con el mismo nombre pero diferente firma.
C#
public void HacerDeposito(int importe) { } public void HacerDeposito(int importe, bool acreditar) { }

Mtodos estticos
Miembros que no requieren de una instancia para ser invocados. Se los llama mtodos de clase
C#
public static void HacerDeposito(int importe) { }

Propiedades
Propiedad: caracterstica o atributo de un objeto
class CtaCte { int balance;

C#

public int Balance { get { return balance; } set { balance = value; } }

} CtaCte cc = new CtaCte(); cc.Balance = 100; //Asignacin Mostrar(cc.Balance); //Obtencin

Herencia
En C# la herencia se define:
class Cuenta { } class CtaCte : Cuenta { } //Clase Base

//Clase Derivada

En .NET solo se permite Herencia Simple

Herencia (Cont.)
En C#
public sealed class Cuenta{ //No se puede heredar de esta clase sellada } public abstract class Cuenta{ //No se pueden crear instancias de esta clase, slo //de sus derivadas }

Namespaces
C#
namespace BancoARG { namespace Gestion { public class CtaCte { } public class CajaAhorro { } } } //Referencia full BancoARG.Gestion.CtaCte; BancoARG.Gestion.CajaAhorro; //Referencia corta using BancoARG.Gestion; CtaCte cc = new CtaCte(); CajaAhorro ca = new CajaAhorro();

Admin. De Excepciones
Excepcin: condicin anmala de funcionamiento de una aplicacin
C#: usa las palabras try/catch/finally
try { int resultado = x/y; } catch(DivideByZeroException e) { //Error division por cero } catch { //Otro error } finally { //Siempre pasa por aca }

Soporte para 64 bits


El CLR 1.x slo tiene soporte para aplicaciones de 32 bits
No aprovechan las caractersticas de los sistemas operativos de 64 bits, ya que se ejecutan emuladas

El CLR 2.0 tiene una versin de 64 bits


Permite compilar aplicaciones para que hagan uso nativamente de las nuevas caractersticas de los sistemas operativos y procesadores de 64 bits

Permiten la declaracin de un tipo en varios archivos fsicos


Vlido para clases y estructuras Vlido para interfaces slo en C# Utilizan la palabra clave partial en la declaracin

Tipos Parciales

Su uso puede tener varias ventajas


Dividir implementaciones complejas en partes pequeas Separacin de cdigo auto-generado Mtiples desarrolladores pueden trabajar sobre distintas secciones del mismo tipo simultneamente Puede facilitar el mantenimiento y el control de versiones de cdigo

Tipos Parciales - Ejemplo


// Demo.Part1.cs using System; public partial class Demo { public Demo() { Console.Write( "P1" ); } } // Demo.Part2.cs public partial class Demo { private int i; } // Demo.Part3.cs // Error 1! public class Demo { // Error 2! private int i; // OK private int j; public void Test() { // Error 3! Console.Write( "P3" ); } }

Modificadores de acceso
El CLR 2.0 permite especificar diferentes modificadores de acceso para el get y el set de las propiedades e ndices Permite solamente modificar uno de los dos elementos de acceso, mientras que el otro toma el nivel de acceso de la property Puede especificar ms restricciones Mejora el encapsulamiento de atributos

Modificadores de acceso - Ejemplos

public class Customer{ private string id; public string CustomerId { public get { return id; } private set { id = value; } } }

Vous aimerez peut-être aussi