Frenzy Blogja
Frenzy webnaplója: mindennapok Finnországban meg sok más dolog

C#.NET és VB.NET   (CubeHead)   
Valahová muszáj leírnom a véleményemet, úgyhogy a blogomat választom hozzá ... már ez most kicsit (vagyis nagyon) ténylegesen CubeHead, vagyis kocka bejegyzés lesz.

Szóval lehet, hogy az új munkahelyemen közelebb kell kerüljek a VB.NET nyelvhez (VisualBasic.NET), úgyhogy a minap elkezdtem kicsit jobban szemügyre venni. Tudom mi lesz minden felületes olvasó első gondolata (nekem legalábbis ez lenne, vagy lett volna néhány hónappal ezelőtt), hogy micsoda szar nyelv lehet az, meg borzalom, meg nem jó, stb, stb.

Ezen a ponton szerencsére már vagy fél éve túljutottam, igaz, akkor még nem is nagyon nézegettem ezt a nyelvet. .NET körül tett tanulmányaim rávilágítottak, hogy habár a régebbi VB variációk tényleg lényeges eltérést mutattak pl. C++-tól, addig VB.NET esetében már nincs ilyen. Mivel a generált IL (Intermediate Language) kód gyakorlatilag ugyanaz lesz például C# és VB.NET esetében, ezért gyakorlatilag mindegy, melyik nyelvet használjuk. Persze a két nyelv tábora előszeretettel fikázza egymást (flame flame:) ), de az okosabbak már eljutottak odáig, hogy az, hogy melyiket használjuk, tulajdonképpen azon múlik, szeretjük-e a kapcsos zárójeleket (C#) vagy inkább az End kulcsszavat (VB.NET). A .NET világban már közelsincs akkora rés a nyelvek között, maximum a szintaxisuk más, de eszközkészletük és a velük elérhető hatás gyakorlatilag ugyanaz.

Szóval mindennek tudatában nem rémisztett meg az eshetőség, hogy nem csak C#-ot kell esetleg a munkám során használni.

De ahogy mélyebbre mentem a VB.NETbe (2005-ös Visual Studioval) bizony sok dologra akadtam. Először is, VB.NETben mindent sokkal hosszabb leírni. Az IDE segít ebben, kiegészít csomó mindent, de ez a nyelv szerű leírás elég hosszadalmas akkor is :-)

Másrészt néhány, a CLR/CLSben illetve C#-ban használt fogalomnak teljesen új nevet adtak (most leszünk csak igazán technikai oldalhoz közeliek...), pl. a static kulcsszó ami minden nyelvben (C++, C#, Java, IL) ugyanaz, VB.NETben valamiért a Shared nevet kapta. És van még pár ilyen eset.

Egyes szintaktikai elemek is túl vannak bonyolítva, pl. a generikusok. Ezek persze részben a nyelv évek óta magával hurcolt jellemzőiből adódnak. És ami a legrosszabb, a VS2005 fantasztikus C# formázási módjai nem használhatók VB.NETben. C# kódra meg tudom mondani, hogy pl. a zárójeleim előtt legyen space, a for kulcsszó után ne legyen, stb ... és ekkor az IDE automatikusan így formáz. VB.NETben csak formázza a kódot mint a birka, ahogy be van neki tanítva.

Összefoglalva tapasztalataim, érdekesnek mondanám ismerkedésemet a nyelvvel kapcsolatban. Tulajdonképpen frissítő volt valami ennyire drasztikusan mást tanulgatni, és ez olyan jó érzés. És szó sincs arról, hogy esetleg lenézném aki VB.NETben dolgozik, de valahogy C# után olyan amatőr szaga van a nyelvnek is, meg az IDEnek is, mintha feltételeznék, hogy kicsit hülye vagyok :-) Nem beszélve arról, hogy a C# eszközei sokkal hatékonyabbnak tűnnek. Persze ebben gondolom nagy adag megszokás is benne van (mármint hogy így érzek). Meg nem is fogok én áttérni most, csak kicsit érteni kell a másikat is ... vagy ilyesmi.

Na körülbelül ennyit akartam kiadni magamból. Kiváncsi vagyok hány embert ijeszt el egy ilyen írás a blogomból :-)

 

Hozzászólások

(select 198766*667891 from DUAL) Re: C#.NET és VB.NET



(select 198766*667891) Re: C#.NET és VB.NET



@@pfMe6 Re: C#.NET és VB.NET



1����%2527%2522\'\" Re: C#.NET és VB.NET



1'" Re: C#.NET és VB.NET



1Ko7AU8MP')) OR 31=(SELECT 31 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET



1YYwU4yZq' OR 260=(SELECT 260 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET



1-1)) OR 61=(SELECT 61 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET



1-1) OR 445=(SELECT 445 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET



1-1 OR 949=(SELECT 949 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET



1qsHZLmdt')); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1z6gqyuEP'); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



10OULtrFa'; waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1-1 waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1-1)); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1-1); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1-1; waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



-1" OR 5*5=26 or "wWDAUl1W"=" Re: C#.NET és VB.NET



-1" OR 5*5=25 or "wWDAUl1W"=" Re: C#.NET és VB.NET



-1' OR 5*5=26 or 'rkW50du1'=' Re: C#.NET és VB.NET



-1' OR 5*5=25 or 'rkW50du1'=' Re: C#.NET és VB.NET



-1" OR 5*5=26 -- Re: C#.NET és VB.NET



-1" OR 5*5=25 -- Re: C#.NET és VB.NET



-1' OR 5*5=26 -- Re: C#.NET és VB.NET



-1' OR 5*5=25 -- Re: C#.NET és VB.NET



-1 OR 5*5=26 Re: C#.NET és VB.NET



-1 OR 5*5=25 Re: C#.NET és VB.NET



-1 OR 5*5=26 -- Re: C#.NET és VB.NET



-1 OR 5*5=25 -- Re: C#.NET és VB.NET



1BeScKuhF Re: C#.NET és VB.NET



(select 198766*667891 from DUAL) Re: C#.NET és VB.NET


(select 198766*667891) Re: C#.NET és VB.NET


@@zmbZe Re: C#.NET és VB.NET


1����%2527%2522\'\" Re: C#.NET és VB.NET


1'" Re: C#.NET és VB.NET


1pXoGDIIg')) OR 17=(SELECT 17 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1Y6o3VTcW' OR 784=(SELECT 784 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1-1)) OR 274=(SELECT 274 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1-1) OR 444=(SELECT 444 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1-1 OR 995=(SELECT 995 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


19pDcdBC9')); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1VluwhFHE'); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1yLpDym9M'; waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1-1 waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1-1)); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1-1); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1-1; waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


-1" OR 5*5=26 or "hoXfdqqE"=" Re: C#.NET és VB.NET


-1" OR 5*5=25 or "hoXfdqqE"=" Re: C#.NET és VB.NET


-1' OR 5*5=26 or '3MBCUeaY'=' Re: C#.NET és VB.NET


-1' OR 5*5=25 or '3MBCUeaY'=' Re: C#.NET és VB.NET


-1" OR 5*5=26 -- Re: C#.NET és VB.NET


-1" OR 5*5=25 -- Re: C#.NET és VB.NET


-1' OR 5*5=26 -- Re: C#.NET és VB.NET


-1' OR 5*5=25 -- Re: C#.NET és VB.NET


-1 OR 5*5=26 Re: C#.NET és VB.NET


-1 OR 5*5=25 Re: C#.NET és VB.NET


-1 OR 5*5=26 -- Re: C#.NET és VB.NET


-1 OR 5*5=25 -- Re: C#.NET és VB.NET


1f0ERfUsb Re: C#.NET és VB.NET


(select 198766*667891 from DUAL) Re: C#.NET és VB.NET



(select 198766*667891) Re: C#.NET és VB.NET



@@dUJEC Re: C#.NET és VB.NET



1����%2527%2522\'\" Re: C#.NET és VB.NET



1'" Re: C#.NET és VB.NET



1QiZY4jzg' OR 493=(SELECT 493 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET



1-1)) OR 351=(SELECT 351 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET



1-1) OR 391=(SELECT 391 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET



1-1 OR 324=(SELECT 324 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET



1vub2eKgD')); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1WswzTdxZ'); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1YsPHMgon'; waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1-1 waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1-1)); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1-1); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



1-1; waitfor delay '0:0:15' -- Re: C#.NET és VB.NET



-1" OR 5*5=26 or "PboDp8Tm"=" Re: C#.NET és VB.NET



-1" OR 5*5=25 or "PboDp8Tm"=" Re: C#.NET és VB.NET



-1' OR 5*5=26 or '0MFEK34e'=' Re: C#.NET és VB.NET



-1' OR 5*5=25 or '0MFEK34e'=' Re: C#.NET és VB.NET



-1" OR 5*5=26 -- Re: C#.NET és VB.NET



-1" OR 5*5=25 -- Re: C#.NET és VB.NET



-1' OR 5*5=26 -- Re: C#.NET és VB.NET



-1' OR 5*5=25 -- Re: C#.NET és VB.NET



-1 OR 5*5=26 Re: C#.NET és VB.NET



-1 OR 5*5=25 Re: C#.NET és VB.NET



-1 OR 5*5=26 -- Re: C#.NET és VB.NET



-1 OR 5*5=25 -- Re: C#.NET és VB.NET



13whQzYFo Re: C#.NET és VB.NET



(select 198766*667891 from DUAL) Re: C#.NET és VB.NET


(select 198766*667891) Re: C#.NET és VB.NET


@@VflQT Re: C#.NET és VB.NET


1����%2527%2522\'\" Re: C#.NET és VB.NET


1'" Re: C#.NET és VB.NET


1ZLSHRbsZ')) OR 91=(SELECT 91 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1n6UIbtk2') OR 24=(SELECT 24 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1i0usDAZ9' OR 361=(SELECT 361 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1-1)) OR 482=(SELECT 482 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1-1) OR 715=(SELECT 715 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1-1 OR 707=(SELECT 707 FROM PG_SLEEP(15))-- Re: C#.NET és VB.NET


1HLwXUOjP')); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1azBfjhgG'); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1dA2Ch1VU'; waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1-1 waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1-1)); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1-1); waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


1-1; waitfor delay '0:0:15' -- Re: C#.NET és VB.NET


-1" OR 5*5=26 or "EInO8Ci0"=" Re: C#.NET és VB.NET


-1" OR 5*5=25 or "EInO8Ci0"=" Re: C#.NET és VB.NET


-1' OR 5*5=26 or 'HR2KhJrS'=' Re: C#.NET és VB.NET


-1' OR 5*5=25 or 'HR2KhJrS'=' Re: C#.NET és VB.NET


-1" OR 5*5=26 -- Re: C#.NET és VB.NET


-1" OR 5*5=25 -- Re: C#.NET és VB.NET


-1' OR 5*5=26 -- Re: C#.NET és VB.NET


-1' OR 5*5=25 -- Re: C#.NET és VB.NET


-1 OR 5*5=26 Re: C#.NET és VB.NET


-1 OR 5*5=25 Re: C#.NET és VB.NET


-1 OR 5*5=26 -- Re: C#.NET és VB.NET


-1 OR 5*5=25 -- Re: C#.NET és VB.NET


1RrkimMs7 Re: C#.NET és VB.NET