2008年3月31日 星期一

使用VSTS 2008的ApplicationDiagram設計架構(2)

使用ApplicationDiagram所設計好的架構,除了可以很快速的規劃出系統的整體架構之外,其實還有另一項很強大的功能,那就是可以使用VSTS開發工具,將ApplicationDiagram所設計規劃的應用程式架構,直接實作成可開發的專案應用程式範本。

接下來亞當斯來介紹一下,如何使用VSTS將ApplicationDiagram實作開發專案的步驟:

1.首先假設亞當斯已經使用ApplicationDiagram設計好一個CRM的系統架構,(詳細設計方式可以參考之前的另一篇文章:使用VSTS 2008的ApplicationDiagram設計架構(1)),如下圖所示:。

04

2.接著,在設計的畫面區,先點選你想實作的系統,按下滑鼠右鍵選擇「屬性」,叫出屬性設定視窗。因為在實作專案應用程式之前必須先設定好相關的屬性,例如:是使用那一種語言開發的,或是要執行在哪一個framework版本上面...等等。亞當斯把以上三個應用程式設定都使用Visual Basic語言,平台是.NET Framework 3.5,設定好的屬性請參考以下圖示。

06-CrmWeb 06-CrmAdmin06-CrmService06-CRMDatabase 

 

3.接著,點選要實作的系統,接著按下滑鼠右鍵,選擇「實作應用程式」,就可以產生這個應用程式的開發專案,這邊亞當斯直接針對設計區的空白處,點選右鍵並選擇「實作所有應用程式」,一次將所有應用程式的專案產生出來。
05 4.透過設計工具,將自動把所有的應用程式開發專案自動產生出來,實作過程當中會跳出下列視窗確認系統自動產生專案範本的設定是否正確,如果確認無誤,手不要抖,直接給它勇敢按下確定。
075.在方案總管中,你將可以看到透過工具自動產生出來的所有專案架構了,這樣可以節省手動設計分散式架構的開發,實在是一個很Cool的設計吧!
09

2008年3月29日 星期六

使用VSTS 2008的ApplicationDiagram設計架構(1)

VSTS提供一個很讚的分散式系統設計的架構規劃樣版,這個樣版使用VSTS 2008建立時,屬於「分散式系統」專案類型,透過這個專案類型下的「應用程式設計」、「系統設計」以及「邏輯DataCenter設計」可以規劃一個蠻完整的分散式整體架構圖,這邊亞當斯先記錄「應用程式設計」專案的設計和操作方式。

1.首先,打開VSTS2008(or VSTS2005),選擇建立新專案,專案類型選擇「分散式系統」,範本選擇「應用程式設計」,設定好專案名稱和位置之後,按下確定。
012.建立好專案之後,在專案的「Solution Items」資料夾下會有一個副檔名為.ad的設計檔,對DemoApplicationDesign.ad雙擊滑鼠,就可以看到DemoApplicationDesign.ad設計區。
3.打開工具箱,先檢視一下工具箱中可以設計架構的控制項,工具箱中會分為三大類,分別為「一般設計工具」、「端點」以及「應用程式」,如下圖所示。
02

4.假設亞當斯要規劃的是一個CRM系統,總共會有一個Windows應用程式當用戶端,一個ASP.NET應用程式當客戶管理WEB使用者介面,一個Web Service負責處理CRM的邏輯運作,最後再加一個Database用來儲存CRM的客戶資料。從工具箱中拖拉適當的控制項到設計畫面中,如下圖所示:
035.最後將這幾個應用程式的關連使用端點串接起來,例如:CrmAdmin會直接存取資料庫,而CrmWeb則先會叫用CrmService這個Web Service,接著透過CrmService中所封裝的服務存取CRMDatabase資料庫,當將這幾個應用程式串接起來之後,整個分散式系統嚴然成型。
04

2008年3月19日 星期三

SQL Database Publishing Wizard整合VS2008

上一篇文章提到Microsoft SQL Server Database Publishing Wizard 1.1的簡單使用方式,事實上安裝完之後,它已經整合到Visual Studio 2008中,也就是說你可以在Visual Studio 2008的資料連結功能中,直接把可連結的資料庫直接轉成完整的Script檔唷。

以下為Server 資料庫發行精靈整合使用Visual Studio 2008的步驟:
1.在有裝Visual Studio 2008的電腦上安裝Microsoft SQL Server Database Publishing Wizard 1.1
2.打開Visual Studio 2008新增一個專案,這邊亞當斯新增一個叫「DemoWindows」的Windows應用程式專案。
3.打開伺服器總管,在資料連結加入一個新的資料連結,連到想產生程式檔的資料庫,這邊選Northwind。
4.選取Northwind連線,按下右鍵,選擇「發生至提供者」,就可以開啟Server 資料庫發行精靈。

SQLVS01
5.接下來只要按照上一篇所列的步驟,逐步執行即可。

如需使用方法的進一步詳細資訊,請參閱 http://www.codeplex.com/Wiki/View.aspx?ProjectName=sqlhost&title=Database%20Publishing%20Wizard (英文)

2008年3月18日 星期二

SQL Server Database Publishing Wizard 1.1

以往亞當斯在開發專案時,或是準備課程時,有時候需要將一個資料庫移轉到另一台SERVER上使用,可是SQL Server預設所提供的功能,只能針對資料庫中的物件產生Script,然而可惜的是這些Script都只包含物件的Schema,而沒有包含資料的資料。舉個例子:在上線SQL Server上的Northwind資料庫,我要移轉到另一台Server上面開發測試,這時候你可以使用SQL Server的產生指令碼來產生Script,到另一台跑完這些Script之後會發現,哇咧~只有資料庫和資料表咧,資料呢?根本沒有資料,對吧!!這時候百般無奈在心頭阿~如果開發者是使用伺服器等級的資料庫那還OK,可以用匯入、匯出來解決(不過亞當斯覺得這個方法還是有點遜...Orz)。

偏偏亞當斯裝的是SQL Server EXPRESS(窮人家小孩,只裝得起免費又好用的 XD ),那麼就算是有裝管理工具:SQL Server Management Studio Express,但不巧的是SQL Server Management Studio Express沒有匯入、匯出的功能,所以遇到這種問題時,真的很頭大。總希望,可以有一個功能就直接把Database中的資料和結構全部產生,問題是,就連SQL Server 2005都沒有這樣的功能,還好,帥小宇有跟亞當斯說,微軟網站提供一個免費又好用的工具給亞當斯用,用過的都知道讚啦!這個小工具就是:Microsoft SQL Server Database Publishing Wizard 1.1(SQL Server 資料庫發行精靈)。

SQL Server 資料庫發行精靈提供一個方法,可以將資料庫發行到 T-SQL 指令碼,重點是:它可以選擇直接與 Visual Studio 2005 及 (或) Visual Web Developer 2005 整合,使開發環境中的資料庫更容易發行。

下列簡單記錄一下使用步驟:
1.由上列網址下載完後,在你的電腦執行安裝,一直都按下一步至完成。
2.從開啟應用程式選單中,開啟資料庫發行精靈。 SQL01
3.選擇伺服器來源並且設定認證方式,在此亞當斯挑選localhost的資料庫(這個環境是有SQL Server 2005,因為亞當斯是在MOSS的環境中測試的,如果只有EXPRESS一樣的做法唷)。 SQL02
4.接著選擇要產生Script的資料庫,在此亞當斯選擇大家最常用的Northwind! SQL03
5.最後決定輸出的位置,如:C:\Temp\InstallNorthwind.sql,這樣就大功告成了,按下完成直行轉換程式碼。
SQL04 將來只要將這份InstallNorthwind.sql複製到另一台SERVER上RUN一下,整個資料就過去了,超好用的!分享給各位知道一下囉!

2008年3月16日 星期日

Feature的Location和GroupId設定組合

使用網站功能(Feature)可以更方便的變更Windows SharePoint Services的網頁選單功能,例如在網站動作中新增一個新的自訂選單,或是在清單的畫面中異動按鈕或功能等等。然而要設定這些自訂動作的話,在Feature中就必須設定適當的Windows SharePoint Services命名空間,其設定的主要關鍵項目為:Location和GroupId。

不過這些Location的設定組合還蠻多的,當然亞當斯不可能全部記起來,所以在此將SDK中所有的可能設定組合記錄一下,下列表為所有的LocationGroupId對應組合:

Area Location GroupId

Display form toolbar

DisplayFormToolbar

n/a

Edit form toolbar

EditFormToolbar

n/a

New form toolbar

NewFormToolbar

n/a

List view toolbar

ViewToolbar

n/a

Edit control block menu (per item)

EditControlBlock

n/a

New menu for list and document library view toolbars

Microsoft.SharePoint.StandardMenu

NewMenu

Actions menu for list and document library view toolbars

Microsoft.SharePoint.StandardMenu

ActionsMenu

Settings menu for list and document library view toolbars

Microsoft.SharePoint.StandardMenu

SettingsMenu

Upload documents menu for document libraries

Microsoft.SharePoint.StandardMenu

UploadMenu

Site Actions menu

Microsoft.SharePoint.StandardMenu

SiteActions

Site Settings Site Collection Administration links

Microsoft.SharePoint.SiteSettings

SiteCollectionAdmin

Site Settings Site Administration links

Microsoft.SharePoint.SiteSettings

SiteAdministration

Site Settings Galleries Links

Microsoft.SharePoint.SiteSettings

Galleries

Site Settings Look and Feel links

Microsoft.SharePoint.SiteSettings

Customization

Site Settings Users and Permissions links

Microsoft.SharePoint.SiteSettings

UsersAndPermissions

Site Actions menu for surveys

Microsoft.SharePoint.StandardMenu

ActionsMenuForSurvey

Site Settings links for surveys

Microsoft.SharePoint.SiteSettings

SettingsMenuForSurvey

Content Type Settings links

Microsoft.SharePoint.ContentTypeSettings

n/a

Central Administration Operations page

Microsoft.SharePoint.Administration.Operations

n/a

Central Administration Application Management page

Microsoft.SharePoint.Administration.ApplicationManagement

n/a

2008年3月14日 星期五

ASP.NET 3.5將於3/18正式上架

千呼萬喚始出來,原本應該在這禮拜就可以看到作品的,然而因為封面設計的Delay,造成整個進度延誤將近一個禮拜,最後確定將會在3/18正式上架。

老實說,個人對這個封面的設計風格沒有太多的好評。然而這是一個見人見智的看法了,因為每個人的審美觀都不同,就好比有人認為林志玲美若天仙、沉魚落雁,但有人就認為只有端莊賢慧、可愛迷人,但不至於到~仙!這就是每個人的看法不同。基本上我個人對於美工設計上的灰色和銀色說實在沒什麼好感,尤其是在網站上用銀灰色代表科技感,一點都不覺得哪裡科技了,灰沉沉的一點生氣都沒有,以往和我配合的美工,只要用到灰色系,馬上就會要求更換色系,我想倒是比較喜歡暖色系的系列,我想冷色系對我可能真的沒啥吸引力吧!

這次的書封面用了大量的銀和灰,雖然有用亮度區分深淺層次,然而總感覺沒啥特點,我想書的封面顏色除了要能夠吸引人之外,重要的是封面要能用簡單的一頁代表這整本書的精神所在。然而,這個精神亞當斯並沒有在這個封面上感受到,米米貓說封面很像微軟的Visual Studio產品封面,仔細一看以為這是微軟官方正式的系列產品,雖然這樣好像也不錯,可能會增進銷售量,但是總是讓亞當斯HIGH不起來。

我想一本書的生成作者都會蠻用心的期待著,而封面也可以說是一本書的門面,就如同父母親都喜歡自己的小孩長的帥或生的美,被別人被說帥啦、水啦,而不是說~你的小孩長得很"忠厚老實喔"。

我想次的封面還真的很忠厚老實,完全沒有感動我自己,殘念。

ASP.NET 3.5

P.S:這時候應該有些人會想:你這個只懂得開發的傢伙,哪裡知道什麼是美感,什麼是藝術,不懂還在那邊亂亂吠。如果你有這個想法的話,我只想跟你說,在N年前我開始開發程式之前,就是一個Art。

2008年3月11日 星期二

Moss事件處理器(2)-使用WSS API註冊安裝

要將寫好的事件處理器註冊到MOSS網站上,有兩種方式,一種是使用Wss的API物件來註冊,一種是使用Feature(網站功能)來註冊,端看開發者或是管理者的需求,如果要使用自訂的應用程式管理就用第一種方式,如果要讓MIS或是網站管理員簡單管理,就用第二種方式。

這篇文章中,亞當斯先介紹第一種方式,使用Wss的API來做。設計步驟如下:

1.新增一個Windows專案,選擇好語言(這邊用C#)之後,將專案名稱命名為:EventHandlerRegistrationTool。
2.在專案中將Microsoft.SharePoint.dll加入參考,並且Using Microsoft.SharePoint命名空間。
3.設計表單畫面讓使用者可以填入註冊必要的資料,畫面配置如下圖所示:
EventHandlerTool
4.在登錄按鈕的click事件程序中,撰寫註冊事件處理器的程式,主要是使用SPList物件的EventReceivers集合,加入相關事件類型的資訊。程式碼參考如下:
EventHandlerRegistryCode
5.如果要將已經註冊好的事件移除掉的話,可以使用SPList物件的EventReceivers集合將所選取到的EventReceiver物件移除掉就可以,程式碼參考如下:
EventHandlerRemoveCode

Moss事件處理器(1)-如何建立部署

1. 首先,新增一個類別函式庫專案,選擇好語言之後,將專案名稱命名為:MOSSEventHandlers。

2. 在MOSSEventHandlers專案中將Microsoft.SharePoint.dll加入參考,並且Using Microsoft.SharePoint命名空間。
Add SharePoint

3. 在專案中新增一個類別名為CustomEventHandlers,並讓這個類別繼承自SPItemEventReceiver,這裡亞當斯選擇的是繼承SPItemEventReceiver這個Receiver類別,事實上MOSS中有很多可以繼承下來改寫的Receiver,各位有興趣的話,可以使用物件瀏覽器查詢「Receiver」。

4. 改寫每一個開發者想要註冊到MOSS網站上所要監控的事件,下列有監控項目的新增、刪除、修改等事件,程式碼參考如下:

public override void ItemAdding(SPItemEventProperties properties)
{
WriteLog("ItemAdding......");
}
public override void ItemUpdating(SPItemEventProperties properties)
{
WriteLog("ItemUpdating......");
}
public override void ItemDeleting(SPItemEventProperties properties)
{
WriteLog("ItemDeleting......");
//讓執行的項目失效,中斷此事件
properties.Cancel = true;
properties.ErrorMessage = "這個項目" + properties.ListTitle + "很重要,不得刪除";
}

5. 準備一個紀錄LOG的方法來記錄事件觸發的資訊,如:寫入資訊到事件檢視器(Event Log),這段程式碼的目的主要用來驗證確實事件是有被觸發的。紀錄LOG的程式碼請參考如下:

protected void WriteLog(string Message)
{
EventLog log = new EventLog("Application");
if( !EventLog.SourceExists("Demo Logger"))
{
EventLog.CreateEventSource("Demo Logger", "Application");
}
log.Source = "Demo Logger";
log.WriteEntry(Message);
}

6. 撰寫完畢後在MOSSEventHandlers專案按右鍵,選擇屬性,在「簽署」的頁簽中勾選「簽署組件」。

7. 在「選擇強式名稱金鑰檔」的地方選擇<新增…>,填入金鑰名稱,並且把密碼保護取消。亞當斯將金鑰的名稱命名為:CustomEventHandlers.snk。
Add Key

8. 設定完畢後,建置MOSSEventHandlers專案,產生MOSSEventHandlers.dll組件。

9. 打開VS2005的命令模式視窗,打入以下指令將MOSSEventHandlers.dll組件註冊到GAC中:

Gacutil –I MOSSEventHandlers.dll

10. 打開檔案總管,路徑指到C:\WINDOWS\assembly下,可以找到一個MOSSEventHandlers.dll表示已經成功註冊事件處理器組件。
View GAC

MCTS for MOSS

雖然MOSS的認證已經出來很久,但是亞當斯發現好像想去考的人不多ㄝ,不知道是因為太冷門還是大家覺得沒那個需求和必要,anyway以下的網址是考MOSS MCTS的參考網址,紀錄一下,不然亞當斯老是會忘記到底是考哪一科,代號是多少:

不過值得慶幸的是:Visual Studio 2008 出來之後又多了許多認證,也改變了相對的考試科目等(有興趣的朋友請自行參考微軟官方網站資訊,或者可以到亞當斯的好友清單:米米貓學開發,去看看!裡面有紀錄比較詳細的對應資料唷),不過MOSS倒是暫時沒有因為Visual Studio 2008 出來而又多了新的認證或是改變認證的科目(好理家在呢~),不過,後續如何,亞當斯會繼續追蹤低~

2008年3月9日 星期日

Code Snippet Editor for Visual Basic 2008

當亞當斯在專案開發時,很多功能都是可以重複使用的,此時會很習慣使用class或是component將這些常用且可reuse的程式碼保留起來,然後再使用叫用函式的方式去執行這些常用的程式碼。不過有時候麻煩的是當要叫用這些函式時,必須先知道這些函式的叫用方式和功能敘述等等的,叫用時當然名稱和參數更是不能錯誤。如果使用Code Snippet就不怕打錯,也可以在開發時,節省一些時間,譬如:預設有提供一個繁簡轉換的Code Snippet,在網站開發時,要將網站內容輸出作及時轉換就蠻好用的。

那麼該怎樣來編寫自己的Code Snippet會比較快了?Code Snippet其實是存為XML格式。
當然你可以使用史上無敵強的編輯器-"NotePad"筆記本,來編輯!反正名字寫上去也不會死人(又不是死亡筆記本,Orz...好冷唷~),不過那樣就太...苦命啦,亞當斯介紹各位載一個工具: Code Snippet Editor for Visual Basic 2008 可以讓你方便的編修建立你自己想要使用的程式碼。

下載完,解開壓縮檔,可以看到應用程式(SnippetEditor.exe)以及應用程式設定檔(SnippetEditor.exe.config),當你執行SnippetEditor.exe,程式會預設載入你VS2008中所有的Code Snippet。在此亞當斯先點選For Each...Next 陳述式(位置:C:\Program Files\Microsoft Visual Studio 9.0\VB\Snippets\1028\common code patterns\conditionals and loops),以下是執行結果。
Snigget右邊的視窗中,會顯示所選取的Snippet的所有屬性資料以及程式碼,還有參考的組件、加入的Namespace等等。
相對於XML的格式將是:
<Snippet>
<References>... </References>
<Imports>... </Imports>
<Declarations>... </Declarations>
<Code>... </Code>
</Snippet>

那麼,亞當斯現在來新增一個存取資料庫相關的程式片段,並把他新增到VS2008的Code Snippet中。
首先,在左邊的選單視窗中,選取Visual Basic,按下右鍵,選擇Add Path,將路徑是設定到想存放Snippet的資料夾,這邊為:C:\Sample\MySnippet。

SnippetAddPath 接著對著MySnippet按下右鍵,選擇Add New Snippet,輸入名稱:由T-SQL存取資料庫。
把這個Snippet的屬性和相關程式碼加上,並設定SQL語法必須是可以變動的。程式碼以及屬性設定如下圖:
SnippetCode對於程式碼亞當斯要把其中的連線字串以及SQL語法設定為可以被取代的兩個變數,設計方式就是針對你要被置換的變數按下右鍵,選取"Add Replacement",Code Snippet Editor就會自動幫你將那個變數設定完成,Type設定為String。如下圖:
SnippetReplace

最後,設定加入兩個命名空間:System.Data和System.Data.SqlClient
SnippetNamespace

接下來,亞當斯打開NB上的Visual Studio 2008,新增一個測試專案,在程式碼頁面按下"?"+Tab,就可以使用自己所自訂的片段程式碼了,選取MyMySnippet->由T-SQL存取資料庫,命名空間System.Data.SqlClient還會幫你自動加入唷。
SnippetUse

2008年3月6日 星期四

Moss開發會用到的Extensions下載

Moss的功能是如此的廣大,為什麼用廣大來形容呢?
因為Moss的功能真的是分類太多、範圍太廣了,開發WebPart有WebPart的Extension,開發流程有Workflow的Extension,實在是沒有辦法單純的使用Visual Studio來直接開發Moss上的眾多功能。

每次在上課的時候,總會在每個章節的進行中,請學生安裝一堆必要的Extension,否則無法繼續課程,我心裡在想,假設哪一天不小心NB掛了(呸呸呸~~烏鴉嘴),那上課沒這些source就真的好笑了。

為了防範未然,還是得要未雨綢繆一下,把開發Moss常用的工具下載點做個紀錄,不然到時候可能"叫天天不應,叫地地不靈",順便讓有需要的朋友也可以有一個整理好的資訊參考。

WebPart:

SDK:

Workflow:

VSTO:

Reflector:

ASP.NET3.5最佳實務講座-預購79折唷

VS2008 ASP.NET新書開始預購了,整套還有打折+送公仔唷~有興趣的朋友,詳情請至悅知網站訂購。

2008年3月5日 星期三

WSS 3.0:Visual Studio 2005 Extensions, Version 1.1

今天在使用WSS3.0 API測試一些跟MOSS溝通的程式碼和WebPart時,想說不知道有沒有新版的Visual Studio 2005 Extensions可以下載來玩玩,因此上微軟官方網站找了一下,果然看到有最新版本已經Release出來。

這個版本的全名是 : Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions, Version 1.1 (你可以直接點選上述連結下載),是正式1.1版本,因為記得我之前安裝的是1.1的CTP版本,而CTP版本功能比1.0版的功能有多了一些些,但是還是大同小異,然後看到1.1版的功能時,著實的為之震驚,因為終於也可以使用Visual Basic來快速開發了,之前的版本都只有提供C#的樣板,我在想可能會有許多開發者反應,所以才會在這個版本把VB的樣版加入到Visual Studio 2005 Extensions中。

我先大致的條列一下Studio 2005 Extensions, Version 1.1主要的新功能有哪些給各位參考,

  • 支援"Web Solution Package" 的編輯(光是這點就夠Cool了)
    • 可以檢視看編輯所有 solution 的內容content
    • 建立新的網站功能並且修改既有的網站功能(Features)
    • 紀錄Features 間的elements
    • 自動檢查Features的衝突
  • 支援 Visual Basic 樣板(看到沒,看到沒,千呼萬喚"死"出來了)
  • 多了List Instance item template
  • 多了List Event Handler item template
  • File System template
  • Bug fixes (修正了哪些,好像並沒有詳細的紀錄)

看了這些新功能,心裡超興奮的,馬上DL下來裝,先把CTP移除,然後將正式版的1.1裝上去,結果打開Visual Studio 2005 到SharePoint專案樣板一看,ㄟ~怎麼什麼鳥都沒有,一一"。怎麼會這樣??

CHTTemplate

馬上將安裝文件上的注意事項全部看了一遍,結果看到一行差點昏倒:

  • Ensure that the language of the extensions you intend to download is the same as the language of your installation of Visual Studio.

    這是什麼鳥阿?也就是說目前的1.1正式版,是英文版的,所以裝在中文版就啥東沒有,哈,白話一點就是說目前只能裝在英文版的Visual Studio 2005上,才能開發囉!偏偏我的NB還有上課的環境都是中文版的,嗚~這該如何是好阿。

    廢話不多說,馬上搞了一台英文版MOSS+VS2005的環境來試試看,結果裝完真的多蠻多東西的,連用VB開發WebPart再部署都變得Easy多了。注意看下圖,是使用VB的樣版唷,這個讚!

    VBTemplate連項目樣版都多了一些,不過還沒有時間深入研究,先給各位看看畫面。

    ItemTemplate

    當然除了上述的新功能外,還有一些既有的功能,這些既有的功能各位有興趣的話,或是想要了解更詳細的資料,可以到下列網址下載他的說明文件:
    http://www.microsoft.com/downloads/details.aspx?familyid=3E1DCCCD-1CCA-433A-BB4D-97B96BF7AB63&displaylang=en
    Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions User Guide, Version 1.1

  • 2008年3月4日 星期二

    ASP.NET 3.5最佳實務講座-自序


    現今網站的應用已經成為這個世代的主流,而設計網站的技術也在這幾年日趨成熟,Web2.0時代的來臨,更帶動了整個網站應用程式設計的改革。微軟在今年推出更強大的開發工具Visual Studio 2008,結合.NET Framework 3.5使網站開發技術更往前邁進一大步,這個技術就是ASP.NET 3.5,個人認為ASP.NET 3.5勢必會讓更多的程式設計師在開發網站應用程式時,得到事半功倍的成效,這波技術潮流將銳不可擋。

    有鑑於此,當悅知的夥伴以及暢銷書籍「ASP.NET 2.0網站開發學習講座」的作者,也是我的好友兼同事鄭淑芬小姐,邀請我一起參與ASP.NET 3.5技術書籍改版計畫時,我當下就很興奮的答應。這本書除了選擇C# 3.0當作開發語言之外,最主要的是加入了許多ASP.NET 3.5酷炫又強大的新功能,諸如:AJAX、LINQ、SliverLight等技術之基本觀念介紹及運用。

    當然,除了上述的技術之外,本書針對網站設計的規劃,由基礎篇的Visual Studio 2008工具,接著C#程式語言篇的開發語言認識,進而進入網頁設計以及資料庫存取的介紹,最後深入AJAX、Web Service設計以及實例說明,都是我和鄭淑芬小姐經過無數次的討論與規劃而成,這些構思無一不是希望本書能成為讀者們更容易學習開發與理解的學習參考工具。雖是改版,但我們在此書上所花的心思以及時間卻是更多,目的無非是希望能讓更多的讀者透過本書,體會學習ASP.NET 3.5的開發樂趣。

    除了感謝悅知文化張婉蓉小姐的細心編輯外,最主要當然是感謝鄭淑芬小姐給我這次成長的機會,妳的鞭策和鼓勵讓我完成一個新年目標,另外,也要感謝好友兼同事的許薰尹和羅慧真小姐,妳們平日的指導讓我在這次寫作中助益良多。特別感謝精誠資訊知識產品事業部產品技術開發處資深處長-張智凱先生,在這段期間給予假期和課程的安排,以便我可以心無旁騖。

    老實說,這次的書籍撰寫對我來說,算是一個極大的挑戰,戒掉最愛的WOW魔獸以及寒冰霸權DOTA,除夕夜待在家人麻將桌旁的我振筆如飛,然而,當寫完最後一章時,心情卻有一種喜極而泣的衝動。


    僅以此書獻給我最愛的媽咪,這幾年來您玉體欠安,不肖孩兒又遠在他鄉無法隨伺左右,衷心希望這可以當作您的治癌良方,待孩兒功成名就,與您一同分享榮耀。