2008年12月30日 星期二

手動安裝.NET 2.0組態設定工具

當你的電腦直接安裝Visual Studio 2008與.NET 3.5時,可能因為沒有安裝.NET Framework 2.0 SDK,因此無法使用 安裝.NET 2.0組態設定工具(Microsoft .NET Framework 2.0 Configuration Tool)來設定應用程式組態或CAS權限,您可以加裝.NET Framework SDK 2.0來解決這個問題,或者使用以下解決方案 (以下解決方案參考這個網誌)

1.複製.NET Framework 2.0 SDK 中以下檔案到硬碟以下目錄 C:\Program Files\Microsoft Visual Studio 9.0\SDK\v3.5\Bin

mscorcfg.dll
mscorcfg.msc
mscormmc11.cfg
mscormmc.dll
reg20Conig.reg

如果找不到這些檔,可以點這 (理論上我是沒有放毒...,不放心的話請勿下載)




2.將mscorcfg.dll註冊到GAC,使用Visual Studio 命令提示字元執行:

gacutil -i mscorcfg.dll

3.複製本文====行之後內容存成reg20Conig.reg檔案(從Windows Registry Editor Version 5.00這行開始,本文的rar檔內含此檔),若dll所在目錄不同,先修改其中的檔案目錄,在檔案總管雙擊reg20Conig.reg註冊系統登錄 !

4.使用命令提示字元執行mmc開啟嵌入式管理單元->File->Add Remove/Snap-in -> Add ->.NET Framework 2.0 Configuration->OK



====================================

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\CLSID\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}]
[-HKEY_CLASSES_ROOT\CLSID\{D8FE614D-4851-4a72-998D-D1F2E750A050}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}]

[HKEY_CLASSES_ROOT\CLSID\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}]
@="Microsoft.CLRAdmin.CData"

[HKEY_CLASSES_ROOT\CLSID\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}\Implemented Categories]

[HKEY_CLASSES_ROOT\CLSID\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
@=""

[HKEY_CLASSES_ROOT\CLSID\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}\InprocServer32]
@="C:\\Program Files\\Microsoft Visual Studio 9.0\\SDK\\v3.5\\Bin\\mscormmc.dll"
"ThreadingModel"="Both"
"Class"="Microsoft.CLRAdmin.CData"
"Assembly"="mscorcfg, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"RuntimeVersion"="v2.0.50727"

[HKEY_CLASSES_ROOT\CLSID\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}\InprocServer32\2.0.0.0]
"Class"="Microsoft.CLRAdmin.CData"
"Assembly"="mscorcfg, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"RuntimeVersion"="v2.0.50727"

[HKEY_CLASSES_ROOT\CLSID\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}\ProgId]
@="Microsoft.CLRAdmin.CData"

[HKEY_CLASSES_ROOT\CLSID\{D8FE614D-4851-4a72-998D-D1F2E750A050}]
@="Microsoft.CLRAdmin.CAbout"

[HKEY_CLASSES_ROOT\CLSID\{D8FE614D-4851-4a72-998D-D1F2E750A050}\Implemented Categories]

[HKEY_CLASSES_ROOT\CLSID\{D8FE614D-4851-4a72-998D-D1F2E750A050}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
@=""

[HKEY_CLASSES_ROOT\CLSID\{D8FE614D-4851-4a72-998D-D1F2E750A050}\InprocServer32]
@="C:\\Program Files\\Microsoft Visual Studio 9.0\\SDK\\v3.5\\Bin\\mscormmc.dll"
"ThreadingModel"="Both"
"Class"="Microsoft.CLRAdmin.CAbout"
"Assembly"="mscorcfg, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"RuntimeVersion"="v2.0.50727"

[HKEY_CLASSES_ROOT\CLSID\{D8FE614D-4851-4a72-998D-D1F2E750A050}\InprocServer32\2.0.0.0]
"Class"="Microsoft.CLRAdmin.CAbout"
"Assembly"="mscorcfg, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
"RuntimeVersion"="v2.0.50727"

[HKEY_CLASSES_ROOT\CLSID\{D8FE614D-4851-4a72-998D-D1F2E750A050}\ProgId]
@="Microsoft.CLRAdmin.CAbout"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}]
"About"="{D8FE614D-4851-4a72-998D-D1F2E750A050}"
"NameString"=".NET Framework 2.0 Configuration"
"NameStringIndirect"="@C:\\Program Files\\Microsoft Visual Studio 9.0\\SDK\\v3.5\\Bin\\mscormmc.dll,-30"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{A22B5BA1-D8CF-4db6-BC91-CFC1A04E2469}\StandAlone]
@=""

2008年12月16日 星期二

Step-By-Step教學(19):套用Forms驗證模組到任何類型的檔案

IIS 7的整合式模式可以將ASP.NET模組套用到任何任何內容包含ASP.NET網頁、靜態檔案、ASP、PHP程式。過去要提供這些伺服器等級的服務都需要使用C++撰寫.
舉例來說,若你從IE 輸入 http://localhost/iisstart.htm,你會看到網頁呈現如下

以下說明套用Forms驗證模組到任何類型的檔案,並且將Forms驗證從Web應用層式提升到伺服器層級的步驟,當你試圖存取htm類型的網頁,需先通過Forms驗證:

1) 在inetpub\wwwroot下建立一個login.aspx網頁,包含:

2)login按鈕的Click事件處理常式,要由帳號一定要是ucom,密碼為vivid
3) 加入以下Web.config檔到inetpub\wwwroot下

4)從IE 輸入 http://localhost/iisstart.htm,你會看到網頁呈現如下,要求先登入
5)加入以下test.asp檔到inetpub\wwwroot下,同樣地從IE 輸入 http://localhost/iisstart.htm,你會看網站要求先登入

2008年12月15日 星期一

移植ASP.NET 2.0應用程式到IIS 7

大部分的ASP.NET 2.0應用程式都可以順利部署到IIS 7,以整合式模型中運作,不過有些情況需要修改一些組態設定,才能讓某些功能正常。這是因為在整合模式中IIS 7 接管了某些ASP.NET組態,以便讓整合式模型能正常運作。例如自行設計Module後,通常會在組態檔案設定:

但在IIS上執行時,會發生以下500號錯誤:

您可以使用以下兩個方式解決
(1)執行appcmd.exe執行以下指令移植 ASP.NET應用程式到整合模式(假設Web應用程式名稱為testM):
檢視IIS 7管理工具,自訂的CopyRightModule已註冊成功
(2)在ASP.NET應用程式組態檔案中,改用以下方式組態自訂的Module (如果執行appcmd.exe會自動產生以下組態設定):

肥咪CEO VS. 喵喵戶長

是不是所的貓都約好了, 休息時一定要睡在NB上呢?
這天肥咪CEO正在NB上小憩, 喵喵戶長就是手賤一直來挑釁....

2008年12月14日 星期日

部署 ASP.NET 應用程式至IIS 7 注意事項

1.在IIS 6,過去通常會使用Aspnet_regiis.exe工具來設定ASP.NET應用程式的版本, 例如使用這邊(中文)那邊(英文)的做法.在IIS 7中,應該直接在應用程式集區設定ASP.NET Framework 版本,你該再使用Aspnet_regiis.exe工具來設定版本
2.在IIS 7中應該使用 Aspnet_regiis.exe -i 工具來安裝 ASP.NET (含v1.x與2.x以上版本)

2008年12月9日 星期二

Step-By-Step教學(18):發行你的資料庫資料

Visual Studio 2008有一個新功能,可以發行你的資料庫結構描述資訊以及資料,參考以下步驟
1.開啟 Server Explorer,選取要發行的DB,選 Publish to provider

2.Database Publishing Wizard會自動出現

3.選取要發行的DB

4.選擇產生sql 檔案

5.選擇目地資料庫,如 SQL Server 2008

6.按Next

7.開始發行

8.發行完畢!
9.開啟目地的資料庫伺服器上的SQL Server Management Studio,選擇目地資料庫,建立一個新查詢,然後執行上一個步驟產生的sql檔案

2008年12月5日 星期五

Step-By-Step教學(17):Entity Framework 與 資料繫結

Entity Framework也支援資料繫結功能,讓物件服務查詢回來的資料能夠呈現在表單程式(Form)控制項上。本教學說明如何設定資料繫結,在進行之前,需先完成Step-By-Step教學(16):使用Object Service查詢 Entity Framework的1~5步驟

1.在Visual Studio選取「Data」->「Add New Data Source」,建立一個資料來源,接著會出現精靈,選取以「Object」作為資料來源

2.接下來選擇要繫結的Entity,如employee


3.接下來完成精靈後,可以在Data Source視窗看到employee類別,您可以從Data Source視窗拖曳想要繫結的屬性到表單畫面中,表單上會自動產生employeeBindingSource與employeeBindingNavigator兩個元件。
4.最後在Form_Load程式中,透過ObjectQuery的Execute方法查詢出資料,再將查詢結果指定給BindingSource元件即可:


1 using System;

2 using System.Collections.Generic;

3 using System.ComponentModel;

4 using System.Data;

5 using System.Drawing;

6 using System.Linq;

7 using System.Text;

8 using System.Windows.Forms;

9 using System.Data.Objects;

10 namespace EFTest

11 {

12 public partial class Form2 : Form

13 {

14 public Form2()

15 {

16 InitializeComponent();

17 }

18 private void Form2_Load(object sender, EventArgs e)

19 {

20 var ctx = new pubsEntities();

21 ObjectQuery<employee> regions = ctx.employee;

22 employeeBindingSource.DataSource = regions.Execute(MergeOption.AppendOnly);

23 }

24 }

25 }


5.執行結果

2008年12月4日 星期四

Step-By-Step教學(16):使用Object Service查詢 Entity Framework

本教學介紹如何在表單程式中,使用Object Service查詢 Entity Framework中的物件
1.建立一個Windows Forms應用程式
2.加入ADO.NET Entity Data Model
3.選DataBase
4.選Pubs資料庫
5.勾選想要的資料表
6.在Forms加兩個Button,一個ListBox
7.匯入namespace,分別在兩個Button的Click事件加入程式碼,第一個button利用ObjectQuery查詢employee資料表;第二個button則傳入參數做篩選,程式碼看起來如:

1 using System;

2 using System.Collections.Generic;

3 using System.ComponentModel;

4 using System.Data;

5 using System.Drawing;

6 using System.Linq;

7 using System.Text;

8 using System.Windows.Forms;

9

10 using System.Data.Objects;

11 namespace EFTest

12 {

13 public partial class Form1 : Form

14 {

15 private void button1_Click(object sender, EventArgs e)

16 {

17 var ctx = new pubsEntities();

18 ObjectQuery<employee> empList = ctx.employee;

19 foreach (var emp in empList)

20 {

21 listBox1.Items.Add(emp.emp_id.ToString() + "\t" + emp.fname);

22 }

23 }

24

25 private void button2_Click(object sender, EventArgs e)

26 {

27 var ctx = new pubsEntities();

28 ObjectQuery<employee> empList = ctx.employee.Where("it.fname like @name", new ObjectParameter("name","a%"));

29 foreach (var emp in empList)

30 {

31 listBox1.Items.Add(emp.emp_id.ToString() + "\t" + emp.fname);

32 }

33 }

34

35 public Form1()

36 {

37 InitializeComponent();

38 }

39 }

40 }



8.第一個Button執行結果:
9.第2個Button執行結果:

2008年9月24日 星期三

2008年9月16日 星期二

MCTS + ASP.NET 3.5 證書


考過 70-562 之後, 微軟會寄送一封 Mail 通知得到MCTS + ASP.NET 3.5 認證
可以上網登記要求寄送證書,正想這麼做的當下,發現有新功能
可以在線上直接下載證書的電子檔呢! 不用等寄送! 將證書下載下來!

Tips:使用Custom ASP.NET Server Controls

一般在使用Custom ASP.NET Server Control時,會將其設計為dll檔案,在ASP.NET網站專案中加入參考,網頁上需加上以下宣告:

若是將Custom ASP.NET Server Control的原始檔案放在App_Code,那麼就要寫成:

2008年9月11日 星期四

Pass 70-562 ASP.NET 3.5 考試

今天通過 70-562 考試

科目 : 70-562
題數 : 50
考試時間 : 180 分鐘
Pass門檻:總分1000分,700分通過

考題比想像中的難,內容也包羅萬向...
不過比起歷屆的考試,這個考試題目都蠻短的,出現蠻多程式題

AJAX : 7題左右
Health Monitoring : 3題
SqlDataSource參數設計: 1題
ASP.NET Forms驗證: 1題
LinqDataSource + DetailsView : 1題
Remote Debugging : 1題
Script Debugger : 1題
Mobile Control 設計: 3題 (這個部分我是完全o分,完全沒猜對....)
註冊JavaScript : 1題
Global Resource : 1題
App_Code觀念 : 1題
IHttpHandler : 1 題
OutputCache設定 : 1題
WCF : 2 題
XML : 2題
ADO.NET : 2題
Custom Control設計 : 3題
XML + XML Reader: 2題
XML + TreeView : 1題
LINQ : 1 題 (出現在有XML的題目中)

大概是這樣....其他的...都忘了
大多是單選題, 只遇到 2題複選題...

2008年9月9日 星期二

匿名型別與資料繫結(Data Binding)

宣告一個List集合,初始化兩個項目,皆為匿名型別
可以直接將集合進行資料繫結,顯示在Windows forms應用程式中的ComboBox與DataGridView中:

執行結果:

2008年9月8日 星期一

foreach結合LINQ語法

foreach結合LINQ語法之後,要篩選資料更簡單! 以下篩選出陣列中,所有的偶數

為匿名型別加上方法

以下為匿名型別加上方法,方法利用 Func泛型 delegate宣告,方法可傳入兩個參數,i與j,方法中將 i 與 j相加後, 回傳加總後的整數值,而宣告匿名型別時,可以將泛型 delegate指定給匿名型別的成員XAddY:

2008年8月28日 星期四

Could not load file or assembly

最近在試 ADO.NET Data Service,但aspx程式在測試過程中,aspx三不五時會突然程式都不正常
測了一下,單獨執行*.svc檔案會出現以下錯誤訊息:

Could not load file or assembly 'App_Web_zjdrtn-d, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

錯誤畫面大概長這樣:

在沒有頭緒的情況下,猜測專案大概掛了,就利用Visual Studio建立一個新網站,將程式 Copy 到新網站! 就可以正常執行了!

不過,問題似乎愈來愈常發生了,快昏了,猜測大概是修改完程式後,ASP.NET沒有動態編譯出正確的組件檔案, 所以便將位於以下的網站暫存目錄砍掉:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\

果然程式重新執行時,就正常了....

2008年8月26日 星期二

Step-By-Step教學(15):使用AJAX叫用ADO.NET 資料服務

本教學介紹如何在ASP.NET AJAX網頁呼叫ADO.NET Data Service
您需先完成 Step-By-Step教學(14):ADO.NET 資料服務 (ADO.NET Data Service) 步驟 1-9

1.在MyDS網站中,加入一個AJAX網頁。
2.在網站中加入 DataService.js檔案。
3.在AJAX網頁中,設定ScriptManager參考DataService.js檔案。
4.在HTML標籤中,加一個Select Tag

5.在JavaScript區塊中,加入以下程式碼。
6.執行網頁,得到執行結果。

2008年8月22日 星期五

Step-By-Step教學(14):ADO.NET 資料服務 (ADO.NET Data Service)

教學介紹如何建立一個ADO.NET 資料服務(ADO.NET Data Service),並設計一個主控台用戶端程式來呼叫ADO.NET Data Service,以取得SQL Server 2008資料庫中的資料。

以下的範例需要先安裝以下軟體:
  • .NET Framework 3.5 SP1
  • Visual Studio 2008 SP1
  • SQL Server 2008 (或SQL Server 2005)

1.建立一個ASPNET Web應用程式。2.加入一個 ADO.NET Entity Data Model
3.選擇模型內容為「從資料庫產生」。
4.設定資料連接,連結到 SQL Server 2008的Pubs資料庫。
5.設定資料連接。
6.勾選「Tables」,以建立所有資料表結構。
7.加入一個ADO.NET Data Service檔案。
8.修改WebDataService.cs,讓WebDataService類別繼承自DataService(Of NorthwindModel.NorthwindEntities),然後修改InitializeService方法中的程式碼,叫用IDataServiceConfiguration的SetEntitySetAccessRule方法,設定規則開放所有權限。
9.在瀏覽器輸入以下服務所在URI測試服務:
10.加入一個Console程式。
11.加入System.Data.Services.Client.dll組件參考。
12.加入Web參考,輸入服務所在URI:
13.撰寫以下程式碼:
14.執行Console程式,得到以下執行結果。

總網頁瀏覽量