openSUSE 11.2 上试动Mono

这说吧,直接Down的VMware,省去了编绎安装等步骤,东西都给安装好了的。

于是就开始折腾怎么运行网站了。

1:经过一翻查找,发现xsp2的目录是定位在:File System/srv/www/htdocs下,把站点往这一放就对了。

于是,从Windows系统上弄了一个网站过来。这里也有点讲究了。

在外面的Windows系统要拿东西到虚拟机的Linux系统,还真难了我一下。

后来是自动更新下了一下VWmare工具for Linux的,目前文字Copy不是问题了。

2:我是通过http://192.168.1.xx/文件.zip 的方式打包后访问保存到openSUSE系统上的。

一开始打包成RAR,发现过去后解压不了,后来偶然发现openSUSE已安装了Zip软件。

OK,网站弄过来了,当然是编绎好的,准备访问了。

--------噔噔噔噔。。。Error黄页出来了----------提示数据库访问要传参。[Windows下是正常的]

 

由于是虚拟机上的openSUSE默认已安装了MonoDevelop 2.2版本,于是打算把源码弄过去调试一下。

对着解决方案Build了一下->Build Successful。其实是忽悠人的。

对着具体项目Build的时候,错误才出来,发现:

3:部分文件的中文都乱码,这个提醒我们,中文编程还是少写的好,虽然我只是在枚举里小用一下下。

为了简单测试,我用MonoDevelop 新建一个站点,来折腾。

oh...没有设计界面,本还想拽几个控件出来的,只有html了,那就敲了。好在标签还是智能出来的。敲完了,没有右键定位到CS代码,只好双击文件出来了。

-_-..没有Page_Load事件,只好手动敲。好在敲完后还能运行的。

4:随便敲几行测试SQL 2005数据库代码,调试,发现。啊,存储过程的Return Value,Direction,等有问题。

 

SqlCommand com = new  SqlCommand();
            SqlConnection con
= new  SqlConnection( " server=192.168.1.xxx;database=xxxx;uid=xxxx;pwd=xxxxx " );
            com.Connection
= con;
             SqlParameter para
= com.Parameters.Add( " RV " ,SqlDbType.SmallInt, 8 , " RV " );
            para.Direction
= ParameterDirection.ReturnValue;
            com.CommandType
= CommandType.StoredProcedure;
            com.CommandText
= " ABCProc " ;
            con.Open();
            SqlDataReader sdr
= com.ExecuteReader();
            
object  abc = com.Parameters[ 0 ].Value;
            sdr.Close();
            con.Close();

 

在断点中才发现以下几点Bug:

A:SqlParameter无法通过名称获取,如com.Parameters["abc"]就调用出错。

B:Parameter的Direction未实现,是NULL对象,就是说给它赋值也没用,更不要说取出来。

C:SqlDbType和Parameter一个样。

D:调用scope_Identity()也会出错,估计其它少见的函数也不放过的了。

这下子,存储过程的返回值没了。

本人在Windows下也安装了一个MonoDevelop 2.2版本,运行编绎一切正常,可这有啥用呢。

比较了下Windows下的正常,那是因为还是调用的net的库

Linux下的异常是实际是调用的是Mono.XXTds下的一套东西。

 

除了这个,其它的调用还是正常能读的。

看来Mono此路漫漫,还仍只是一个传说。

你可能感兴趣的:(openSUSE 11.2 上试动Mono)