Prvih pet promjena iz VB 6 u VB.NET

click fraud protection

01

od 08

Prvih pet promjena između VB 6 i VB.NET

Prvih pet promjena

Visual Basic 1.0 bio je veliki potres tijekom programiranja. Prije VB1 morali ste koristiti C, C ++ ili neko drugo grozno razvojno okruženje za stvaranje Windows aplikacija. Programeri su doslovno tjednima proveli crtajući prozore na ekranima s izbirljivim, detaljnim, teškim za uklanjanje pogrešaka. (Ista stvar možete učiniti i povlačenjem obrasca s alatne trake u nekoliko sekundi.) VB1 je bio pun pogodak i gazillioni programera odmah su ga počeli koristiti.

No da bi se čarolija dogodila, Microsoft je napravio neke velike kompromisne arhitekture. Konkretno, budući da je VB1 kreirao obrasce i kontrole, nisu dopuštali programeru pristup kôdu koji je to učinio. Ili dopuštate VB-u da stvara sve, ili ste koristili C ++.

VB 2 do 6 održavao je istu arhitekturu. Microsoft je napravio nekoliko vrlo pametnih ažuriranja koja su programerima dala puno više kontrole, ali u konačnoj analizi programeri još uvijek nisu mogli integrirati svoj kod s VB kodom. Bila je to crna kutija - i ne na dobar način za OOP. Drugi način za to je rekao da programer nije imao pristup unutarnjim VB "objektima", a drugi način da to kaže je da VB6 još uvijek nije u potpunosti "objektno orijentiran".

instagram viewer

02

od 08

VB 6 - Pad iza krivulje tehnologije

U međuvremenu su se počeli pojavljivati ​​Java, Python i čitav niz drugih programskih jezika na koje su WERE objektno orijentirani. Visual Basic se spremala - veliko vrijeme! To je situacija koju Microsoft ne podnosi... i oni su odlučili riješiti problem jednom zauvijek. Rješenje je .NET.

No da bi učinio ono što je .NET trebao učiniti, Microsoft je odlučio da moraju "razbiti kompatibilnost". Odnosno, programi Visual Basic bili su (s vrlo malim iznimkama) "kompatibilni s gore" od VB1 pa sve do VB6. Program napisan u toj prvoj verziji VB-a i dalje će se kompilirati i pokretati u sljedećoj verziji. No s VB.NET-om, Microsoft je otkrio da jednostavno ne mogu jezik učiniti potpuno OOP-om i održavati kompatibilnost prema gore.

Jednom kada su donijeli ovu temeljnu odluku, poplavna vrata otvorila su se na deset godina akumulirane promjene „liste želja“ i SVE su ušle u novi VB.NET. Kako kažu u Britaniji, "za peni, za kilogram".

Bez daljnjeg odgađanja, evo mog osobnog popisa prvih pet promjena iz VB6 u VB.NET obrnutim redoslijedom.

Wellllll... samo još jedno odgađanje. Budući da se mijenjamo iz VB6, gdje je niz deklariran kao Dim myArray (5) ima 6 elemenata, Imamo ih šest. Dolazi samo ...

(Bubanj kolut molim ...)

03

od 08

Nagrada (5) - Promjene sintakse u obliku slova C

„Nagrada (5)“, naša 6. mjesto nagrada je dodijeljena izboru C grupe: Promjene sintakse u obliku slova C!

Sada možete kodirati a = = 1 umjesto a = a + 1, štedeći TRI CIJELE KLJUČA!

Svjetski programeri, radujte se! VB je podignut na razinu C, a čitava nova generacija koja pokušava naučiti VB malo će se približiti masovnoj zbrci koja se suočava sa studentima C ++.

Ali čekaj! Ima još!

VB.NET sada ima "logiku kratkog spoja" koja je godinama uvela suptilne pogreške u C ++ kod kako bi uštedjela dragocjene nano-sekunde vremena procesora. Logika kratkog spoja samo po potrebi procjenjuje više uvjeta u logičkoj izjavi. Na primjer:

Dim R Kao boolean
R = funkcija1 () i funkcija2 ()

U VB6 se obje funkcije procjenjuju treba li ih ili ne. Ako je VB.NET, ako je Function1 () lažna, Function2 () se zanemaruje jer "R" ne može biti Istina. Ali, što ako se globalna varijabla promijeni u Function2 () - slučajno (rekli bi programeri C ++, "by loše programiranje ".) Zašto moj kôd proizvodi pogrešan odgovor neki puta kada je preveden VB.NET? To bi moglo biti to!

Za Probatiing. jače, VB.NET će Ulov malo sreće i Konačno prepoznati se po "izuzetnom" postupanju s pogreškama.

VB6 je imao posljednje zadržavanje GoTo: "Na pogrešci GoTo". Čak moram priznati da je strukturirano rukovanje iznimkama u stilu C ++ strukturirano upravljanje iznimkama veliko poboljšanje, a ne samo veliko poboljšanje.

Što, kažete, "Na grešku GoTo" još uvijek postoji u VB.NET-u? Wellll... Trudimo se da o tome ne razgovaramo previše.

04

od 08

5. mjesto - Razne zapovijedne promjene

5. mjesto izbor je grupna nagrada: Razne naredbe se mijenjaju! Moraju ih podijeliti s ovom nagradom i ima ih blizu milijarde. Microsoft štede već deset godina i oni se stvarno olabavljaju.

VB.NET više ne podržava funkcije VarPtr, ObjPtr i StrPtr koje su dohvaćale memorijsku adresu varijabli. I ne podržava VB6 LSet koji je korišten za pretvaranje jedne korisnički definirane vrste u drugu. (Da se ne brka s VB6 LSet koji radi nešto sasvim drugo - pogledajte dolje.)

Također smo ponudili favorit adieu za, Nedostaje, DefBool, DefByte, DefLng, DefCur, DefSng, DefDbl, DefDec, DefDate, DefStr, DefObj, DefVar i (moj osobni favorit!) GoSub.

Krug je pretočen u GDI + DrawEllipse. Isto vrijedi i za Line to DrawLine. U proračunu sada imamo Atana umjesto Atna, Sign ulazi umjesto Sgn-a, a Sqrt odgovara za veliku igru ​​umjesto Sqr.

U string obradi, iako su i dalje dostupne ako referencirate na Microsoftovu kompatibilnost imena prostora, imamo PadRight za VB6-ov LSet (opet, potpuno drugačiji od VB6-ovog LSet-a, naravno) i PadLeft za RSet. (Tu su tri pritiska tipke koje smo spremili s "+ ="!)

I naravno, budući da smo sada na OOP-u, ne brinite se ako se VB.NET ne pokrene za Set Properties, Property Let i Property Get.

Napokon, Debug. Ispis postaje ili Debug. Pišite ili uklonite pogrešku. WriteLine. Samo đaci svejedno ispisuju.

To čak ne dira sve NOVE naredbe na VB.NET-u, ali tu glupost moramo zaustaviti negdje.

05

od 08

4. mjesto - Promjene proceduralnih poziva

U 4. mjesto, imamo Promjene u procedurama poziva!

Ovo je nagrada za „dobrotu, čistoću i zdravu vrlinu“ i predstavlja mnogo teških kampanja od strane frakcije „nema više nestašnog koda“.

U VB6, ako je varijabla parametra postupka svojstvena vrsta, onda je to ByRef, osim ako ste je kodirali ByVal izričito, ali ako nije kodiran ByRef ili ByVal i nije unutarnja varijabla, onda je ByVal... Shvatio sam?

U VB.NET-u to je ByVal, osim ako nije kodiran ByRef.

Zadana postavka ByVal VB.NET također sprječava da se promjene varijable parametara u postupcima nenamjerno preusmjere natrag u pozivni kôd - ključni dio dobrog OOP programiranja.

Microsoft također "preopterećuje" VB.NET promjenom zahtjeva za zagrade u proceduralnim pozivima.

U VB6 su zagrade u obliku argumenata prilikom pozivanja funkcija, ali ne i kod pozivanja podprograma kada se ne koristi izjava Call, ali su potrebne kada se koristi izjava Call.

U VB.NET-u zagrade su uvijek potrebne oko nepotpunog popisa argumenata.

06

od 08

3. mjesto - Nizovi se temelje na 0 umjesto na 1

Brončana nagrada - 3. mjesto, Ide na Nizi se temelje na 0 umjesto na 1!

To je samo jedna promjena sintakse, ali ta promjena dobiva status "podijuma medalje", jer je izglasana, "najvjerojatnije je zeznuti vašu programsku logiku". Zapamtite, 3. mjesto JE "Nagrada (2)" na našem popisu. Ako u svom VB6 programu imate brojila i nizove (i koliko ih nema), ovaj će vas SMETITI.

Deset godina ljudi su se pitali: "Što je Microsoft pušio kada su to radili na ovaj način?" A deset godina programeri imaju univerzalno zanemario činjenicu da postoji element myArray (0) koji je zauzimao prostor i nije se naviknuo ništa... Osim onih programera koji DID koriste i njihovi programi izgledaju, mislim, jednostavno "čudno".

Za I = 1 do 5
MyArray (I - 1) = Što god
Sljedeći

Mislim, STVARNO! ...

07

od 08

2. mjesto - Varijanta podataka

Srebrna medalja od 2. mjesto ide u čast starom prijatelju koji je spuštanjem VB6 pao u bitnu kantu programiranja! Ne govorim ni o kome drugom nego Varijanta podataka.

Vjerojatno nijedna druga značajka Visual Basic-a „notNet“ bolje ne predstavlja filozofiju „brzog, jeftinog i labavog“. Ova je slika pila VB-a sve do uvođenja VB.NET. Dovoljno sam star da se sjećam uvođenja Visual Basic 3.0 iz Microsofta: "Oh Wow! Evo nas! S novim, poboljšanim tipom Variant podataka, ne morate deklarirati varijable ili ništa. Možete samo misliti 'em up and code'. "

Microsoft je prilično brzo na njima promijenio melodiju i preporučio deklariranje varijabli s specifične vrste podataka gotovo odmah, zbog čega se mnogi od nas pitaju: "Ako ne možete koristiti Varijante, zašto imati ih? "

No, dok smo na temu tipova podataka, trebao bih napomenuti da se puno tipova podataka promijenilo osim dodavanja Variante u mokri cement. Tu je nova vrsta podataka Char i Long datatype od 64 bita. Decimalni je način različit. Short i Integer više nisu iste dužine.

A tu je i nova vrsta podataka "Objekta" nešto. Čuo sam da netko govori, "Sin Varijante"?

08

od 08

1. mjesto - VB.NET je konačno u potpunosti objektno orijentiran

Konačno! Zlatna medalja, 1. mjesto, najveća nagrada koju mogu dodijeliti ...

TA DAH!

VB.NET je konačno u potpunosti objektno orijentiran!

Sada kad idete na plažu, programeri C ++ neće vam udarati pijesak u lice i ukrasti vam (djevojka / dečko - odaberite je). A ti možeš još kodirajte kompletnu probnu bilancu glavne knjige dok pokušavaju otkriti koje datoteke zaglavlja treba uključiti.

Po prvi put možete kodirati što bliže čipu i pristupiti svim unutrašnjostima sustava koje vaše srce želi bez moram pribjegavati onim gadnim Win32 API pozivima. Dobili ste nasljedstvo, preopterećenje funkcija, asinkrono višeslojno brtvljenje, sakupljanje smeća i sve je objekt. Može li se život poboljšati?

Čuo sam da netko kaže kako C ++ ima višestruko nasljeđivanje, a .NET još uvijek ne?

Spalite heretika!

instagram story viewer