| ASP.NET | MVC |
|---|---|
| RAD方式以拖曳開發 | 無 |
| 使用Server Control產生HTML | 使用code或HTML來產生HTML |
| 支援事件驅動 | 無 |
| 有ViewState | 無 |
| 有POSTBACK | 無 |
| 不易寫測試程式測試 | 容易測試 |
2010年12月16日 星期四
ASP.NET Web Form vs MVC
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
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帳號是沒用的
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年10月20日 星期三
2010年9月9日 星期四
.NET 4 - BigInteger
BigInteger就是很大很大的整數.....
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 );
- 使用前專案要加入參考
- 加入命名空間
- 範例
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 );
訂閱:
文章 (Atom)