Curso c sharp

Post on 25-Jan-2015

249 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

Transcript

Programando en C#

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

Agenda

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

El .NET Framework

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

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

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

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

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

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)

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

Tipos Básicos de Referencia

Object El padre de todos los tipos Referencia

String Los String son objetos La clase es final Son inmutables

El lenguaje C#

using System;

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

Hola Mundo

public static void Main() { ...}

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

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

Otras Opciones

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

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

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

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

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

Tipos Valor (Value Types)

primitivos int i;

enums enum State { Off, On }

structs struct Point { int x, y; }

Enums

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

…Suit s = Suit.Clubs;

Console.WriteLine (s);

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

Excepciones

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

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

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

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

Constructores

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

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

Interfaces

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

Propiedades e Indexadores

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

Propiedades e Indexadores

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

Visual Studio.Net

Nueva Interfaz de Desarrollo

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

Ventanas

Class ViewProperties WindowToolboxServer ExplorerWeb Form DesignerCode Window

Ventanas

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

Windows Forms

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

Desarrollo Visual

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

Aplicación Windows

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

Controles y Formularios

Nuevos controlesNuevas propiedadesMDIHerencia de FormulariosUso de controles OCXControles propios

top related