Piecas labākās izmaiņas no VB 6 uz VB.NET

01

no 08

Piecas labākās izmaiņas starp VB 6 un VB.NET

Piecas labākās izmaiņas

Visual Basic 1.0 bija liela zemestrīce visā programmēšanas laikā. Pirms VB1, lai izveidotu Windows lietojumprogrammas, jums bija jāizmanto C, C ++ vai kāda cita briesmīga attīstības vide. Programmētāji burtiski pavadīja nedēļas, vienkārši zīmējot logus uz ekrāniem ar picky, detalizētu, grūti atkļūdojamu kodu. (Tas pats, ko jūs varat darīt, dažās sekundēs velkot veidlapu no rīkjoslas.) VB1 bija trāpījums, un gazilljoni programmētāju nekavējoties sāka to izmantot.

Bet, lai maģija notiktu, Microsoft veica dažus nozīmīgus kompromisus arhitektūrā. Jo īpaši, tā kā VB1 izveidoja veidlapas un vadīklas, tie neļāva programmētājam piekļūt kodam, kas to izdarīja. Vai nu jūs ļaujat VB izveidot visu, vai arī izmantojāt C ++.

VB 2–6 uzturēja šo pašu arhitektūru. Microsoft veica dažus ļoti gudrus atjauninājumus, kas programmētājiem deva daudz lielāku kontroli, taču galu galā programmētāji joprojām nespēja integrēt savu kodu ar VB kodu. Tā bija melnā kaste - un ne pārāk labā OOP veidā. Vēl viens veids, kā to pateikt, bija tas, ka programmētājam nebija piekļuves iekšējiem VB "objektiem", un vēl viens veids, kā pateikt, bija tas, ka VB6 joprojām nebija pilnībā "orientēts uz objektu".

instagram viewer

02

no 08

VB 6 - kritums aiz tehnoloģiju līknes

Pa to laiku sāka parādīties Java, Python un daudzas citas programmēšanas valodas, kuras WERE bija orientētas uz objektiem. Visual Basic tika pieņemts garām - liels laiks! Šī ir situācija, kuru Microsoft nepieļauj... un viņi izlēma vienreiz un uz visiem laikiem atrisināt problēmu. Risinājums ir .NET.

Bet, lai veiktu lietas, kas bija jādara .NET, Microsoft nolēma, ka viņiem ir "jāizjauc savietojamība". Tas ir, Visual Basic programmas bija (ar ļoti nelieliem izņēmumiem) “saderīgas uz augšu” no VB1 līdz pat VB6. Programma, kas uzrakstīta tajā pirmajā VB versijā, joprojām apkopos un darbosies nākamajā versijā. Bet, izmantojot VB.NET, Microsoft atklāja, ka viņi vienkārši nevar pilnībā padarīt valodu OOP un saglabāt augšupejošu savietojamību.

Kad viņi bija pieņēmuši šo pamatlēmumu, plūdu vārti tika atvērti desmit gadu laikā uzkrāto "vēlmju saraksta" izmaiņu dēļ, un VISI no tiem ienāca jaunajā VB.NET. Kā viņi saka Lielbritānijā: "Par santīmu, par mārciņu".

Bez turpmākas kavēšanās šeit ir mans ļoti personīgais saraksts ar piecām labākajām izmaiņām no VB6 uz VB.NET apgrieztā secībā.

Wellllll... tikai vēl viena kavēšanās. Kopš mēs maināmies no VB6, kur masīvs tiek deklarēts kā Dim myArray (5) ir 6 elementi, mums ir seši no tiem. Tas ir tikai piemērots ...

(Bungas rullīti, lūdzu ...)

03

no 08

Balva (5) - C veida sintakses izmaiņas

"Balva (5)", mūsu 6.vieta balva tiek piešķirta C grupas izvēlei: C veida sintakse mainās!

Tagad jūs varat kodēt a = = 1, nevis a = a + 1, ietaupot trīs veselus taustiņus!

Programmētāji pasaulē, priecājieties! VB ir paaugstināts līdz C līmenim, un pilnīgi jauna paaudze, kas mēģina apgūt VB, nedaudz tuvāk masu neskaidrībām, ar kurām saskaras C ++ studenti.

Bet pagaidi! Tur ir vēl!

VB.NET tagad piedāvā "īssavienojuma loģiku", kas gadiem ilgi ir ieviesusi smalkas kļūdas C ++ kodā, lai ietaupītu procesora laika dārgās nano sekundes. Īssavienojuma loģika tikai nepieciešamības gadījumā loģiskā paziņojumā novērtē vairākus nosacījumus. Piemēram:

Dim R Kā Būla
R = Funkcija1 () un Funkcija2 ()

VB6 modelī tiek novērtētas abas funkcijas neatkarīgi no tā, vai tām tas ir vajadzīgs vai nav. Izmantojot VB.NET, ja Function1 () ir nepatiesa, Function2 () tiek ignorēta, jo "R" nevar būt True. Bet ko darīt, ja funkcijā2 tiek mainīts globālais mainīgais - tikai nejauši (C ++ programmētāji teiktu: " slikta programmēšana ".) Kāpēc mans kods dažreiz rada nepareizu atbildi, kad tas tiek tulkots VB.NET? Tas varētu būt tas!

Priekš Izmēģinietkļūst grūtāk, VB.NET to darīs Noķer nedaudz veiksmes un Visbeidzot saņemt atzinību par “ārkārtas” kļūdu apstrādi.

VB6 bija pēdējais aizturēšanas GoTo: "On Error GoTo". Pat man ir jāatzīst, ka C ++ stila strukturētā izņēmumu apstrāde “Mēģini-noķert-beidzot” ir milzīgs uzlabojums, nevis tikai uz pusi milzīgs uzlabojums.

Ko jūs sakāt “On Error GoTo” joprojām atrodas VB.NET? Wellll... Mēs cenšamies par to pārāk daudz nerunāt.

04

no 08

5. vieta - dažādas komandas izmaiņas

5. vieta atlase ir grupas balva: Dažādas komandas izmaiņas! Viņiem ir jādalās ar šo balvu, un tur viņiem ir gaziljons. Microsoft ir ietaupījis desmit gadus, un viņi to patiešām zaudē.

VB.NET vairs neatbalsta funkcijas VarPtr, ObjPtr un StrPtr, kas izguva mainīgo atmiņas adresi. Un tas neatbalsta VB6 LSet, kas tika izmantots, lai pārveidotu viena lietotāja definētu tipu citā. (Nejaukt ar VB6 LSet, kas dara kaut ko pavisam citu - skatīt zemāk.)

Mēs arī piedāvājam mīļu dāvanu vietnēm Let, Is Missing, DefBool, DefByte, DefLng, DefCur, DefSng, DefDbl, DefDec, DefDate, DefStr, DefObj, DefVar un (mans personīgais favorīts!) GoSub.

Aplis ir izveidojies par GDI + DrawEllipse. Tas pats attiecas uz līniju uz DrawLine. Aprēķinā mums tagad Atna, nevis Atn ir Atan, Sign tiek reģistrēts Sgn, un Sqrt ir piemērots lielai spēlei, nevis Sqr.

Virkņu apstrādē, kaut arī tās joprojām ir pieejamas, ja atsaucas uz Microsoft saderību vārda telpā, mums ir PadRight VB6 LSet (atkal, protams, pilnīgi atšķirīgs no VB6 LSet, protams) un PadLeft RSet. (Tur ir trīs taustiņsitieni, kurus mēs saglabājām ar “+ =”!)

Un, protams, tā kā mēs šobrīd strādājam OOP, neuztraucieties, ja vietnē VB.NET netiek izpildīts Īpašumu komplekts, Īpašuma izīrēšana un Īpašuma iegūšana, bet jūs izlemjat!

Visbeidzot, atkļūdošana. Drukāšana kļūst par atkļūdotāju. Rakstiet vai atkļūdojiet. WriteLine. Tikai nerds tik un tā visu izdrukā.

Tas pat nepieskaras visām VB.NET jaunajām komandām, bet mums kaut kur ir jāpārtrauc šīs muļķības.

05

no 08

4. vieta - procedūras izsaukumu izmaiņas

Iekšā 4. vieta, mums ir Izmaiņas procedūras izsaukumos!

Šī ir balva "labsirdība, tīrība un pilnvērtīgs tikums", un tā ir ļoti smaga kampaņa, ko veic frakcija "vairs nav apliets kods".

Ja procedūras parametra mainīgais ir raksturīgs tips VB6, tas ir ByRef, ja vien jūs to neesat kodējis. ByVal tieši, bet, ja tas nav kodēts ByRef vai ByVal un tas nav raksturīgs mainīgais, tad tas ir ByVal... Sapratu?

Vietnē VB.NET tas ir ByVal, ja vien tas nav kodēts ByRef.

Starp citu, ByVal VB.NET noklusējums neļauj arī parametru mainīgo izmaiņām procedūrās netīšām tikt izplatītām izsaucošajā kodā - galvenajā labas OOP programmēšanas daļā.

Microsoft arī "pārslogo" VB.NET ar izmaiņām prasībās par iekavām procedūras izsaukumos.

Izmantojot VB6, iekavās ir nepieciešami argumenti, veicot funkcionālos zvanus, bet ne tad, kad tiek izsaukta apakšprogramma, kad neizmantojat paziņojumu par zvanu, bet tie ir nepieciešami, ja tiek izmantots paziņojums par zvanu.

Vietnē VB.NET iekavas vienmēr ir vajadzīgas ap argumentu sarakstu, kas nav vienkāršs.

06

no 08

3. vieta - masīvu pamatā ir 0, nevis 1

Bronzas balva - 3.vieta, iet uz Masīvu pamatā ir 0, nevis 1!

Tās ir tikai vienas sintakses izmaiņas, taču šīs izmaiņas iegūst "medaļas pjedestāla" statusu, jo par tām balso, "visdrīzāk, lai ieskrūvētu jūsu programmas loģiku". Atcerieties, ka 3. vieta IR “Balva (2)” mūsu sarakstā. Ja jūsu VB6 programmā ir skaitītāji un masīvi (un cik tādu nav), tas jums to paziņos.

Desmit gadus cilvēki ir jautājuši: "Ko Microsoft smēķēja, kad viņi to darīja?" Un desmit gadus programmētājiem ir veida vispār ignorēja faktu, ka bija myArray (0) elements, kas vienkārši aizņēma vietu un netika pieradināts jebkas... Izņemot tos programmētājus, kuri DID to izmanto, un viņu programmas izskatījās, es domāju, vienkārši “dīvainas”.

Ja I = no 1 līdz 5
MyArray (I - 1) = Neatkarīgi
Nākamais

ES domāju, TIEŠĀM! ...

07

no 08

2. vieta - datu tips

Gada sudraba medaļa 2. vieta dodas uz godu vecam draugam, kurš tika nomests programmēšanas spainī ar VB6 piespēli! Es runāju par nevienu citu kā Datu tips.

Droši vien neviena cita Visual Basic “notNet” īpašība labāk atspoguļo “ātru, lētu un brīvu” filozofiju. Šis attēls parādīja VB līdz pat VB.NET ieviešanai. Esmu pietiekami vecs, lai atcerētos Microsoft ieviesto Visual Basic 3.0: “Oh Wow! Lookee šeit! Izmantojot jauno, uzlaboto variantu datu tipu, jums nav jādeklarē mainīgie vai nav to. Jūs varat vienkārši padomāt, vai tos kodēt un kodēt. "

Microsoft diezgan ātri mainīja to melodiju šajā vienā un ieteica deklarēt mainīgos lielumus ar specifisks datu tips gandrīz nekavējoties, daudziem liekot aizdomāties: “Ja nevarat izmantot variantus, kāpēc? vai viņiem ir? "

Bet, kamēr mēs runājam par datu tipiem, man jāpiemin, ka ir mainījies daudz datu tipu papildus tam, ka Variant ielaiž mitrā cementā. Ir jauns Char datu tips un Long datu tips, kas ir 64 biti. Decimāldaļa ir savādāk. Īss un vesels skaitlis vairs nav vienāda garuma.

Un ir jauns datu objekts "Object", kas var būt jebkas. Vai es dzirdēju kādu sakām: "Varianta dēls"?

08

no 08

1. vieta - VB.NET beidzot ir pilnībā orientēts uz objektu

Visbeidzot! Zelta medaļa, 1.vieta, augstākais apbalvojums, ko varu piešķirt, tiek pie ...

TA DAH!

VB.NET beidzot ir pilnībā orientēts uz objektu!

Tagad, dodoties uz pludmali, C ++ programmētāji nesit smiltīm sejā un nezags jūsu (draudzene / draugs - izvēlieties vienu). Un jūs varat joprojām kodē pilnīgu virsgrāmatas izmēģinājuma bilanci, kamēr viņi mēģina izdomāt, kurus galvenes failus iekļaut.

Pirmo reizi jūs varat kodēt tik tuvu mikroshēmai, cik nepieciešams, un piekļūt visām sistēmas iekšējām vajadzībām, kuras jūsu sirds vēlas bez ņemot vērā šos šķebinošos Win32 API zvanus. Jūs esat ieguvis mantojumu, funkciju pārslodzi, asinhrono vairāku pavedienu veidošanu, atkritumu savākšanu un viss ir objekts. Vai dzīve var kļūt labāka?

Vai dzirdēju, ka kāds saka, ka C ++ ir vairākas mantošanas iespējas, un .NET joprojām to nedara?

Sadedzini ķeceri!