SlideShare une entreprise Scribd logo
1  sur  39
Programando en C#
           Angel “Java” Lopez
      http://www.ajlopez.com/
Agenda
 .NET Framework
 El lenguaje C#
 Visual Studio .NET
 Aplicaciones de Ventanas
 Aplicaciones ASP.NET
 Acceso a Datos
El .NET Framework
Framework y Herramientas

 VB     C++      C#    JScript   J#
                                                          Herramientas:
  Common Language Specification
                                                          ILDASM




                                      Visual Studio.NET
       ASP.NET             Windows                        DUMPBIN
Web Forms Web Services                                    PE File
                            Forms                         Format Viewer
 Mobile Internet Toolkit                                  GAC.EXE
                                                          Assembly
          ADO.NET and XML                                 Registration
                                                          Utility
                                                          ILASM
          Base Class Library                              MSIL
                                                          Assembler
                                                          XSD.EXE
      Common Language Runtime                             Schema
                                                          Definition
                                                          Tool

          Sistema Operativo
Common Language Runtime

Simplifica drásticamente el desarrollo de
aplicaciones
Provee un entorno de ejecución robusto
y seguro
Soporta múltiples lenguajes de
programación
Simplifica 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
         Base Class Library Support

  Thread Support         COM Marshaler

   Type Checker         Exception Manager

  Security Engine           Debug Engine

 IL to Native      Code          Garbage
  Compilers       Manager        Collector

                Class Loader
Common Language
Specification
 Carácterísticas comunes a todos los
 lenguajes
 Sólo se aplica a los tipos visibles
 Tipos comunes
 Tipos primitivos
 Nombres de métodos, propiedades
 Soporte de Clases, Interfaces
 Palabras 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 Primitivos
 Son soportados directamente por el CLR y
 son parte del CTS
 Enteros
    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#
Hola Mundo
using System;
class Hola {
  static void Main() {
    Console.WriteLine(“Hola Mundo");
  }
}
Otras Opciones
public static void Main() {
  ...
}
public static int Main() {
  ...
  return 0;
}
public static int Main(string[] args) {
  ...
  return 0;
}
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
= Paquetes de Tipos
namespace N1 {     // N1
  class C1 {       // N1.C1
    class C2 {}    // N1.C1.C2
  }
  namespace N2 {   // N1.N2
    class C2 {}    // N1.N2.C2
  }
}
Creando DLLs
 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);
     }
   }
 }
Usando 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);
  }
}
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);
…
Excepciones
try {
  throw new Exception(“Oops!”);
} catch (Exception e) {
    … Maneja Excepción ……;
} finally {
    … Código de limpieza, se ejecuta siempre…;
}
Interfaces y Clases
interface IFigure {
  int Area ();
}

class Square : IFigure {
  private int side;

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

    public int Area () {
      return (side*side);
    }
}
Constructores
class B : A {
  public B (int x) : base (…,…,…) {
    …………
  }
    public B (bool b) : this (…,…,…) {
      …………
    }
    public B (char c) {
      …………
    }
}
Interfaces
                   interface IA {
                     void g ();
                   }


   interface IB : IA {              interface IC : IA {
     void f ();                       void f ();
   }                                }

   class X : IB, IC {

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

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

       void IB.f   () { Console.WriteLine ("IB.f"); }
   }
Interfaces
class Test {
  public static void Main () {
    X x = new X ();
    ((IA)x).g();
    ((IC)x).f();
    ((IB)x).f();
  }
}
Métodos Virtuales
public class Dog {
  public virtual void RollOver () {
    Console.WriteLine("Scratch my tummy.");
    Bark();
  }

    public virtual void Bark () {
      Console.WriteLine("WOOF WOOF (Dog)");
    }
}
Propiedades e Indexadores
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);
    }
  }
}
Visual Studio.Net
Nueva Interfaz de Desarrollo
  IDE derivada de VB6
  Start Page
  Solution Explorer
  Varios proyectos en una solución
  Uno puede ser el principal
Ventanas
 Class View
 Properties Window
 Toolbox
 Server Explorer
 Web Form Designer
 Code Window
Ventanas
 Help dinámico
 Object Browser
 Compilando: Output Window
 Depurando: Command, Locals, Autos,
 Breakpoints Windows
 Disassembly, Memory Windows
Windows Forms
WinForms
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());
  }
}
Desarrollo Visual
  Nuevo System.Windows
  Los formularios son clases
  Los controles son clases
  Posicionamiento de los controles
  Propiedades
  Ciclo de vida de controles y formularios
Aplicación Windows
  Proyecto Aplicación Windows
  Formulario
  Diseñador de Formulario
  Código automático
  Controles
  Eventos
Controles y Formularios
  Nuevos controles
  Nuevas propiedades
  MDI
  Herencia de Formularios
  Uso de controles OCX
  Controles propios

Contenu connexe

Tendances (19)

Cap4
Cap4Cap4
Cap4
 
Compilador divisor de cantidades con Jflex y Cup
Compilador divisor de cantidades con Jflex y CupCompilador divisor de cantidades con Jflex y Cup
Compilador divisor de cantidades con Jflex y Cup
 
2. Introduccion A C#
2.  Introduccion A C#2.  Introduccion A C#
2. Introduccion A C#
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Java
JavaJava
Java
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Resumen lenguajes c#
Resumen lenguajes c#Resumen lenguajes c#
Resumen lenguajes c#
 
Sintaxis Java
Sintaxis JavaSintaxis Java
Sintaxis Java
 
Los tipos de un espacio de nombres
Los tipos de un espacio de nombresLos tipos de un espacio de nombres
Los tipos de un espacio de nombres
 
Java
JavaJava
Java
 
Java io
Java ioJava io
Java io
 
Api java
Api javaApi java
Api java
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
presentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javapresentacion de Aplicaciones de Java
presentacion de Aplicaciones de Java
 
Programación con java en Eclipse
Programación con java en EclipseProgramación con java en Eclipse
Programación con java en Eclipse
 
Uso de las clases iostream
Uso de las clases iostreamUso de las clases iostream
Uso de las clases iostream
 
Java
JavaJava
Java
 
Cuestionario java
Cuestionario javaCuestionario java
Cuestionario java
 

En vedette

Filius ja elinkaikkeuden arvoitus
Filius ja elinkaikkeuden arvoitusFilius ja elinkaikkeuden arvoitus
Filius ja elinkaikkeuden arvoitusLeena Valmu
 
Statistics for CEGEP Biology
Statistics for CEGEP BiologyStatistics for CEGEP Biology
Statistics for CEGEP BiologyCorey Chivers
 
Weak Lensing Simulator
Weak Lensing SimulatorWeak Lensing Simulator
Weak Lensing SimulatorCorey Chivers
 
Observing Dark Worlds
Observing Dark WorldsObserving Dark Worlds
Observing Dark WorldsCorey Chivers
 
The liquidator
The liquidatorThe liquidator
The liquidatorFASimms
 
Narvaez german aporte_invididual
Narvaez german aporte_invididualNarvaez german aporte_invididual
Narvaez german aporte_invididualGerman Narvaez
 
Narvaez german educación_ambiental_individual
Narvaez german educación_ambiental_individualNarvaez german educación_ambiental_individual
Narvaez german educación_ambiental_individualGerman Narvaez
 
Wiki 1 educación_ambiental_colaborativo
Wiki 1 educación_ambiental_colaborativoWiki 1 educación_ambiental_colaborativo
Wiki 1 educación_ambiental_colaborativoGerman Narvaez
 
Narvaez german aporte_individual
Narvaez german aporte_individualNarvaez german aporte_individual
Narvaez german aporte_individualGerman Narvaez
 
2a circular se rig 2016
2a circular se rig 20162a circular se rig 2016
2a circular se rig 2016German Narvaez
 
Wiki 9 trabajo_colaborativo
Wiki 9 trabajo_colaborativoWiki 9 trabajo_colaborativo
Wiki 9 trabajo_colaborativoGerman Narvaez
 
That's like, so random! Monte Carlo for Data Science
That's like, so random! Monte Carlo for Data ScienceThat's like, so random! Monte Carlo for Data Science
That's like, so random! Monte Carlo for Data ScienceCorey Chivers
 
Intro to Machine Learning
Intro to Machine LearningIntro to Machine Learning
Intro to Machine LearningCorey Chivers
 
Introduction to Bayesian Methods
Introduction to Bayesian MethodsIntroduction to Bayesian Methods
Introduction to Bayesian MethodsCorey Chivers
 

En vedette (17)

Stpm pa1pahang
Stpm pa1pahangStpm pa1pahang
Stpm pa1pahang
 
Filius ja elinkaikkeuden arvoitus
Filius ja elinkaikkeuden arvoitusFilius ja elinkaikkeuden arvoitus
Filius ja elinkaikkeuden arvoitus
 
Statistics for CEGEP Biology
Statistics for CEGEP BiologyStatistics for CEGEP Biology
Statistics for CEGEP Biology
 
Weak Lensing Simulator
Weak Lensing SimulatorWeak Lensing Simulator
Weak Lensing Simulator
 
Stpm pa1pahang
Stpm pa1pahangStpm pa1pahang
Stpm pa1pahang
 
Observing Dark Worlds
Observing Dark WorldsObserving Dark Worlds
Observing Dark Worlds
 
The liquidator
The liquidatorThe liquidator
The liquidator
 
Narvaez german aporte_invididual
Narvaez german aporte_invididualNarvaez german aporte_invididual
Narvaez german aporte_invididual
 
Narvaez german educación_ambiental_individual
Narvaez german educación_ambiental_individualNarvaez german educación_ambiental_individual
Narvaez german educación_ambiental_individual
 
Wiki 1 educación_ambiental_colaborativo
Wiki 1 educación_ambiental_colaborativoWiki 1 educación_ambiental_colaborativo
Wiki 1 educación_ambiental_colaborativo
 
Narvaez german aporte_individual
Narvaez german aporte_individualNarvaez german aporte_individual
Narvaez german aporte_individual
 
Pantoja, yina
Pantoja, yinaPantoja, yina
Pantoja, yina
 
2a circular se rig 2016
2a circular se rig 20162a circular se rig 2016
2a circular se rig 2016
 
Wiki 9 trabajo_colaborativo
Wiki 9 trabajo_colaborativoWiki 9 trabajo_colaborativo
Wiki 9 trabajo_colaborativo
 
That's like, so random! Monte Carlo for Data Science
That's like, so random! Monte Carlo for Data ScienceThat's like, so random! Monte Carlo for Data Science
That's like, so random! Monte Carlo for Data Science
 
Intro to Machine Learning
Intro to Machine LearningIntro to Machine Learning
Intro to Machine Learning
 
Introduction to Bayesian Methods
Introduction to Bayesian MethodsIntroduction to Bayesian Methods
Introduction to Bayesian Methods
 

Similaire à Curso c sharp

Introducción a net
Introducción a netIntroducción a net
Introducción a netinfobran
 
Dce1 introduccion microsoft.net
Dce1 introduccion microsoft.netDce1 introduccion microsoft.net
Dce1 introduccion microsoft.netcesarnrv
 
Tecnologia Microsoft .Net - [Asp .Net - Parte 1]
Tecnologia Microsoft .Net - [Asp .Net - Parte 1]Tecnologia Microsoft .Net - [Asp .Net - Parte 1]
Tecnologia Microsoft .Net - [Asp .Net - Parte 1]Antonio Torres
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentosredtacna
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NETV Sanchez
 
curso-de-visual-basic-net.pdf
curso-de-visual-basic-net.pdfcurso-de-visual-basic-net.pdf
curso-de-visual-basic-net.pdfJuanEnriquez52
 
Programacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETProgramacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETJavier Roig
 
2. introduccion a vs .net
2.  introduccion a vs .net2.  introduccion a vs .net
2. introduccion a vs .netmhormech
 
2. Introduccion A Vs .Net
2.  Introduccion A Vs .Net2.  Introduccion A Vs .Net
2. Introduccion A Vs .NetDiego Armando
 
Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)videos
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .netlilymejia1979
 

Similaire à Curso c sharp (20)

Lenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetosLenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetos
 
1 Plataforma .Net
1 Plataforma .Net1 Plataforma .Net
1 Plataforma .Net
 
Introducción a net
Introducción a netIntroducción a net
Introducción a net
 
Introducción a net
Introducción a netIntroducción a net
Introducción a net
 
Dce1 introduccion microsoft.net
Dce1 introduccion microsoft.netDce1 introduccion microsoft.net
Dce1 introduccion microsoft.net
 
Tecnologia Microsoft .Net - [Asp .Net - Parte 1]
Tecnologia Microsoft .Net - [Asp .Net - Parte 1]Tecnologia Microsoft .Net - [Asp .Net - Parte 1]
Tecnologia Microsoft .Net - [Asp .Net - Parte 1]
 
Introduccion net
Introduccion netIntroduccion net
Introduccion net
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentos
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NET
 
Programacion en C#
Programacion en C#Programacion en C#
Programacion en C#
 
curso-de-visual-basic-net.pdf
curso-de-visual-basic-net.pdfcurso-de-visual-basic-net.pdf
curso-de-visual-basic-net.pdf
 
Introduccion.net
Introduccion.net Introduccion.net
Introduccion.net
 
Programacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETProgramacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NET
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Manual visual basic .net
Manual visual basic .net Manual visual basic .net
Manual visual basic .net
 
2. introduccion a vs .net
2.  introduccion a vs .net2.  introduccion a vs .net
2. introduccion a vs .net
 
2. Introduccion A Vs .Net
2.  Introduccion A Vs .Net2.  Introduccion A Vs .Net
2. Introduccion A Vs .Net
 
1. Introduccion a .Net
1. Introduccion a .Net1. Introduccion a .Net
1. Introduccion a .Net
 
Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .net
 

Dernier

Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdfLA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdfJAVIER SOLIS NOYOLA
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfluisantoniocruzcorte1
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 

Dernier (20)

Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdfLA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 

Curso c sharp

  • 1. Programando en C# Angel “Java” Lopez http://www.ajlopez.com/
  • 2. Agenda .NET Framework El lenguaje C# Visual Studio .NET Aplicaciones de Ventanas Aplicaciones ASP.NET Acceso a Datos
  • 4. Framework y Herramientas VB C++ C# JScript J# Herramientas: Common Language Specification ILDASM Visual Studio.NET ASP.NET Windows DUMPBIN Web Forms Web Services PE File Forms Format Viewer Mobile Internet Toolkit GAC.EXE Assembly ADO.NET and XML Registration Utility ILASM Base Class Library MSIL Assembler XSD.EXE Common Language Runtime Schema Definition Tool Sistema Operativo
  • 5. Common Language Runtime Simplifica drásticamente el desarrollo de aplicaciones Provee un entorno de ejecución robusto y seguro Soporta múltiples lenguajes de programación Simplifica la instalación y administración de las aplicaciones
  • 6. 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
  • 7. Common Language Runtime Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine IL to Native Code Garbage Compilers Manager Collector Class Loader
  • 8. Common Language Specification Carácterísticas comunes a todos los lenguajes Sólo se aplica a los tipos visibles Tipos comunes Tipos primitivos Nombres de métodos, propiedades Soporte de Clases, Interfaces Palabras Reservadas
  • 9. 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)
  • 10. Tipos Valor Primitivos Son soportados directamente por el CLR y son parte del CTS Enteros  int8, int16, int32, int64, sin signo... Decimales  decimal (28 digitos) Reales  float32, float64 Caracteres UNICODE  char Booleanos  bool
  • 11. Tipos Básicos de Referencia Object  El padre de todos los tipos Referencia String  Los String son objetos  La clase es final  Son inmutables
  • 13. Hola Mundo using System; class Hola { static void Main() { Console.WriteLine(“Hola Mundo"); } }
  • 14. Otras Opciones public static void Main() { ... } public static int Main() { ... return 0; } public static int Main(string[] args) { ... return 0; }
  • 15. 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
  • 16. 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
  • 17. Namespace = Paquetes de Tipos namespace N1 { // N1 class C1 { // N1.C1 class C2 {} // N1.C1.C2 } namespace N2 { // N1.N2 class C2 {} // N1.N2.C2 } }
  • 18. Creando DLLs 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); } } }
  • 19. Usando 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); } }
  • 20. Tipos Valor (Value Types) primitivos  int i; enums  enum State { Off, On } structs  struct Point { int x, y; }
  • 21. Enums enum Suit { Clubs = 0; Diamonds = 1; Hearts = 2; Spades = 3; } … Suit s = Suit.Clubs; Console.WriteLine (s); …
  • 22. Excepciones try { throw new Exception(“Oops!”); } catch (Exception e) { … Maneja Excepción ……; } finally { … Código de limpieza, se ejecuta siempre…; }
  • 23. Interfaces y Clases interface IFigure { int Area (); } class Square : IFigure { private int side; public Square (int side) { this.side = side; } public int Area () { return (side*side); } }
  • 24. Constructores class B : A { public B (int x) : base (…,…,…) { ………… } public B (bool b) : this (…,…,…) { ………… } public B (char c) { ………… } }
  • 25. Interfaces interface IA { void g (); } interface IB : IA { interface IC : IA { void f (); void f (); } } class X : IB, IC { void IA.g () { Console.WriteLine ("IA.g"); } void IC.f () { Console.WriteLine ("IC.f"); } void IB.f () { Console.WriteLine ("IB.f"); } }
  • 26. Interfaces class Test { public static void Main () { X x = new X (); ((IA)x).g(); ((IC)x).f(); ((IB)x).f(); } }
  • 27. Métodos Virtuales public class Dog { public virtual void RollOver () { Console.WriteLine("Scratch my tummy."); Bark(); } public virtual void Bark () { Console.WriteLine("WOOF WOOF (Dog)"); } }
  • 28. Propiedades e Indexadores class Party { private int start; public int Start { get { return start; } set { start = value; } } }
  • 29. Propiedades e Indexadores class Demo { public static Main () { Borrel b = new Party (); b.Start = 3; int x = b.Start; } }
  • 30. 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); } } }
  • 32. Nueva Interfaz de Desarrollo IDE derivada de VB6 Start Page Solution Explorer Varios proyectos en una solución Uno puede ser el principal
  • 33. Ventanas Class View Properties Window Toolbox Server Explorer Web Form Designer Code Window
  • 34. Ventanas Help dinámico Object Browser Compilando: Output Window Depurando: Command, Locals, Autos, Breakpoints Windows Disassembly, Memory Windows
  • 36. WinForms 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()); } }
  • 37. Desarrollo Visual Nuevo System.Windows Los formularios son clases Los controles son clases Posicionamiento de los controles Propiedades Ciclo de vida de controles y formularios
  • 38. Aplicación Windows Proyecto Aplicación Windows Formulario Diseñador de Formulario Código automático Controles Eventos
  • 39. Controles y Formularios Nuevos controles Nuevas propiedades MDI Herencia de Formularios Uso de controles OCX Controles propios