Archive

‘Mono C# VB’ 分類過的Archive

實作多日 , 一個簡單的 Comet Chat Demo

2010年4月5日 pigo 4 則評論

網址 : http://testcode.pigo.idv.tw/NetServ/CxClient/demo/simplechat/

非常簡單的 chat , 沒有用到任何資料庫及檔案讀寫 , 完全透過 Comet Exchange Server 作資料交換 , 完全即時聊天

Script Language 採用 PHP , Comet Exchange Server 採用 C# 開發

改天我弄好一點會放出完整的 Source Code

原先我是要先做 Comet Http Server 的 , 但我現在先做了 Comet Exchange Server (簡稱 CxServer)

CxServer 主要構想是可以讓 HTTP Server CGI 之間可以做資料交換 , CGI 部分任何語言都可以開發 , 如 php , asp.net 等 , 然後 CGI 和 Browser 在不斷線的情況下接收其它 CGI 傳遞的資料並且將資料再傳遞給 Browser , 在應用方面就可以玩很多即時性的  , 如即時聊天 , 即時 web game , 即時股票看盤 , 即時監控系統等等都可以利用這種資料交換特性而實作出來

而在系統相容方面 , 由於採用 C# 開發 , 所以只要有 .NET 環境即可 , 我目前的 DEMO 連同 CxServer 都是跑在 Linux OpenVZ 下的虛擬 CentOS 及 mono 的平台 , 所以沒有所謂移植性問題 , 唯一的相容性問題就是 ,  CxServer 的封包協定中由於有有些欄位是 Int16 或 Int32 , 這在編碼成封包的時候會按照硬體(CPU)而有所謂 little endian 或 big endlian , 如果 CxServer 及 CxClient 是不同類型的 CPU 可能會發生問題而已

當然後續我會繼續實驗封裝好通訊協定及 API , 目前只先開發 PHP 版的 CxClient API , 想說再過一些日子我完全實作好封包協定好 , 才會開始進行其它語言的 CxClient API

Categories: Mono C# VB, PHP Tags:

最近想自己實作的 Comet 架構

2010年3月25日 pigo 4 則評論

甚麼是 Comet ?

自從 Facebook , Plurk 流行起來 , Comet 技術才被受到重視 , 之前曾經搜尋了 Google 上各種有關 Comet 的資訊 , 其實早在 5 年前(西元2005)我就實作過了 , 當時是在一家叫互動王視訊科技的公司做了個股票看盤系統 , 就是類似 Comet 的技術 , 我在該公司任職前 , 已經有了一個股票看盤系統 , 也是類似 Comet , 我去了是把原本前人寫的 Perl 版寫的完全改成 PHP 版的 , 因此 Google 上搜尋到有關 Comet 的 WIKI 說 2006 出現了第一個 Comet 應用 (http://en.wikipedia.org/wiki/Comet_%28programming%29#First_Comet_applications) , 原來 , 這東西我及互動王的前人早就做過了 , 哈 !

但可能有人對 Comet 還不太了解是甚麼 , 其實 Comet 並不是一種制式的協定 , 這是一種概念 , 就如同 AJAX 也是種概念 , Comet 主要用意是要讓 Browser 得到即時的資訊並且做到雙向互動 , 但我們都知道 , Web Browser 是要 Client 端主動要求某個網址 , Web Server 才會送資料來 , 即便是 AJAX 概念也是如此 , 那麼如何讓 Client 端不斷接收即時資料呢 ?

閱讀全文…

Categories: Mono C# VB, 網頁設計 Tags:

試了好多天, 終於搞定我的 X Client

2010年3月14日 pigo 2 則評論

這幾天一直在搞 XManager 3 及 X-Win32 2010 這兩套 X Client 軟體 , 有玩過的人應該知道基本的能力就是類似 VNC , 雖然和 VNC 的內部作法不同 , 但相同的行為就是 , 在 Windows 中可以看到遠端的 OS 桌面 , 並且操控它

另外這兩套還有個功能 , 就是可以利用 telnet 協定自動登入到遠端 Linux 後 , 單獨執行某套應用程式 , 將該應用程式的視窗封包抓回來後 , 變成 Windows 的視窗 , 也就是說不會看到遠端的 OS 桌面 , 甚至可以做成 Windows 桌面的一個捷徑 , 直接點選之後 , 等於自動執行遠端 Server 的某支應用程式並且顯示在 Windows 7 中 , 而這個功能是我所感興趣的 , 看看下圖吧 , 那個 MonoDevelop 可不是 Windows 版喔 , 證據就是 , 左上角的路徑是不是 Linux 路徑呢 ? 哈 哈

sample(點一下放大)

閱讀全文…

Categories: Linux, Mono C# VB Tags: , , ,

我寫了一個 MiniTips , 累翻了

2010年3月8日 pigo 尚無評論

Mini Tips 是個提醒軟體 , 網址在 http://www.pigo.idv.tw/mini-tips

主要功能

  • 可以將一項提醒項目設定多個時間通知
  • 可以設定指定時間一次提醒
  • 可以設定週期 , 例如每年 , 每月 , 每周 , 每日 , 每小時 , 但每分鐘我沒做 Ha
  • 可以將提醒的設定檔匯出及匯入 , 這樣方便家中公司兩邊用
  • 可以設定是否將軟體的視窗隱藏到右下角圖示

 

請大家幫我測試測試吧

很久沒碰 C# , 這次寫這東西,  重新碰 C# , 重新碰 Visual Studio .. 搞死我耶 ~ 一直改 .. 一直改 .. 一直改 ….

寫視窗的東西就是很多狀況 … 在 Win7 上跑沒問題 , 但在 Win2003 卻發生轉型問題….真不知道微軟的 .NET 怎麼這麼糟糕 …

當然現在對 C# 及 .NET 的觀念也更熟了 , 還是寫寫 Web 的比較簡單 ~

Categories: Mono C# VB Tags:

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

2010年2月23日 pigo 尚無評論

前言

最近正在用 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日 pigo 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:

開始玩 mono 2.2 ASP.NET 3.5

2009年1月27日 pigo 尚無評論

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日 pigo 8 則評論

很久前 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: