2011年7月28日

CodeBehind和CodeFile的歷史故事

今天晚上,我朋友丟了一個問題給我,問題內容大致上是這樣的:"我在網路上看到,大家都說CodeBehind是.net 1.1時代的東西,現在用CodeFile比較好,但為什麼VS2010的web application專案,自動建立出來的,都是CodeBehind??",聽完這個問題,我當下反應是愣了一下,因為完全沒想過這方面的事情啊XD,後來查了一下,也順便在這裡做個整理。

首先,的確,早期1.1是使用CodeBehind,到了2.0時期,出現了CodeFile,甚至到了.net 3.0時期微軟的MSDN也是建議換成CodeFile:

This attribute is included for compatibility with previous versions of ASP.NET, to implement the code-behind feature. In ASP.NET version 2.0, you should instead use the CodeFile attribute to specify the name of the source file, along with the Inherits attribute to specify the fully qualified name of the class.
http://msdn.microsoft.com/en-us/library/ydy4x04a%28VS.85%29.aspx

而且,MSDN也有How To教學,教導大家如何更換:
http://msdn.microsoft.com/zh-tw/library/ms227671%28VS.80%29.aspx

但是到了.net 3.5時代,那段建議就被拿掉了,取而代之的是:

CodeBehind

Specifies the name of the compiled file that contains the class associated with the page. This attribute is not used at run time. This attribute is used for Web application projects. The CodeFile attribute is used for Web site projects. For more information about Web project types in Visual Studio, see Web Application Projects versus Web Site Projects.

CodeFile

Specifies a path to the referenced code-behind file for the page. This attribute is used together with the Inherits attribute to associate a code-behind source file with a Web page. The attribute is valid only for compiled pages. This attribute is used for Web site projects. The CodeBehind attribute is used for Web application projects. For more information about Web project types in Visual Studio, see Web Application Projects versus Web Site Projects.

所以,其實在2.0~3.0這段期間,大家說要把CodeBehind改成CodeFile,其實也沒有錯,因為當初MS的確是這樣建議的,但是到了.net 3.5時期,MS就把這兩個區分出來,如上面文章所示,現在的CodeBehind是應用於Web application project裡面使用,也就是用於先編譯成dll的專案,而CodeFile則是使用於Web site project的專案,也就是傳上.cs檔案到Server,讓Server編譯,所以依據現在來看,CodeBehind已經不等於舊時代的產物了喔。

安裝SQL Server Data Tools - DataBase Projects

2012/4/4 從SQL Server Developer Tools,Codename “Juneau” CTP3版本更新成SQL Server Data Tools – DataBase Project
2012/4/6 更新Web Platfrom找不到SQL Server Data Tools之問題,並提供連結下載位置。

SQL SERVER 2012終於上市了,雖然說SQL Server Management Studio Express也現在也變成Visual Studio為基底,但身為開發人員的小弟我,比較關注的是SQL Server的開發工具(SSDT),但有甚麼不同呢!?根據小弟我的觀察SQL Server Management Studio Express偏向於DBA層級使用,可以進行完整的DB控制,但SQL Server Data Tools是比較偏向給撰寫SQL程式的程式設計師使用,所以未來我們寫程式的人,就可以不需要再多灌一個SQL Server Management Studio Express了,可以裡用SQL Server Data Tools完全整合到Visual Studio裡面去!,甚至針對撰寫的SQL加入版控!!

既然我是Web Platfrom的愛用者,當然就直接在Web Platfrom上面裝嚕,如果不清楚Web Platfrom的朋友們,可以參考這篇

首先第一步,選擇的產品是Microsoft SQL Server Data Tools – Database Projects
確定無誤後,就按下安裝,然後就等待完成!( 網友大胖哥有提到Web Platform Install 3.0會找不到 SQL Server Data Tools,目前只有Web Platform Install 4.0 Beta才有提供SQL Server Data Tools,所以有需要的人可以利用這個網站,直接下載SQL Server Data Tools或是利用這個網站下載Web Platform Install 4.0 Beta並安裝SSDT。 )

image

安裝完成後,我們可以從開始列,看到新的軟體"Microsoft SQL Server Data Tools"!!

image

改快開箱看看,這時候,就會將整個VS2010啟動起來!沒錯,和普通啟動Visual Studio沒兩樣…

image

但仔細觀察後,我們可以發現上面多了SQL(Q)和SQL Server物件總管。

image

打開SQL Server物件總管,我們可以趕快來增加一台SQL Server看看!

image

到這邊,應該就有SQL Server Management Studio Express的感覺了吧,然後輸入你的SQL Server name和帳號。( 不過為啥這個還是英文阿- -?,進去就全是中文了,不用擔心 )

image

登入進去後,我們就可以利用SQL Server物件總管來對資料庫進行SQL的開發與撰寫。

image

後面會開始介紹,SQL Server Data Tools的強大功能!