Archive

‘ASP.NET’ 分類過的Archive

手動打造強型(typed)的 DataTable/DataRow

2010年2月23日 尚無評論

前言

最近正在用 C# 寫一個小視窗軟體 , 裡面會有個功能就是讀取 XML 及寫入 XML , 但我懶 , 想說用 DataSet 來做就好了 , 但後面改了很多次 , 覺得 DataRow 的資料沒有型別 , 後面比較難維護 , 所以去 Google 搜尋看看如何做強型的 DataRow , 當然我找到了 , 不然不會寫這篇 , 這篇是個筆記 , 怕那個網址掛了以後沒得看了 , 原文網址在 : http://www.codeproject.com/KB/database/TypedDataTable.aspx?display=Print

本篇不是要翻譯原文 , 只是我自己整理的筆記自己看得懂就好了 , 有興趣的人直接看原文說明比較詳盡 , 這裡就用一個簡單的讀取及寫入 xml 檔案來做範例

閱讀全文…

Categories: ASP.NET, Mono C# VB Tags: ,

ASP.NET MVC 正式版及 mono 2.4

2009年4月5日 12 則評論

哇哈 , ASP.NET MVC 正式版及 mono 2.4 分別於前幾日推出

這次我就給它試一試到底 ASP.NET MVC 能不能跑在 Linux 上面

結果是 , 成功了

放個測試網址  http://aspnetmvc.pigo.idv.tw

這個測試網址的 Sample 是我從 VS 2008 預設的 ASP.NET MVC 專案產生的

目前在 Linux mono 上已經可以針對範例程式作 URL Route , 但是在會員註冊部分不行  , 我還沒詳查是甚麼原因 , 不過 Route 機制既然可以跑 , 那代表 ASP.NET MVC 元件已經可以正常無誤的運作了

由於 ASP.NET MVC 會牽扯到 Url Route 的機制 , 所以 mono 若打開 AutoApplications 功能會有問題 , 因此要為每個 Virtual Host 手動指定 Application 才可以正常運作

Categories: ASP.NET, Linux, Mono C# VB Tags:

typed DataSet 真的難用 …..

2009年2月27日 2 則評論

這幾天做一個小案子但資料庫是用 Access 的

由於 Access 不支援一次寫兩段 SQL , 例如 INSERT …. ; SELECT ….. 用分號去區隔兩段 SQL 指令

所以若想要用  VS 2008 的內建 typed DataSet 工具做一個指令例如 int InsertProduct() 新增資料後並且取回 Primary Key (Identity)的值是不可能的 , 必須自己手動為 typed DataSet寫指令

且我一直以為用 typed DataSet 的 NewRow() 指令去新增一筆資料 , 它會自動幫我更新最後的 Primary Key 值 , 結果也沒有

好 , 這還沒關係 , 我想說 , 那我用 VS 的設計工具新增一個叫 int GetIdentity() 指令在 typed DataSet 來專門取得最後一筆新增的 ID , 內容則是 SELECT @@IDENTITY , 結果這樣子也沒用 , 我調出該 typed DataSet 所產生的物件原始碼來看 ,  原來由 VS 所自動產生的 Method 在每次一呼叫完就會 Close Connection !!! 難怪我百思不解每次呼叫 GetIdentity 總是回傳 0 …

搞到最後只好自己為 typed DataSet 手動增加 Method 來做了 , 只有手動寫才有辦法一次執行兩次的 Command

但這讓我想到 Zend FrameWork 的 Zend_Db_Table 如果也用同樣方法去新增資料列 , Zend_Db_Table 卻能自動更新 Primay Key …. 為何微軟就是沒把這功能實現出來呢 ….

也許一開始就不該使用 typed DataSet 來設計吧 , 用 System.Data.Common 下的資料庫元件也許比較好設計 , 但是打指令好累 , 光丟參數給 Command 就要寫一堆 , 會想用 typed DataSet 除了強型的 DataRow 可以避免程式出錯的機率 , 另外一點就是不想看到有任何 OleClient 哈 , 以後若要改成 MSSQL 或 MySQL 就比較好改 , 唉 … 真不知道為何 ASP.NET 在台灣為何這麼多人在用 …. 還是 PHP 好用多哩

Categories: ASP.NET Tags:

殘念 … 搞很久 ASP.NET MVC 還是無法跑在 mono 上

2009年1月29日 2 則評論

官方網站發布 mono 2.2 版之後 , 雖然有實作一些 Route 的類別宣稱未來可以跑 ASP.NET MVC , 我試了兩天

從 ASP.NET MVC Beta 試到 ASP.NET MVC RC1 都不行

查 Google  也很少人玩 , 不過我發現有些 Apache Error log

閱讀全文…

Categories: ASP.NET Tags:

開始玩 mono 2.2 ASP.NET 3.5

2009年1月27日 尚無評論

mono 2.2 終於推出正式版了 號稱支援 ASP.NET 3.5 , LINQ , 且可以跑 ASP.NET MVC 嘿嘿嘿 ,心很癢 .. 但由於我家濫 CentOS 5.2 我覺得它應該不會那麼快就提供 2.2 版的 mono 套件 , 所以只好自己來手動編譯了 ~

閱讀全文…

Categories: ASP.NET, Mono C# VB Tags:

開始摸 Linux 平台上的 mono 跑 ASP.NET

2009年1月26日 10 則評論

很久前 Linux 就可以跑 ASP.NET 了, 一直沒有機會好好玩一玩 , 趁過年期間來玩玩

我家 Server 已經用很久 Cent OS 5.2 了

所以用 rpm 套件也只能裝舊版的 mono (最新版是 2.2 支援 c# 3.0 , asp.net 3.5 , linq ..)

要安裝 mono 跑 asp.net 很簡單 , 若用 yum search mono 套件會發覺有好多套件可以安裝

當然我發現有 mono-web 及 mod_mono 這兩個東西應該就是我要的 , mod_mono 是 for apache 的模組 , 類似 mod_php

於是乎我直接 yum install mono-web mod_mono , yum 會自動幫其他所需的 rpm 也一併安裝 , 一開始以為這沒問題

想不到跑 ASP.NET 2.0 的頁面 , Web 頁面會當住不動

 

等好久 …. 終於有錯誤訊息了 , 原來少了 System.Data 物件 ?

這物件難道沒有內建嗎 ??  我的媽啊 . … 用 yum search 之後 , 原來還有個 mono-data 這個套件

於是乎 yum install mono-data  終於可以跑了

安裝完畢後 , /etc/httpd/conf.d/ 下會發現多了個 mod_mono.conf

可是這個設定檔預設是跑 ASP.NET 1.1 的 , 需要修改成 ASP.NET 2.0 我就加上了幾行

我的內容如下

?View Code APACHE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<IfModule !mod_mono.c>
LoadModule mono_module /usr/lib64/httpd/modules/mod_mono.so
MonoUnixSocket /tmp/.mod_mono_server2
MonoServerPath /usr/bin/mod-mono-server2
MonoAutoApplication enabled
# 上面三行是為了要跑 asp.net 2.0 用的
 
AddType application/x-asp-net .aspx
AddType application/x-asp-net .asmx
AddType application/x-asp-net .ashx
AddType application/x-asp-net .asax
AddType application/x-asp-net .ascx
AddType application/x-asp-net .soap
AddType application/x-asp-net .rem
AddType application/x-asp-net .axd
AddType application/x-asp-net .cs
AddType application/x-asp-net .config
AddType application/x-asp-net .Config
AddType application/x-asp-net .dll
DirectoryIndex index.aspx
DirectoryIndex Default.aspx
DirectoryIndex default.aspx
</IfModule>

好了. 設定完畢後放了個測試頁在 aspnet.pigo.idv.tw

繼續研究中

Categories: ASP.NET, Mono C# VB Tags: