2010年12月16日 星期四

ASP.NET Web Form vs MVC

ASP.NET MVC
RAD方式以拖曳開發
使用Server Control產生HTML使用code或HTML來產生HTML
支援事件驅動
有ViewState
有POSTBACK
不易寫測試程式測試容易測試

2010年12月8日 星期三

非同步WCF服務

為效能考量WCF服務端也可以寫成非同步模型,例如

Step 1.


Step 2.服務需提供兩個方法,BeginXXX 與EndXXX

Step 3.加Console Client
Step 4.Client ,Add Service Reference
Step 5.檢視Client的Proxy,只會有GetData方法
Step 6.Client的Main
Step 7.設同時執行兩專案
Step 8.Run

2010年11月21日 星期日

煩人的SQL Server Express User Instance權限問題

IIS7+ SQL Server 2008 Express + User Instance + ASP.NET Membership 服務
1.今在IIS 7 新增一個Application Pools,叫mypool


2.在IIS7 Default Web Site下建立一個ASP.NET 4 Web Site,設定其Application Pool為 mypool
3.網站中包含一個login.aspx網頁,其中有一個Login Control

4.網站連接字串,與machine.config檔案SQL Express的連接字串都一樣,貼一個代表,都是啟用Integrated Security與User Instance
5.但是就是無法Login....權限會不夠...

6. 試了很久,發現,居然錯在NTFS授權....使用Web Site範本建立的mdf與dbf檔案沒有試當授權...於是手動授權給Network Service帳號...

7.log檔案也要....
這樣就正常了...

結論,若Application Pool改用其它帳號的話就要授權給那個帳號,如使用Local System執行時,要手動作6,7
但不能用權限太小的帳號,例如設Local Service帳號是沒用的

2010年9月9日 星期四

.NET 4 - BigInteger

BigInteger就是很大很大的整數.....

  • 使用前專案要加入參考

  • 加入命名空間
using System.Numerics;

  • 範例
//設為1
BigInteger i = BigInteger.One;
Console.WriteLine( i.ToString());



//值是否為1, True
Console.WriteLine( i.IsOne);

//是否為偶數 False
Console.WriteLine( i.IsEven);



//一旦設定值,BigInteger是不可變的,
//以下變動值的動作將產生新的BigInteger物件
i++;



string s = "1111111111111111111111111111111111111111111111111111111111";
//string轉換成BigInteger
i = BigInteger.Parse( s );

//N0格式化字串,精確度只能50個,超過50用0取代,印出:
//N0:1,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,100,000,000
Console.WriteLine( "N0:{0:N0}" , i );


//C格式化字串,有小數點,精確度只能50個,超過50用0取代,印出:
//C:NT$1,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,100,000,000.00
Console.WriteLine( "C:{0:C}" , i );

//R格式化字串,精確度完全保留,印出:
//R:1111111111111111111111111111111111111111111111111111111111
Console.WriteLine( "R:{0:R}" , i );

總網頁瀏覽量