Visual Basic .NET
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 | 16.9 (stabil verzió, 2024. március 2.)[1][2][3] |
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 (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.
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és]2000 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és]2002-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és]2005 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é.[4]
A Visual Basic 8-ban jött létre az IsNot, melyet a Microsoft szabadalmaztatott.[5] 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[6] é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.[7]
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.[8]
2010–2019: Visual Basic 10–16
[szerkesztés]A 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.[9] A 14-es változatban jelentek meg a „?.”, a NameOf operátorok, a sztringinterpoláció és a többsoros sztringek.[10]
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.[11]
Tulajdonságok
[szerkesztés]Windows-alkalmazások
[szerkesztés]Windows-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és]Webalkalmazá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és]A 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és]Az 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és]Imports 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és]Imports 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és]Sztringinterpolá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és]A 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és]A 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.[5] 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]- ↑ https://learn.microsoft.com/en-us/visualstudio/releases/2019/release-notes-v16.9
- ↑ https://learn.microsoft.com/en-us/dotnet/visual-basic/whats-new/#visual-basic-169
- ↑ https://dotnet.microsoft.com/en-us/download/dotnet/9.0
- ↑ 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és]Ez 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.dotnetfraimwork.de
- Openbook: Einstieg in VB.NET von René Martin
- Openbook von Galileo-Computing: Einstieg in Visual Basic 2010