2008年2月26日星期二

Silverlight 2真面目出來了

.NET之父 - Scott Guthrie(微軟開發部門總經理)日前更新了Blog,詳細地解釋Silverlight 2.0和編寫Digg範例。
我完整地看過整篇文章,有幾點值得注意:

- Silverlight 2.0 是Cross Platform / Cross Browser ,無論是Windows或Linux,都可以支援,因為Silverlight 本身就是Client Side的東西。

- Silverlight 2.0 有自己的WPF UI Framework ,同樣有collections, IO, generics, threading, globalization, XML,亦支援LinQ.

- 和現有的Xbap一樣,會連同一系列Control.

- Silverlight 除了自身會Compile至Xap File外可以連同HTML或ASP.NET頁發佈,而本身亦有System.NET 和Sockets的Class,可以支援cross domain access,估計可以如以往使用TCPClient般去存住資源.

- Client Side本身不需要install任何.NET Framework.



原文:
First Look at Silverlight 2
http://weblogs.asp.net/scottgu/archive/2008/02/22/first-look-at-silverlight-2.aspx

以下是Scott Gu所寫的tutorials :

2008年2月25日星期一

Microsoft Visual Basic Power Packs 3.0

雖然Microsoft講過WPF推出後,不會再對原本的WinForm作更新,不過官方卻推出了Visual Basic Power Packs。
這個已經是第三個版本,新增類似ASP.NET WebForm的Repeater Control,連同之前的計算起來,即便有額外的Data Repeater,Interop Forms Toolkit,Line and Shape Controls,PrintForm Component可以使用。

我覺得Repeater和Line and Shape是比較常用的。

Visual Basic Power Packs
http://msdn2.microsoft.com/en-us/vbasic/bb735936.aspx
Channel 9的Video示範Repeater用法
http://channel9.msdn.com/ShowPost.aspx?PostID=383940



DataRepeater control

2008年2月21日星期四

Make PHP + Apache + Linux + MSSQL 2005 Work!

這幾個月都在寫PHP,因為要接上一手的爛攤子,主要都是使用PHP在MSSQL和MySQL之間交換資料。
公司在GoDaddy租了部行Fedora 7的dedicated server,自己絕對是對Fedora零經驗!!

誰不知原來Fedora 7 Default不會跟MSSQL的Extension,即使CentOS 5都是一樣。
公司有一個號稱"十年Programming經驗"的老派Programmer說Fedora Server不可以config 支援PHP 的web伺機器,就算我不太懂Linux都知佢吹水。
若果root access都可以改config,都不能安裝PHP,那我要dedicated server幹什麼?

所以我要做的就是安裝php_mssql的Extension,我原以為好像Windows IIS Server般簡單,以為修改一下php.ini,Reboot Apache 就搞定。

原來在Linux下,要重新compile過PHP...還要在SSH用Shell Command去操作....經過幾日研究,終於辛苦地安裝好,雖然網上都有一些教學,但對於好像我這雖然自稱Windows IIS + ASP.NET老手,但亦是Linux + PHP新手,在console行command line去執行步驟,何其痛苦,未必短時間可以完成,所以我重新打一次過程希望可以幫到其他人,CentOS都適用!

操作環境 : Apache/2.2.6 & Fedora core 7 or CentOS
PHP version : 5.2.4
所需軟件 : PuTTY Download : http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

1. 確認你的Apache和PHP已經可以正常運作後,首先開啟PuTTY,輸入你的Server Host 然後Protocol選擇 SSH,按Open。


2. 然後照PuTTY的指示去登入,需要注意的是:
-在第2和第5行輸入密碼時,PuTTY不會出現星號,你只需照樣用鍵盤輸入密碼後,按Enter即可。
-第4行的su 是切換至root login。
login as: ming
ming@202.19.110.29's password:
Last login: Wed Feb 13 20:38:31 2008 from 210.119.205.57
[ming@ip-202-19-110-29 ~]$ su
Password:
[root@ip-202-19-110-29 ming]#

3. 安裝RPMForge
前往 http://dag.wieers.com/rpm/packages/rpmforge-release/找最新的版本,然後輸入:
wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.fc3.rf.i386.rpm

按Enter,等執行完成後,再輸入:
rpm --install rpmforge-release-0.3.6-1.fc3.rf.i386.rpm

4. 以yum去install freetds,freetds-devel, php-devel , Development tools (Line By Line去按Enter執行)
yum groupinstall 'Development Tools'
yum install freetds freetds-devel –enablerepo=rpmforge
yum install php-devel

5. 用VI Editor去修改php.spec
vi /usr/src/redhat/SPECS/php.spec

- 如果找不到放在那裡的話,可以試試輸入updatedb 然後輸入locate php.spec找出位置。
- 如沒有php.spec的話,便下載php source rpm (一般檔案名稱都是以php-做開頭的)http://centos.mirrors.skynet.be/pub/centos/5/os/SRPMS/
wget http://centos.mirrors.skynet.be/pub/centos/5/os/SRPMS/php-5.1.6-15.el5.src.rpm
rpm --install php-5.1.6-15.el5.src.rpm

安裝完成後,再重覆這個Step直至成功用VI打開php.spec。

6.打開php.spec後,按[i] 進入INSERT Mode,然後在文件後半部份,你應該可以找到一行是以
"CFLAGS="做開頭的並把"-Wno-pointer-sign"這句刪除。
然後試試找尋"%package mysql" 或"%package pdo" ,當找到後,在這一行上方(記住是上方)加入:
%package mssql
Group: Development/Languages
Requires: php = %{version}-%{release}, php-pdo
Summary: A module for PHP applications that use the MSSQL database.
provides: php_database
BuildRequires: freetds-devel%description mssql
The MSSQL package contains a dynamic shared object that will add
support for accessing MSSQL databases to php.

然後按一下"Esc"退出Insert Mode
再按一下":"進入command並輸入"wq" 再按Enter。(wq = write & quit)

Step 7 :
重建php rpm
輸入
rpmbuild -bb /usr/src/redhat/SPECS/php.spec

請保持冷靜,在這時,極大機會會出現xxxx-devel Missing Dependency等error訊息。
如果是的話,可以輸入yum install xxx-devel 一個一個地去install。
把所有Dependency搞好後,切換至extension目錄:
cd /usr/src/redhat/BUILD/php-5.1.6/ext/mssql/

輸入以下去建立mssql module :
phpize
./configure –with-mssql
make
make install

Step 8:
就如Windows Server時一樣,修改php.ini。
和之前一樣,輸入"vi /etc/php.ini" 打開php.ini , 按[i] , 把"extension=mssql.so" 放進php.ini 的extension / module部份中,按[Esc],按":",按"wq"再Enter。
最後一刻就是要reboot apache server,輸入
"/etc/init.d/httpd restart"
這時在phpinfo() 應該已經可以看到MSSQL了。

Step 9:
還要再做多一點點功夫,就是修改freetds.conf 檔案,不知是否Window和Linux不同關係,我在這一步之前,搞了幾天都不能連接MSSQL =_="!!!
在Windows Server,我可以填進server,username,password至mssql_connect連接至SQL Server 2005 如
$db=mssql_connect('210.168.xxx.xxx:1234','usr','pwd');
但Linux Server就不可以,其實我都不肯定技術上是否真的不能,但我看過很多文章,理解為PHP是經FreeTDS連接至MSSQL,所以freetds.conf 必須有其設置。

首先,MSSQL Server 2005 或Express版都不可以用Default Port, 你需要設定Dynamic Port。在
Start Menu 的SQL Server Configuration Manager -> SQL Express Protocols -> TCP/IP properties -> IP Adresses -> IPAll -> Dynamic Port
輸入你的Port,如2468 etc. 謹記在你Server的Firewall 打開port 2468 和 把TCP/IP和NamePipes都設成Enable!

那麼最後一步就是用vi editor打開freetds.conf 修改,這次簡單得多,開啟後,加入:
[sqlserver2005]
host = 210.168.xxx.xxx
port = 2468
tds version = 8.0
然後照之前般儲存離開。要注意的是,不要把instance加入,如210.168.xxx.xxx/SQLEXPRESS , 直接輸入210.168.xxx.xxx就可以,因為要經Namepipes去存取instance.

最後的一步,測試!
$db=mssql_connect('sqlserver2005','usrxxxx','pwdxxxx');

成功!

PS: 打了很多字,很累,有任何問題,歡迎留言,我會看的!

2008年2月17日星期日

Microsoft Forge New Powers & Heroes Happen Here

Microsoft 註冊了一個神秘Domain :
http://www.opensourcehero.com

照字面意思令人聯想到可能是SourceForge之類既站,但是Microsoft本身已經有CodePlex,而微軟OpenSource的社群又已經有PopFly,所以相信未必係我所想的。

點擊Url會Redirect去到 http://www.microsoft.com/opensource/heroes/default.mspx

大字標題 2月27日揭曉~
不知道搞什麼~但是"Heroes"這個字是不是跟Microsoft Virtual Lab中出現的"Heroes Happen Here"有關係呢?

Microsoft Virtual Lab可以讓你install IE的ActiveX後,就可以讓你Remote Desktop般,連去一個試用平台,試玩微軟的新產品而已。
不過兩者有冇關係就要等到27號至知。

http://www.microsoft.com/heroeshappenhere/default.mspx

2008年2月2日星期六

ASP.NET Themes and Skins Free Download

其實ASP.NET 2.0的Themes & Skins是一個不錯的模版系統,可以一如CSS般去設定樣式,
或者針對Web Control自身的Property去自訂樣式。
但可惜,免費的實在太少,尋遍整個Google,我都只是找到一個,不過當是學習資源都不錯。

ASP.NET 2.0 Colorful Web Site Starter Kit
Demo :
http://www.dotnettreats.com/samplethemes/Default.aspx
Download :
http://www.dotnettreats.com/downloadfiles/SampleThemes.zip

PHP 連接不到MSSQL Server 2005解決方法

這段時間的工作都是要寫PHP,我選擇了用NetBeans + PHP Plugin還不錯。而且或者我之前寫C# + ASP.NET關係,轉寫PHP其實沒有太大難度。

我需要做的程序很簡單,就是連接MSSQL Server把資料Sync (都是Insert而已)至另一個MySQL資料庫,但無論怎樣設定,PHP都不能連接MSSQL,並出現Error Message :
Warning: mssql_connect(): Unable to connect to server
即使我100%肯定已開啟PHP Extension,MSSQL的Dynamic Port都打開了,什麼防火牆等等都檢查一翻,還是一樣。

最後上網找找,看到有人說是因為ntwdblib.dll版本問題,但我的電腦已經安裝
PHP 5.2 / SQL Server 2005 Express SP2 / VS 2003 / 2005 / 2008
照計系統元件都不太可能是舊版本,深信是其他問題...

但最後差不多放棄時,就檢查一下電腦中的ntwdblib.dll,的確是舊版本7.00.xxx (汗...)
需要的是8.00.xxx , 那我下載新版本8.00.xxx取代所有的,一切就正常了~

Download ntwdblib.dll Version:8.00.194
http://es.dll-download-system.com/docman/n-dlls-not-system-/ntwdblib.dll/details-2.html