[email protected] C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET...

18
alex.sanchez@logicstudi alex.sanchez@logicstudi o.net o.net C# & VB.net C# & VB.net Alex Sánchez Alex Sánchez Logic Studio Panamá Logic Studio Panamá MCAD – MVP VB.NET MCAD – MVP VB.NET [email protected] [email protected]

Transcript of [email protected] C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET...

Page 1: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

C# & VB.netC# & VB.net

Alex SánchezAlex SánchezLogic Studio PanamáLogic Studio PanamáMCAD – MVP VB.NETMCAD – MVP VB.NET

[email protected]@logicstudio.net

Page 2: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

AgendaAgenda

C# y VB.NETC# y VB.NET Perspectiva gerencialPerspectiva gerencial Perspectiva de programaciónPerspectiva de programación EstadísticasEstadísticas

Page 3: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

““Si bien existen diferencias entre Visual Si bien existen diferencias entre Visual Basic .NET y Visual C# .NET, ambos son Basic .NET y Visual C# .NET, ambos son lenguajes de programación de primera clase lenguajes de programación de primera clase basados en el Microsoft .NET basados en el Microsoft .NET FrameworkFramework." ."

Page 4: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Perspectiva GerencialPerspectiva Gerencial

Page 5: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Perspectiva gerencialPerspectiva gerencial

C# y VB.NET son dos de los lenguajes de C# y VB.NET son dos de los lenguajes de programación mas difundidos en .NETprogramación mas difundidos en .NET

Para un proyecto al que se le establece un Para un proyecto al que se le establece un solo diseño/arquitectura, la funcionalidad solo diseño/arquitectura, la funcionalidad que se codifique en C# o VB.NET puede que se codifique en C# o VB.NET puede llegar a ser llegar a ser equivalenteequivalente

Elementos a considerar, modelo conceptual Elementos a considerar, modelo conceptual de ambos lenguajes, background del equipo de ambos lenguajes, background del equipo de programadores, oferta profesional y de programadores, oferta profesional y tendencias.tendencias.

Page 6: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Conozcamos C# y VB.NetConozcamos C# y VB.Net Ambos leguajes se fundamentan en:Ambos leguajes se fundamentan en:

Modelo de programación orientado a objetosModelo de programación orientado a objetos Implementados sobre el dotnet framework Implementados sobre el dotnet framework

Código seguro, Código seguro, Soporte a aplicaciones Web, Windows, Móvil,…Soporte a aplicaciones Web, Windows, Móvil,…

Con ambos lenguajes podemos tener proyectos Con ambos lenguajes podemos tener proyectos exitososexitosos

Page 7: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Resumen comparativoResumen comparativo VB.NETVB.NET

Tiene una sintáxis similar a VB6 Tiene una sintáxis similar a VB6 Primera impresión de camino de transición del equipo de Primera impresión de camino de transición del equipo de

programadores VB6programadores VB6 Debe cuidarse sacar provecho a la OO y ArquitecturaDebe cuidarse sacar provecho a la OO y Arquitectura

Reglas del lenguaje opcionales por omisiónReglas del lenguaje opcionales por omisión Se recomienda trabajar declarando variables y sin Se recomienda trabajar declarando variables y sin

conversiones de datos implícitasconversiones de datos implícitas C# C#

Tiene una sintáxis similar a C o Java Tiene una sintáxis similar a C o Java Opción natural para programadores con experiencia en Opción natural para programadores con experiencia en

OOOO Debe cuidarse la sobre IngenieríaDebe cuidarse la sobre Ingeniería

IDE mas simple (2005 mejorado), reglas del IDE mas simple (2005 mejorado), reglas del lenguaje estrictas (no hay opción)lenguaje estrictas (no hay opción) Toda variable debe ser declarada, las conversiones de Toda variable debe ser declarada, las conversiones de

datos son explicitas, sensible a mayúsculasdatos son explicitas, sensible a mayúsculas

Page 8: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

ConsideracionesConsideraciones RecursosRecursos

Perfil del equipo de desarrolloPerfil del equipo de desarrollo EntrenamientoEntrenamiento

OfertaOferta Profesionales y Centros de EntrenamientoProfesionales y Centros de Entrenamiento

En perspectiva si la organización cuenta con En perspectiva si la organización cuenta con técnicos VB podría ganarse cierto tiempo en técnicos VB podría ganarse cierto tiempo en formación al optar por VB.NET, debe cuidarse de formación al optar por VB.NET, debe cuidarse de emplear apropiadamente los nuevos elementos de emplear apropiadamente los nuevos elementos de arquitectura y orientación a objetos.arquitectura y orientación a objetos.

C# es una propuesta que parte de cero, es mas C# es una propuesta que parte de cero, es mas estricto y exigente en sintáxis, esta exigencia forma estricto y exigente en sintáxis, esta exigencia forma a los miembros del equipos de programacióna los miembros del equipos de programación

Page 9: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Perspectiva de ProgramaciónPerspectiva de Programación

Page 10: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Perspectiva del programadorPerspectiva del programador C# y VB.NET tienen sintáxis diferente, ¿Cómo son C# y VB.NET tienen sintáxis diferente, ¿Cómo son

equivalentes?equivalentes?

Imports EntidadesImports Entidades

Namespace LogicaNegocio.VBNetNamespace LogicaNegocio.VBNetPublic Class FacturacionPublic Class Facturacion

‘ ‘ Obtiene el subtotal por filaObtiene el subtotal por fila

Public Function Totalizar(ByVal ds As _Public Function Totalizar(ByVal ds As _

DatasetFacturacion)DatasetFacturacion)

Dim total = 0Dim total = 0

Dim dr As _Dim dr As _

DatasetFacturacion.Order_DetailsRowDatasetFacturacion.Order_DetailsRow

Dim i = 0Dim i = 0

For i = 0 To ds.Order_Details.Rows.Count - 1For i = 0 To ds.Order_Details.Rows.Count - 1

dr = ds.Order_Details.Rows(i)dr = ds.Order_Details.Rows(i)

dr.Subtotal = dr.UnitPrice * dr.Quantitydr.Subtotal = dr.UnitPrice * dr.Quantity

total += dr.Subtotaltotal += dr.Subtotal

NextNext

Return totalReturn total

End FunctionEnd Function

End ClassEnd Class

End NamespaceEnd Namespace

using Entidades;using Entidades;

namespace LogicaNegocio.CSharpnamespace LogicaNegocio.CSharp

{{

public class Facturacionpublic class Facturacion

{{

/* Obtiene el subtotal por fila *//* Obtiene el subtotal por fila */

public decimal Totalizar(DatasetFacturacion ds)public decimal Totalizar(DatasetFacturacion ds)

{{

decimal total = 0;decimal total = 0;

DatasetFacturacion.Order_DetailsRow dr = null;DatasetFacturacion.Order_DetailsRow dr = null;

for (int i=0; i<ds.Order_Details.Rows.Count;i++)for (int i=0; i<ds.Order_Details.Rows.Count;i++)

{{

dr = ds.Order_Details.Rows[i] as dr = ds.Order_Details.Rows[i] as DatasetFacturacion.Order_DetailsRow;DatasetFacturacion.Order_DetailsRow;

dr.Subtotal = dr.UnitPrice * dr.Quantity;dr.Subtotal = dr.UnitPrice * dr.Quantity;

total += dr.Subtotal;total += dr.Subtotal;

}}

return total;return total;

}}

}}

}}

Page 11: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

CLRCLR

AssemblyAssemblySource Source CodeCode

Language Language CompilerCompiler

Tiempo de CompilaciónTiempo de Compilación

Cuando invocamos la Cuando invocamos la funcionalidad se funcionalidad se

compilarácompilaráTiempo de EjecuciónjTiempo de Ejecuciónj

JIT JIT CompilerCompiler

NativeNative

CodeCode

Code (IL)Code (IL)

MetadataMetadata

Page 12: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Declaración de VariablesDeclaración de VariablesVisual Basic .NET Visual C# .NET

Dim i, j As Integer int i, j;

Dim i As Integer = 7 int i = 7;

Dim i(6) As IntegerorDim i() As Integer = New Integer(6) {}

int[] i = new int[6];

Dim con As SqlConnection SqlConnection con;

Dim x As New Y("ABC")orDim x As Y = New Y("ABC")

x = new Y("ABC");

Page 13: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

BloquesBloquesVisual Basic .NET Visual C# .NET

A = 5B = 7 : C = 8MySub (Arg1, _ Arg2, _

Arg3)

A = 5;B = 7; C = 8;MySub (Arg1, Arg2,

Arg3); If A = 5 Then DoSomething() DoSomethingAgain()End If

If (a == 5){ DoSomething(); DoSomethingAgain();}or if (a == 5) DoSomething();

DoSomethingAgain();

Page 14: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

OperadoresOperadores

Operador Visual Basic .NET Visual C# .NET

Básicos + - * / + - * /

Comparación <> !=

Corto Circuito AndAlso &&

OrElse ||

Comentarios ‘ /*

*/

o

//

Page 15: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Control de FlujoControl de FlujoConditional Statement Visual Basic .NET Visual C# .NET

Decision structure (selection)

Select Case …, Case, Case Else, End Select

switch, case, default,

Decision structure (if … then)

If … Then, ElseIf … Then, Else, End If

if, else

Loop structure (conditional)

While… End While, Do [While, Until] …, Loop [While, Until]

do, while, continue

Loop structure (iteration)

For …, [Exit For,] Next For Each …, [Exit For,] Next

for, foreach

Control flow statement

Exit,Stop, End, Return,

break, continue, return,throw

Page 16: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Anotaciones finalesAnotaciones finales Los nuevos proyectos de computación, Windows, Los nuevos proyectos de computación, Windows,

Móvil, Web, XML son desafios técnicamente cada Móvil, Web, XML son desafios técnicamente cada vez más complejos que requieren la utilización vez más complejos que requieren la utilización apropiada de la técnología, la sintáxis del lenguaje apropiada de la técnología, la sintáxis del lenguaje que empleamos es un elemento más a considerar, que empleamos es un elemento más a considerar, seleccionemos el que sea más compatible con seleccionemos el que sea más compatible con nuestra capacidad actual y los planes de nuestra capacidad actual y los planes de crecimiento de la organización o del mercadocrecimiento de la organización o del mercado

La figura del arquitecto de software se encargara de La figura del arquitecto de software se encargara de diseñar el sistema y sus componentes, de aplicar diseñar el sistema y sus componentes, de aplicar patrones y mejores prácticas para que el equipo de patrones y mejores prácticas para que el equipo de desarrolladores (en el lenguaje que se determine) desarrolladores (en el lenguaje que se determine) implemente la solución correcta.implemente la solución correcta.

Page 17: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

Mas informaciónMas información

http://lab.msdn.microsoft.com/express/vhttp://lab.msdn.microsoft.com/express/vcsharpcsharp

http://support.microsoft.com/default.asphttp://support.microsoft.com/default.aspx?scid=kb;EN-US;Q308470x?scid=kb;EN-US;Q308470

http://msdn.microsoft.com/libraryhttp://msdn.microsoft.com/library

Page 18: Alex.sanchez@logicstudio.net C# & VB.net Alex Sánchez Logic Studio Panamá MCAD – MVP VB.NET alex.sanchez@logicstudio.net.

[email protected]@logicstudio.nett

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

Gracias por asistirGracias por asistirrecuerde completar su encuestarecuerde completar su encuesta

[email protected]@logicstudio.net