Visual Basic (klasyczny)
Paradygmat | Oparte na obiektach i sterowane zdarzeniami |
---|---|
Deweloper | Microsoftu |
Po raz pierwszy pojawiły się | maj 1991 |
Ostateczne wydanie | 6.0 / 1998
|
Dyscyplina pisania | Statyczny , mocny |
system operacyjny | Microsoft Windows i MS-DOS |
Strona internetowa | |
Główne wdrożenia | |
Microsoft Visual Studio | |
Pod wpływem | |
BASIC | |
Pod wpływem | |
Visual Basic .NET , Visual Basic for Applications , Windows Forms , Gambas , Xojo , Basic4ppc , Basic4android i NS Basic |
Oryginalny Visual Basic (nazywany również Classic Visual Basic ) to sterowany zdarzeniami język programowania trzeciej generacji firmy Microsoft , znany z modelu programowania Component Object Model (COM), który został wydany po raz pierwszy w 1991 r. być stosunkowo łatwy do nauczenia się i używania. Visual Basic wywodzi się z języka BASIC i umożliwia szybkie tworzenie aplikacji (RAD) z graficznym interfejsem użytkownika (GUI) aplikacji, dostęp do baz danych przy użyciu obiektów Data Access Objects , Remote Data Objects lub ActiveX Data Objects oraz tworzenie formantów i obiektów ActiveX .
Programista może stworzyć aplikację przy użyciu komponentów dostarczonych przez sam program Visual Basic. Z biegiem czasu społeczność programistów opracowała komponenty firm trzecich. Programy napisane w języku Visual Basic mogą również korzystać z interfejsu API systemu Windows , który wymaga deklaracji funkcji zewnętrznych.
Ostatecznym wydaniem była wersja 6 w 1998 r. 8 kwietnia 2008 r. Microsoft przestał wspierać Visual Basic 6.0 IDE . Zespół Microsoft Visual Basic nadal zapewnia zgodność aplikacji Visual Basic 6.0 za pośrednictwem programu „It Just Works” w obsługiwanych systemach operacyjnych Windows.
W 2014 roku niektórzy programiści nadal woleli Visual Basic 6.0 od jego następcy, Visual Basic .NET . Visual Basic 6.0 został wybrany jako najbardziej przerażający język programowania przez respondentów corocznej ankiety dla programistów Stack Overflow w 2016, 2017 i 2018 roku.
Dialekt Visual Basic, Visual Basic for Applications (VBA), jest używany jako język makr lub skryptów w kilku aplikacjach firmy Microsoft i ISV , w tym Microsoft Office .
Funkcje językowe
Podobnie jak język programowania BASIC , Visual Basic został zaprojektowany z myślą o łatwej nauce . Programiści mogą tworzyć zarówno proste, jak i złożone GUI . Programowanie w języku VB to połączenie wizualnego rozmieszczania komponentów lub kontrolek w formularzu , określania atrybutów i działań dla tych komponentów oraz pisania dodatkowych wierszy kodu w celu zwiększenia funkcjonalności. Ponieważ VB definiuje domyślne atrybuty i akcje dla komponentów, programista może opracować prosty program bez pisania dużej ilości kodu. Programy zbudowane we wcześniejszych wersjach miały problemy z wydajnością, ale szybsze komputery i natywna kompilacja kodu sprawiły, że problem ten był mniejszy. Chociaż programy VB można kompilować do natywnych plików wykonywalnych kodu od wersji 5 nadal wymagają obecności około 1 MB bibliotek wykonawczych. Podstawowe biblioteki środowiska wykonawczego są domyślnie dołączone do systemu Windows 2000 i nowszych, ale nadal należy zainstalować komponenty rozszerzonego środowiska wykonawczego. Wcześniejsze wersje systemu Windows (95/98/NT) wymagają dystrybucji bibliotek wykonawczych wraz z plikiem wykonywalnym.
Formularze są tworzone przy użyciu technik „przeciągnij i upuść” . Narzędzie służy do umieszczania kontrolek (np. pól tekstowych, przycisków itp.) na formularzu (oknie). Kontrolki mają powiązane atrybuty i procedury obsługi zdarzeń . Wartości domyślne są podawane podczas tworzenia kontrolki, ale mogą być zmienione przez programistę. Wiele wartości atrybutów można modyfikować w czasie wykonywania w oparciu o działania użytkownika lub zmiany w środowisku, zapewniając dynamiczną aplikację. Na przykład kod można wstawić do procedury obsługi zdarzenia zmiany rozmiaru formularza, aby zmienić położenie kontrolki w taki sposób, aby pozostawała wyśrodkowana na formularzu, rozwijała się w celu wypełnienia formularza itp. Wstawiając kod do procedury obsługi zdarzenia dla naciśnięcia klawisza w polu tekstowym, program może automatycznie przetłumaczyć wielkość liter wprowadzanego tekstu, a nawet uniemożliwić wstawienie niektórych znaków.
Visual Basic potrafi tworzyć pliki wykonywalne (pliki EXE), formanty ActiveX , lub DLL, ale jest używany głównie do tworzenia aplikacji Windows i do łączenia się z systemami baz danych. Okna dialogowe o mniejszej funkcjonalności mogą służyć do udostępniania funkcji wyskakujących okienek. Kontrolki zapewniają podstawową funkcjonalność aplikacji, podczas gdy programiści mogą wstawić dodatkową logikę do odpowiednich procedur obsługi zdarzeń. Na przykład rozwijane pole kombinacji automatycznie wyświetla listę. Gdy użytkownik wybierze element, wywoływana jest procedura obsługi zdarzenia, która wykonuje kod utworzony przez programistę w celu wykonania akcji dla tego elementu listy. Alternatywnie składnik Visual Basic może nie mieć interfejsu użytkownika i zamiast tego udostępniać obiekty ActiveX innym programom za pośrednictwem Składnikowy model obiektowy (COM). Pozwala to na po stronie serwera lub moduł dodatkowy.
Środowisko uruchomieniowe odzyskuje nieużywaną pamięć za pomocą liczenia odwołań , które zależy od tego, czy zmienne przechodzą poza zakres lub są ustawione na Nothing , unikając problemu wycieków pamięci , które są możliwe w innych językach. Istnieje duża biblioteka obiektów użytkowych, a język zapewnia podstawową obsługę programowania obiektowego . W przeciwieństwie do wielu innych języków programowania, Visual Basic generalnie nie rozróżnia wielkości liter — chociaż przekształca słowa kluczowe w standardową konfigurację wielkości liter i wymusza zgodność wielkości liter nazw zmiennych z wielkością liter wpisu w tablicy symboli. W porównaniach ciągów domyślnie rozróżniana jest wielkość liter. Kompilator Visual Basic jest współużytkowany z innymi językami Visual Studio (C, C++). Niemniej jednak domyślnie ograniczenia w IDE nie pozwalają na tworzenie niektórych celów (biblioteki DLL modelu Windows) i modeli wątków, ale przez lata programiści omijali te ograniczenia.
Charakterystyka
Visual Basic opiera się na cechach języka BASIC.
- Zamiast być identyfikowany przez sam numer linii, kod może być pogrupowany w nazwane podprogramy lub metody: Sub...End Sub . Visual Basic obsługuje numery wierszy dodane przez użytkownika do wersji 6 lub nowszej.
- Instrukcje kodowe nie mają znaku kończącego innego niż zakończenie wiersza (powrót karetki/wysunięcie wiersza). Wersje od co najmniej VB 3.0 pozwalały, aby instrukcje były niejawnie wielowierszowe z konkatenacją łańcuchów lub jawnie przy użyciu znaku podkreślenia (_) na końcu linii.
- Komentarze do kodu są tworzone za pomocą pojedynczego znaku apostrofu ('), na przykład:
„To jest komentarz.
- Zapętlone bloki instrukcji zaczynają się i kończą słowami kluczowymi: Do...Loop, While...End While, For...Next .
- Przypisanie wielu zmiennych nie jest możliwe. A = B = C nie oznacza, że wartości A, B i C są równe. Wynik logiczny „Czy B = C?” jest przechowywany w A. Wynik przechowywany w A byłby zatem albo fałszywy, albo prawdziwy.
-
Stała logiczna
True
ma wartość liczbową −1. Dzieje się tak, ponieważ typ danych Boolean jest przechowywany jako uzupełnienia do dwóch . W tym konstrukcie -1 daje wynik binarny all-1s (wartość logicznaTrue
), a 0 jako all-0 (wartość logicznaFalse
). Jest to widoczne podczas wykonywania (bitowej)Not
na wartości uzupełnienia do dwóch 0, która zwraca wartość uzupełnienia do dwóch -1, innymi słowyprawda = nie fałsz
. Ta nieodłączna funkcjonalność staje się szczególnie przydatna podczas wykonywania operacji logicznych na poszczególnych bitach liczby całkowitej, takiej jakAnd
,Or
,Xor
iNot
. Ta definicjaTrue
jest również zgodna z BASIC-em od wczesnych lat 70. implementacji Microsoft BASIC i jest również związana z charakterystyką instrukcji procesora w tamtym czasie. - Operatory logiczne i bitowe są ujednolicone. Różni się to od niektórych języków wywodzących się z C (takich jak Perl ), które mają oddzielne operatory logiczne i bitowe. To znów jest tradycyjna cecha języka BASIC.
- zmiennej tablicy . Tablice są deklarowane poprzez określenie górnej i dolnej granicy w sposób podobny do Pascala i Fortrana . Możliwe jest również użycie instrukcji Option Base do ustawienia domyślnej dolnej granicy. Użycie instrukcji Option Base może prowadzić do nieporozumień podczas odczytywania kodu Visual Basic i najlepiej tego unikać, zawsze jawnie określając dolną granicę tablicy. Ta dolna granica nie jest ograniczona do 0 lub 1, ponieważ może być również ustawiona przez deklarację. W ten sposób zarówno dolna, jak i górna granica są programowalne. W językach z większą liczbą indeksów dolnych dolna granica tablicy nie jest zmienna. Ta niezwykła cecha istnieje w Visual Basic .NET , ale nie w VBScript .
-
OPTION BASE
została wprowadzona przez ANSI wraz ze standardem ANSI Minimal BASIC pod koniec lat siedemdziesiątych.
- Stosunkowo silna integracja z systemem operacyjnym Windows i Component Object Model . Rodzimymi typami łańcuchów i tablic są dedykowane typy COM, BSTR i SAFEARRAY.
-
Zaokrąglanie bankiera jako domyślne zachowanie podczas konwersji liczb rzeczywistych na liczby całkowite za pomocą funkcji
Round
.? Round(2.5, 0)
daje 2,? Zaokrąglenie (3,5; 0)
daje 4. - Liczby całkowite są automatycznie podwyższane do liczb rzeczywistych w wyrażeniach, które zawierają operator dzielenia normalnego (
/
), tak że dzielenie jednej liczby całkowitej przez drugą daje intuicyjnie poprawny wynik. VB udostępnia określony operator dzielenia liczb całkowitych (\
), który nie jest obcinany. - Domyślnie, jeśli zmienna nie została zadeklarowana lub jeśli nie określono znaku deklaracji typu, zmienna jest typu
Variant
. Można to jednak zmienić za pomocą instrukcji Deftype, takich jakDefInt
,DefBool
,DefVar
,DefObj
,DefStr
. W sumie Visual Basic 6.0 oferuje 12 instrukcjiDeftype .
Domyślny typ może zostać zastąpiony dla określonej deklaracji przez użycie specjalnego sufiksu w nazwie zmiennej (#
dla Double,!
dla Single,&
dla Long,%
dla Integer,$
dla String i@
dla Currency) lub przy użyciu frazy kluczowejAs (type)
. VB można również ustawić w trybie, w którym tylko jawnie zadeklarowane zmienne mogą być używane za pomocą poleceniaOption Explicit
.
Historia
Visual Basic 1.0 został wprowadzony w 1991 roku. Projekt interfejsu użytkownika typu „przeciągnij i upuść” wywodzi się z prototypowego generatora formularzy opracowanego przez Alana Coopera i jego firmę o nazwie Tripod . Microsoft zlecił Cooperowi i jego współpracownikom opracowanie Tripoda w programowalny system formularzy dla Windows 3.0 pod kryptonimem Ruby (bez związku z późniejszym językiem programowania Ruby ). Tripod w ogóle nie zawierał języka programowania. Microsoft postanowił połączyć Ruby z językiem Basic, aby stworzyć Visual Basic. Generator interfejsu Ruby zapewnił „wizualną” część Visual Basic, która została połączona z silnikiem „EB” Embedded BASIC zaprojektowanym dla porzuconego systemu baz danych „Omega” firmy Microsoft. Ruby zapewniał również możliwość ładowania bibliotek dołączanych dynamicznie zawierających dodatkowe kontrolki (wówczas zwane „gadżetami”), które później stały się interfejsem VBX .
Oś czasu
lata 90
- Projekt „basic Thunder” został zainicjowany w 1990 roku. Thunder przetrwał do ostatniego wydania Visual Basic w nazwie podstawowej funkcji wewnętrznej „ThunderRTMain”.
- Visual Basic 1.0 (maj 1991) został wydany dla systemu Windows na targach Comdex / Windows World w Atlancie w stanie Georgia.
- Visual Basic 1.0 dla DOS został wydany we wrześniu 1992 roku. Sam język nie był do końca zgodny z Visual Basic dla Windows, ponieważ była to kolejna wersja kompilatorów BASIC firmy Microsoft opartych na systemie DOS, QuickBASIC i BASIC Professional Development System. Interfejs wykorzystywał tekstowy interfejs użytkownika , używając rozszerzonych znaków ASCII do symulacji wyglądu GUI .
- Visual Basic 2.0 został wydany w listopadzie 1992 roku. Środowisko programistyczne stało się łatwiejsze w użyciu, a jego szybkość wzrosła. Warto zauważyć, że formy stały się obiektami możliwymi do utworzenia, kładąc w ten sposób fundamentalne koncepcje modułów klas, jakie były później oferowane w VB4.
- Visual Basic 3.0 został wydany latem 1993 roku i był dostępny w wersjach Standard i Professional. VB3 zawierało wersję 1.1 Jet Database Engine , która mogła odczytywać i zapisywać bazy danych Jet (lub Access) 1.x.
- Visual Basic 4.0 (sierpień 1995) był pierwszą wersją, która mogła tworzyć zarówno 32-bitowe , jak i 16-bitowe programy Windows. Ma trzy edycje; Standardowy, profesjonalny i korporacyjny. Wprowadził również możliwość pisania klas innych niż GUI w Visual Basic. W VB4 język został oddzielony od biblioteki GUI i udostępniony jako VBA, w tej formie został osadzony w pakiecie Office 95. Aby ułatwić migrację makr i skryptów pakietu Office, do języka włączono funkcje programów WordBasic, Excel Basic i Access Basic. Niezgodności między różnymi wersjami VB4 powodowały problemy z instalacją i obsługą. Podczas gdy poprzednie wersje Visual Basic korzystały z kontrolek VBX, Visual Basic używał teraz kontrolek OLE (z nazwami plików kończącymi się na .OCX). Zostały one później nazwane formantami ActiveX.
- W wersji 5.0 (luty 1997) Microsoft wypuścił Visual Basic wyłącznie dla 32-bitowych wersji systemu Windows. Programiści, którzy woleli pisać programy 16-bitowe, mogli importować programy napisane w Visual Basic 4.0 do Visual Basic 5.0, a programy Visual Basic 5.0 można łatwo konwertować do Visual Basic 4.0. Visual Basic 5.0 wprowadził również możliwość tworzenia niestandardowych kontrolek użytkownika, a także możliwość kompilacji do natywnego kodu wykonywalnego systemu Windows, przyspieszając wykonywanie kodu wymagającego wielu obliczeń. Wydano również bezpłatną, do pobrania wersję Control Creation Edition do tworzenia formantów ActiveX . Był również używany jako wstępna forma Visual Basic: zwykły projekt .exe można było utworzyć i uruchomić w IDE, ale nie skompilować.
- Visual Basic 6.0 (połowa 1998 r.) udoskonalono w wielu obszarach, w tym w możliwości tworzenia aplikacji internetowych.
2000s
- Podstawowe wsparcie dla programu Microsoft Visual Basic 6.0 zakończyło się 31 marca 2005 r., a wsparcie rozszerzone zakończyło się w marcu 2008 r. Jednak podstawowe składniki środowiska programistycznego Visual Basic 6 działają we wszystkich 32-bitowych wersjach systemu Windows, aż do systemu Windows 11 włącznie.
Języki pochodne
Firma Microsoft opracowała pochodne języka Visual Basic do użytku w skryptach . Sam Visual Basic wywodzi się w dużej mierze z języka BASIC , a następnie został zastąpiony wersją platformy .NET .
Niektóre z języków pochodnych to:
- Visual Basic for Applications (VBA) jest zawarty w wielu aplikacjach firmy Microsoft ( Microsoft Office ), a także w wielu produktach innych firm, takich jak SolidWorks , AutoCAD , WordPerfect Office 2002 , ArcGIS , Sage 300 ERP i Business Objects Desktop Intelligence. Istnieją niewielkie niespójności w sposobie implementacji VBA w różnych aplikacjach, ale jest to w dużej mierze ten sam język co Visual Basic 6.0 i używa tej samej biblioteki wykonawczej. Rozwój Visual Basic zakończył się na wersji 6.0, ale w 2010 roku Microsoft wprowadził VBA 7, aby zapewnić rozszerzone funkcje i dodać obsługę 64-bitów.
- Visual Basic .NET jest wyznaczonym przez Microsoft następcą Visual Basic 6.0 i jest częścią platformy Microsoft .NET. Visual Basic .NET kompiluje i działa przy użyciu .NET Framework lub jego następcy, .NET . Nie jest wstecznie kompatybilny z Visual Basic 6.0. Istnieje narzędzie do automatycznej konwersji, ale w przypadku większości projektów w pełni zautomatyzowana konwersja jest niemożliwa.
- VBScript jest domyślnym językiem Active Server Pages . Może być używany w Windows i skryptach stron internetowych po stronie klienta . Przypomina VB w składni , ale jest osobnym językiem — wykonywanym przez vbscript.dll zamiast środowiska wykonawczego VB. ASP i VBScript nie należy mylić z ASP.NET , która używa .NET Framework do kompilowania stron internetowych.
- OpenOffice Basic to interpreter zgodny z Visual Basic, który powstał w pakiecie biurowym StarOffice .
- Gambas to darmowy język programowania inspirowany Visual Basic dla systemu operacyjnego Linux. Nie jest klonem Visual Basic, ale ma możliwość konwersji programów Visual Basic do Gambas.
- WinWrap Basic to wariant VBA innej firmy, używany z różnymi programami i dostępny dla programistów do budowania funkcji makr w swoich programach.
- LotusScript to wariant VBA dostępny w Lotus SmartSuite i Lotus Notes .
- Późniejsze wersje pakietu Corel WordPerfect Office implementują dostęp do języka VBA jako jednego z języków makr/skryptów, a pozostałe główne to CorelScript i PerfectScript.
- Wcześniejsze wersje programu Microsoft Word używają wariantu języka Visual Basic o nazwie WordBasic .
Wydajność i inne problemy
Wcześniejsze wersje Visual Basic (przed wersją 5) skompilowały kod tylko do P-Code . Kod P jest interpretowany przez środowisko uruchomieniowe języka. Korzyści z kodu P-Code obejmują przenośność i mniejsze rozmiary plików binarnych, ale zazwyczaj spowalnia on wykonywanie, ponieważ środowisko uruchomieniowe dodaje dodatkową warstwę interpretacji. Aplikacje Visual Basic wymagają środowiska uruchomieniowego Microsoft Visual Basic MSVBVMxx.DLL, gdzie xx to odpowiedni numer wersji, 50 lub 60. MSVBVM60.dll jest standardowo dostarczany z systemem Windows we wszystkich wersjach od Windows 98 do Windows 10 (niektóre wersje systemu Windows 7 nie to uwzględnić). Maszyna z systemem Windows 95 wymagałaby jednak dołączenia do instalatora dowolnej biblioteki DLL potrzebnej programowi. Visual Basic 5 i 6 mogą kompilować kod do kodu natywnego lub P-Code, ale w obu przypadkach środowisko wykonawcze jest nadal wymagane do wbudowanych funkcji i zarządzania formularzami.
Krytyka skierowana do wydań Visual Basic poprzedzających VB.NET obejmuje:
- problemy z wersjonowaniem związane z różnymi bibliotekami DLL środowiska wykonawczego , znane jako „ piekło DLL ”
- słaba obsługa programowania obiektowego
- może tworzyć aplikacje wielowątkowe tylko przy użyciu ActiveX lub DLL
- typy wariantów o większej wydajności i „obciążeniu” pamięci masowej niż języki programowania o silnym typie
- zależność od złożonych i delikatnych wpisów rejestru Component Object Model (COM).
Starszy rozwój i wsparcie
Wszystkie wersje środowiska programistycznego Visual Basic od 1.0 do 6.0 zostały wycofane przez firmę Microsoft do 2008 r. i dlatego nie są już obsługiwane. Powiązane środowiska uruchomieniowe również nie są obsługiwane, z wyjątkiem podstawowego środowiska uruchomieniowego Visual Basic 6, które firma Microsoft oficjalnie obsługuje przez cały okres eksploatacji systemów Windows 8 , Windows 10 i Windows 11 . Składniki innych firm, które zostały dostarczone z programem Visual Studio 6.0, nie są uwzględnione w tym oświadczeniu dotyczącym pomocy technicznej. Niektóre starsze składniki języka Visual Basic mogą nadal działać na nowszych platformach, mimo że nie są obsługiwane przez firmę Microsoft ani innych dostawców. Dokumentacja języka Visual Basic 6.0, jego interfejsu programowania aplikacji i narzędzi jest najlepiej omówiona w ostatnim MSDN wydanie przed Visual Studio.NET 2002. Późniejsze wersje MSDN koncentrowały się na programowaniu .NET i miały usunięte znaczne części dokumentacji programistycznej Visual Basic 6.0 w miarę ewolucji języka, a obsługa starszego kodu została zakończona. Chociaż wsparcie dostawców dla Visual Basic 6 zostało zakończone, a produkt nigdy nie był obsługiwany w najnowszych wersjach systemu Windows, kluczowe części środowiska nadal działają na nowszych platformach. Możliwe jest uzyskanie podzbioru środowiska programistycznego działającego na 32-bitowych i 64-bitowych wersjach systemów Windows Vista, Windows 7, Windows 8, Windows 10 i Windows 11.
Przykładowy kod
Poniższy fragment kodu wyświetla okno komunikatu „Hello, World!” podczas ładowania okna:
Private Sub Form_Load () ' Uruchom proste okno komunikatu z napisem „Witaj, świecie!” MsgBox „Witaj, świecie!”
Koniec sub
Ten fragment tworzy licznik, który przesuwa się w górę o 1 co sekundę (aby to zadziałało, do formularza należy dodać etykietę i kontrolkę czasomierza), dopóki formularz nie zostanie zamknięty lub nastąpi przepełnienie liczby całkowitej :
0
Option Explicit Dim Count As Integer Private Sub Form_Load () Count = Timer1 . Interval = 1000 ' jednostek milisekund End Sub Private Sub Timer1_Timer () Count = Count + 1 Label1 . Podpis = Licz napis końcowy
Zobacz też
- IIf - funkcja w kilku wydaniach Visual Basic z grubsza równoważna ?: operatorowi warunkowemu języka C i języków pokrewnych.
- Porównanie języków programowania
- Tablica kontrolna
Linki zewnętrzne
- Centrum zasobów języka Visual Basic 6.0
- Zabezpiecz swoją inwestycję w Visual Basic 6.0 z Microsoft .NET : Migracja z Visual Basic 6.0 do Visual Basic 2008
- Visual Basic 6 odnowiony do pracy w systemie Windows 8
- Instrukcje dotyczące instalowania programu Visual Basic 6 na komputerze z systemem Windows 10
- kompilatory BASICa
- Tłumacze języka BASIC
- Rodzina języków programowania BASIC
- Zintegrowane środowiska programistyczne
- Microsoft BASIC
- Microsoft VisualStudio
- Narzędzia deweloperskie Microsoftu
- Języki programowania Microsoftu
- Obiektowe języki programowania
- Obiektowe języki programowania
- Proceduralne języki programowania
- Języki programowania
- Języki programowania stworzone w 1991 roku
- Konstruktorzy interfejsów użytkownika