VB.Net - C # tartışması [kapalı]


18

Bir projenin başında "VB.Net veya C # kullanmalıyız" sorusunun gündeme getirildiği işyerlerinde bulundum.

Kabul edildiyse, özellikle dilin yakınsama eğilimi göz önüne alındığında, bu kararı .Net'in ilk günlerinde olduğundan daha az yaygın hale getirmek muhtemelen daha az yaygındır, ancak yine de ateşli bir tartışma olabilir.

Peki, VB.Net ve C # arasında, hangi dili tercih edersiniz ve neden?


2
Sadece eserlere bir anahtar atmak için, sadece VB.Net sözdizimini destekleyen bazı ürünler var (örneğin, VS2010'da WF tasarımcısı)
Damovisa

Buralarda, C # programcılarına VB.NET programcılarından daha fazla ödeme yapılır.
SeanX

Başlığın "yapıcı olmayan" gibi görünen "ebedi" kısmını kaldırdım. Sorunun kendisi çok faydalıdır ve cevapların kalitesi, rezil "altı yönerge" nin nasıl yapıcı olduğuna dair çok daha iyi bir göstergedir.
Wizard79

VB.NET'e sahip kişilerin daha az ve daha yüksek bir prim verebilmesi için eğilim C # 'a doğru devam ederse, bunun kendini tersine çevirip çevirmeyeceğini merak ediyorum.
JohnFx

Yanıtlar:


29

C # VB.NET yerine tercih ediyorum

  • programcıları / işleri bulmak daha kolaydır:

alternatif metin

  • yardım bulmak daha kolay:

alternatif metin

(yığın akışından)


3
+1 SO, tercih edilen programlama yardımı kaynağım olarak google'ın yerini hızla alıyor.
İsimsiz Tür

12
Soru, 10 kat daha fazla C # etiketi, konunun daha iyi ele alındığı, daha fazla kullanım veya daha fazla sorun olduğu anlamına mı geliyor? İş mevcudiyetinde +1.
JeffO

12
C # yapmak için bir VB.NET programcısı işe olmaz herhangi bir işveren dikkatli olurdu.
Matt Olenik

@Anonymous: SO, Google'ı 2. günle değiştirdi (bir yıl önce). Evde FireFox, 3 ana arama sitem olarak SO, MSDN ve Programcılar'a sahiptir.
IAbstract

@IAbstract, lol, çok doğru.
İsimsiz Tür

27

VB.NET'ten nefret ediyorum. Kullanarak geçirdiğim günler pişman olduğum günler. Bununla birlikte, zevklerim durumumun ve tecrübemin bir parçası ve yaptığınız şeyle hiçbir ilgisi yok ...

C # ve VB.NET gibi sürekli gelişen dilleri karşılaştırırken, geçmişlerine bakmanın ve mevcut durumlarına nasıl ulaştıklarını görmenin önemli olduğunu düşünüyorum:

BASIC'ın mikrobilgisayarlardaki orijinal avantajları arasında boyut ve basitlik (küçük, makul hızlı çevirmenler için yapılan küçük, ayrıştırması kolay sözdizimi ve gerçek program ve veriler için bellekte kalan yer), denemeyi sağlayan etkileşimli bir ortam ve bir sözdizimi vardı. İngilizceye benzer bir sözdizimi için kısa sembol ve yapılardan kaçındı. Bununla birlikte, büyük, yapılandırılmış programlar için çok uygun değildi ve spagetti kodunu teşvik etme eğilimindeydi. Yine de, kullanılabilirliği ve sadeliği onu programlamaya giriş için mükemmel bir seçim haline getirdi.

QuickBasic sözdizimini daha büyük yapılandırılmış programlara izin verecek şekilde güncelledi ve daha hızlı yürütme için derleme ekledi.

VisualBasic, GUI uygulamalarının hızlı bir şekilde oluşturulmasını sağlamak için güçlü, kullanımı kolay bir form oluşturucu sunarken, bu kullanıcı arayüzlerini kodlamak için QB sözdizimini benimser. Önceden oluşturulmuş bileşenler (genellikle başka bir dilde yazılır) olarak sağlanan düşük düzey mantık için kullanıcı arayüzleri oluşturmak için kullanıldığında en iyi sonucu verdi. Zamanla, sözdizimi giderek genişledi ve yeni özellikler ele alındıkça tutarsız hale geldi. Önce bir kullanıcı arayüzü oluşturmaya ve daha sonra komut dosyası bitlerini doldurmaya odaklanmak, küçük, kullanıcı arayüzü merkezli uygulamalar için iyi çalıştı, ancak yeniden yapıştırma programlamasını ve spagetti kodundaki bir değişikliği teşvik ederken, yeniden kullanımı, karmaşık veri yapılarını ve endişelerin ayrılması. Birçoğunun zihninde, "VB kodu" "büyük çamur topu" ile eşanlamlı hale geldi; "Deneyimsiz kesmek" ile "VB programcısı".

VB.NET, .NET platformunda VB benzeri bir dildir, aşırı büyümüş VB sözdizimini temizleme ve modernize etme girişimi (tamamen başarılı değildir). Mevcut VB koduyla mükemmel uyumlu değildi ve VB formlarıyla (muhtemelen VB'nin en önemli kısmı) uyumluluk sağlamak için hiçbir çaba göstermedi . Bu, birçok VB ürün sahibine, VB.NET'teki uygulamalarını etkili bir şekilde yeniden yazma (dikkatlice incelenmeyen her rutindeki ince uyumsuzluklarla uğraşma) veya aslında C # 'da (alışılmadık biriyle uğraşma ) uygulamalarını yeniden yazma hoş olmayan bir seçim bıraktı. ek olarak sözdizimiyeni çalışma zamanı kitaplığı ve form tasarımcısı). Çoğu VB.NET kullanıcısı, sadece sözdizimi için onunla sıkışan VB kullanıcılarıydı, çoğu C # öğrenirken koltuk değneği olarak kullanıyordu. Sonuç olarak, hemen yollarına sıkışmış, isteksiz veya becerilerini genişletemeyen veya geliştiremeyen programcılar için bir sığınak olarak ünlendi.

Bu noktada, VB.NET gelişmeye devam ediyor, yeni ve ilginç sözdizimi (LINQ, XML değişmezleri) alırken yavaşça bagajı döküyor. Yine de, BASIC'in orijinal avantajlarının neredeyse hiçbirini korumaz: oldukça dik bir öğrenme eğrisi ve etkileşimli deneyler için sınırlı bir fırsat ile büyük, karmaşık bir dildir.

  • Son 30 yılı aşkın bir süredir onunla sıkışmış eski programcılar için, kendilerini kısıtlamaması koşuluyla, kötü bir seçim değildir.
  • Yeni programcılar için, VB programlarının İngilizce'ye giderek belirsizliği, geriye dönük uyumluluk ve sosyal damgalamaya tuhaf nodlara değmez.
  • Yeni projeler için , proje dilin optimize edildiği birkaç görevden biri ile yoğun bir şekilde ilgilenmedikçe VB.NET garip bir seçimdir: kötü yazılan COM bileşenleriyle entegrasyon (Office ...) (C # 4.0 bu avantajı önemli ölçüde azaltmasına rağmen ) veya satır içi XML oluşturma.

4
C # 4 ile VB.Net'in COM entegrasyonu konusunda hala bir avantajı görmüyorum. Satır içi XML oluşturmanın yararlı bir özellik olabileceğini düşünüyorum; XML kullanmamaya çalışıyorum (ve son 5 yıldır başarılı oldum!), Ancak çok fazla XML üretmesi gereken bir .net projem varsa, muhtemelen sadece XML üretimi için bir VB projesi oluşturacağım.
Konfigüratör

3
Cevabınızı okumaktan zevk alıyordum ama aniden durmuş gibiydi. Sen ilginç temel tarihi sağlamak ve ben doğru varsayalım. Neden VB.NET'i sevmediğinizi ve / veya neden C #'ı sevdiğinizi öğrenmeyi bekliyordum. "Yeni projeler için, VB.NET tuhaf bir seçim" Neden?
Tim Murphy

@Tim: Ben VB [.NET] sevmiyorum çünkü karşılaştığım kodun çoğu yıllar önce iş aldı (ya da bu tür kodlayıcılar tarafından öğretilen) programcılar tarafından yazılmış türsüz spagetti kodu. Yine de, başkalarının beğenmemesi için iyi bir neden olması gerekmez . Daha iyi bir neden, dilin geriye dönük uyumluluktan çok fazla taviz vermiş olmasıdır ... ancak aslında geriye dönük olarak uyumlu değildir. Yani yeni
tiplenmemiş

20

Her ikisini de tanıyorum, ancak VB4, VB5 ve VB6'daki erken programlama çalışmalarımın çoğunu yaptım. Şimdi .NET'teki her iki dil de birkaç yinelemeden geçti ve yeteneklerinde biraz birleştiğine göre, tartışmanın düpedüz saçma olduğunu düşünüyorum, "en sevdiğiniz renk nedir".

Şahsen, her ikisini de farklı nedenlerden dolayı seviyorum.

VB.NET
Birçok kişi C # sözdiziminin nasıl daha sezgisel olduğu hakkında konuşur, ancak bu çok özneldir ve büyük ölçüde bildiklerinize dayanmaktadır. Tamamen nesnel olsaydınız, VB.NET sözdiziminin başka bir dilde önceden bilgi almıyorsanız muhtemelen daha sezgisel olduğunu iddia ediyorum. Örneğin, C # ve VB.NET'te aynı program göz önüne alındığında, programlama bilgisine sahip olmayan biri için daha deşifre edilebilir olacağını düşünüyorsunuz. Bana çok açık geliyor.

Bu sözdizimi hakkında güzel olan bir diğer şey ise, parantezleme modeline kıyasla kapanış yapıları (END IF, END WHILE, NEXT X) hakkında çok daha açık olmasıdır. Kodu biraz daha okunabilir yapar ve genellikle derleyicinin hangi satır numarasının derleme hatalarına neden olduğu konusunda daha kesin olmasını sağlar. Bir derleme hatası nedeniyle eksik bir köşeli ayraç / noktalı virgül avına çıkmışsanız, sorundan 50 satır uzakta ne demek istediğimi biliyorsunuz.

Ayrıca, benim görüşüme göre VB.NET kazanmak sütununda == / = karşılaştırma / atama işleçleri eksikliği var. Her biri için ayrı bir operatöre sahip olmanın nadir faydaları, yaratmaya yardımcı olduğu tüm (bazen) keşfedilmesi zor olan şeyleri asla telafi etmeyecektir.

Son olarak, programlama dillerinde büyük / küçük harf duyarlılığından nefret ediyorum. VB ile ilgili şikayetlerden biri, çok fazla bagaj içermesidir, ancak C #, C'nin büyük / küçük harf duyarlılığının albatrosunu ileriye taşımıştır. Aynı kapsamdaki iki tanımlayıcının yalnızca duruma göre değişmesini istediğim bir durumda hiç bulunmadım. Sadece yoğun iş için yapar ve beni yavaşlatır. VB.NET bana bu konuda C # üzerinde bazı puan alır.

C #
Programcılar özlü olmayı seviyorum, bu yüzden genellikle bu sözdizimini tercih ettiklerini düşünüyorum. Sadece belli bir estetik çekiciliği var. Ancak, tamamen pratik bir bakış açısıyla, Java, JavaScript ve C ++ gibi dillere çok benzediğini seviyorum.

Hem sunucu hem de istemci tarafı programlama gerektiren bir çok web geliştirme yaptığımdan, sık sık yapmak istediğim gibi zihinsel olarak C # ve JavaScript arasında geçiş yapmayı daha kolay buluyorum.

Ayrıca, çoğunlukla, Java veya C ++ programlama yapmaya geçmek zorunda kalsaydım, çoğu zaman C # kullanıyor olsaydım, bir kafa başlangıç ​​biraz olurdu gerçeğini seviyorum.


3
Web geliştirme yorumu için +1. Projeye bağlı olarak hem VB.NET hem de C # kullanıyorum ve C # ve Javascript arasında VB.NET ve JS'den daha ileri gitmeyi çok daha kolay buluyorum.
Paperjam

2
'Aynı kapsamdaki iki tanımlayıcının yalnızca duruma göre değişmesini istediğim bir durumda hiç bulunmadım.' saf özneldir. Bu tam olarak C # tercih nedenlerinden biridir. Doğru ve sonuç olarak uygulandığında, örneğin kurucuda adıyla bir parametre ve adıyla namebir ortak özellik olması Nameve ardından ataması dünyaya mantıklı gelebilir Name = name;. Bir kodlama standardını koruduğunuz sürece, katılıyorum, o zaman karışıklığa neden olabilir.
Aidiakapi

1
Böyle sinsi hatalardan kaçınmak için bir kodlama standardına ihtiyaç duymak benim için olumsuz. Bir geçici çözümün varlığı bunu mazur görmez.
JohnFx

Herhangi bir programlama dilinde özensiz kod yazmak zor olmalıdır. Büyük / küçük harf duyarsızlığı sadece özensiz kodu teşvik eder. Büyük / küçük harf duyarlılığı sizi hiç yavaşlatmaz, bu nasıl bir argüman? Çok fazla yazım hatası yaptığınızda sizi yavaşlatır ve sonra yavaşlamanız iyi olur.
Falcon

Sadece özensiz kod çünkü derleyici onu yorumlayamıyor. Tüm derleyiciler büyük / küçük harfe duyarsız olsaydı, yalamak önemli olmazdı. Bizim işimiz bir dergide baskı için kod yazmak değil, iş yapan kod yazmaktır. "Özensiz" durum bu bir biti engellemiyor.
JohnFx

19

C tarzı dillerin parantez sözdizimini BASIC tarzı dillerin "ayrıntılı" sözdizimine tercih ederim.

Programlamaya girişim Turbo Pascal ile oldu. (Commodore 64 üzerinde bir çocuk olarak yaptığım TEMEL programlama biraz sayılmaz.) Java öğrendikten sonra asla geriye bakmadım ve C tarzı sözdizimini tercih ettim.


4
"" ayrıntılı "BASIC tarzı dillerin sözdizimi." - Evet, gördüğümde if something then code endif
VB'ye bir daha bakmadım

1
Heh, birinin bunu düşürdüğüne şaşırdım. (Ben Emacs vs Vim soru olması bekleniyor.)
George Marian

3
@TheLQ: ve ayrıca AndAlso!
Gerry

Turbo Pascal günlerimi özlüyorum. Çok eğlenceliydi.
MetalMikester

1
Köşeli ayraç sözdizimini okumayı daha kolay buluyorum. İçeriğe özgü birkaç sözcük yerine blok için bir genel sembol.
Michael K

12

İşlevsel olarak aynıdırlar, diğerinde yapamayacağınız hiçbir şey yoktur ve gelecekteki Microsoft, dil takımlarının her ikisini de eşit olarak geliştireceğini taahhüt etti, bu nedenle bu değişme olasılığı düşüktür.

Şimdi farklılıklar tamamen kültürel ve kişiseldir. Bu makale C # ve VB.net kullanarak programcıların kültürleri arasındaki farklar üzerine ilginç bir okuma

[Not: Kendimi bir C # dev olmama rağmen, bağlantılı makalenin sonucu mutlaka kişisel fikrimi yansıtmıyor, sadece tartışmada ilginç bir alternatif yaklaşım var]


8
Tamamen doğru değil: örneğin, VB.NET'in harika bir C # özelliği olan yineleyicileri yoktur .
Thomas Levesque

2
C #, VB.NET'in XML değişmezlerine sahip değildir: blogs.msdn.com/b/wriju/archive/2008/02/07/… (mimari nedenlerle bu özelliğin hayranı olmasam da havalı)
Steven Striga

@Thomas @WeekendWarrior: İyi örnekler, ama sadece belirtmek gerekirse, "İşlevsel olarak aynı" dedim. Her ikisi de IL'ye derlenir, böylece aynı işlevsellik seti elde edilebilir. Bu örnekler, başka şekillerde elde edilebilecek işlevler için yalnızca dil kısayollarıdır.
Simon P Stevens

8

C ve C ++ (.NET, biraz Java, Ada ve Pascal atılmış) ile .NET geldi bu yüzden C # benim için doğal ilerleme oldu.

Eğer bir iş VB.NET gerekli geldi eğer kesinlikle geri çevirmek olmaz.


6

VB.NET ile çok iş yaptım, ama kodda neler olduğunu anlamak için yeterli C # anlıyorum. Şu anki tercihim VB.NET çünkü ona en aşina olduğum için (açıkçası), ama gerçekten ayrıntılı BASIC sözdizimi ve C stili sözdizimi arasında bir tercihim yok, her ikisi de benim için çok okunabilir ve anlaşılabilir.

İş arkadaşımın programlama geçmişinin çoğu COBOL ve VB6'dır, bu nedenle VB.NET bizim için bir takım olarak daha rahat .NET dil seçimiydi. İşlevsel olarak aynı olduklarından C # öğrenimini bir gereklilik haline getiren bizim için sağlam bir neden yoktu.

Bununla birlikte, C # öğrenmek kesinlikle yapılacaklar listemde.


2
Ben de aynı beladayım. :) ve ben VB.NET tercih aynı şekilde kola değil pepsi tercih. Ancak, yeni bir proje başlatırsak, C # en iyi seçimdir, çünkü C #'yi bilen ve tercih eden daha fazla programcı bulacağız. VB için MS stratejisinin VB topluluğunu .NET plataformuna getirmek olduğunu anladım.
Pagotti

5

C # 'ı tercih ederim.

VB.NET programcısı olarak başladım, ancak zaman geçtikçe çok sayıda yeni özelliğin önce C #'a ve daha sonra VB.NET'e (örneğin otomatik özellik) geldiği ortaya çıktı. Ve C # çevreleyen topluluk, VB.NET'lerden çok daha canlı.

Buna ek olarak, Java veya benzer bir dil öğrenmek istiyorsanız, C # daha iyi bir başlangıç ​​noktasıdır - sözdizimi C türetilmiş tüm dillerde hemen hemen aynıdır. Her ne kadar sözdizimi hızlı bir şekilde öğrenebileceğiniz bir şey olduğu için bu benim için devrilme noktası olmamasına rağmen.


3
"özellikler ilk C # geliyor" Yine de her zaman bu şekilde değil. Bkz. Stackoverflow.com/questions/181188/… (Sadece eserlere başka bir anahtar atmak için)
Kendine bir not düşün -

Ben buradayım. Hala VB'den hoşlanıyorum, çünkü başlangıç ​​noktam burası, ama bence C # lambda ifadeleri gibi şeylerde daha iyi sözdizimine sahip. Öte yandan, VB, C # 'ın sadece hayal edebileceği XML Değişmezlerine sahiptir. Ağır XML çalışması için ayrı bir VB projesini kırmaya değer olduğunu düşünüyorum.
Kyralessa

1
Her nesil araçla, "özellikler" argümanları biraz kayıyor. Hangi C # vs2010 hangi vb.net eksik olan düşünebilirsiniz tek şey yineleyiciler; aksine, vb.net adlandırılmış dizinleyicileri, istisna filtreleri, XML değişmezleri, 1000x daha iyi görünümlü bir "İş" operatörü, Object.ReferenceEqualsneredeyse doğru yapılan olay işleme ve daha sorunsuz bir IDE deneyimi sunuyor. VB.net, alan başlatıcılarının yapıcı parametrelerini kullanmasını veya değişkenleri IDisposablekullanmak zorunda kalmadan nesneleri güvenli bir şekilde oluşturmasını biraz zor olsa da mümkün kılar ThreadStatic; C # değildir.
supercat

5

Burada gönderilen diğer cevaplara ek olarak, C # programcılarına daha fazla ödeme yapıldığı için VB üzerinden C # seçerim. C # ile daha fazla deneyim = daha fazla $$ :)

Her iki dilin neredeyse aynı olduğunu ve ikisi arasında geçiş yapmanın gerçekten kolay olduğunu biliyorum, ancak yönetim bir grup kıvırcık parantez ve noktalı virgüle baktığında, VB ile nerede yapamayacakları bir şey yaptığımızı kabul ediyorlar. Net onlar bakmak ve "ah anlayabiliyorum eğer o kadar zor olmamalı" gidin.


1
Sanırım sanayiye / bölgeye bağlı olarak çoğu zaman gözden kaçan oldukça geçerli bir nokta.
İsimsiz Tür

4

C # çünkü minimum çaba ile Java ve Java arasında geçiş yapabilirsiniz

VB.NET tamamen farklı bir sözdizimidir. C #, Java ve diğer dillere benzer olmak, yeni şeylere hızlı bir şekilde uyum sağlamak için bana daha iyi bir pozisyon veriyor. C # ve VB.NET çıktıları neredeyse değiştirilebilir olduğundan, C # ile gitmek mantıklıdır. Ayrıca, şirketinizin kodu C # ise, bir Java geliştiricisini C # kodlamasını Java geliştirici VB'sinden daha fazla eğitme olasılığınız daha yüksektir. Sadece ince avantajlar vardır, ancak ince hala bir avantajdır.


3

Kişisel tercihlerimi bir kenara bırakıyorum. Son zamanlarda işe alım yapan (ve işe alınmaya çalışan) biri olarak, bu tartışmayı ofiste yaptığımızda genel fikir birliği, VB'den C # 'a taşınmamız gerektiğiydi.

Neden? C # piyasada daha yaygın olduğu için (zaten etrafımızda), daha kolay işe almamıza ve daha kolay işe alınmamıza izin verdi.

Tam çember gibi görünüyor; insanlar C # öğreniyor çünkü işverenler bunu istiyor, çünkü daha fazla aday var.


3

Biraz daha eski bir geliştirici olarak (59 "biraz" daha yaşlı mı?), İlk önce Commodore VIC-20'de BASIC'i öğrendim, kendime Turbo Pascal (v1!) Öğrettim, üniversitede COBOL öğrenmeye devam ettim ve 14 yıl IBM'de gelişti VB5 ve VB6'ya geçmeden önce Revelation BASIC'de (PICK BASIC'in bir çeşidi) orta modda uygulamalar ve Modula-2'de birkaç yardımcı program yazarak kısa saptırmalarla ana çerçeveler. Ve sonra .NET geldi.

Temel arka planım nedeniyle, VB.NET ile başlamam gerektiğini düşündüm, sadece şeyleri "eski" şekilde yapmaya çalıştığımı ve beni deli ediyordu (tamam, daha fazla fındık). C'de bir iş yapmış olduğum için, C # 'ın nasıl gittiğini görmek için bir koşuşturma vereceğini düşündüm. Ve OMG, bu karanlık bir tünelden gün ışığına çıkmak gibiydi! Tamamen beklenmedik. Ve C'nin "salt yazılır" bir dil olduğu hakkında aşağılayıcı sesler çıkarırdım - bir C programcısının yazdıktan 6 ay sonra kendi kodunun ne yaptığını anlayamadığını anlamak çok zor. O zamanlar sevimli geldiğini düşündüğüm yarı ünlü romancı.

Bu nedenle, C'ye biraz aşina olmamız nedeniyle, C #, .NET programlamasını öğrenmem için çok daha tanıdık olması gereken Temel paradigmaya göre paradoksal olarak daha kolaydı. Hala VB6'yı seviyorum, ama C # sevmeye geldim. Gezegendeki en iyi programlama dili.


1
İlginç bir cevap, bu en azından kısmen "yaşlı kalabalık" C # VB.NET sopa eğilimindedir fikrini çürütür
Anonim Türü

3

2001'den beri Visual Basic .Net'te geliştiriyorum ve seviyorum ve nefret ediyorum !!!

Bu noktaların sunum sırası sadece aklıma geldiğine göre ...

Görsel.net ile vb.net'te, her yöntem, özellik arasında görsel bir satır sonu vardır. Birçok kişi için vb.net c # yerine tercih etmek için iyi bir neden değil ama neden Microsoft'ta c # ekibinin uygulanmadığını anlamıyorum. Bu satırı c # ama thanx'te çizen bir eklenti var, Microsoft'un birbirleriyle konuşmayan ac # ekibi ve visual basic ekibi var.

Vb.net'te, bir winform oluşturduğunuzda, editörün üst kısmında görsel stüdyoda iki birleşik giriş kutunuz vardır ve sağ açılan kutuda bir olay seçerken otomatik olarak olayı otomatik olarak oluşturabilirsiniz. Her gün düzinelerce etkinlik eklediğinizde, bu özelliğe sahip olmak çok hantal olabilir. C # ile, özellik oluşturabilirsiniz özellik ızgarası üstünde küçük bir düğme var ama vb.net gibi hızlı değil. Dahası, c # 'da denetim olayı ekler ve form üzerindeki denetimi silerseniz, olayı işlemek için otomatik olarak oluşturulan kodda oluşturulan temsilci el ile silinmelidir. Tekrar teşekkürler Microsoft.

Vb.net'te, sorgunun kendisini değiştirmeden linq sorgusu içeren bir yöntemi değiştirmeye çalıştığınızda, sorun yok ama c # 'da, tüm yöntem kodu kilitlenir. Çok sayıda linq sorgunuz veya lambda ifadeniz varsa, düzenle ve devam et özelliği hızlı bir şekilde eski bir şey olacaktır. Tamam, biraz abartı ... ama :)

Vb.net'te, bir yöntem adı oluşturup enter tuşuna bastığınızda, 'bitiş alt' otomatik olarak oluşturulur. C # 'da kendiniz yapın. Tamam, eğer resharper veya devexpress yüklü, daha iyi olacak ama neden tüm bu küçük ama greats özellikleri c # uygulanmadı.

Vb.net'te, kodunuzda hatalar olduğunda, hatalar otomatik olarak görüntülenir ve düzelttiğinizde, bu hatalar yığının gerçek zamanlı olarak kaldırılır. C # 'da, belirtilen hataları başarıyla düzelttiğinizi ya da düzeltmediğinizi fark etmek için projenizi oluşturmanız gerekir. Neden c # ekibi vb.net gibi gerçek zamanlı hatayı doğrulamak için bir seçenek koymadı. Büyük bir çözümle, hatanın gerçek zamanlı doğrulaması performansın çok iyi bir optimizasyonu olmayabilir, ancak düzeltirken bir hata yığını görmeyi seviyorum.

Diğer kişi gibi bahsettiğim gibi, vb.net durumunu okumak için daha kolay olduğunu düşünüyorum ... eğer durum seçerseniz ... son seçin ama devexpress boyama braketi ile söylediklerimi unutun.

Vb.net ile görsel stüdyoda birçok hata var. Visual studio 2010'daki birinden bahsetmek gerekirse, "hepsi" yerine "ortak" modunu etkinleştirdiyseniz, aydınlar doğru numaralandırmayı filtrelemez.

Vb.net ile, kukla bir adam olarak algılanırsınız çünkü statik olarak, daha kötü programcılar c # yerine vb.net kullanırlar çünkü c # daha iyi programlama pratiği öğrenmek ve teşvik etmek daha zordur.

Diğerleri gibi, c # programcı daha fazla para ile iyi bir iş için daha iyi bir şans var.

Müşterinin başında, vb.net = bodrumunda kod spagetti bolluğu ile programlayan adam. c # = wow, çok zekisin. Gerçek şu ki, c # programladığınız için değil, iyi bir program yaptığınız için değil, statik olarak evet.

Tüm bu noktaları ile, tüm benim vb kod c # dönüştürmek seçti. Nesneye yönelik en iyi uygulamalar, tasarım deseni, standartlara uygun kod ve katı sözdizimi ile programlıyorum ve 50 yıl boyunca böyle programlayabilirim ama topluluğun gözünde iyi bir programcı değilim. Kodumu diğer en iyi uygulamalar ile c # dönüştürecek ve başka bir kişi olacak; saygı duymanız gereken harika bir adam ..... :( ne şaka ... !!! ama gerçek bu.


2

İşte bir bakış: SO ve CodePlex arasında hangi dil daha popüler? C # veya VB.Net?

Bazen sürüyü takip etmek iyi bir şeydir çünkü ihtiyaç duyduğunuzda size yardımcı olabilecek sürüdür. Varsayılan olarak, C # Vb.Net'ten daha hızlı olacaktır. Seçenek Katı kullanmak onu eşit olabilir inanıyorum. IL'yi ikisi arasında en son karşılaştırdığımda, VB.Net'in tip güvenliği IL'ye yaklaşık% 15 daha fazla ekledi. Bu ekstra yüke dönüşür. VE ... temelde aynı şeyi yapan diller göz önüne alındığında, daha hızlı olanı alacağım. Kolaylığım, genel olarak kullanıcı deneyimimi geçersiz kılmamalıdır.


2

BASIC'in hala popüler olmasının tek nedeni, Microsoft'un ilk ürünü olması ve son 35 yıldır boğazımızı aşağı atmalarıdır. Çok uzun zaman önce ölmüş olmalıydı.

Bununla birlikte, iki büyük .NET projesi üzerinde çalıştım ve her ikisi de VB.Net ile yapıldı - C # biraz olsa da, çeviri bir sürtüktü ya da yapı VB.Net'te yoktu. VB.Net ile gördüğüm tek avantaj, Visual Studio editörünün C # ile olduğundan çok daha kolay (zaten benim deneyimime göre) olmasıdır - Intellisense daha iyi görünüyor ve böylece otomatik biçimlendirme (C # kullanmadığımdan beri unutmayın) kadar, sadece IDE yapılandırmasında bir şey eksik olabilir ...)

VB.Net'teki büyük bir dezavantaj, VB6 kodunun dönüştürülmesini kolaylaştırmak için .NET 1.x'te bir çok VB6 dönemi bok yolu getirmeleridir. Bu şeyler hala orada ve VB6 kodlayıcıları daha nötr .NET sınıfları / yöntemleri / ne olursa olsun, bu ... "uzantıları" kullanarak yeni kod kodlama. Patronuma neden bu saçmalığı neden kullandığını kaç kez sorduğumu bilmiyorum. “Ama ... İşe yarıyor ...” Doğru. Hey, kaltaktan hoşlanıyorum.

Web'de yardım ararken, çözümlerin büyük çoğunluğunun C #'da olduğunu gördüm - MSDN forumlarına, çeşitli bloglara vb. Göz atın ... Kitaplar C #'a odaklanma eğilimindedir ve bir VB sürümü varsa, genellikle aylar sonra gelir (örneğin Apress'ten Pro LINQ ....).

Birçok dil C soyunu paylaşır, bu da C, C ++, C #, Java, PHP ve diğerleri arasında geçiş yapmayı çok daha kolay hale getirir. PHP burada biraz esnektir, ancak C benzeri yapılara sahiptir. VB? Hemen hemen kendi küçük şeyi ve işte bu.

Kuruluşumdaki bir proje lideri kısa süre önce bana VB - FINALLY yerine C # kullanarak daha fazla yeni projenin geliştirildiğini söyledi. .NET, kuruluşumuzda tanıtıldığında, devam eden tüm VB6 kodlaması nedeniyle az ya da çok resmi olarak VB.Net ile birlikte gitti. Sonradan itiraf edilebilecek güçler, bunun en iyi hamlesi olmadığını.

Yukarıda birisinin işaret ettiği gibi, bir VB.Net projesine hayır demezdim, ancak hala iş yerimdeki yeni gelişmeden yavaş yavaş ortadan kaldırılacağını umuyorum.


1

Bugün, VB.net'i kullanmak için gerçek bir sebep yok. Başlangıçta, VB programcılarına tanıdık bir sözdizimi vermenin bir yoluydu, ama aslında C # 'ın TEMEL benzeri bir yeniden eşleşmesiydi. Bu yüzden tek gerçek avantajı daha tanıdık bir sözdizimidir ve BASIC sözdizimi de gerçek tek sınırıdır.

İki dilin birlikte geliştiği zaman içinde tek önemli fark my sahte ad alanıdır .

C # 'a aşina olmayan her .net programcısına, topluluk oldukça büyük olduğundan ve C benzeri sözdiziminin daha çok kullanılan dillerin çoğunda ortak olduğu için tavsiye ederim.


Neden VB.NET var bir diğer önemli dikkate ASP "Klasik" / VBScript veya VB6 olan projeler için daha kolay bir yükseltme yolu için yapılmış olmasıdır. Mevcut büyük uygulamaları taşımak çok daha az işti.
JohnFx

1

VB, yeni başlayanlar için dilin okunması daha kolaydır, ilk, ikinci ve üçüncü uygulamalarını yazma eğilimindedirler ve ilk uygulamalarımızın nasıl kodlandığını hepimiz biliyoruz.

C ++, Java vb. Programcılar C # 'a taşınırken, VB.NET geliştiricileri VBA, VB ve BASIC arka planlarından, geleneksel olmayan temel programcılardan gelir.


1

VB.NET örneklerinden daha fazla çevrimiçi C # kodu örneği var gibi görünüyor. Birini diğerine dönüştürmek o kadar da zor değil, ama gerekmiyorsa neden rahatsız edersiniz.


1

C # yerine VB .Net'i tercih ederim,

  • (97) ...
  • (98) CB'yi bile bilmeden VB öğrendim.
  • (99) VB .Net'te zaten 10.000 sayfalık bir tome aldım.
  • (100) çünkü VB'de diş telleri yoktur.
  • (101) çünkü herkes VB'den nefret ediyor.

0

C #. Sadece C ve Java yaptım, bu yüzden C # benim için daha okunabilir hissediyorum. C # benim için, çünkü VB.NET eski VB programcıları için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.