2009-08-08 100 views
2

我一直在爲網絡開發超過6/7年,現在,在此之前,我開發了大約一年的Visual Basic 6(我非常舒適它當時)和C#上的一兩個月(我忘記了我所學到的大部分內容)。從VB6到VS 2008(C#或VB)

事情是我對一些小的桌面應用程序有一些想法,我想用Python開發,但沒有可用的GUI框架給了我開發VB時的易用性,所以我會開始再次在Visual Studio上開發。

我目前對.NET的知識非常有限,那麼讓我回到正軌的最快方式是什麼?我應該在C#和VB之間選擇什麼語言?我在哪裏可以找到參考資料和教程或書籍?

由於提前

回答

9

不參與語言聖戰,但我曾與五位來自VB6的開發人員一起工作.Net,加上我自己。這並不是很多,但我所看到的對我們所有人都是真實的。

這兩種語言都非常好,我個人沒有偏好。我對兩者都感到同樣舒適,我真的不認爲兩者都優於其他。

但只是基於我所看到的,當移動到.Net時,您最好從C#開始只出於一個原因。 .Net開發更多的是關於學習和使用類庫,而不是語言語義。VB6通過將短語放入語言規範來隱藏其中的一些內容。

當你正在學習一種與你已經完成的語言不相似的語言時,你更有可能尋找「正確」的方式去做事情。

微軟做了很多工作讓VB.Net很容易讓VB6開發人員接受,因此您可以在VB.Net上輕鬆編寫代碼,與您在VB6中做的非常類似。這意味着依靠「快捷方式」並將不良習慣帶入您的.Net開發中非常容易。所以你看到那些不真正「獲取」諸如ADO.Net差異之類的東西的人,並且他們的程序由於此而具有不良的性能和設計問題。

增加了幾個小時後,根據意見

我只是想澄清,我沒有指出VB不如C#。正如所指出的,兩個編譯到相同的MSIL,並且這兩種語言都很好。 「VB6會帶來壞習慣」的含義可以用一個例子來說明:

與我一起工作的五個人中的兩個在代碼中做了同樣的事情。他們需要從數據庫獲取記錄並循環訪問數據,以便對數據進行一些修改。正常的做法是使用DataReader DataAdatpter與DataTable並通過它循環。然而,他們兩個都創建了一些數組變量,然後循環訪問DataReader結果並將它們分配給數組數組,然後循環訪問數組進行計算,這意味着它們不僅增加了不必要的計算週期,而且還將項目出可能的事情被accesed像

到收集的(假設ar爲數組變量,i是索引)

Dim strFullName AS String = ar(i)(3).ToString() + " " + ar(i)(4).ToString() 

他們的方法的工作,但添加額外的週期,並使代碼更難理解。我問他們每個人爲什麼這樣做。其中一位想要在連接關閉後能夠使用這些數據,因此他們不會意外更新某些內容。這是你需要擔心的一個RecordSet,但不是DataReader或DataAdapter。這顯然是有人沒有把握VB6的做事方式和ADO.Net之間的區別。另一個對陣列感覺更舒適,因爲她熟悉它們。

所以我的觀點與一種語言比另一種「更好」無關。這將是傲慢的,也是不瞭解的。在功能上,你可以做的事情不多,而另一個則無法做到。而且我喜歡之前提到的一些VB.Net「快捷方式」。 (VbNewline vs System.Environment.NewLine和整個My命名空間,InputBoxes等)。

我的觀點是,當學習完全陌生的東西時,你不太可能被自己的先入爲主。當我們從VB.Net商店切換到C#商店時,我們看到類似的東西消失。它有什麼與語言和一切與開發人員被迫正確學習,而不是採取捷徑。因此,我堅持原來的建議是因爲這個原因,但無論如何,如果你喜歡VB,那就去吧。不要擔心任何人「看不起」使用它。所有這些「我的語言比你的語言更好」的東西是無稽之談。有些語言比其他語言具有優勢,但在.Net世界中,在VB和C#的辯論中,兩種語言實際上非常接近以至於沒有太大區別。這場辯論毫無意義(並長大)爲「我的爸爸可以毆打你的爸爸」的爭論。

+0

這是錯誤的。 VB.NET和C#都「編譯」到MSIL(Microsoft中間語言)。 IronPython,F#和其他針對公共語言運行庫的其他東西也是如此。 VB.NET是「一流」語言,甚至有自己專門的開發團隊。這就是.NET的美妙之處,它將語言語法排除在外。不管你在哪裏編寫代碼,b/c最後都是MSIL。選擇你喜歡的...我更喜歡VB.NET,儘管我非常瞭解C#。 – Mick 2009-08-08 22:59:46

+0

IronPython ...這是否意味着我可以使用Visual Studio的可視化GUI編輯器來編寫Python代碼?那將是真棒。 – 2009-08-08 23:27:08

+0

這個主題的第一個很好的答案。 +1 – 2009-08-09 07:49:41

3

C#無疑是更好的,它基於標準,類似於JavaScript的/ ActionScript和您可能使用或開發過程中已經使用其他語言。

一些很好的參考資料包括MSDN網站,www.asp.net,http://www.codeproject.com/

2

我目前正在轉換的舊VB6應用程序到VB.NET,更喜歡在C#中的工作,並在.NET中已經發展公平的金額。

如果您熟悉OO編程,特別是JAVA和C++,C#會感覺更好。

由於您對VB6更加適應,VB.Net中很多sugar 都是相同的,但它提供了與C#相同的面向對象功能。

This是一個很好的比較。

由於熟悉VB6,C#和VB.NET在後端是一樣的,VB.NET將是您的更好選擇(我更喜歡C#,如果您在意的話)。

對我最好的教程C#:MSDN C# Programming Guide

The VB.NET equivalent

+0

我也比較喜歡C#儘管我對VB有更多的經驗,但C#語法更吸引我。謝謝,我正在尋找的鏈接。 – 2009-08-08 19:28:14

1

我建議你還是堅持使用VB.net,因爲它是類似於VB(我個人比較喜歡C#)。使用VB.net,您可以獲得與C#幾乎相同的功能。爲什麼你要努力學習像C#這樣的語言,其語法更像C,而且與VB無關,特別是當你正在努力學習一個新的框架時。另外,你可以選擇在WPF中開發。 我會先看http://windowsclient.net/

重要的是,VB.net或C#你現在擁有.net框架的力量。

+0

你可以給我一些關於WPF的燈光嗎?它是什麼,優點和可能更多的網址? – 2009-08-08 23:30:18

+0

http://windowsclient.net/會給你關於技術的見解。但是,只是引用一些實際優勢: *您可以使用WPF中的UI做什麼沒有界限。你可以做一些事情,比如讓一個菜單中的數據網格在WPF中非常簡單。 *如果您來自網頁後臺,WPF編碼將會很直觀。 喬希是WPF的權威人士。看看他的博客: http://joshsmithonwpf.wordpress.com/a-guided-tour-of-wpf/ – 2009-08-09 06:01:51

2

大多數人來自VB背景使用的邏輯是VB.net是VB的自然演化,並且它將是最容易接受的。這個邏輯的缺陷是移動到.net的最大障礙是學習框架。無論語言如何,語言語法都很容易拾取。

當您查找特定編程技術的代碼示例時,您會發現這些示例中的絕大多數都在C#中提供。幫你一個忙,從C#開始。只要我爲什麼C#是高級語言(我確實相信它),但有一個參數列表,但選擇它的最實際的原因只是一個方便的問題。如果你選擇VB.net,你最終會在某個方面學習C#,無論如何你會越來越沮喪地嘗試用vb中的例子來查找文章,書籍,論壇帖子等。提供這些示例的人員類型傾向於C#,並且只有少數人提供了這兩種語言的示例。

1

我來自一個Visual FoxPro背景,發現VB.NET語言更自然 - 學習 - 語法更接近VFP。這使得生產速度更快。我懷疑你可能會發現來自VB的相同內容。但是,如果你確實選擇了VB.NET路由,你可能會發現在C#中的Web上有更多的代碼示例。我發現像www.developerfusion.com/tools/convert/csharp-to-vb這樣的轉換器對於將它們翻譯成VB.NET非常有用(它也可以反過來工作)。

+0

非常感謝您的鏈接,因爲PHP的語法更爲人熟悉,所以我將使用C#,但該鏈接將派上用場。 =) – 2009-08-08 23:09:10

1

我現在的.NET的知識非常有限 ,這將是最快的方式 讓我回到正軌?我應該在C#和VB之間選擇什麼語言 ?

讓我先說我喜歡VB.NET和C#。我知道他們,並且我偶爾使用它們......

這樣說,你認爲德爾福?與VB.NET和C#不同,它編譯爲本地代碼,如C++。如果你熟悉VB 6,它將很容易轉換到Delphi。

Delphi(Anders Hejlsberg)的創建者也創建了C#。

您可以免費使用Turbo Delphi(基於Turbo Delphi 2006)。還有一些great resources在線可用於learning Delphi

許多流行的程序都是用Delphi編寫的,包括Skype,Spybot Search and Destroy,Macromedia Homesite,Copernic Desktop Search等等。

如果您正在尋找易於使用,功能強大且具有高質量GUI庫的編程語言,那麼應密切關注Delphi。 Delphi(和C++ Builder)都利用了VCL(可視化組件庫),這是一個高質量,不斷更新的GUI工具包。

給它一個旋轉,你不會後悔的!

+0

我是Mick,讓我說Delphi在我年輕時是我最喜歡的編程語言,但.Net有一個更大的社區,我可以使用Express版免費玩它。 – 2009-08-08 23:07:50

2

我花了超過10年的時間做VB。版本1到6.當VB.NET出現時,它似乎是自然遷移,但我從一開始就厭惡它。我無法理解它。

所以我學習了Java,但它不是很令人滿意。至少我現在可以在Linux上運行我的應用程序。

然後莫諾來了,所以我學習了C#。多麼新鮮的空氣! .NET框架現在已經有了很大的意義,就像VB.Net一樣,它只是讓我感覺不對。在圓孔中的方形掛釘。

+0

很高興知道,實際上我非常有興趣瞭解更多關於.Net的內容嗎?我應該閱讀任何專門針對.Net框架的內容,還是通過在C#或VB中閱讀/編碼自然地學習它?你採取了什麼路線? – 2009-08-08 23:25:43

+0

很難擺脫VB的心態。一旦掌握了語法(主要是通過示例學習),.NET框架就已經落實到位,並且一路走來。 – FlappySocks 2009-08-09 01:33:13

3

我已經使用了Visual Basic約9年,並在其中製作了一些非常流行的應用程序。當我遷移到.Net時,我使用了VB.Net,第一年,我對它有了很多樂趣。它確實讓我帶上了一些VB包,更快地完成了任務。

然而,隨着我在C#中閱讀和重新閱讀代碼示例並開始學習一些語言,我對更多學科方法印象深刻。我用C#編寫了一些現有應用程序的代碼(類庫),並且我非常喜歡這種體驗,因此大約3年前我退出了VB.Net,從那時起我一直只使用C#編寫代碼。

這些天我製作網絡應用程序並贏得應用程序,所有這些都在C#中。

1