SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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(quot;Hola Mundoquot;, Microsoft.VisualBasic.MsgBoxStyle.OKOnly,
       quot;Pantalla Ejemploquot;)
   Visual Basic .NET
     MessageBox.Show(quot;Hola Mundoquot;, quot;Pantalla Ejemploquot;,
       MessageBoxButtons.OK)
   Visual C#
     MessageBox.Show(quot;Hola Mundoquot;, quot;Pantalla Ejemploquot;,
       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 quot;Xquot;                                 case quot;Xquot;:
            Case quot;Yquot;                                 case quot;Yquot;:
     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

Mais conteúdo relacionado

Semelhante a D I F E R E N C I A S E N T R E V I S U A L Y C

Clase2
Clase2Clase2
Clase2
jdeyet
 
Linq En Visual Basic 2008
Linq En Visual Basic 2008Linq En Visual Basic 2008
Linq En Visual Basic 2008
kayrambal
 
Equivalencias Vb Net Y C
Equivalencias Vb Net Y CEquivalencias Vb Net Y C
Equivalencias Vb Net Y C
deadss
 
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
 
Programacion c# vbnet
Programacion c# vbnetProgramacion c# vbnet
Programacion c# vbnet
Kevin Reaño
 
Dce0 programacion oo_c#_vbnet
Dce0 programacion oo_c#_vbnetDce0 programacion oo_c#_vbnet
Dce0 programacion oo_c#_vbnet
maurgilez
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET Framework
Sorey García
 

Semelhante a D I F E R E N C I A S E N T R E V I S U A L Y C (20)

Clase2
Clase2Clase2
Clase2
 
Linq En Visual Basic 2008
Linq En Visual Basic 2008Linq En Visual Basic 2008
Linq En Visual Basic 2008
 
Reactvolution
ReactvolutionReactvolution
Reactvolution
 
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++
 
Equivalencias Vb Net Y C
Equivalencias Vb Net Y CEquivalencias Vb Net Y C
Equivalencias Vb Net Y C
 
PROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORESPROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORES
 
Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]Introducción-a-Microsoft.NET-[parte3]
Introducción-a-Microsoft.NET-[parte3]
 
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)
 
Aplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdadesAplicaciones escalables en la nube: mentiras y verdades
Aplicaciones escalables en la nube: mentiras y verdades
 
5 a bd_servidor
5 a bd_servidor5 a bd_servidor
5 a bd_servidor
 
Programacion C#_vbnet
Programacion C#_vbnetProgramacion C#_vbnet
Programacion C#_vbnet
 
Dce0 programacion oo_c#_vbnet
Dce0 programacion oo_c#_vbnetDce0 programacion oo_c#_vbnet
Dce0 programacion oo_c#_vbnet
 
Programacion c# vbnet
Programacion c# vbnetProgramacion c# vbnet
Programacion c# vbnet
 
Dce0 programacion oo_c#_vbnet
Dce0 programacion oo_c#_vbnetDce0 programacion oo_c#_vbnet
Dce0 programacion oo_c#_vbnet
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET Framework
 
Visual basic-net
Visual basic-netVisual basic-net
Visual basic-net
 
Clase 1.pdf
Clase 1.pdfClase 1.pdf
Clase 1.pdf
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Csharp
CsharpCsharp
Csharp
 
Programación III
Programación IIIProgramación III
Programación III
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

D I F E R E N C I A S E N T R E V I S U A L Y 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(quot;Hola Mundoquot;, Microsoft.VisualBasic.MsgBoxStyle.OKOnly, quot;Pantalla Ejemploquot;) Visual Basic .NET MessageBox.Show(quot;Hola Mundoquot;, quot;Pantalla Ejemploquot;, MessageBoxButtons.OK) Visual C# MessageBox.Show(quot;Hola Mundoquot;, quot;Pantalla Ejemploquot;, 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 quot;Xquot; case quot;Xquot;: Case quot;Yquot; case quot;Yquot;: 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