Curso c sharp
-
Upload
francorossituc -
Category
Education
-
view
251 -
download
2
description
Transcript of Curso c sharp
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