|
第一部分
本人之前曾經(jīng)算是個C++高手,之前用過Fortran/Baisc/C,從C和C++居多,最后一句代碼寫在2003年的11月。主要編寫Server端的代碼,但和數(shù)據(jù)庫打交道很少,主要是業(yè)務(wù)模式、架構(gòu)、底層這些內(nèi)容;所學(xué)無外乎模板、虛函數(shù)、算法之類。
到2010年2月開始重新建起編碼,不過選擇了C#,開始編寫Web程序,而且必須與數(shù)據(jù)庫打交道,中間遇到不少困難,也遇到不少新技術(shù)和新環(huán)境,與同在路上的大家分享。
基本開發(fā)環(huán)境選擇
當(dāng)初選擇了ASP.NET 3.5 + MVC2 + LINQ + SSE(Sql Server Express)+ Win7家庭高級版 + IE9,現(xiàn)在一年半下來,沒有太后悔的地方。
ASP.NET環(huán)境
ASP.NET 4.0是最新版本,建議從這里開始。這個沒什么好說的了,既然是新來的,就一定選新的技術(shù),等學(xué)會了,也就變成成熟技術(shù)了;新學(xué)東西,就要學(xué)新東西,這是本人現(xiàn)在的立場,之前吃過虧,曾經(jīng)抱著DOS和TurboC++不放,一直堅持到1999年……
MVC現(xiàn)在最新版本是MVC3。曾有文指出MVC很難學(xué),而Code Behind相對容易理解。同意但同時應(yīng)注意,這是針對首次學(xué)習(xí)語言就是ASP.NET/C#的人說的,如果本來學(xué)過C++,尤其曾經(jīng)在C++中嘗試MVC思想的人,則似乎更容易理解ASP.NET MVC的做法,那點層次也繞不暈人,反而能以“物以稀為貴”增加競爭力。
MVC現(xiàn)在赫然列在ASP.NET首頁的醒目位置,日后必是MS平臺的主流。
ASP.NET官方主頁在這里,下載/討論都有;MVC3主要在這里,下載/教學(xué)/討論都有。
數(shù)據(jù)庫環(huán)境
對筆者而言,LINQ是個比較奇怪的東西,可以理解是“讓C#程序員不學(xué)習(xí)SQL就能訪問數(shù)據(jù)庫的方法”,非常推薦。個人在LINQ和EF(Entity Framework)中間做了很多猶豫,但最終結(jié)果是:除非做巨型的軟件,基本上LINQ就可以用,而且這東西幾乎沒有學(xué)習(xí)成本,說用就用。以后有需要,轉(zhuǎn)成EF也不浪費(fèi)。
SSE是SS的免費(fèi)版本,可以支撐10G空間,對一般的企業(yè)應(yīng)用而言足夠了,推薦在SSE上面做開發(fā)/部署,直到遇到實質(zhì)性障礙為止。
為什么不用MySql?選了LINQ,暫時只能選擇微軟系列的數(shù)據(jù)庫(或許已經(jīng)出來LINQ to MySql了?沒注意),這個會造成一些困擾。但我因為那10G空間足夠用了,所以沒有看到MySQL與SSE的實際區(qū)別。
建議開始可以關(guān)注一下SSCE(SQL Server Compat Edition),是一個微軟新推出的免安裝自驅(qū)動的數(shù)據(jù)庫,最大空間支持2G。如果當(dāng)初微軟就發(fā)布了SSCE,我會選擇SSCE而不是SSE(需要安裝),SSCE與SSE的基本性能相同,有一些限制但不大,而且隨時可以轉(zhuǎn)為SSE?,F(xiàn)在一些Hosting的網(wǎng)站要么只提供收費(fèi)的SS,要么提供SSE但也收取費(fèi)用,而SSCE就不用擔(dān)心這些。
我的網(wǎng)站www.scrum.org.cn就是用的SSCE,此ISP提供的網(wǎng)站空間每月收費(fèi)5美元,而Hosting的SSE也收費(fèi)5美元,所以使用SSCE可節(jié)省掉這5美元,而幾乎沒有任何影響。
LINQ是隨著VS2010一起安裝的,不用單獨(dú)安裝,不知道官方網(wǎng)站在哪,亂搜就能找到一些教材;SSE在這里;SSCE在這里;兩者的區(qū)別在這里;安裝VS2010+SSE有可能出錯,請先看這里。
操作系統(tǒng)和瀏覽器環(huán)境
Win7家庭高級版聽起來很不專業(yè),但到現(xiàn)在為止還沒有出現(xiàn)任何開發(fā)問題,到現(xiàn)在還沒有在本機(jī)部署過,不知道是否可以當(dāng)作Server用,但至少開發(fā)起來沒有任何問題。
IE9肯定是不二選擇,調(diào)試環(huán)境比IE8方便。試過Chrome,發(fā)現(xiàn)MS肯定做了什么手腳,總之覺得沒有IE9方便。
IE9在這里,里邊有一些支持Html5/CSS3之類的內(nèi)容,我還沒試過。
其他開發(fā)工具
Html
筆者第一次學(xué)用Html編寫Web,所以遇到很多困難,不過沒買書,而是在http://www.w3schools.com/(英文)http://www.w3school.com.cn/(中文)學(xué)的,左上角學(xué)習(xí)入口。
里邊有在線調(diào)試器,直接在里邊實驗,直到滿意為止,非常棒的網(wǎng)站。
中文網(wǎng)站有些內(nèi)容不全,比如CSS3/Html5等,找不到就到英文網(wǎng)站看看。
JQuery和JQueryUI
JQuery是用來產(chǎn)生一些動畫效果的,比如鼠標(biāo)滑過的時候顯示某些內(nèi)容,點擊的時候讓某些東西顯示或不顯示,實現(xiàn)拖拽,等等。這一切發(fā)生在瀏覽器里邊,無需驚擾后臺。
JQuery是一種JavaScript工具包,而JQueryUI則是其處理界面部分的一個子集。后者能處理更復(fù)雜的事情,但也很難寫。筆者到現(xiàn)在沒好好寫過JavaScript(以后肯定免不了),如果不想深學(xué),可以先學(xué)一點JQueryUI,一般情況下基本夠用。
JQueryUI在這里,很多Demo可以直接拷貝過來用。JQuery則在這里,本人只路過過,還沒有真正用過。
配置管理工具
一個人開發(fā)也要配置管理工具的,否則很容易出事。
開始我使用SVN Server + TortoiseSVN + 金山快盤,大致玩法如下:
先找一臺電腦做服務(wù)器,安裝上金山快盤,會產(chǎn)生一個20G的虛擬分區(qū);把SVN Server安裝在這個分區(qū)上;然后再在客戶端機(jī)器上安裝Tortoise。每次提及變化,金山快盤都會將變化上傳到金山的服務(wù)器上,因此即使本地的服務(wù)器損毀,數(shù)據(jù)一樣在,很“云”。
在Windows上下載和安裝SVN Server及Tortoise的過程在這里,如果不用金山快盤,這些就夠了。
金山快盤在這里,剛開始只給2G空間,但稍微上傳點東西或每天登陸,就能獲得更多空間,現(xiàn)在本人稀里糊涂就有8G空間了,上限可達(dá)15G,完全夠用。金山是做安全出身的,把密碼設(shè)好點,基本不用擔(dān)心安全問題。這么大的空間,除了代碼,順便把很多項目文檔都一股腦扔到里邊了,才用了1.5G。建議企業(yè)也使用金山快盤做一個異地備份,安全放心。
后來發(fā)現(xiàn)自己不會玩Aphache,所以無法讓別人訪問我的服務(wù)器,而且本地服務(wù)器也沒有外網(wǎng)IP,在外面無法訪問,于是后來改成使用Hosting的免費(fèi)服務(wù)器。
免費(fèi)Hosting SVN服務(wù)器在這里:http://offers.assembla.com/free-subversion-hosting/,空間是1G,無用戶數(shù)限制,日后可以花錢升級,也可以不升級。
到此為止,基本上所需的環(huán)境就全部搭建起來了。
當(dāng)然這一過程宜循序漸進(jìn),比如開始可以直接用金山快盤壓縮-拷貝-粘貼-上傳備份代碼。SVN可以等以后在弄,先把前面開發(fā)必備的東西搭起來,編寫個Hello World給自己打打氣再說。
發(fā)布工具
我自己的產(chǎn)品現(xiàn)在還沒有在外網(wǎng)發(fā)布過,但是卻發(fā)布過別人開發(fā)的產(chǎn)品,就是 www.Scrum.org.cn 上的MojoPortal(一款有點類似WordPress的建站工具,但是是用ASP.NET開發(fā)的,和咱們自己開發(fā)的軟件是一個東西)。
發(fā)布工具優(yōu)先選擇WebMatrix,比VS2010中自帶的好。它的工作原理,就是把某個目錄中的內(nèi)容,發(fā)布到目的機(jī)器上,簡單得令人發(fā)指。
我在這里寫過一個簡單的文章(如果不用MojoPortal/SSCE什么的就無視之),記得第二次發(fā)布的時候,不要發(fā)布數(shù)據(jù)庫,因為目的機(jī)器上面的數(shù)據(jù)才是最新的。
如果數(shù)據(jù)庫結(jié)構(gòu)變化了,只想更新結(jié)構(gòu)不想更新數(shù)據(jù)……我也不知道怎么弄,還沒到這個地步,呵呵。
SSCE可以被發(fā)布到?jīng)]有安裝任何數(shù)據(jù)庫的目標(biāo)機(jī)器上,很不錯。
第二部分
為了學(xué)習(xí)C#,買過書,上過網(wǎng),問過問題,找過人,有的有用,有的幫助很大,有的沒什么用,下面記錄了我自己的過程;每個人會有所不同,請靈活掌握。
買什么書?
買過一本C#的書,看了沒有一周就擱下,幾乎再也沒有翻動過,后來就送人了。
C#和C++還是挺相似的,建議不要買書,而是常常逛逛網(wǎng)站,編編程序,時間長了就學(xué)會了。
看什么網(wǎng)站?
本人當(dāng)年是看一本叫做《Nerd Dinner》的電子書,只有100多頁,但是卻從中同時學(xué)“會”了C#/MVC/ASP.NET/LINQ,當(dāng)然所謂“會”,就是能手不著地地向前走,持續(xù)編寫代碼了。之后就沒有看過系統(tǒng)性的材料,而只徘徊于google/baidu。
電子書下載在這里http://ASPNETmvcbook.s3.amazonaws.com/ASPNETmvc-nerdinner_v1.pdf,在線版本在這里http://www.ASP.NET/mvc/tutorials/introducing-the-nerddinner-tutorial。
微軟網(wǎng)站上有很詳盡的ASP.NET MVC學(xué)習(xí)材料,比當(dāng)年的MSDN強(qiáng)多了,網(wǎng)址在這里:http://www.ASP.NET/mvc,可惜好像沒有中文版本。不過考慮到無非是在屏幕上編寫代碼的問題,就當(dāng)啞巴遇到聾子,干了這么多年C++了,也應(yīng)該能學(xué)會的。
更多的學(xué)習(xí)資料,則在這里:http://www.ASP.NET/mvc/tutorials。
出了錯誤/問題到哪里找答案?
最開始我在前一家公司時,總是找一位高手問(他當(dāng)年也是CSDN專家,不過后來工作忙不常寫東西了),后來發(fā)現(xiàn)每次問他,他總是當(dāng)場到Google去搜,于是就很少去找他了。把問題拷貝到百度/Google里邊,幾乎立刻就找到無數(shù)答案。
推薦用VS2010英文版 + Google(英文Google:http://www.google.com/,如果被跳轉(zhuǎn)到中文Google,鏈接在中文Google的最左下角),因為很多很新的資料,都在國外先出現(xiàn),順序經(jīng)常是產(chǎn)品動向-產(chǎn)品發(fā)布-使用心得/問題問答-結(jié)集出書-翻譯成中文-有人看了-在百度上開始搜到相關(guān)內(nèi)容。這個周期可能要2年的時間,所以對很新的技術(shù)而言,百度能搜到的內(nèi)容比Google少很多。
后來發(fā)現(xiàn)很多問題的答案,都指向兩個網(wǎng)站:一個是前面提到的ASP.NET,另外一個是http://stackoverflow.com/,當(dāng)然別在這里練習(xí)英文寫作,而是在其右上角的搜索框里邊,把幾個關(guān)鍵詞如“mvc controller redirect privous page”敲進(jìn)去,幾百上千個問過的問題就出來了,挑幾個看上去靠譜的打開,多數(shù)回答都帶有代碼,而那個"Answer“是綠色的是被選為標(biāo)準(zhǔn)答案的(和CSDN很類似)。
如果還沒有找到答案,當(dāng)然就可以來CSDN問問題了,不過是否有人會回答,何時回答,都不太受控,不如搜答案來得方便。是個沒辦法的辦法。
NET技術(shù):C++ 程序員的 C# 轉(zhuǎn)型手冊,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。