時間快跑

2009年最後一天上班好痛苦啊T^T

我要下班下班~阿阿阿阿

下班去買螢光棒

ADO.NET資料服務/Silverlight--建立用戶端應用程式

本文使用前一篇文章建立之 Northwind 資料服務之方案,建立Silverlight應用程式作為新專案。
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 應用程式


2.定義資料模型
a)在方案總管按右鍵,新增項目「ADO.NET 實體資料模型」
 

b)選擇「從資料庫產生」


c)除了「資料表」其他都不要勾選



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行程式碼,指定可以存取的實體
        config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead)
        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(); }
}

Smart Defrag

Smart Defrag是個好用的磁碟重組工具,重點是FREE!!!
他不像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,執行 成果如下

消失的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!

C# v.s VB對照表

這幾天將C#改寫VB,以下列出一些函示的對照表,之後會陸陸續續更新!

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.開發成果(原碼)

VS2008快速鍵

今天開發到一半,突然想到切換頁面時有沒有快速鍵呢?
因為寫程式寫到一半要去動滑鼠實在很不順XXD
查了一下發現微軟有提供說明檔,以下列出我愛用的快速鍵以及下載網址

F7:檢視程式碼
F7+shift:檢視設計頁面
ALT+CTR+DOWN ARROW:切換頁面

VB說明檔
C#說明檔