Visual Basic .NET
A Visual Basic .NET (röviden VB.NET) a Microsoft programozási nyelve, mely a .NET keretrendszeren alapul. 2002-ben jelent meg, és nem egyszerűen a korábbi Visual Basic 6 továbbfejlesztése, hanem részben új nyelv. A nyelvet a 8-as verziótól egyszerűen Visual Basicnek nevezi a Microsoft.
Visual Basic .NET | |
Paradigma | több paradigma: strukturált, imperatív, deklaratív, objektumorientált |
Jellemző kiterjesztés | vb |
Megjelent | 2001 |
Tervező | Microsoft |
Fejlesztő | Microsoft |
Utolsó kiadás | 17.9.2 (stabil verzió, 2024. február 27.)[1] |
Hatással volt rá | Visual Basic |
Operációs rendszer | Bármely CLI-megvalósítással rendelkező rendszer (például a Microsoft CLR-je vagy a Xamarin Monója) |
Licenc | Apache Licenc 2.0 |
Weboldal |
A Visual Basic .NET a Microsoft által fejlesztett, a .NET keretrendszerben lévő virtuális számítógép, a Common Language Runtime (CLR) számára hoz létre köztes kódot.
Ezt a számítógép először futásidőben gépi kóddá fordítja, így a virtuális számítógép működőképes marad más .NET-nyelvekkel, a megvalósításhoz mégis a .NET keretrendszer szükséges.
A Visual Basic .NET támogatja az objektumorientált programozást, és kivételkezeléssel is rendelkezik, hasonlóan más programozási nyelvekhez, például a Javához és a C++-hoz.
Története
szerkesztés2000 körül a Visual Basic más programozási nyelvekkel szemben képes volt grafikus felületet is létrehozni. Sok más programozási nyelv viszont képes volt felhasználói felületek megjelenítésére, például a C++ a Microsoft Foundation Classes (MFC) révén. Ezenkívül a Visual Basic komplex, inhomogén termékké vált, melynek kezelése és javítása egyre nehezebb lett. Ezért a termék továbbfejlesztése megállt a siker és sok VB-programozó akarata ellenére, és a Visual Basic nyelvet a .NET keretrendszerbe integrálta. Így a nyelv jelentősen megváltozott, hogy .NET-nyelv lehessen. Így megjelent az objektumorientáltság és a Common Intermediate Language-be való fordítás.
2002–2005: Visual Basic .NET
szerkesztés2002-ben jelent meg a Visual Studio .NET-tel az első .NET keretrendszeren alapuló Visual Studio-változat, mely így a Visual Basic .NET-et támogatta. Az ekkor még új .NET technológia és a „Visual Studio .NET” elnevezés terjedése azt a benyomást keltette sokakban, hogy ez egy csak e platformra készült változat, így sok fejlesztő és vállalkozás továbbra is a klasszikus Visual Basicet támogató Visual Studiót használta.
A Visual Basic 7.1, illetve a .NET 1.1 keretrendszer és a Visual Studio .NET 2003 első frissítése csak kis változásokat hozott, ami a kis verzióváltozásokban is megjelenik. A Visual Basic 7.1-től számláló deklarálható a For ciklus elején. Ezenkívül a mobil készülékek támogatása is megjelent. Ez esetben nem a .NET 1.1 keretrendszer, hanem a .NET Compact Framework 1.0 a programkörnyezet.
2005–2007: Visual Basic 8 és 9
szerkesztés2005 novemberében jelent meg a .NET 2.0 és a .NET Compact Framework 2.0, ekkor jelent meg a Visual Basic 8 a Visual Studio 2005 részeként (a .NET már nem része a névnek). Ekkor jelentős átstrukturálások történtek a .NET-könyvtárban, például a generikus programozás támogatása, mely a C++-sablonokra hasonlít. Számos felület és attribútum generikus megvalósításban is elérhetővé vált, és ettől kezdve ingyenes, korlátozott Express Edition vált elérhetővé.[2]
A Visual Basic 8-ban jött létre az IsNot, melyet a Microsoft szabadalmaztatott.[3] További újdonság a My névtér, mely különböző rendszerfüggetlen függvényeket képes bemutatni, tulajdonképp a számítógép részeihez, az operációs rendszer és az aktuális felhasználó adataihoz vagy a rendszerleíró adatbázishoz fér.
2007-ben a Windows Vista kiadásával együtt jelent meg a Visual Basic 9[4] és a Visual Studio 2008. A Visual Basic 9 az új LINQ .NET-komponenst is támogatta, és a .NET 3.0 keretrendszeren (korábban WinFX) alapul. Ezenkívül megjelent a Windows Presentation Foundation, mely nemcsak a Windows Formst, hanem a GDI-t is támogatja.[5]
2007 novemberétől minden Visual Studio 2008-változat a .NET 3.5 keretrendszeren alapul, melyben a LINQ bővült, ezenkívül a C#, Visual Basic és a C++ új fordítót kaptak, ezenkívül bevezették az ASP.NET AJAX-szal, az ADO.NET Entity Framework, az SQL Server 2008-hoz való adatkérések, a .NET Framework Client Profile támogatását stb.[6]
2010–2019: Visual Basic 10–16
szerkesztésA Visual Basic 10 a Visual Studio 2010-zel együtt jelent meg, és kisebb változások jelentek meg vele. Ide tartoznak többek közt az automatikus tulajdonságok, a csoportos inicializáció, az implicit cellafolytatás, a dinamikusan generikus ko-/kontravarianciák és a globális névtérhozzáférés. 2012-ben jelentek meg a Visual Basic 11 és a Visual Studio 2012. Ekkor jelentek meg az async és await kulcsszavak, az iterátorok és a caller info-attribútumok.
A Visual Studio 2013-mal együtt jelent meg a Visual Basic 12. Ekkor jelent meg a .NET fordítóplatform, a Roslyn.
A Visual Basic 13 és 14 2015-ben jelentek meg a Visual Studio 2015-tel együtt.[7] A 14-es változatban jelentek meg a „?.”, a NameOf operátorok, a sztringinterpoláció és a többsoros sztringek.[8]
2017-ben a Visual Studio 2017-tel együtt jelent meg a Visual Basic 15. Új funkciók többek közt a rendezett n-esek támogatása és a C# visszatérési értékeinek támogatásának bővítése.
A Visual Studio 2019-cel együtt jelent meg 2019-ben a Visual Basic 16. Itt a .NET Core Visual Basic Runtime-funkcióiban történtek változások. Ezenkívül a Visual Basic 16 az első .NET Core-alapú változat.[9]
Tulajdonságok
szerkesztésWindows-alkalmazások
szerkesztésWindows-alkalmazások fejlesztéséhez a Windows Forms használatos. Ez esetben eseményorientált programmodellről van szó, melynél a megfelelő procedúrák meghívása bizonyos felhasználói művelet, például egy kapcsoló állapotának módosításának jelentésekor történik.
A Visual Basic 6-tal szemben a Windows-formák nem speciális formátumban vannak elmentve, hanem normális osztályokként hozza létre és használja a program, amik megfelelő alaposztályból (gyakran System.Windows.Forms.Formból) származnak.
Egy ilyen osztály létrehozásánál a konstruktor adja az objektumokat, melyek az ablakban megjelennek. E modellt használja a Java is.
A modern fejlesztői környezetekben lehetséges a formulák vizuális megjelenítését is, ahol a konstruktorhoz szükséges kódot a környezet adja.
Webalkalmazások
szerkesztésWebalkalmazások fejlesztéséhez ASP.NET használatos. Ekkor a weblap megjelenése és a VB.NET-osztályban lévő kód el van választva. Ez elkerüli az ASP-ben megjelenő spagettikódot, mely a nagyobb projektek kezelését megnehezíti.
Az ASP.NET-alkalmazásokhoz a Microsoft IIS vagy mod_mono modullal rendelkező Apache HTTP Server szükséges.
Az ASP.NET-ben lehetséges webszolgáltatások fejlesztése is. Az ezek közzétételekor szükséges információkat bevitt attribútumokként hozza létre a fejlesztői környezet.
Egy webszolgáltatás hozzáféréséhez generálhat a fejlesztői környezet egy osztályt, mely a webszolgáltatás metódusaiba ágyazza a hozzáférést.
Eltérések az eredeti Visual Basictől
szerkesztésA szintaxis kivételével a Visual Basic .NET jelentősen eltér a korábbi Visual Basic-változatoktól. Teljes értékű .NET-nyelvként a VB.NET teljesen objektumorientált, és a forráskód fordítása Common Intermediate Language-be történik, nem natív Win32-kódba. Ezt futásidőben gépi kódba fordítja a rendszer, így a platform kezelni tudja. A .NET-re való áttérés további változásokat is hozott. A .NET keretrendszer sok könyvtárat tett elérhetővé például fájlhozzáféréshez vagy XML-fájlok írásához, olvasásához. A Windows Forms felváltotta a korábbi verziók Thunder Forms rendszerét. A legfontosabb különbség a kettő közt, hogy a mentéshez nem használatos többé speciális fájlformátum, hanem a formulákat a kód hozza létre osztályként. Így az ablak konstruktora használatos a szintén osztályok által képviselt irányító elemekhez. A modern IDE-k lehetővé teszik a formulák vizuális létrehozását, ahol az ablakosztály-konstruktorhoz szükséges kódot a fejlesztői környezet adja. Továbbá a Visual Basic .NET a Visual Basic 6-tal szemben webalkalmazások létrehozását is lehetővé teszi. A .NET keretrendszerrel a Web Forms, az ASP.NET GUI-könyvtára elérhető lett.
Ezenkívül azonban vannak hátrányok is. Mivel a VB.NET nem a Visual Basic 6 könyvtárát, hanem a .NET keretrendszert használja, egy Visual Basic-kód csak hosszú munkával alakítható át az új verziókra. A Microsoft a Visual Studio 2008-as változatáig átalakító asszisztenst is adott. Ez a kódszerkezetet nagyrészt helyesen alakítja, és kevés speciális eset kivételével a Thunder Formsról a Windows Formsra való áttérést is kezeli, azonban például a grafikus programozás nehezebb számára, mivel a korábbi Visual Basic (Thunder Forms-elemekbe ágyazott GDI) és a Visual Basic .NET grafikai rendszerei (GDI+) gyakorlatilag egymással inkompatibilisek. A jobb átalakításhoz ezenkívül van egy függvénygyűjtemény a .NET keretrendszerben (a Microsoft.VisualBasic névtérben), mely egyes fontos korábbi Visual Basic-függvényeket elérhetővé tesz a .NET-ben. A COM-komponensek korlátlanul tovább használhatók. Az inkompatibilitás mellett a „szerkesztés és folytatás” funkció megszűnte is hátrány volt, így hibakereső módban többé nem változtatható a kód és nem folytatható a kiértékelés. E funkció a Visual Basic 2005-ben visszatért.
A Visual Basic .NET-ben fejlesztői környezet nélkül is készíthetők programok. A System.Reflection.Emit
névtérben egy alkalmazás fordítására való függvények vannak, ezenkívül van egy parancssori fordító is, a vbc.exe.
Példák
szerkesztés„Helló világ” példa
szerkesztésAz alábbi forrásszöveg egyszerű Visual Basic-program, mely a „Helló, világ!” üzenetet írj ki a szabványos kimeneti adatfolyamba, mely jellemzően konzol.
Public Class Program
Public Shared Sub Main()
Console.WriteLine("Helló, világ!")
End Sub
End Class
Magyarázatok:
A programok egyszerű konzolos alkalmazások egy osztállyal. Ez esetben csak a statikus Main() metódus – a VB-nómenklatúrában shared sub használatos, mely általában először kerül meghívásra.
A Console.WriteLine kimeneti függvény a .NET osztálykönyvtárból származik, és lehetővé teszi a szabványos kimeneti értékek kimenetét, ahol a kimenetet új sor követi.
Egyszerű üzenőablak
szerkesztésImports System.Windows.Forms
Private Class Program
Public Shared Sub Main()
MessageBox.Show("Szöveg", "Cím", MessageBoxButtons.OK, MessageBoxIcon.Hand)
End Sub
End Class
Bájtsorozatpélda
szerkesztésImports System.IO
Imports System.Text
Private Class Program
Public Shared Sub Main()
' Fájlba írandó szöveg
Const textToWrite As String = "Hallo Welt"
Const fileName As String = "dateiname.txt"
' „dateiname.txt” létrehozása vagy felülírása
Using stream As New FileStream(fileName, FileMode.Create, FileAccess.Write)
' A szöveg UTF-8 kódolással kerül a fájlba
Dim data As Byte() = Encoding.UTF8.GetBytes(textToWrite)
stream.Write(data, 0, data.Length)
End Using 'Fájl bezárása.
End Sub
End Class
Hálózati példa
szerkesztésSztringinterpolációs Visual Basic 14-en alapul (Visual Studio 2015):
Imports System.Console
Imports System.Text
Imports System.Net
Imports System.Net.Sockets
''' <summary>
''' Példaprogram: kapcsolat csatornával
''' </summary>
''' <remarks>További információk: <see cref="System.Net.Sockets.Socket"/>.</remarks>
Class Program
''' <summary>
''' Belépési pont
''' </summary>
Public Shared Sub Main()
' Küldött adatok
Const textToSend As String = "Hallo Welt"
' Végpont, melyhez csatlakozik
Const localhost As String = "127.0.0.1"
Const port As Integer = 80
Dim data As Byte() = Encoding.UTF8.GetBytes(textToSend)
Dim ip As IPAddress = IPAddress.Parse(localhost)
Dim ipEndPoint As New IPEndPoint(ip, port)
' Használt csatorna
Using socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
socket.Connect(ipEndPoint)
' Csatlakozás a végponthoz
Dim byteCount As Integer = socket.Send(data, SocketFlags.None)
' Adatok küldése
WriteLine($"{bytecount} bájt lett elküldve")
Dim buffer As Byte() = New Byte(255) {}
' Fogadott adatok puffere
byteCount = socket.Receive(buffer, SocketFlags.None)
' Adatok fogadása
' Válasz esetén ezt adja ki
If byteCount > 0 Then
WriteLine($"{byteCount} bájt lett fogadva")
Dim answer As String = Encoding.UTF8.GetString(buffer)
WriteLine($"Fogadott adatok: {answer}")
End If
End Using ' Kapcsolatzárás.
End Sub
End Class
Fejlesztői környezetek
szerkesztésA leggyakrabban használt IDE a Visual Studio, mely a Visual Basicet teljes mértékben támogatja. A SharpDevelop (rövidítése: #develop) a 4-es verzióig és a MonoDevelop, a Mono-projekt fejlesztői környezet is használható.
A .NET-ben lévő vbc.exe parancssori eszközzel Visual Basic-fájlok, az msbuild.exe-vel Visual Basic-projektek fordíthatók.
Jogi szempontok
szerkesztésA Visual Basic eredeti változata számos modern nyelvvel szemben nem nyílt szabvány, hanem kereskedelmi, és a Microsoft szellemi tulajdona. A Visual Basic .NET-tel e kapcsolat lazult, mivel a .NET infrastruktúra egy részét az Ecma International szabványosította. A Visual Basic 8-ban bevezetett IsNot operátor szabadalmaztatása azonban ismét egy lépés volt a zárt környezet felé.
A Microsoftnak azonban nem sikerült a szabadalmaztatás.[3] Ezenkívül a Microsoft a Roslynnal és a 2014-ben létrehozott .NET Alapítvánnyal nyílt forrású stratégiát kezdett. A VB.NET Roslyn–fordító-környezete (beleértve a fordítót, a szintaxisfa-elemzőt, az IL-kibocsátót stb.) VB.NET-ben keletkezett, és nyílt forrású (Apache 2.0 licenccel).
Jegyzetek
szerkesztés- ↑ Visual Studio 2022 version 17.9.2 Release Notes, 2024. február 27. (Hozzáférés: 2024. február 27.)
- ↑ Produktseite Visual Basic Express Edition
- ↑ a b IsNot Operator
- ↑ Überblick über die Änderungen in Visual Basic 9 (angolul)
- ↑ Jövőbeli Visual Studio-változatok (angolul)
- ↑ Architektur von .NET Framework 3.5 (németül)
- ↑ TechNet Wiki. (Hozzáférés: 2022. május 18.)
- ↑ New Language Features in Visual Basic 14 (amerikai angol nyelven), 2014. december 9. (Hozzáférés: 2022. május 18.)
- ↑ KathleenDollard: What's new - Visual Basic (amerikai angol nyelven). (Hozzáférés: 2022. május 18.)
Fordítás
szerkesztésEz a szócikk részben vagy egészben a Visual Basic .NET című német Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Források
szerkesztés- Klaus Löffelmann. Visual Basic 2010 – Das Entwicklerbuch. Microsoft Press (2010). ISBN 978-3-86645-535-1
- Klaus Löffelmann. Visual Basic 2008 – Das Entwicklerbuch. Microsoft Press (2008). ISBN 978-3-86645-506-1
- Klaus Werner Wirtz. Visual Basic .NET 2010 praxisorientiert. Band 1: Programmieren für Windows [archivált változat] (2010). ISBN 978-3-8423-0014-9. Hozzáférés ideje: 2023. július 29. [archiválás ideje: 2015. augusztus 17.]
- Klaus Werner Wirtz. Visual Basic .NET 2010 praxisorientiert. Band 2: Datenbanken und Web-Andwndungen [archivált változat] (2010). ISBN 978-3-8423-0722-3. Hozzáférés ideje: 2023. július 29. [archiválás ideje: 2015. augusztus 20.]
- Peter Monadjemi. Visual Basic 2005 Kompendium. Markt-und-Technik (2006)
- Thomas Theis. Einstieg in Visual Basic 2012. Rheinwerk Verlag (2012). ISBN 978-3-8362-1959-4
- Thomas Theis. Einstieg in Visual Basic 2017. Rheinwerk Verlag (2017). ISBN 978-3-8362-5930-9
- René Martin. Einstieg in VB.NET. Galileo Computing (2003). ISBN 3-89842-277-1[halott link]
- Joachim Fuchs, Andreas Barchfeld. Das Visual Basic 2005 Codebook. München: Addison-Wesley in Pearson Education Deutschland (2006). ISBN 3-8273-2272-3
- MSDN Developer Center – Visual Basic
- Get the BASICs. VB.NET für Einsteiger und Umsteiger in zehn Teilen – MSDN Webcast
- Visual Basic az Open Directory Project-ben [halott link]
- .NET-Technologien in Visual Basic 6.0
- Visual Basic 2008 Express
- OpenBook von Galileo-Computing
- www.dotnetframework.de
- Openbook: Einstieg in VB.NET von René Martin
- Openbook von Galileo-Computing: Einstieg in Visual Basic 2010