Curso c sharp

38
Programando en C# Angel “Java” Lopez http://www.ajlopez.com/

description

 

Transcript of Curso c sharp

Page 1: Curso c sharp

Programando en C#

Angel “Java” Lopezhttp://www.ajlopez.com/

Page 2: Curso c sharp

Agenda

.NET FrameworkEl lenguaje C#Visual Studio .NETAplicaciones de VentanasAplicaciones ASP.NETAcceso a Datos

Page 3: Curso c sharp

El .NET Framework

Page 4: Curso c sharp

Framework y Herramientas

Sistema Operativo

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NETWeb Forms Web Services

Mobile Internet Toolkit

WindowsForms

Common Language Specification

VB C++ C# JScript J#

Visu

al S

tud

io.N

ET

Herramientas:

ILDASMDUMPBINPE FileFormat Viewer

GAC.EXEAssemblyRegistrationUtility

ILASMMSILAssembler

XSD.EXESchemaDefinitionTool

Page 5: Curso c sharp

Common Language Runtime

Simplifica drásticamente el desarrollo de aplicacionesProvee un entorno de ejecución robusto y seguroSoporta múltiples lenguajes de programaciónSimplifica la instalación y administración de las aplicaciones

Page 6: Curso c sharp

Simplificar el Desarrollo

Elimina completamente la “plomería” No más registración, GUIDs, archivos .IDL,

HRESULTs, IUnknown, AddRef/Release, CoCreateInstance, etc.

Orientación a Objetos nativa Soporte total de Clases y herencia Aún a través de distintos lenguajes!

Total Interoperabilidad Cualquier clase .NET puede ser usada como una

clase COM sin trabajo adicional Las clases COM pueden importarse como clases

.NET

Page 7: Curso c sharp

Common Language Runtime

Class Loader

IL to NativeCompilers

CodeManager

GarbageCollector

Security Engine Debug Engine

Type Checker Exception Manager

Thread Support COM Marshaler

Base Class Library Support

Page 8: Curso c sharp

Common Language Specification

Carácterísticas comunes a todos los lenguajesSólo se aplica a los tipos visiblesTipos comunesTipos primitivosNombres de métodos, propiedadesSoporte de Clases, InterfacesPalabras Reservadas

Page 9: Curso c sharp

Common Type System

Tipos simples Int16 Int32 UInt32 String

Tipos complejos GUID RegEx DateTime TimeSpan

Todo es un objeto Los tipos primitivos tienen clases correspondientes en

el .NET Framework Int es un alias de System.Int32 (que deriva de

System.ValueType)

Page 10: Curso c sharp

Tipos Valor PrimitivosSon soportados directamente por el CLR y son parte del CTSEnteros int8, int16, int32, int64, sin signo...

Decimales decimal (28 digitos)

Reales float32, float64

Caracteres UNICODE char

Booleanos bool

Page 11: Curso c sharp

Tipos Básicos de Referencia

Object El padre de todos los tipos Referencia

String Los String son objetos La clase es final Son inmutables

Page 12: Curso c sharp

El lenguaje C#

Page 13: Curso c sharp

using System;

class Hola { static void Main() { Console.WriteLine(“Hola Mundo"); }}

Hola Mundo

Page 14: Curso c sharp

public static void Main() { ...}

public static int Main() { ... return 0;}

public static int Main(string[] args) { ... return 0;}

Otras Opciones

Page 15: Curso c sharp

Compilador de Línea de Comando

Crear código fuente: Hola.cs. Invocar compilador: csc Hola.cs Si está bien, se crea Hola.exe.Ejecutar: Hola

Page 16: Curso c sharp

Estructura de un programa C#

Namespaces Tipos, espacios de nombres

Declaración de tipos Clases, interfaces, estructuras, enums,

delegados

Miembros Campos, métodos, constantes, indexadores,

propiedades, eventos, operadores, constructores, destructores

Page 17: Curso c sharp

namespace N1 { // N1 class C1 { // N1.C1 class C2 {} // N1.C1.C2 } namespace N2 { // N1.N2 class C2 {} // N1.N2.C2 } }

Namespace = Paquetes de Tipos

Page 18: Curso c sharp

using System;

namespace MyLibreria { public class ClaseSuma { public static long Suma(long i, long j) { return(i+j); } }}

using System;

namespace MiLibreria { public class ClaseMultiplica { public static long Multiplica(long i, long j) { return(i*j); } }}

Creando DLLs

Page 19: Curso c sharp

using System; using MiLibreria;

class MiCliente { public static void Main() { long suma = ClaseSuma.Suma(10, 10); Console.WriteLine(suma); long producto = ClaseMultiplica.Multiplicar(10, 10); Console.WriteLine(producto); }}

Usando DLLs

Page 20: Curso c sharp

Tipos Valor (Value Types)

primitivos int i;

enums enum State { Off, On }

structs struct Point { int x, y; }

Page 21: Curso c sharp

Enums

enum Suit { Clubs = 0; Diamonds = 1; Hearts = 2; Spades = 3; }

…Suit s = Suit.Clubs;

Console.WriteLine (s);

Page 22: Curso c sharp

try { throw new Exception(“Oops!”);} catch (Exception e) { … Maneja Excepción ……;} finally { … Código de limpieza, se ejecuta siempre…;}

Excepciones

Page 23: Curso c sharp

interface IFigure { int Area ();}

class Square : IFigure { private int side;

public Square (int side) { this.side = side; }

public int Area () { return (side*side); }}

Interfaces y Clases

Page 24: Curso c sharp

class B : A { public B (int x) : base (…,…,…) { ………… }

public B (bool b) : this (…,…,…) { ………… }

public B (char c) { ………… } }

Constructores

Page 25: Curso c sharp

class X : IB, IC {

void () { Console.WriteLine ("IA.g"); }

void () { Console.WriteLine ("IC.f"); }

void () { Console.WriteLine ("IB.f"); }

}

IA.g

IB.f

IC.f

interface IA { void g ();}

interface IB : IA { void f ();}

interface IC : IA { void f ();}

Interfaces

Page 26: Curso c sharp

class Test { public static void Main () { X x = new X (); ((IA)x).g(); ((IC)x).f(); ((IB)x).f(); }}

Interfaces

Page 27: Curso c sharp

class Party { private int start; public int Start { get { return start; } set { start = value; } }}

Propiedades e Indexadores

Page 28: Curso c sharp

class Demo { public static Main () { Borrel b = new Party (); b.Start = 3; int x = b.Start; }}

Propiedades e Indexadores

Page 29: Curso c sharp

class Party { private Dictionary participants; public Borrel() { participants = new Dictionary(); } public bool this[String name] { get { return (participants.Contains(name) && (bool)participants[name]); } set { participants.Add(name,value); } }}

Propiedades e Indexadores

Page 30: Curso c sharp

Visual Studio.Net

Page 31: Curso c sharp

Nueva Interfaz de Desarrollo

IDE derivada de VB6Start PageSolution ExplorerVarios proyectos en una soluciónUno puede ser el principal

Page 32: Curso c sharp

Ventanas

Class ViewProperties WindowToolboxServer ExplorerWeb Form DesignerCode Window

Page 33: Curso c sharp

Ventanas

Help dinámicoObject BrowserCompilando: Output WindowDepurando: Command, Locals, Autos, Breakpoints WindowsDisassembly, Memory Windows

Page 34: Curso c sharp

Windows Forms

Page 35: Curso c sharp

using System;using System.Window.Forms;using System.Drawing;

public class MyForm : Form { public MyForm() { this.Text = “Hello World”; }}

public class Demo { public static void Main() { Application.Run(new MyForm()); }

}

WinForms

Page 36: Curso c sharp

Desarrollo Visual

Nuevo System.WindowsLos formularios son clasesLos controles son clasesPosicionamiento de los controlesPropiedadesCiclo de vida de controles y formularios

Page 37: Curso c sharp

Aplicación Windows

Proyecto Aplicación WindowsFormularioDiseñador de FormularioCódigo automáticoControlesEventos

Page 38: Curso c sharp

Controles y Formularios

Nuevos controlesNuevas propiedadesMDIHerencia de FormulariosUso de controles OCXControles propios