Prvih pet sprememb od VB 6 do VB.NET

01

z dne 08

Prvih pet sprememb med VB 6 in VB.NET

Prvih pet sprememb

Visual Basic 1.0 je bil v celotnem programiranju velik potres. Pred VB1 ste morali za ustvarjanje aplikacij Windows uporabljati C, C ++ ali kakšno drugo grozno razvojno okolje. Programerji so dobesedno preživeli tedne, ko so risali okna na zaslonih z izbirčno, podrobno, težko odpravljajočo kodo. (Enako lahko storite tako, da v nekaj sekundah povlečete obrazec iz orodne vrstice.) VB1 je bil zadetek in gazillioni programerjev so ga takoj začeli uporabljati.

Da pa bi se čarovnija zgodila, je Microsoft naredil nekaj večjih arhitekturnih kompromisov. Še posebej, ker je VB1 ustvaril obrazce in kontrole, programerju ni omogočil dostopa do kode, ki je to storila. VB lahko pustite, da ustvari vse, ali ste uporabili C ++.

VB 2 do 6 je ohranil isto arhitekturo. Microsoft je naredil nekaj zelo pametnih posodobitev, ki so programerjem omogočile veliko več nadzora, vendar v končni analizi programerji še vedno niso mogli integrirati svoje kode s kodo VB. To je bila črna škatla - in tudi ne v dobrem načinu OOP. Drug način za to je bil ta, da programer ni imel dostopa do notranjih VB "predmetov" in še en način, da bi povedal, da VB6 še vedno ni povsem "objektno orientiran".

instagram viewer

02

z dne 08

VB 6 - Padajoč za krivuljo tehnologije

Medtem so se začeli pojavljati Java, Python in cel kup drugih programskih jezikov, na katere je objekt WERE usmerjen. Visual Basic se je spremenil - velik čas! To je položaj, ki ga Microsoft ne prenaša... in so se odločili, da bodo problem rešili enkrat za vselej. Rešitev je .NET.

Toda za izvajanje stvari, ki jih je .NET moral storiti, se je Microsoft odločil, da morajo "prekiniti združljivost". To pomeni, da so bili programi Visual Basic (z zelo majhnimi izjemami) "kompatibilni navzgor" od VB1 vse do VB6. Program, napisan v tej prvi različici VB, bi se še vedno kompiliral in izvajal v naslednji različici. Toda pri VB.NET je Microsoft ugotovil, da preprosto ne morejo narediti jezika popolnoma OOP in vzdrževati združljive navzgor.

Ko so sprejeli to temeljno odločitev, so se poplavna vrata odprla ob desetih letih nabranih sprememb "seznama želja" in VSE so se podale v nov VB.NET. Kot pravijo v Britaniji, "za peni, za funt."

Brez nadaljnjega odlašanja, tukaj je moj osebni seznam prvih petih sprememb iz VB6 v VB.NET v obratnem vrstnem redu.

Wellllll... samo ena nadaljnja zamuda. Ker se spreminjamo iz VB6, kjer je matrika, deklarirana kot Dim myArray (5) ima 6 elementov, jih imamo šest. Ujema se samo ...

(Boben bobna prosim ...)

03

z dne 08

Nagrada (5) - C-like Syntax Changes

"Nagrada (5)", naša 6. mesto nagrada je na izbiro skupine C skupine: Spremembe sintakse podobne C!

Zdaj lahko kodirate a + = 1 namesto a = a + 1, s čimer prihranite TRI KLJUČNE KLJUČE!

Svetovni programerji, veselite se! VB je bil dvignjen na raven C, in cela nova generacija, ki se trudi naučiti VB, se bo nekoliko približala množični zmedi, ki se sooča s študenti C ++.

Ampak počakaj! Še več je!

VB.NET zdaj vsebuje "logiko kratkega stika", ki je v kode C ++ dolga leta vnašala subtilne napake, da bi prihranila dragocene nano sekunde procesorskega časa. Logika kratkega stika samo po potrebi oceni več pogojev v logičnem stavku. Na primer:

Dim R Kot Boolean
R = funkcija1 () in funkcija2 ()

V VB6 se obe funkciji ocenjujeta, ali ju potrebujeta ali ne. Če je VB.NET, če je funkcija Function1 () napačna, Function2 () prezrt, ker "R" ne more biti res. Ampak, kaj, če se globalna spremenljivka spremeni v Function2 () - samo po naključju (bi rekli programerji C ++, "s slabo programiranje ".) Zakaj moja koda nekaj časa, ko je prevedena, ustvari napačen odgovor VB.NET? To je morda to!

Za PoskusiteIn težje, VB.NET bo Ujeti malo sreče in Končno prepoznajte se po "izjemnem" ravnanju z napakami.

VB6 je imel zadnjo državo GoTo: "Napaka GoTo". Sploh moram priznati, da je strukturirano ravnanje z izjemami v slogu C ++ izjemno izboljšanje in ne le pol večje izboljšave.

Kaj, pravite, da je "Napaka GoTo" še vedno v VB.NET-u? Wellll... Trudimo se, da o tem ne govorimo preveč.

04

z dne 08

5. mesto - Razno se spremeni ukaz

5. mesto izbor je skupinska nagrada: Razno ukaz se spremeni! To nagrado si morajo deliti in jih je naštelo gazlijon. Microsoft varčuje že deset let in resnično so se rešili.

VB.NET ne podpira več funkcij VarPtr, ObjPtr in StrPtr, ki so priklicale pomnilniški naslov spremenljivk. In ne podpira VB6 LSet, ki je bil uporabljen za pretvorbo ene uporabniško definirane vrste v drugo. (Ne zamenjujte z VB6 LSet, ki naredi nekaj povsem drugega - glejte spodaj.)

Za adieu smo ponudili tudi Let, Is manjka, DefBool, DefByte, DefLng, DefCur, DefSng, DefDbl, DefDec, DefDate, DefStr, DefObj, DefVar in (moj osebni favorit!) GoSub.

Krog se je prelil v GDI + DrawEllipse. Enako velja za Line do DrawLine. V izračunu imamo zdaj Atana namesto Atna, Sign gre namesto Sgn, Sqrt pa namesto za Sqr ustreza veliki igri.

Pri obdelavi vrvic, čeprav so še vedno na voljo, če navajate Microsoftovo združljivost imenskega prostora, imamo PadRight za LSet VB6 (spet popolnoma drugačen kot LSet VB6) in PadLeft za RSet. (Sledijo trije pritiski tipk, ki smo jih shranili z "+ ="!)

In seveda, ker smo zdaj OOP, ne skrbite, če v VB.NET-u ne boste izpolnili niza Lastnosti, Lastnosti Let in Lastnosti Get!

Končno Debug. Tiskanje postane bodisi odpravljanje napak. Napišite ali odpravite napako. WriteLine Samo nervozniki vseeno natisnejo vse.

To se sploh ne dotika vseh NOVIH ukazov v VB.NET, vendar moramo to neumnost nekje ustaviti.

05

z dne 08

4. mesto - spremembe postopkovnih razpisov

V 4. mesto, imamo Spremembe postopkovnih razpisov!

To je nagrada za "dobroto, čistost in koristne vrline" in predstavlja veliko trdo kampanjo s strani frakcije "nič več naključnega koda".

V VB6, če je spremenljivka parametra postopka lastna vrsta, je to ByRef, razen če ste ga kodirali ByVal izrecno, vendar če ni kodiran ByRef ali ByVal in ni intrinzična spremenljivka, potem je ByVal... Razumem?

V VB.NET je ByVal, razen če je kodiran ByRef.

Privzeto ByVal VB.NET mimogrede tudi preprečuje, da bi se spremembe spremenljivk parametrov v postopkih nehote prenašale nazaj v klicno kodo - ključni del dobrega programiranja OOP.

Microsoft prav tako "preobremeni" VB.NET s spremembo zahtev za oklepaje v proceduralnih klicih.

V VB6 so oklepaji potrebni pri argumentih pri klicanju funkcij, ne pa pri klicanju podprograma, ko ne uporabljate izjave Call, ampak so potrebni, kadar uporabljate stavek Call.

V VB.NET so oklepaji vedno potrebni okoli seznama nepopolnih argumentov.

06

z dne 08

3. mesto - nizi temeljijo na 0, namesto na 1

Bronasta nagrada - 3. mesto, gre v Nizi temeljijo na 0 namesto na 1!

To je samo ena sprememba sintakse, vendar ta sprememba dobi status "podij medalje", ker je izglasovana, "najverjetneje bo razjezila programsko logiko". Ne pozabite, 3. mesto JE "Nagrada (2)" na našem seznamu. Če imate v svojem programu VB6 števci in matrike (in koliko jih ne), vas bo ZAVAROVAL.

Ljudje se že deset let sprašujejo: "Kaj je kadil Microsoft, ko je to storil tako?" In že deset let imajo programerji nekako univerzalno prezrl dejstvo, da je obstajal element myArray (0), ki je samo zavzel prostor in se ni navadil karkoli... Razen tistih programerjev, ki jih DID uporabljajo, in njihovi programi so bili videti, pravzaprav "čudni".

Za I = 1 do 5
MyArray (I - 1) = Karkoli
Naslednji

Mislim, Res! ...

07

z dne 08

2. mesto - različica vrste podatkov

Srebrna medalja 2. mesto gre v čast staremu prijatelju, ki je bil s prehodom VB6 padel v bitno vedro programiranja! Ne govorim o ničemer drugem kot o Variantni tip podatkov.

Verjetno nobena druga funkcija Visual Basic "notNet" bolje ne predstavlja filozofije "hitrega, poceni in ohlapnega". Ta slika je prekrivala VB vse do uvedbe VB.NET. Dovolj sem star, da se spomnim uvedbe sistema Visual Basic 3.0 s strani Microsofta: "Oh Wow! Tukaj je Lookee! Z novim, izboljšanim tipom podatkov Variant vam ni treba prijaviti spremenljivk ali ničesar. Lahko samo pomislite, da jih 'kodirate' in jih kodirate. "

Microsoft je precej hitro spremenil svojo melodijo in priporočil razglasitev spremenljivk z specifični podatkovni tip skoraj takoj, zaradi česar se mnogi od nas sprašujemo: "Če ne morete uporabljati variant, zakaj jih imajo? "

Medtem ko smo na temo podatkovnih tipov, naj omenim, da se je poleg spuščanja Varianta v mokri cement spremenilo tudi veliko podatkovnih tipov. Obstajata nov podatkovni tip Char in dolg podatkovni tip, ki je 64 bitov. Decimal je drugače. Short in Integer nista več enaki.

In tu je nov podatkovni tip "Objekt" karkoli. Sem slišal, da je nekdo rekel: "Sin variante"?

08

z dne 08

1. mesto - VB.NET je končno povsem predmetno usmerjen

Končno! Zlata medalja, 1. mesto, najvišja nagrada, ki jo lahko prejmem ...

TA DAH!

VB.NET je končno povsem predmetno usmerjen!

Ko greste na plažo, programerji C ++ vam ne bodo brcali peska v obraz in vam ukradli (dekle / fant - izberite enega). In lahko še vedno kodirajte celotno preizkusno bilanco splošne knjige, medtem ko poskušajo ugotoviti, katere datoteke za glavo vključiti.

Prvič lahko kodirate čim bližje čipu in dostopate do vseh notranjih sistemov, ki jih vaše srce želi brez se moramo zateči k tistim grdim klicem Win32 API. Na voljo imate dedovanje, preobremenitev funkcij, asinhrono večnamensko branje, odvoz smeti in vse je objekt. Se življenje lahko izboljša?

Sem slišal nekoga, ki pravi, da ima C ++ večkrat dedovanje, .NET pa še vedno ne?

Požirajte heretika!