發表文章

搬家公告

現在 Gelis 新的文章會以點部落的為主,下面為新的網址: http://www.dotblogs.com.tw/gelis/ 兩處新舊文章都歡迎各位能夠多多支持。感謝各位啦 :)

Visual Studio 2010_塑模化應用程式講座

圖片
最近筆者有對公司內部上一些(UML塑模設計 使用 VS 2010) 的相關課程,課程中筆者介紹UML的基本概念與Use Case Diagram基本的Notation使用方式,課後將一些資料再進行整理一下成此篇文章。 在使用Visual Studio 2010進行塑模設計時,有時會以UML類別圖來產生程式碼,且再進行反向工程時會使用現有程式碼進行塑模的建立,以方便檢視現有架構。但這些功能並不是內建在Visual Studio 2010中,必須安裝Visual Studio 2010 Feature Pack2才可以。 在安裝了Visual Studio 2010 Feature Pack2主要是使我們可以進行: 從 UML 類別圖 產生 程式碼 (Generate Code)。 從 程式碼 產生 UML 類別圖。 可匯入經由 XMI 2.1的格式所匯出的UML 類別圖、循序圖 和 使用者案例圖。 建立和檢視從工作項目到模型項目的連結。 開始支援為 ASP.NET Web、C 及 C++ 專案產生相依性圖形。 可以建立和驗證 C 與 C++ 程式碼的圖層圖表。 可以撰寫自訂程式碼以建立、修改和驗證圖層圖表。 安裝完成Visual Studio 2010 Feature Pack 2之後我們便可以將分析完成的UML Class Diagram使用『Generate Code』產生程式碼,為演示這樣的一個塑模的設計流程,我們以一個簡單的Shopping網站為例。範例中會使用一些簡單的OOA & OOD的分析方法。 在進行塑模設計之前我們先來看一下這個Shpooing網站的Scenario (情境): 顧客至Shopping網站購物,首先會瀏覽型錄,決定商品後放入購物車,結帳,並填寫送貨單,包含送貨地址、收件人等資訊,始完成訂購。 接著: (依照上方情境畫出Shopping 的Use Case) 一般來說使用OOA找出Domain物件的分析方式就是直接在Use Case裡找出所謂的 『名詞』 物件,此又俗稱名詞分析法,這是一個比較簡單的方式。 在顧客Shopping的情節(Scenario)中,我們可以找出會有『顧客』、『購物車』、『商品』、『交易紀錄』、『送貨單』...

占空間的Google Chrome暫存檔

圖片
在一次使用CCleaner清除系統的垃圾的時候發現,怎麼Google Chrome怎麼有220M的網際網路快取資料? 這時突然意會到,平時都只記得清除IE的Temporary Internet Files,卻忘了Google Chrome也是瀏覽器,一樣會產生暫存檔案,還有Google Earth產生的暫存檔居然更高達688M… Orz 因此突然間也非常好奇這些暫存的資料夾的路徑到底在哪裡呢?因為我們知道在Windows Vista/7 之後使用者資料已改在c:\Users 的下面,由於IE的是在"C:\Users\gelis\AppData\Local\Microsoft\Windows\Temporary Internet Files" 、所以我想應該也在這裡附近。果然讓我找到了! Google Chrome : C:\Users\gelis\AppData\Local\Google\Chrome\User Data\Default\Cache Google Earth : C:\Users\gelis\AppData\Local\Google\GoogleEarth\models 可是突然間又發現Google Earth的資料夾居然是空的!這讓我很疑惑,明明掃出688M,究竟這些檔案是在哪裡呢?筆者的求知慾又非常強烈,每當發現問題如果不找出來是不罷休!因此常常熬夜只是為了找一個問題… 後來上Google才發現,原來我找錯位置,Google Earth的暫存資料是存在LocalLow的下面!不是Local的下面,所以路徑應該是如下: C:\Users\gelis\AppData\LocalLow\Google\GoogleEarth 而且是單一檔案"dbCache.dat",總算解了疑惑 ^_^

Web Deployment Tool有2.0了

圖片
還記得去年還是1.0RC的版本,最近在Windows Platform Installer上發現了2.0的版本。 筆者就先將他安裝起來,再來瞧瞧有什麼新增功能。 且IIS 7.5 Express於2011/2/16也有新的版本Release出來了,同樣的時間Web Matrix也有新的中文版推出。 在依據範本的站台裡,筆者對行事曆最感興趣。 一個用ASP.NET Razor撰寫的範例,筆者當然迫不及待的就打開來瞧瞧了!基本上程式碼架構上非常清楚。真是還不錯的範例。 執行畫面如下: 此站目前為個人隨手筆記 較為清楚的,請參閱小弟於 點部落的網站 。

Silverlight果然還是無法存取.NET Remoting

圖片
會有這個問題是因為先前有需要,也希望在Silvelight中看看能否存取.NET Remoting的遠端物件,不過當然,在當下每個人都知道Silverlight目前只支援3種資料存取方式: RIA Service WCF Data Service (之前稱為ADO.NET Data Service) WCF Service 不過筆者還是想要Try一下,當有一些不確定因素時筆者就是喜歡踹(是Try拉),行不行Try一下就知道,Try的過程當中也會有一些發現或是了解其原理,二話不說開始吧! 首先筆者記得.NET 3.0之後,因為新增了WCF,所以在Visual Studio 的IDE之中除了原先的加入 [加入參考] [加入Web參考] 之外,還多了 [加入服務參考],這是為了WCF服務而出現的,所以之後,像您現在如果使用如目前最新的visual Studio 2010的WinForm程式在加入服務參考的視窗下面還會有一個 [進階]按鈕,如下圖: 點選後,如下畫面: 畫面中還有一個加入Web參考的按鈕,在說明的地方也特別標註說這是相容於.NET Framework 2.0的。點選之後就是以前熟悉的Web 參考畫面如下: 而在Silverlight的專案中的[加入服務參考]的畫面中也沒有[加入Web參考]的按鈕,如下: 如果硬是在[加入服務參考]的地方輸入.NET Remoting公開的URL (Web Service/SOAP公開的方式),突然很高興的發現!!可以找的到一個服務ㄝ,還能夠分析的出有一個HelloWorldService,如下圖: 不過按下[確定]後馬上得到一個錯誤訊息,但該錯誤也不是回應出真正的錯誤內容,不過無法作業也是可以想見的!之後說明。 而且所產生出來的Reference.c參考檔案也是空空如也,什麼都沒有!如下畫面: 為什麼後來筆者有想到原因了呢?因為當您手動敲入Remoting的Proxy也就是遠端物件時,因為該物件必須繼承 System.Web.Services.Protocols.SoapHttpClientProtocol, 這本來在參考的畫面就應該要看出來了, 但是因為當初Silverlight為了使下載下來的Plug-In安裝檔盡量愈小愈好,所以是沒有包入System.Web.S...

實做篇-將現有網站改成MVC架構

圖片
先前參加了佛心Jed哥的贈書活動,小弟也獲得了保哥的新書 [ASP.NET MVC2 開發實戰]一書,書中小弟獲益良多,最近也試著將現有的專案改以MVC的架構,在實做這個改變的過程,小弟便將其記錄下來並分享給各位。 一般來說,ASP.NET的網頁應用程式不外乎會有商業邏輯層(Business Tier)、資料層 (Data Tier)、網頁 (ASPX),而在網站的架構中我們可能習慣使用不同的NameSpace (資料夾)來區分商業邏輯層與資料層,基於商業機密公司應用程式不方便貼上來,小弟以Northwind資料庫實做一個範例來展現這個典型的網站架構。 這是一個客戶資料查詢的網頁程式,它是個簡單List [清單]類型的查詢的網頁程式,它有兩個查詢條件,1.客戶公司名稱、2.所在城市。查詢設計畫面如下: 查詢會呼叫CustomerBiz的商業邏輯,此為與Customer相關之商業邏輯層,SQL Statement會撰寫於此,通常查詢會是如下程式: 1: protected void lbtSearch_Click( object sender, EventArgs e) 2: { 3: GetDatas(); 4: } 5:   6: private void GetDatas() 7: { 8: CustomerBiz CBiz = new CustomerBiz(); 9: DataView dv = new DataView(CBiz.GetCustomersByID_City(Request.Form[ "txtSearch" ], Request.Form[ "ddlCity" ])); 10: gvwList.DataSource = dv; 11: gvwList.DataBind(); 12: } CustomerBiz.cs的完整程式碼如下所示,這裡Demo的範例很簡單,對應的舊兩個邏輯方法: 1: us...

Web Matrix (Part 2) ASP.NET Razor資料庫應用程式開發

圖片
上一次筆者介紹了Web Matrix的開發方式,也大致介紹了什麼是ASP.NET Razor ,其實 Razor 並不算是一種新的語言,它在@符號後面所接的其實都還是C#語法。而且ASP.NET Razor對於ASP.NET MVC有著很密切的關係,它之所以出現是為了改進ASP.NET MVC的View的程式撰寫風格,也許不要說是改進,也可以當作多了一種View的撰寫方式。在Web Matrix所提供的ASP.NET Razor 可以說是個預覽版,未來的ASP.NET MVC 3會含括此功能在裡面。 而關於 ASP.NET Razor 的設計目標有下面幾個: 希望程式碼撰寫是一連貫,一氣呵成的。 學習門檻低,容易上手 不是一套新的程式語言,希望使用既有的ASP.NET/C#基礎即可快速的上手。 使用任一種純文字檔編輯器都可進行開發。 也支援使用Visual Studio 2010來開發,使用Visual Studio 2010強大的Intellisense的支援。 同樣可進行View的Unit Test。 OK!再回到筆者今天的主題,先使用這個預覽的版本來體驗一下資料庫應用程式的開發方式,就順著下面的步驟來時做看看。 1.首先是先安裝OData Helper 1.0元件,這是存取資料庫必要的元件,請開啟Admin畫面將OData Helper 1.0安裝進來。 圖(一)、安裝OData Helper 1.0元件 2.點選左下方的Database,Web Matrix此時會切換到資料庫功能的頁籤。若預設一開始您也是選擇Empty Site,在沒有改名子的情況下,會有一個Empty Site.sdf的SQL Compact資料庫。請在Tables的節點選滑鼠右鍵"New Table"或點選上方的工具列的 New Table建立一個Employes的Table,並同時建立[id]、Name、Title 等三個欄位,如圖二。 圖(二)、建立SQL Compact 資料庫 3.接著任一建立幾筆資料,如圖三。 圖(三)、任一建立三筆資料 4.回到Files頁籤,並新增一個EmployeesList.cshtml 程式檔案,並撰寫如下程式。要注意的地方是,如果要撰寫多行的Razor,可以使用 @{.. } 包起來,...