《Visual C# 2010 精要剖析》贈書活動名單

此次留言索取贈書者超出預訂贈送的數量,因此未拿到贈書者請多多包涵,接下來還有其它贈書,我們下次見。 :)

文末列舉此次獲取《Visual C# 2010 精要剖析》贈書網友名單,請將收件地址與姓名資料,以「C#  精要收件資料」為主旨,回覆以下電子郵件帳號,書籍入庫後於七月寄出。

主旨:C#  精要收件資料
eMail:tim@pie.com.tw

贈書名單(以  * 標示者表示來信收到)


  • 呆呆*
  • ccjason*
  • 國樑*
  • George*
  • 呆呆騰*
  • 婷芳*
  • Eric chang*
  • yifang*
  • 小歐ou*
  • 戴爾麥菜*
  • 水母漂*
  • JengTing_政廷
  • Allen*
  • Weber*
  • jymin*
  • Eric*

以上預祝學習愉快

Good Luck :)

ASP.NET 網站架構模式速談

ASP.NET彈性相當大,從個人小網站到超大型全球性網路服務,只要有錢有人都可以開發的出來,要具備這麼強大的能力,她的複雜度是可想而知的,不過正因為彈性,對於入門者或是有經驗的開發人員,都可以在使用 ASP.NET 的學習與開發過程中獲得滿足,無論是成就感或是滿足感,甚至賺到錢的飽足感。

這裏分享一下自己的 ASP.NET 經驗,從簡單到複雜,快速的來看看ASP.NET 幾種開發設計的架構模式。
  • 最簡單

以這種模式建構網站最簡單,拉好控制項,完成設定,寫一些程式碼,一個網站就完成了,這是吸引初學者投入 ASP.NET 最有效的方式,也因此寫書時最喜歡拿這個炫耀給讀者看,證明一般人不需要多辛苦就可以成為一名 ASP.NET 網站程式設計師,帶大家一起跳火坑。
  • 稍微像樣的模型

一旦開始真正下海開發 ASP.NET 網站,你就會發現用最簡單的方式來開發行不通的,然後會嘗試將其中一些程式碼切割出來,程式量就開始大了起來,不過還算單純,只要學好 C# ,會設計類別就不會有太大的問題。

  • 像樣不夠還要好維護

從網頁抽離出來的程式碼愈來愈多,接下來會就變得很難維護,在這種情形下,針對這些程式碼,再進一步作切割的動作,而最明快的作法是直接分成兩種,一種是與資料庫直接存取有關的程式碼,也就是與 CRUD(新增、查詢、修改、刪除)功能有關的程式再抽離出來,這一堆程式碼集中在一起變成資料層,剩下的就是邏輯層,邏輯層不牽涉資料的存取,重點放在提供網站各種運算服務邏輯所需的程式碼。
  • 彈性是大型程式設計的真理

網站規模一旦開始成長,就必須考慮到彈性的問題,特別是資料的抽換與擴充,要達到這個目的當然就從資料存取的相關程式碼開刀,至於怎麼下刀,一個很簡單的原則,不要直接存取資料庫,再建立一個虛擬層對應至資料庫,然後再次抽離包含 CRUD 的程式碼,只針對這層虛擬層進行存取,而關於底層資料結構的變動,則直接由這一層虛擬層來負責。
  • 不要讓彈性成為效率的殺手


一般來說,網站成長到需要建立對應資料庫的虛擬層,通常已經很大了,而其中的維護工作相當費力,當然很厲害的台灣老板還是可以用非常精簡的人力進行開發維護的工作,苦命工程師們如果不想爆肝只有兩條路,一是老板增加人力,當然這是只是理論,原理很簡單卻窒礙難行,另外一條路就是從架構上再動手腳,以工具取代人工維護虛擬層運作,因此網站進一步導入 ORM 技術,也就是 Entity Framework。
  • 面子裏子都要
內涵有了,要吸引人最快的方式當然就是一張漂亮的臉蛋,漂亮也不見得成得了巨星,想要影史留名,朝演技派前進是必經之路,ASP.NET 網頁儘管可以作得很漂亮,但就是缺少了生動的靈魂,所以 Silverlight 、 Flash 就這麼進駐為單純的網頁改頭換面。
  • 說好的溝通呢


當系統發展到這裏,該追求的維護效率與開發彈性也都差不多了,只是系統膨脹到這種規模無可避免的,接下來就會產生溝通的問題,從伺服器資料庫到最前端的網頁介面,資料不可能如同一開始只有兩層時,直接在兩端來回傳送,因此進一步導入了各種溝通的機制,Web 服務、WCF 等技術根據需求被融入設計當中。

沒有最完美的架構,只有不斷演進的設計,網站就如同一個巨大的有機體,只要運作的一天,就會有維護與改進的需求,所以建構網站的技術一再的翻新,有用的沒有的技術不斷的出現,這是一條沒有盡頭的漫漫長路,所以認命吧,直到真正退休的一刻,學習都不會停止。

全球程式言語愛用排名 - C# 挺進第四名(下)

接續上一篇「全球程式言語愛用排名 - C# 挺進第四名(上)」,這裏繼續討論關於選擇程式語言種類的一些參考,這篇是給完全沒概念的入門者看的,高手們就請不要浪費時間了。XD

如果已進入職場,大部份的情形下,學習何種語式語言是由老闆或是案子來決定的,自己通常無能為力,除非有過人的毅力全心奉獻給工作行有餘力還能抽出時間進修,當然這對於熱血的社會新鮮人也不是難事,因此以下的建議可以參考,另外如果是學生,那恭喜你,有的是時間學習至少三種以上的語言(不要懷疑,一堆鳥公司開出來的條件要會十種以上,會三種至少可以壯一下膽),以下就花點時間看一下吧。

從前一篇的附表裏面可以看到,地球上程式語言種類數量著實不少,要取捨的話,當然直接從排名下去抓最快,完全沒基礎又沒有任何立場的入門者,前一篇已經討論過了, C# 給他衝下去就對了,如果接下來還要學其它的,就得好好考慮一下了。

// Java

來看 Java ,這幾乎是世界上最多人愛用的語言了,近年拜 Android 之賜,在行動裝置領域,Java 更是橫掃千軍,所以要走軟體這一行,未來 Java 還是一定要會的,想像一下你用 Java 寫出來「憤怒的小烏」,躺著就有錢收,多麼夢幻的未來呀,更幸運的是,如果你學好 C# , Java 幾乎可以說是通了,一魚兩吃,因為這兩個語言的語法、觀念幾乎完全相同。

// C 語言與 C++

C 語言相當重要,每個資X系的學生多少一定要碰到的,在台灣這個硬體大國尤其對未來的職場身價有一定的幫助,況且這門語言是近代程式語言之母,不學實在說不過去,不過它的門檻不低,相對要付出較高的學習代價就是了,語法本身不太需要擔心,Java 與 C# 本身就是取法自 C 語言的,所以會 C# ,C 語言的語法就沒問題,關鍵在於指標之類的觀念與實作,這對於一開始從 C# 、Java 這些語言進入的開發人員來說比較難以適應,這些語言已經將指標之類的東西包裝到看不見了,要回頭認識這些東西會很痛苦,如果你未來想要走的是純應用領域,例如資料庫應用程式或是 Web 應用程式開發,應該是不太需要了。

C++ 是 C 語言的物件強化版,這個東西的難度與 C語言不相上下,且更為複雜,同樣的,如果走應用路線的就先擱著吧。

還有幾個特定語言,這些語言的功能性比較沒有那麼全面,不過因為與特定的領域有關因此需要注意,首先是 Objective-C ,如果你要往 Apple 相關產品的領域發展,這是一定要精通的,沒啥好考慮的,學就是了,想像一下你用 Objective-C  寫出「憤怒的小烏」,躺著就有錢收,多麼夢幻的未來呀。

// 其它

PHP是純粹用來開發以網頁為基礎的Web應用程式專屬語言,facebook 即是以 PHP 發展出來的,功能相當強大且支援廣泛,可以考慮瞭解,想像一下你用 PHP 寫出一個會員有十億人的社群網站,雖然要背叛幾個朋友,但是年紀輕輕身價就超過十億美金,比爾蓋茲都會自動與你交朋友,多夢幻的未來呀…

談到 PHP,你應該也聽過 ASP.NET ,這裏要釐清一下,與 PHP 不同的是, ASP.NET 本身只是一種類似  PHP 的技術名稱而非語言,它用的語言是 C# ,所以 C# 學好就能用 ASP.NET 了。

另外還有一個必須特別注意的是 JavaScript ,這個語言因為 HTML5 而開始重生,建議特別關注一下(我是認真的),不過也不用擔心,它的語法完全就是 Java 的翻版,會 Java 就差不多會 JavaScript 的語法了,雖然這兩者之間除了名稱都與咖啡扯上邊之外,一點關係也沒有。

至於學  JavaScript 有什麼好處,想像一下你用 JavaScript   寫出「憤怒的小烏」,躺著就有錢收,多麼夢幻的未來呀。

對了,還有一個 Basic ,這個語言要說清楚有點複雜,它的定位很尷尬,有機會再談,初學者不建議就是了,反正愛用的愈來愈少,應該沒人會想用 Basic  寫「憤怒的小烏」吧,所以囉 …

// 最後

事實上,程式語言邏輯上都是相同的,一旦精通一種,換用程式語言其實只需注意語法差異與 API 調用方式的分別,所以一堆鳥公司要求你會十種以上的技術其實都被大家誤解了,這些老板們鼓勵年輕人成為全方位人才其實真的用心良苦呢。

暫時先這樣,有機會再補充。

Good Luck :)

《C# 2010 精要剖析》贈書活動


  • 活動日期:
    2011/06/15 ~ 2011/6/29
  • 辦法:
    活動期間,於本篇網誌下方留言,說明您想學習 C# 的理由,即有機會於本書出版時獲得一本贈書。
  • 數量:
    10 本(不包含已預訂者)
說明:

1. 留言請務必填上暱稱以利識別,無暱稱者視為一般留言不納入贈書活動。
2. 獲得贈書者不需付出任何費用,郵寄費用由本站負擔。
3. 贈書純粹提供自學,覺得太簡單歡迎轉送,但請勿拍賣。(請自由心證)
4. 獲得贈書者屆時需提供聯繫 email 與寄書地址等相關資訊。(資訊不會公開)
5. 所有參加者相關資訊只提供此次贈書活動,不作其它用途。
6. 其它不足者後續補充。

預祝大家暑期學習愉快。

:)

P.S.
  • 贈書純粹希望想讀的人可以拿到,沒什麼規則,亂送一通,有拿到就好,沒拿到請海涵,留言者均非常感謝你們的參與。
  • 此次送書預計有四波,接下來還有資料結構、C語言入門,9 月順利的話還有超重量級的書給大家,希望儘量讓大家拿到想要的書。
  • 本站保留活動辦法變更權利。

全球程式言語愛用排名 - C# 挺進第四名(上)

好吧,如果你問我入門程式設計領域,從什麼語言開始最好,私心會跟你說,C#,當然不是因為我接下來的 C# 新書要出版了,我更希望工作室的 C語言入門經典能大賣,至於為何推薦 C# ,有幾個重要的原因,請聽我娓娓道來,不過,先來看一下 TIOBE Programming Community index 六月最新的排名:

圖表出處按這裏

學習任何程式語言,有一個先決條件就是,工具不能花錢,這沒什麼困難,免費工具到處都是,從 C 言語、Java、C++ 到 Visual Basic ,全都找得到,有某些工具甚至是複合式的,可以同時支援數種不同的語言開發,不過,重點是工具要好用,整合度高,初覺者可以直接上手,這就不簡單了,在這一方面,用來學習 C# 的這一款 Visual C# 2010 Express 絕對是箇中最出色的,不旦免費,且易上手,用來學習開發相當方便,最重要的是,它是由微軟發展的商業軟體,而相較於開放源碼的產品,商業軟體在易用性與各種設計的細膩度上,通常也會作的比較好。

工具解決了,接下來就是語言本身特質,有兩個重點,第一個是物件導向特性必須完整,第二個則是語法最好趨近 C 語言,符合這兩種條件的就不多了,一個是 Java ,一個就是 C# 。最後要考慮的是學習資源,這門語言當然愈多人用愈好,資源多也比較好學習,要找到人問也很方便,這一方面,就非 C# 莫屬了。至於你問我為何不推薦 Java ,最主要的原因是上手的問題,對一個初學者來說,透過 C# 進入,正體中文的學習資源充沛完整,這可以讓你在學習過程中減少很多挫折。

這篇文章所列舉的排名表並非代表最多人使用的語言,它所代表的意義,大致上是這些程式語言受全球開發人員喜好的程度,這是入門程式設計領域選用語言一個很好的指標,其中有幾項重點初學者可以注意,包含程式語法的互通性以及未來的前景等等,休息一下,下一篇我們再作個完結。

全球程式言語愛用排名 - C# 挺進第四名(下)

《Visual C# 2010 精要剖析》- 事件與委派
(前言)

《Visual C# 2010 精要剖析》這本書設定在完全沒有基礎的入門初學者,同時考慮到教學難度,因此在舊版中,一些我認為不是很適合入門的主題抽掉了,而「委派與事件」便是其中之一。

拿掉是拿掉了,不過這個時代有網路,出版不一定要透過紙本,當然要賺錢的話最好還是印成紙,因此我將相關的內容整理一下,逐日貼上來,有興趣的讀者可以自己下載來看。

這一篇關於事件的內容討論這一篇關於事件的內容討論只是開場非常簡單,不過為了文件的完整性,還是先將其貼出來,下一篇就會談到委派的運用。委派與事件處理是相當重要的議題,不會這個,功力馬上遜掉一半,其實說穿了也沒什麼,就是先準備個工具包,看以後要作什麼事,再將工具放進去的意思,癈話不多說,先來看今天的簡單事件說明。

CH21_關於事件

《Visual C# 2010 精要剖析》- 事件與委派(2 )

這是事件與委派的系列文章,閱讀之前請參考文末前兩篇:

事件本身代表某種動作被執行時,所產生的信號,應用程式根據信號提供適當的回應,事件由類別物件所產生,其他物件或方法處理器因此被通知處理所觸發的事件,而其間的關聯則透過委派物件來完成。

建構應用程式的事件機制,首先必須定義實作事件所需的委派類別,宣告事件,然後定義處理事件的方法,當事件被觸發的時候,委派物件所參考方法則執行以回應事件,撰寫事件處理程式所需的一般步驟如下 :

  • 宣告委派類別 。
  • 定義 System.EventArgs 類別的衍生類別,儲存事件相關資訊。
  • 於可能觸發事件的類別,使用關鍵字 event 宣告事件。
  • 定義事件處理程式之方法成員。
  • 使用委派物件封裝方法成員。
  • 引用委派方法處理觸發事件。
這篇先小談一下相關的議題,待下一次將完整的內容上傳至 Scribd ,感恩。 :)


網誌存檔