2009年最後一天上班好痛苦啊T^T
我要下班下班~阿阿阿阿
下班去買螢光棒
ADO.NET資料服務/Silverlight--建立用戶端應用程式
本文使用前一篇文章建立之 Northwind 資料服務之方案,建立Silverlight應用程式作為新專案。
1.建立Silverlight專案的應用程式
a)在前文的方案中加入新專案,專案類型選擇「Silverlight 應用程式」
2.在專案中加入服務參考
a)「SilverlightClient」專案按滑鼠右鍵,選擇「加入服務參考」並按一下「探索」,隨即顯示前文建立的 Northwind 資料服務
b)輸入命名空間按下確定
這麼做會在專案中加入新的程式碼檔,包含存取資料服務資源做為物件並與之互動的資料類別。 資料類別建立在用戶端應用程式的預設命名空間中。
3.定義用戶端應用程式使用者介面
b)開啟MainPage.xaml並以下列定義應用程式使用者介面的標記取代原本的XAML
程式碼就不貼在這,因為即使用Blogger code block放置,還是限於silverlight無法被blogger看懂還出現奇怪的控制項=..=
程式碼解壓縮後找到SilverlightClient\VisualBasic\SilverlightClient\MainPage.xaml檔案,copy & paste即可!貼完code之後的XAML預覽如下圖
★步驟3b的程式碼在官方網站lost了,請大家去下載才可以把3b完成喔!
★參考網址
PS:後來發現3b不是lost,而是網頁本身有問題,網頁載入完成後那段XAML會看不見,如果懶得下載可以直接點選參考網址右上角的「輕量型」即可取得原版XAML!!
1.建立Silverlight專案的應用程式
a)在前文的方案中加入新專案,專案類型選擇「Silverlight 應用程式」
b)選取「連結這個 Silverlight 控制項到現有的網站」、「加入參考應用程式的測試頁」、「設為起始頁」
2.在專案中加入服務參考
a)「SilverlightClient」專案按滑鼠右鍵,選擇「加入服務參考」並按一下「探索」,隨即顯示前文建立的 Northwind 資料服務
b)輸入命名空間按下確定
這麼做會在專案中加入新的程式碼檔,包含存取資料服務資源做為物件並與之互動的資料類別。 資料類別建立在用戶端應用程式的預設命名空間中。
3.定義用戶端應用程式使用者介面
a)「SilverlightClient」專案按滑鼠右鍵並選擇「加入參考」,選取 System.Windows.Controls.Data
b)開啟MainPage.xaml並以下列定義應用程式使用者介面的標記取代原本的XAML
程式碼就不貼在這,因為即使用Blogger code block放置,還是限於silverlight無法被blogger看懂還出現奇怪的控制項=..=
程式碼解壓縮後找到SilverlightClient\VisualBasic\SilverlightClient\MainPage.xaml檔案,copy & paste即可!貼完code之後的XAML預覽如下圖
★步驟3b的程式碼在官方網站lost了,請大家去下載才可以把3b完成喔!
★參考網址
PS:後來發現3b不是lost,而是網頁本身有問題,網頁載入完成後那段XAML會看不見,如果懶得下載可以直接點選參考網址右上角的「輕量型」即可取得原版XAML!!
ADO.NET資料服務/Silverlight--建立Northwind資料服務
1.建立 ASP.NET Web 應用程式
3.建立資料服務
a)在方案總管按右鍵,新增項目「ADO.NET 資料服務」
Visual Studio 將建立新服務的 XML 標記和程式碼檔,根據預設,程式碼編輯器視窗隨即開啟 Northwind 加上副檔名 .svc.cs 或 .svc.vb 的檔案
b)變更Northwind.svc.vb中的資料模型之型別
將「TODO: 以您的資料類別名稱取代 [[class name]]」 這一段註解,替換成你剛剛建立的資料模型型別,也就是 NorthwindEntities
替換完成後會長這樣Inherits DataService(Of NorthwindEntities)
4.啟用資料服務的存取
在InitializeServic函式加入下列4行程式碼,指定可以存取的實體
ps:若全部開放則為config.SetEntitySetAccessRule("*", EntitySetRights.All)
5.測試
a) 按F5瀏覽器將自動開啟視窗
http://localhost:2616/northwind.svc
用IE6不能測試,請用IE7以上,用IE7以上及FF的人也請將RSS關閉,才能檢視下圖結果
b) 承上,輸入URI測試資料,傳回特定客戶 ALFKI 的全部訂單
★我們已經以 Northwind DB建立可存取的資料服務,並於 Web 瀏覽器中完成服務測試。 接下來要建立 Silverlight 用戶端應用程式專案,並在其中加入這個資料服務的參考:請看下一篇
★參考網址
2.定義資料模型
a)在方案總管按右鍵,新增項目「ADO.NET 實體資料模型」
b)選擇「從資料庫產生」
c)除了「資料表」其他都不要勾選
3.建立資料服務
a)在方案總管按右鍵,新增項目「ADO.NET 資料服務」
Visual Studio 將建立新服務的 XML 標記和程式碼檔,根據預設,程式碼編輯器視窗隨即開啟 Northwind 加上副檔名 .svc.cs 或 .svc.vb 的檔案
將「TODO: 以您的資料類別名稱取代 [[class name]]」 這一段註解,替換成你剛剛建立的資料模型型別,也就是 NorthwindEntities
替換完成後會長這樣Inherits DataService(Of NorthwindEntities)
4.啟用資料服務的存取
在InitializeServic函式加入下列4行程式碼,指定可以存取的實體
config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead)
config.SetEntitySetAccessRule("Orders", EntitySetRights.All)
config.SetEntitySetAccessRule("Order_Details", EntitySetRights.All)
config.SetEntitySetAccessRule("Products", EntitySetRights.All)
config.SetEntitySetAccessRule("Orders", EntitySetRights.All)
config.SetEntitySetAccessRule("Order_Details", EntitySetRights.All)
config.SetEntitySetAccessRule("Products", EntitySetRights.All)
ps:若全部開放則為config.SetEntitySetAccessRule("*", EntitySetRights.All)
5.測試
a) 按F5瀏覽器將自動開啟視窗
http://localhost:2616/northwind.svc
用IE6不能測試,請用IE7以上,用IE7以上及FF的人也請將RSS關閉,才能檢視下圖結果
b) 承上,輸入URI測試資料,傳回特定客戶 ALFKI 的全部訂單
http://localhost:2616/northwind.svc/Customers('ALFKI')/Orders
★我們已經以 Northwind DB建立可存取的資料服務,並於 Web 瀏覽器中完成服務測試。 接下來要建立 Silverlight 用戶端應用程式專案,並在其中加入這個資料服務的參考:請看下一篇
★參考網址
強迫關閉視窗
很多場合需要強迫關閉視窗而不出現詢問視窗(如下圖),我加這個動作是為了防止user直接keyin完整網址去亂玩我的網站,廢話不多說直接說明下面的function如何使用
1.使用checkVersion()判斷IE版本
2.如果是IE6就使用A()把頁面強迫關掉
3.如果是IE7則使用B()把頁面強迫關掉
//IE 6
function A() {
if (window.opener) {
} else {
window.opener = "null";
window.close();
}
}
//IE 7 or 8
function B() {
if (window.opener) {
} else {
window.open('', '_parent', '');
window.close();
}
}
function checkVersion() {
for (i = 0; i < 10; i++) {
for (z = 0; z < 10; z++) {
if (navigator.appVersion.match("MSIE " + i + "." + z) != null) {
y = i;
}
}
}
if (y == '7' || y == '8' ) { B(); }
else { A(); }
}
1.使用checkVersion()判斷IE版本
2.如果是IE6就使用A()把頁面強迫關掉
3.如果是IE7則使用B()把頁面強迫關掉
//IE 6
function A() {
if (window.opener) {
} else {
window.opener = "null";
window.close();
}
}
//IE 7 or 8
function B() {
if (window.opener) {
} else {
window.open('', '_parent', '');
window.close();
}
}
function checkVersion() {
for (i = 0; i < 10; i++) {
for (z = 0; z < 10; z++) {
if (navigator.appVersion.match("MSIE " + i + "." + z) != null) {
y = i;
}
}
}
if (y == '7' || y == '8' ) { B(); }
else { A(); }
}
Smart Defrag
Smart Defrag是個好用的磁碟重組工具,重點是FREE!!!
他不像XP內建的磁碟重組工具需要15%的空間才能重組,重組時電腦也不會lag
現在官方release的最新版本已經有繁體中文嚕,大家可以無痛上手,連Google用法都不必勒。
piggy還發現磁碟重組中的各類小方塊(下圖的目錄、MFT、碎片...等)可自定義顏色~真古錐XD
他不像XP內建的磁碟重組工具需要15%的空間才能重組,重組時電腦也不會lag
現在官方release的最新版本已經有繁體中文嚕,大家可以無痛上手,連Google用法都不必勒。
piggy還發現磁碟重組中的各類小方塊(下圖的目錄、MFT、碎片...等)可自定義顏色~真古錐XD
初學WCF
以HelloWorld為例示範如何快速建立WCF,並以Windows Form呈現結果!
1.新增專案,選擇「Windows Form應用程式 」作為呈現WCF成果的介面
(命名為HelloWorldWinForm)
2.加入新網站,選擇「WCF服務」
(命名為HelloWorldService)
3.服務內容使用預設的HelloWorld範例,暫不更改service中的contract、operation...等
4.對HelloWorldWinForm按右鍵「加入服務參考」
(VSTS將自動為你搜尋可用的服務--*.svc檔)
5.於HelloWorldWinForm加入TextBox、Button各一
(為了測試HelloWorld第1個方法:input數字→output字串)
6.於Button_Click事件觸發第1個方法(GetData),程式碼如下
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myService As New HelloWorldService.ServiceClient
MessageBox.Show(myService.GetData(TextBox1.Text))
End Sub
7.按下F5,執行 成果如下
1.新增專案,選擇「Windows Form應用程式 」作為呈現WCF成果的介面
(命名為HelloWorldWinForm)
2.加入新網站,選擇「WCF服務」
(命名為HelloWorldService)
3.服務內容使用預設的HelloWorld範例,暫不更改service中的contract、operation...等
4.對HelloWorldWinForm按右鍵「加入服務參考」
(VSTS將自動為你搜尋可用的服務--*.svc檔)
5.於HelloWorldWinForm加入TextBox、Button各一
(為了測試HelloWorld第1個方法:input數字→output字串)
6.於Button_Click事件觸發第1個方法(GetData),程式碼如下
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myService As New HelloWorldService.ServiceClient
MessageBox.Show(myService.GetData(TextBox1.Text))
End Sub
7.按下F5,執行 成果如下
消失的Scroll Lock
相信廣大的Logitech用戶都會發現,越新版的鍵盤越見不到冷門鍵,反而還多出一堆花俏的快速鍵,例如快速開啟word、excel等。但是,今天要連KVM就發現沒有Scroll Lock超不方便,因多數KVM都是利用連按2下Scroll Lock把server清單叫出來...囧rz
話說公司用的這套Raritan蠻貼心的,可將預設的Scroll Lock自行更改為Num Lock或是Caps Lock,無奈Raritan在更改後無動於衷,只好回頭找尋Scoll Lock大爺的蹤影XD
後來找到2個方式:
1.Fn+Pause Break:因為我不是用NB..沒有Fn鍵,所以放棄
2.小鍵盤:有點虛不過至少KVM終於起反應勒,暫且一用,使用方法如下
叫出「執行」視窗並輸入「osk」,可愛小鍵盤就出現在你眼前,下圖的「slk」便是消失的Scroll Lock!
話說公司用的這套Raritan蠻貼心的,可將預設的Scroll Lock自行更改為Num Lock或是Caps Lock,無奈Raritan在更改後無動於衷,只好回頭找尋Scoll Lock大爺的蹤影XD
後來找到2個方式:
1.Fn+Pause Break:因為我不是用NB..沒有Fn鍵,所以放棄
2.小鍵盤:有點虛不過至少KVM終於起反應勒,暫且一用,使用方法如下
叫出「執行」視窗並輸入「osk」,可愛小鍵盤就出現在你眼前,下圖的「slk」便是消失的Scroll Lock!
C# v.s VB對照表
這幾天將C#改寫VB,以下列出一些函示的對照表,之後會陸陸續續更新!
C# VB
as CType
C# VB
typeof GetType
continue Continue{Do | For | While}as CType
地圖輸出列印
因為ESRI提供的PrintTask不很好用,中文化又麻煩(這才是重點XXD),所以這次就不再依賴元件,希望以coding方式方式直探底層元件,開發出可提供使用者動態設計地圖的彈性頁面!
之前參考viswaug先生的部落格有挖到寶,目前自動產生legend的測試情況是OK,不過還是使用C#,我打算進一步改寫為VB,並結合其他要一併動態輸出的物件!之後會陸續把code貼上來...
以下為viswaug部落格的相關參考資料
1.作者自行開發的緣由
2.實作的簡略說明
3.開發成果(原碼)
之前參考viswaug先生的部落格有挖到寶,目前自動產生legend的測試情況是OK,不過還是使用C#,我打算進一步改寫為VB,並結合其他要一併動態輸出的物件!之後會陸續把code貼上來...
以下為viswaug部落格的相關參考資料
1.作者自行開發的緣由
2.實作的簡略說明
3.開發成果(原碼)
訂閱:
文章 (Atom)