SlideShare una empresa de Scribd logo
C# para Programadores de Visual Basic
 Reunión de la Comunidad .NET D.F.
Agenda
• Diferencias entre Visual Basic 6 y .NET
• Migrando de Visual Basic .NET a C#
  – Eliminando el Espacio de Nombres
    Microsoft.VisualBasic
  – Diferencias en la Sintaxis de C# vs VB.NET
  – Algunos detalles adicionales
Diferencias entre Visual Basic 6 y .NET
• En Visual Basic .NET no existe el tipo de datos Variant
   – En su lugar se utiliza el tipo de datos Object como tipo de datos
     universal.
• Variables Integer y Long
   – Las variables Integer se almacenan como números de 32 bits en lugar
     de 16 bits.
   – Las variables Long se almacenan como números de 64 bits en lugar de
     32 bits.
   – Las variables Short se almacenan como números de 16 bits. Ocupando
     el espacio que dejan las Variables Integer
• Variables Date
   – En .NET las variables se almacenan internamente como enteros de 64
     bits, y no pueden manipularse directamente como antes se hacia en
     Visual Basic 6.0 en el cual se almacenaba internamente como Double y
     podía ser manipulada externamente.


                         http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
Diferencias entre Visual Basic 6 y .NET
• Instrucciones Type
   – Las instrucciones Type que servian para establecer un tipo de datos
     definido por el usuario cambia a Structure
• Valor de True
   – El valor de true tiene un valor de 1 en .NET mientras que en Visual 6 era de
     -1
• Empty
   – En Visual Basic .NET las variables se inicializan en Nothing y mientras que
     Visual Basic 6 se inicializaban en Empty
• Null
   – En Visual Basic .NET no se admite la propagación de Null que en Visual
     Basic 6 eran utilizados para para indicar que una variable contenía un dato
     no valido



                         http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
Diferencias entre Visual Basic 6 y .NET
• Parámetro predeterminado ByVal/ByRef
   – En Visual Basic .NET los parametros adoptan de forma predeterminada
     el valor ByVal mientras que en Visual Basic 6 adoptaban de forma
     predeterminada el valor ByRef.
• ADO, RDO y DAO
   – ADO.NET substituye los objetos de ADO,RDO y DAO proporcionando
     clases adicionales al acceso a datos que funcionan de forma
     desconectada.
• Manejo de Errores Estructurado
   – Try, Catch, Finally substituye el uso de On Error




                         http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
Migrando de Visual Basic .NET a C#
Eliminando el Espacio de Nombres Microsoft.VisualBasic

El espacio de nombres Microsoft.VisualBasic fue creado para permitir
   una trancisión menos dolorosa al desarrollo en .NET.


• ¿Para que sirve eliminar el espacio de nombres
  Microsoft.VisualBasic?
   – Para que los programadores dejen de programar en las herramientas
     de .NET al estilo de Visual Basic 6.
   – Permite al desarrollador erradicar malas practicas que lleva arrastrando
     desde la programación en Visual Basic 6.
   – Una vez que se ha eliminado el espacio de nombres es mucho mas
     sencillo aprender C#.




                         http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
Cambios al quitar el Namespace VisualBasic
• La función MsgBox no existe en .NET
   – En Visual Basic NET la clase MessageBox con su metodo Show,
     substituye a la función MsgBox de Vb 6.



   Microsoft.VisualBasic
     MsgBox("Hola Mundo", Microsoft.VisualBasic.MsgBoxStyle.OKOnly,
       "Pantalla Ejemplo")
   Visual Basic .NET
     MessageBox.Show("Hola Mundo", "Pantalla Ejemplo",
       MessageBoxButtons.OK)
   Visual C#
     MessageBox.Show("Hola Mundo", "Pantalla Ejemplo",
       MessageBoxButtons.OK);




                       http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
Cambios al quitar el Namespace VisualBasic
• La función isNumeric y la función isDate
   – En su lugar se pueden utilizar los metodos TryParse que acompañan a
     los diversos Tipos.
   Microsoft.VisualBasic
     if isnumeric(Valor) then
   Visual Basic .NET 2003
     If Double.TryParse(Valor, Globalization.NumberStyles.Any,
     Globalization.CultureInfo.CurrentCulture, ValorOut) Then
   Visual C# 2003
     if (Double.TryParse(Valor, System.Globalization.NumberStyles.Any,
        System.Globalization.CultureInfo.CurrentCulture, out ValorOut))
   Visual Basic .NET 2005
     If Double.TryParse(Valor, ValorOut) Then
   Visual C# 2005
     if (Double.TryParse(Valor,out ValorOut ))
Cambios al quitar el Namespace VisualBasic
• Microsoft.VisualBasic.DateAndTime
   – Dentro de este espacio de nombres se encuentran todas las funciones
     que en Visual Basic 6 eran utilizadas para realizar operaciones que
     tenian que ver con las fechas.
   – Ejemplos:
       • La función Now que trae la fecha y hora que tiene la maquina cambia por


       Visual Basic .NET                       Visual C#
       Dim x As Date                           DateTime x;
       x = Date.Now                            x = DateTime.Now;
       • Cuando quieres obtener una sección de una fecha


        Visual Basic              Visual Basic .NET          Visual C#
        Dim Dia As Integer        Dim Dia As Integer         Int Dia;
        Dia=day(x)                Dia=x.day                  Dia=x.day;
Cambios al quitar el Namespace VisualBasic
• Microsoft.VisualBasic.DateAndTime
       • Algunos ejemplos adicionales serian:


         DateAdd
          VB Dateadd(DateInterval.Day,3,X)
          VB.NET x.AddDays(3)
          C# x.AddDays(3);

         DateDiff
          VB DateDiff(DateInterval.Second, X, Y)
          VB.NET Y.Subtract(X).TotalSeconds
          C# Y.Subtract(X).TotalSeconds;
Diferencias en la Sintaxis de C# vs VB.NET
•   La sintaxis entre ambos lenguajes es diferente. Alguna diferencias son las
    siguientes:
    Definición de una clase
     Visual Basic .NET                        Visual C#
     Public Class NombreClase                 class NombreClase
     End Class                                {…}

    Definición de una Propiedad
     Visual Basic .NET                        Visual C#
     Public Property Property1() As Integer   public int Property
      Get                                       {
      End Get
                                                get {}
      Set(ByVal value As Integer)
                                                set {}
      End Set
     End Property
                                                }
Diferencias en la Sintaxis de C# vs VB.NET
•   La sintaxis entre ambos lenguajes es dieferente. Alguna diferencias son las
    siguientes:
    Definición de un Método
     Visual Basic .NET                     Visual C#
     Public Sub Method()                   public void Method()
     End Sub                                 { }

     Public Function Method() As Integer   public int Method1()
     End Function                           { }

    Definición de un Constructor
     Sub New()                             public Class1()
     End Sub                                { }
Diferencias en la Sintaxis de C# vs VB.NET
•   La sintaxis entre ambos lenguajes es diferente. Alguna diferencias son las
    siguientes:
    Como se escribe una condición IF
      Visual Basic .NET                    Visual C#
          If Condicion Then                if (Condicion)
          End If                              {}

    Definición de un bucle for
     Visual Basic .NET                     Visual C#
     For X As Integer = 1 To 10            for (int X = 1; i <= 10; i++)
     Next                                        {    }

    Select Case
     Visual Basic .NET                     Visual C#
     Select Case Opcion                    switch (Opcion){
            Case "X"                                 case "X":
            Case "Y"                                 case "Y":
     End Select                                           }
Algunos detalles adicionales
•   Al trabajar con Visual C# debes tener cuidado con el Casing ya que este
    lengiaje distingue entre mayusculas u minusculas, por lo que no es lo
    mismo MiVariable que mivariable.
•   Cuando un metodo en C# espera un valor en un tipo en espcifico este debe
    ser convertido previamente antes de que pueda ser enviado como
    parametro. Ej. MessageBox.Show(ValorOut.ToString()); Mientras que en
    visual basic era valido realizarlo de la siguiente manera
    MessageBox.Show(ValorOut).
José Raúl Guerrero Carreón
     http://www.superneurona.com

Más contenido relacionado

Destacado

Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#
XM Filial de ISA
 
Estructuras de Lenguaje .NET
Estructuras de Lenguaje .NETEstructuras de Lenguaje .NET
Estructuras de Lenguaje .NET
brobelo
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicas
Any Saula
 
Sistemas operativos: Windows, Linux y MAC
Sistemas operativos: Windows, Linux y MACSistemas operativos: Windows, Linux y MAC
Sistemas operativos: Windows, Linux y MAC
patocob
 

Destacado (20)

1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
Historia del computador
Historia del computadorHistoria del computador
Historia del computador
 
Practicas sencillas para C#
Practicas sencillas para C# Practicas sencillas para C#
Practicas sencillas para C#
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#
 
Aprende JavaScript
Aprende JavaScriptAprende JavaScript
Aprende JavaScript
 
Programacion en n capas
Programacion en n capasProgramacion en n capas
Programacion en n capas
 
Tipos Datos y Operadores en Visual C# (C sharp)
Tipos Datos y Operadores en Visual C# (C sharp)Tipos Datos y Operadores en Visual C# (C sharp)
Tipos Datos y Operadores en Visual C# (C sharp)
 
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
 
Estructuras de Lenguaje .NET
Estructuras de Lenguaje .NETEstructuras de Lenguaje .NET
Estructuras de Lenguaje .NET
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicas
 
Historia y evolución de la industra de los Videojuegos
Historia y evolución de la industra de los VideojuegosHistoria y evolución de la industra de los Videojuegos
Historia y evolución de la industra de los Videojuegos
 
Quinta y Sexta Generacion
Quinta y Sexta GeneracionQuinta y Sexta Generacion
Quinta y Sexta Generacion
 
Visual basic-net
Visual basic-netVisual basic-net
Visual basic-net
 
Sistema Operativo Android; versiones, historia
Sistema Operativo Android; versiones, historiaSistema Operativo Android; versiones, historia
Sistema Operativo Android; versiones, historia
 
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOSSISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
 
Java
JavaJava
Java
 
Evolucion delas computadoras a partir del año 2000 en adelante
Evolucion delas computadoras  a partir del año 2000 en adelanteEvolucion delas computadoras  a partir del año 2000 en adelante
Evolucion delas computadoras a partir del año 2000 en adelante
 
Caracteristicas principales de linux
Caracteristicas principales de linuxCaracteristicas principales de linux
Caracteristicas principales de linux
 
Generación de las Computadoras
Generación de las ComputadorasGeneración de las Computadoras
Generación de las Computadoras
 
Sistemas operativos: Windows, Linux y MAC
Sistemas operativos: Windows, Linux y MACSistemas operativos: Windows, Linux y MAC
Sistemas operativos: Windows, Linux y MAC
 

Similar a Programacion C#

Dce0 programacion oo_c__vbnet
Dce0 programacion oo_c__vbnetDce0 programacion oo_c__vbnet
Dce0 programacion oo_c__vbnet
victdiazm
 
Equivalencias Vb Net Y C
Equivalencias Vb Net Y CEquivalencias Vb Net Y C
Equivalencias Vb Net Y C
deadss
 
Clase2
Clase2Clase2
Clase2
jdeyet
 
Codecamp 2009 Qué Hay De Nuevo Viejo
Codecamp 2009   Qué Hay De Nuevo ViejoCodecamp 2009   Qué Hay De Nuevo Viejo
Codecamp 2009 Qué Hay De Nuevo Viejo
Lluis Franco
 
Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]
Kevin Reaño
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET Framework
Sorey García
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Andrés Iturralde
 
Guia de ejercioccios de estudio c#.pptx
Guia de ejercioccios de estudio   c#.pptxGuia de ejercioccios de estudio   c#.pptx
Guia de ejercioccios de estudio c#.pptx
JAVIERARTUROGARCIAMI
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .net
lilymejia1979
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoft
brobelo
 

Similar a Programacion C# (20)

Dce0 programacion oo_c__vbnet
Dce0 programacion oo_c__vbnetDce0 programacion oo_c__vbnet
Dce0 programacion oo_c__vbnet
 
Visual studio introduccion
Visual studio introduccionVisual studio introduccion
Visual studio introduccion
 
Migracion a Visual Basic .NET
Migracion a Visual Basic .NETMigracion a Visual Basic .NET
Migracion a Visual Basic .NET
 
Equivalencias Vb Net Y C
Equivalencias Vb Net Y CEquivalencias Vb Net Y C
Equivalencias Vb Net Y C
 
 
Clase2
Clase2Clase2
Clase2
 
Codecamp 2009 Qué Hay De Nuevo Viejo
Codecamp 2009   Qué Hay De Nuevo ViejoCodecamp 2009   Qué Hay De Nuevo Viejo
Codecamp 2009 Qué Hay De Nuevo Viejo
 
PROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORESPROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORES
 
Actividad autoformación y evaluación no.2 tarea
Actividad autoformación y evaluación no.2 tareaActividad autoformación y evaluación no.2 tarea
Actividad autoformación y evaluación no.2 tarea
 
Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]
 
P R O G R A M A V I S U A L C++
P R O G R A M A  V I S U A L  C++P R O G R A M A  V I S U A L  C++
P R O G R A M A V I S U A L C++
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET Framework
 
Reactvolution
ReactvolutionReactvolution
Reactvolution
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
 
Clase 1.pdf
Clase 1.pdfClase 1.pdf
Clase 1.pdf
 
Programación III
Programación IIIProgramación III
Programación III
 
Guia de ejercioccios de estudio c#.pptx
Guia de ejercioccios de estudio   c#.pptxGuia de ejercioccios de estudio   c#.pptx
Guia de ejercioccios de estudio c#.pptx
 
Lenguaje C sharp
Lenguaje C sharpLenguaje C sharp
Lenguaje C sharp
 
Tecnologia microsoft .net
Tecnologia microsoft .netTecnologia microsoft .net
Tecnologia microsoft .net
 
Tecnologia Microsoft
Tecnologia  MicrosoftTecnologia  Microsoft
Tecnologia Microsoft
 

Último

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 

Último (20)

leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 

Programacion C#

  • 1. C# para Programadores de Visual Basic Reunión de la Comunidad .NET D.F.
  • 2. Agenda • Diferencias entre Visual Basic 6 y .NET • Migrando de Visual Basic .NET a C# – Eliminando el Espacio de Nombres Microsoft.VisualBasic – Diferencias en la Sintaxis de C# vs VB.NET – Algunos detalles adicionales
  • 3. Diferencias entre Visual Basic 6 y .NET • En Visual Basic .NET no existe el tipo de datos Variant – En su lugar se utiliza el tipo de datos Object como tipo de datos universal. • Variables Integer y Long – Las variables Integer se almacenan como números de 32 bits en lugar de 16 bits. – Las variables Long se almacenan como números de 64 bits en lugar de 32 bits. – Las variables Short se almacenan como números de 16 bits. Ocupando el espacio que dejan las Variables Integer • Variables Date – En .NET las variables se almacenan internamente como enteros de 64 bits, y no pueden manipularse directamente como antes se hacia en Visual Basic 6.0 en el cual se almacenaba internamente como Double y podía ser manipulada externamente. http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
  • 4. Diferencias entre Visual Basic 6 y .NET • Instrucciones Type – Las instrucciones Type que servian para establecer un tipo de datos definido por el usuario cambia a Structure • Valor de True – El valor de true tiene un valor de 1 en .NET mientras que en Visual 6 era de -1 • Empty – En Visual Basic .NET las variables se inicializan en Nothing y mientras que Visual Basic 6 se inicializaban en Empty • Null – En Visual Basic .NET no se admite la propagación de Null que en Visual Basic 6 eran utilizados para para indicar que una variable contenía un dato no valido http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
  • 5. Diferencias entre Visual Basic 6 y .NET • Parámetro predeterminado ByVal/ByRef – En Visual Basic .NET los parametros adoptan de forma predeterminada el valor ByVal mientras que en Visual Basic 6 adoptaban de forma predeterminada el valor ByRef. • ADO, RDO y DAO – ADO.NET substituye los objetos de ADO,RDO y DAO proporcionando clases adicionales al acceso a datos que funcionan de forma desconectada. • Manejo de Errores Estructurado – Try, Catch, Finally substituye el uso de On Error http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
  • 6. Migrando de Visual Basic .NET a C# Eliminando el Espacio de Nombres Microsoft.VisualBasic El espacio de nombres Microsoft.VisualBasic fue creado para permitir una trancisión menos dolorosa al desarrollo en .NET. • ¿Para que sirve eliminar el espacio de nombres Microsoft.VisualBasic? – Para que los programadores dejen de programar en las herramientas de .NET al estilo de Visual Basic 6. – Permite al desarrollador erradicar malas practicas que lleva arrastrando desde la programación en Visual Basic 6. – Una vez que se ha eliminado el espacio de nombres es mucho mas sencillo aprender C#. http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
  • 7. Cambios al quitar el Namespace VisualBasic • La función MsgBox no existe en .NET – En Visual Basic NET la clase MessageBox con su metodo Show, substituye a la función MsgBox de Vb 6. Microsoft.VisualBasic MsgBox("Hola Mundo", Microsoft.VisualBasic.MsgBoxStyle.OKOnly, "Pantalla Ejemplo") Visual Basic .NET MessageBox.Show("Hola Mundo", "Pantalla Ejemplo", MessageBoxButtons.OK) Visual C# MessageBox.Show("Hola Mundo", "Pantalla Ejemplo", MessageBoxButtons.OK); http://www.microsoft.com/spanish/msdn/articulos/archivo/040501/voices/transitiondoc.asp
  • 8. Cambios al quitar el Namespace VisualBasic • La función isNumeric y la función isDate – En su lugar se pueden utilizar los metodos TryParse que acompañan a los diversos Tipos. Microsoft.VisualBasic if isnumeric(Valor) then Visual Basic .NET 2003 If Double.TryParse(Valor, Globalization.NumberStyles.Any, Globalization.CultureInfo.CurrentCulture, ValorOut) Then Visual C# 2003 if (Double.TryParse(Valor, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.CurrentCulture, out ValorOut)) Visual Basic .NET 2005 If Double.TryParse(Valor, ValorOut) Then Visual C# 2005 if (Double.TryParse(Valor,out ValorOut ))
  • 9. Cambios al quitar el Namespace VisualBasic • Microsoft.VisualBasic.DateAndTime – Dentro de este espacio de nombres se encuentran todas las funciones que en Visual Basic 6 eran utilizadas para realizar operaciones que tenian que ver con las fechas. – Ejemplos: • La función Now que trae la fecha y hora que tiene la maquina cambia por Visual Basic .NET Visual C# Dim x As Date DateTime x; x = Date.Now x = DateTime.Now; • Cuando quieres obtener una sección de una fecha Visual Basic Visual Basic .NET Visual C# Dim Dia As Integer Dim Dia As Integer Int Dia; Dia=day(x) Dia=x.day Dia=x.day;
  • 10. Cambios al quitar el Namespace VisualBasic • Microsoft.VisualBasic.DateAndTime • Algunos ejemplos adicionales serian: DateAdd VB Dateadd(DateInterval.Day,3,X) VB.NET x.AddDays(3) C# x.AddDays(3); DateDiff VB DateDiff(DateInterval.Second, X, Y) VB.NET Y.Subtract(X).TotalSeconds C# Y.Subtract(X).TotalSeconds;
  • 11. Diferencias en la Sintaxis de C# vs VB.NET • La sintaxis entre ambos lenguajes es diferente. Alguna diferencias son las siguientes: Definición de una clase Visual Basic .NET Visual C# Public Class NombreClase class NombreClase End Class {…} Definición de una Propiedad Visual Basic .NET Visual C# Public Property Property1() As Integer public int Property Get { End Get get {} Set(ByVal value As Integer) set {} End Set End Property }
  • 12. Diferencias en la Sintaxis de C# vs VB.NET • La sintaxis entre ambos lenguajes es dieferente. Alguna diferencias son las siguientes: Definición de un Método Visual Basic .NET Visual C# Public Sub Method() public void Method() End Sub { } Public Function Method() As Integer public int Method1() End Function { } Definición de un Constructor Sub New() public Class1() End Sub { }
  • 13. Diferencias en la Sintaxis de C# vs VB.NET • La sintaxis entre ambos lenguajes es diferente. Alguna diferencias son las siguientes: Como se escribe una condición IF Visual Basic .NET Visual C# If Condicion Then if (Condicion) End If {} Definición de un bucle for Visual Basic .NET Visual C# For X As Integer = 1 To 10 for (int X = 1; i <= 10; i++) Next { } Select Case Visual Basic .NET Visual C# Select Case Opcion switch (Opcion){ Case "X" case "X": Case "Y" case "Y": End Select }
  • 14. Algunos detalles adicionales • Al trabajar con Visual C# debes tener cuidado con el Casing ya que este lengiaje distingue entre mayusculas u minusculas, por lo que no es lo mismo MiVariable que mivariable. • Cuando un metodo en C# espera un valor en un tipo en espcifico este debe ser convertido previamente antes de que pueda ser enviado como parametro. Ej. MessageBox.Show(ValorOut.ToString()); Mientras que en visual basic era valido realizarlo de la siguiente manera MessageBox.Show(ValorOut).
  • 15. José Raúl Guerrero Carreón http://www.superneurona.com