Share to: share facebook share twitter share wa share telegram print page

Visual Basic (.NET)


Infotaula de llenguatge de programacióVisual Basic
Tipusclass-based programming language (en) Tradueix, llenguatge de programació d'alt nivell, llenguatge de programació estricte, event-driven programming language (en) Tradueix, llenguatge de programació multiparadigma, llenguatge de programació imperatiu, llenguatge de programació funcional i generic programming language (en) Tradueix Modifica el valor a Wikidata
Data de creació2001 Modifica el valor a Wikidata
DissenyMicrosoft Modifica el valor a Wikidata
DesenvolupadorMicrosoft
Paradigma de programacióOrientació a objectes
Darrera versió estable16.9 () Modifica el valor a Wikidata
Tipus de dadesEstàtic, fort
Influenciat perQuickBASIC
Ha influenciatVisual Basic .NET
Sistema operatiuMicrosoft Windows
Extensió dels fitxersvb Modifica el valor a Wikidata
Codi fontCodi font i Codi font Modifica el valor a Wikidata
LlicènciaLlicència Apache, versió 2.0 Modifica el valor a Wikidata
Etiqueta d'Stack ExchangeEtiqueta Modifica el valor a Wikidata
Pàgina webdocs.microsoft.com… Modifica el valor a Wikidata

Visual Basic (.NET), originalment anomenat Visual Basic.NET (VB.NET), és un llenguatge de programació multiparadigma i orientat a objectes desenvolupat per Microsoft i implementat en.NET, Mono i.NET Framework. Microsoft va llançar VB.NET el 2002 com a successor del seu llenguatge Visual Basic original, l'última versió del qual va ser Visual Basic 6.0. Tot i que la part ".NET" del nom es va eliminar el 2005, aquest article utilitza "Visual Basic [.NET]" per referir-se a tots els llenguatges de Visual Basic publicats des del 2002, per tal de distingir-los del Visual Basic clàssic. Juntament amb C# i F#, és un dels tres llenguatges principals dirigits a l'ecosistema.NET. Microsoft va actualitzar la seva estratègia de llenguatge VB el 6 de febrer de 2023, afirmant que VB és un llenguatge estable ara i que Microsoft continuarà mantenint-lo.[1]

L'entorn de desenvolupament integrat (IDE) de Microsoft per desenvolupar en Visual Basic és Visual Studio. La majoria de les edicions de Visual Studio són comercials; les úniques excepcions són Visual Studio Express i Visual Studio Community, que són gratuïtes. A més, el SDK de.NET Framework inclou un compilador de línia d'ordres gratuït anomenat vbc.exe. Mono també inclou un compilador de línia d'ordres de VB.NET.

El Visual Basic s'utilitza sovint juntament amb la biblioteca GUI del Windows Forms per crear aplicacions d'escriptori per a Windows. La programació per a Windows Forms amb Visual Basic implica arrossegar i deixar anar controls en un formulari mitjançant un dissenyador GUI i escriure el codi corresponent per a cada control.

Ús en la creació de programes GUI

La biblioteca de Windows Forms s'utilitza més habitualment per crear interfícies GUI en Visual Basic. Tots els elements visuals de la biblioteca de classes de Windows Forms deriven de la classe Control. Aquesta proporciona la funcionalitat mínima d'un element d'interfície d'usuari, com ara la ubicació, la mida, el color, la font, el text, així com esdeveniments comuns com ara fer clic i arrossegar/deixar anar. La classe Control també té suport d'acoblament per permetre que un control reorganitzi la seva posició sota el seu element principal.

Els formularis es dissenyen normalment a l'IDE de Visual Studio. A Visual Studio, els formularis es creen mitjançant tècniques d'arrossegar i deixar anar. S'utilitza una eina per col·locar controls (per exemple, quadres de text, botons, etc.) al formulari (finestra). Els controls tenen atributs i controladors d'esdeveniments associats. Els valors per defecte es proporcionen quan es crea el control, però el programador els pot canviar. Molts valors d'atributs es poden modificar durant el temps d'execució en funció de les accions de l'usuari o dels canvis a l'entorn, proporcionant una aplicació dinàmica. Per exemple, es pot inserir codi al controlador d'esdeveniments de redimensionament del formulari per reposicionar un control de manera que romangui centrat al formulari, s'expandeixi per omplir el formulari, etc. En inserir codi al controlador d'esdeveniments per a una pulsació de tecla en un quadre de text, el programa pot traduir automàticament la majúscula i minúscula del text que s'introdueix o fins i tot impedir que s'insereixin certs caràcters.

Sintaxi

El Visual Basic utilitza sentències per especificar accions. La sentència més comuna és una sentència d'expressió, que consisteix en una expressió que s'ha d'avaluar, en una sola línia. Com a part d'aquesta avaluació, es poden cridar funcions o subrutines i es poden assignar nous valors a variables. Per modificar l'execució seqüencial normal de les sentències, el Visual Basic proporciona diverses sentències de flux de control identificades per paraules clau reservades. La programació estructurada és compatible amb diverses construccions, incloent-hi dues construccions d'execució condicional ( If... Then... Else... End If i Select Case... Case... End Select ) i quatre construccions d'execució iterativa (bucle) ( Do... Loop, For... To, For Each i While... End While ). La sentència For... To té seccions d'inicialització i proves separades, ambdues de les quals han d'estar presents. (Vegeu els exemples a continuació.) La sentència For Each avança pas a pas per cada valor d'una llista.

A més, en Visual Basic:

  • No hi ha una manera unificada de definir blocs d'instruccions. En canvi, certes paraules clau, com ara "If... Then" o "Sub", s'interpreten com a inicis de subblocs de codi i tenen paraules clau de terminació coincidents com ara "End If" o "End Sub".
  • Les instruccions acaben amb dos punts (":") o amb el final de línia. Les instruccions de diverses línies a Visual Basic s'activen amb "_" al final de cadascuna d'aquestes línies. La necessitat del caràcter de continuació de subratllat es va eliminar en gran part a la versió 10 i versions posteriors.[2]
  • El signe igual ("=") s'utilitza tant per assignar valors a variables com per comparar-les.
  • Els claudàtors (parèntesis) s'utilitzen amb matrius, tant per declarar-les com per obtenir un valor en un índex determinat en una d'elles. El Visual Basic utilitza claudàtors per definir els paràmetres de subrutines o funcions.
  • Una cometa simple (') o la paraula clau REM, col·locada al principi d'una línia o després de qualsevol nombre d'espais o caràcters de tabulació al principi d'una línia, o després d'un altre codi en una línia, indica que la línia (la resta de la línia) és un comentari.

Exemple senzill

El següent és un programa molt senzill en Visual Basic, una versió del clàssic exemple " Hola, món! " creat com a aplicació de consola:

Module Module1

    Sub Main()
        ' The classic "Hello, World!" demonstration program
        Console.WriteLine("Hello, World!")
    End Sub

End Module

Imprimeix " Hola, món! " en una finestra de línia d'ordres. Cada línia té una finalitat específica, de la següent manera:

Module Module1

Aquesta és una definició de mòdul. Els mòduls són una divisió del codi, que pot contenir qualsevol tipus d'objecte, com ara constants o variables, funcions o mètodes, o classes, però no es poden instanciar com a objectes com les classes i no poden heretar d'altres mòduls. Els mòduls serveixen com a contenidors de codi al qual es pot fer referència des d'altres parts d'un programa.[3] És una pràctica habitual que un mòdul i el fitxer de codi que el conté tinguin el mateix nom. Tanmateix, això no és obligatori, ja que un únic fitxer de codi pot contenir més d'un mòdul o classe.

Sub Main()

Aquesta línia defineix una subrutina anomenada "Main". "Main" és el punt d'entrada, on comença l'execució del programa.[4]

Console.WriteLine("Hello, world!")

Aquesta línia realitza la tasca real d'escriure la sortida. La consola és un objecte de sistema, que representa una interfície de línia d'ordres (també coneguda com a "consola") i que atorga accés programàtic als fluxos estàndard del sistema operatiu. El programa crida el mètode de la consola WriteLine, que fa que la cadena que se li passa es mostri a la consola.

En lloc de Console.WriteLine, es podria utilitzar MsgBox, que imprimeix el missatge en un quadre de diàleg en comptes d'una finestra de línia d'ordres.[5]

Exemple complex

Aquest fragment de codi envia el Triangle de Floyd a la consola:

Imports System.Console

Module Program

    Sub Main()
        Dim rows As Integer

        ' Input validation.
        Do Until Integer.TryParse(ReadLine("Enter a value for how many rows to be displayed: " & vbcrlf), rows) AndAlso rows >= 1
            WriteLine("Allowed range is 1 and {0}", Integer.MaxValue)
        Loop

        ' Output of Floyd's Triangle
        Dim current As Integer = 1
        Dim row As Integer
        Dim column As Integer
        For row = 1 To rows
            For column = 1 To row
                Write("{0,-2} ", current)
                current += 1
            Next

            WriteLine()
        Next
    End Sub

    ''' <summary>
    ''' Like Console.ReadLine but takes a prompt string.
    ''' </summary>
    Function ReadLine(Optional prompt As String = Nothing) As String
        If prompt IsNot Nothing Then
            Write(prompt)
        End If

        Return Console.ReadLine()
    End Function

End Module

Comparació amb el Visual Basic clàssic

Si Visual Basic.NET s'ha de considerar només una altra versió de Visual Basic o un llenguatge completament diferent és un tema de debat. Hi ha noves addicions per admetre noves funcions, com ara el maneig estructurat d'excepcions i les expressions en curtcircuit. A més, es van produir dos canvis importants en el tipus de dades amb el canvi a VB.NET: en comparació amb Visual Basic 6, el tipus de dades Integer s'ha duplicat en longitud de 16 bits a 32 bits, i el tipus de dades Long s'ha duplicat en longitud de 32 bits a 64 bits. Això és cert per a totes les versions de VB.NET. Un enter de 16 bits a totes les versions de VB.NET ara es coneix com a Short. De la mateixa manera, l'editor de Windows Forms és molt similar en estil i funció a l'editor de formularis de Visual Basic.

El que ha canviat significativament és la semàntica: des de la d'un llenguatge de programació basat en objectes que s'executa en un motor determinista i amb referències comptades basat en COM fins a un llenguatge completament orientat a objectes recolzat pel.NET Framework, que consisteix en una combinació del Common Language Runtime (una màquina virtual que utilitza la recollida de brossa generacional i un motor de compilació just-in-time) i una biblioteca de classes molt més gran. L'augment de l'amplitud d'aquesta última també va ser un problema que els desenvolupadors de VB van haver de tractar quan van arribar al llenguatge, tot i que això es va solucionar en part amb la funció My del Visual Studio 2005.

Els canvis van alterar moltes de les suposicions subjacents sobre el que s'ha de fer "correctament" pel que fa al rendiment i la mantenibilitat de les aplicacions. Algunes funcions i biblioteques ja no existeixen; d'altres estan disponibles, però no tan eficients com les alternatives "natives" de.NET. Fins i tot si es compilaven, la majoria de les aplicacions de Visual Basic 6 convertides requerien cert nivell de refactorització per aprofitar al màxim el llenguatge.NET. Microsoft va proporcionar documentació per cobrir els canvis en la sintaxi del llenguatge, la depuració d'aplicacions, el desplegament i la terminologia.[6] Un llibre comercial popular dissenyat per facilitar la transició va ser el Microsoft Visual Basic.NET Professional Step by Step de Michael Halvorson, publicat el 2002 per Microsoft Press.

Comparació amb C#

C# i Visual Basic són els primers llenguatges de Microsoft creats per programar al.NET Framework (més tard hi van afegir F# i més; d'altres també hi han afegit llenguatges). Tot i que C# i Visual Basic són sintàcticament diferents, aquí és on acaben la majoria de les diferències. Microsoft va desenvolupar aquests dos llenguatges perquè formessin part de la mateixa plataforma de desenvolupament de.NET Framework. Tots dos són desenvolupats, gestionats i suportats pel mateix equip de desenvolupament de llenguatges de Microsoft.[7] Compilen al mateix llenguatge intermedi (IL), que s'executa amb les mateixes biblioteques d'execució de.NET Framework.[8] Tot i que hi ha algunes diferències en les construccions de programació, les seves diferències són principalment sintàctiques i, suposant que s'eviten les biblioteques de "Compatibilitat" de Visual Basic proporcionades per Microsoft per ajudar a la conversió des de Visual Basic 6, gairebé totes les funcions de VB tenen una funció equivalent a C# i viceversa. Finalment, tots dos llenguatges fan referència a les mateixes classes base del.NET Framework per ampliar la seva funcionalitat. Com a resultat, amb poques excepcions, un programa escrit en qualsevol dels dos llenguatges es pot executar a través d'un convertidor de sintaxi simple per traduir-lo a l'altre. Hi ha molts productes de codi obert i disponibles comercialment per a aquesta tasca.

Referències

  1. KathleenDollard. «Visual Basic language strategy - Visual Basic» (en anglès americà). learn.microsoft.com, 06-02-2023. Arxivat de l'original el March 31, 2023. [Consulta: 31 març 2023].
  2. «New Features in Visual Basic 10» (en anglès), 03-06-2010. Arxivat de l'original el March 4, 2016. [Consulta: 5 setembre 2015].
  3. «Module Statement» (en anglès). MSDN – Developer Center. Arxivat de l'original el January 9, 2010. [Consulta: 20 gener 2010].
  4. «Main Procedure in Visual Basic» (en anglès). MSDN – Developer Center. Arxivat de l'original el January 28, 2010. [Consulta: 20 gener 2010].
  5. «Visual Basic Version of Hello, World» (en anglès). MSDN – Developer Center. Arxivat de l'original el January 11, 2010. [Consulta: 20 gener 2010].
  6. «Microsoft Visual Basic 6.0 Migration Resource Center» (en anglès). MSDN. Microsoft. Arxivat de l'original el November 9, 2014. [Consulta: 9 novembre 2014].
  7. Krill, Paul. «Microsoft converging programming languages | Developer World» (en anglès). InfoWorld, 27-02-2009. Arxivat de l'original el January 26, 2013. [Consulta: 18 agost 2013].
  8. «Microsoft Intermediate Language» (en anglès). Dotnet-guide.com. Arxivat de l'original el June 2, 2013. [Consulta: 18 agost 2013].
Kembali kehalaman sebelumnya