mono目前已发布到mono2.6.4版本,C#编译器,运行时和类库都不同程度的做了重大优化、升级或重构,与2004年最初的版本已不能同日而语,执行效率大幅提升,在windows平台下,甚至优于原生的.NET程序。作为.net的开源实现,mono最大限度兼容.NET,但拒绝成为.NET的纯粹跟随和克隆者,更多关注在非windows平台上的应用开发能力,自mono2.0开始,大量加入mono独有的特性(如SIMD支持),扩充的mono库,开发工具,开发环境等,为非windows平台下的应用开发,提供了功能强大、易用的选择。一、当前与.NET的兼容情况:
 二、性能改进与运行时创新----新的代码生成引擎极大地提高了在Mono运行时上执行.NET应用的效率;此外,处于管理之下的Single Instruction和Multiple Data(SIMD)扩展还可以帮助开发者充分发挥硬件加速的优势,而无需使用低级语言编程。包括完全提前(AOT)编译技术在内的其他运行时创新能够将基于Mono的应用移植到新平台。三、Mono正在超越标准----mono开发新库的速度远快于microsoft,以Mono为基础,一些成熟的项目,如Mono.Options或collection library C5直接包含在mono库中,许多既有的动态链接库也被包装成.NET的版本,例如:GdaSharp(源自GNOME Data Access,作用类似 ADO.NET)、Cocoa#(源自MacOS X Cocoa)、X Sharp(源自X Windows)、Qt#(源自Qt )、Sharp WT(源自Java SWT)、wx.NET(源自wxWidgets)、CsGL(源自Open GL)、 C#-SDL(源自SDL)、GeckoSharp(源自Mozilla Gecko)。Mono还有一个整合许多API的计划 ,称为Tao Framework。Tao整合了Cg、DevIL、FreeGLUT、GLFW、GLU、OpenAL、OpenGL 、SDL、WGL。四、Mono将.Net带到iPhone、Android和Wii----根据Novell公司的首席Mono开发者Miguel de Icaza称,Apple的App Store中有多个应用程序是基于Mono。这可能会让那些熟悉苹果应用程序限制政策的人感到意外,因为苹果公司严格禁止开发者使用解释语言和第三方运行环境——在很大程度上就将.NET和Java之类技术排除在外。静态编译(Static compilation)是一道特别的沙司,正是它使得Mono在iPhone中运行成为可能。Mono还允许开发者使用ahead-of-time(AOT)编译,它能将.NET的通用中间语言(CIL)直接在编译中转变成原生码,这意味着应用程序不必要使用运行时编译执行技术(JIT),以在运行时产生原生码。de Icaza提到,开发者还开始使用Unity,基于Mono的开发3D游戏的第三方商业编程框架。目前App Store中大约40款应用程序是基于Unity和Mono。一个Wii上的德国游戏My Animal Center,代码主要是C#,用Unity和Mono开发。除了iPhone和Wii之外,一位开发者正试验性的将Mono运行库移植到Android平台。这一切都展示了开源的价值和内在的适应性。五、Mono企业级开发平台工具----mono已经拥有完整的应用开发框架、工具集、编译器、调试器等、以及丰富文档资料,已经成为一种全面应用开发工具。mono可帮助独立软件厂商、独立开发者以及企业开发者在跨多种硬件架构(包括大型机)的Linux平台上运行.NET客户端以及服务器应用。 MonoDevelop可帮助开发者在Linux上编写桌面与ASP.NET Web应用,将利用Microsoft Visual Studio开发的.NET应用移植至Linux*和Mac OS X*,并在这三种平台之间保持统一的代码基础。MonoDevelop提供各种工具,帮助开发者简化和优化在Linux平台上开发.NET的流程。MonoDevelop使用MSBuild项目文件增加与Visual Studio. Web项目的互操作性,并与Visual Studio 2008及Visual Web Developer 2008 SP1兼容,为需要在Windows*和Linux上开发并部署web应用的开发者提供更多选项。一个学习与探讨mono的网站上线公测中,网站运行于Debian+Apache+Mono+Asp.net,欢迎你的意见。http://www.imono.cc

解决方案 »

  1.   

    网站本人用美国vps搭建的,系统总共才384M内存,没银子。
    在国内电信用户打开速度还可以,如果网通用户,请顺便说一声。
      

  2.   

    这个怎么搭建的
    我的VPS是centos的系统
      

  3.   

    to:kagetu_toki
       现在centos的vps最多,事实上本人开始时也是用centos搭建的,网站访问时遇到zlib库问题,不能装入css,所以又换成debian了。(后来觉得与系统无关应该是权限问题)。
        个人使用了多个linux发行版以及freebsd测试,编译安装,搭建mono及asp.net运行环境其实没有什么差别。所遇到的一些不同,实际上是各发行版的差别,主要是软件安装方式的(如yum,apt-get)不同,以及各发行版默认安装的一些软件环境不同(比如c编译环境)。这些不同与mono本身没有关系,安装配置mono其实是一样的。
        这里有一个mono安装配置系列可以参考一下。http://www.imono.cc/topics.aspx
        
        
      

  4.   

    mono安装之CentOS(Fedora,RedHat)篇下载编译环境:yum install gcc bison pkgconfig glib2-devel gettext make httpd-devel gcc-c++ libstdc++-devel 下载并解压源代码:wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.6.3.tar.bz2
    wget http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.6.3.tar.bz2
    wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.6.3.tar.bz2tar -jxvf mono-2.6.3.tar.bz2
    tar -jxvf xsp-2.6.3.tar.bz2
    tar -jxvf mod_mono-2.6.3.tar.bz2 安装mono环境:cd /root/mydir/mono-2.6.3
    ./configure --prefix=/opt/mono; make ; make install
    echo export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig:$PKG_CONFIG_PATH>>~/.bash_profile
    echo export PATH=/opt/mono/bin:$PATH>>~/.bash_profile
    source ~/.bash_profile 安装xsp:cd /root/mydir/xsp-2.6.3
    ./configure --prefix=/opt/mono; make ; make install 安装mod_mono:先用find / -iname apr*config命令查找出“--with-apr-config=/usr/bin/apr-1-config”(不知道--with-apr-config=/usr/bin/apr-1-config有什么用,好像不要也可以,麻烦知道的告诉一下小弟)再执行下面的命令:
    cd /root/mydir/mod_mono-2.6.3
    ./configure --prefix=/opt/mono --with-mono-prefix=/opt/mono --with-apr-config=/usr/bin/apr-1-config; make ; make installcp /etc/httpd/conf.d/ /etc/httpd/conf/mod_mono.conf selinux阻止了httpd对mod-mono-server的访问,所以执行下面的语句:setsebool -P httpd_disable_trans=1 重启httpd服务器:
    service httpd restart 在防火墙中开启80端口,允许同一个Lan的其他机器访问:方法1.在不使用图形界面工具的时候,通过关闭防火墙来实现允许开放80端口service iptables stop(PS:我尝试过下面的方法,vi /etc/sysconfig/iptables添加:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPTservice iptables restart虽然在iptables -L中看到http但无法从其他机器访问该服务器。如果有谁成功,请告知小弟): 方法2.在安装有图形界面工具的情况下,用startx进入图形界面,用“Security Level and Firewall”开启80端口。 安装libgdiplus(xsp的测试页面中,有很多都需要libgdiplus):
    yum install httpd build-essential gcc bzip bison pkgconfig glib-devel \
    glib2-devel httpd-devel libpng-devel libX11-devel freetype fontconfig \
    pango-devel ruby ruby-rdoc gtkhtml38-devel wgetwget http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.6.2.tar.bz2
    tar -jxvf libgdiplus-2.6.2.tar.bz2cd /root/mydir/libgdiplus-2.6.2
    ./configure
    make ; make install
    echo export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH >>~/.bash_profile
    source ~/.bash_profile vi /opt/mono/etc/mono/config
    添加节点:<dllmap dll="gdiplus.dll" target="/usr/lib/libgdiplus.so.0" />否则会出现DllNotFoundException的异常。 测试:一、测试monoa.运行mono -V输出:Mono JIT compiler version 2.6.3 (tarball Fri Apr  2 06:13:46 CST 2010)
    Copyright (C) 2002-2010 Novell, Inc and Contributors. http://www.mono-project.com/
            TLS:           __thread
            GC:            Included Boehm (with typed GC and Parallel Mark)
            SIGSEGV:       altstack
            Notifications: epoll
            Architecture:  x86
            Disabled:      noneb.运行mono-test-install输出:Active Mono: /opt/mono/bin/monoYour have a working System.Drawing setup
    Your file system watcher is: System.IO.InotifyWatcher 二、测试Asp.Net服务器a.测试是否能够执行aspx:  在/var/www/html/目录下建一个test.aspx页面,内容为     <%="Hello World!"%>  通过wget http://localhost/test.aspx来下载该页面的内容。 b.测试同一个Lan下其他机器能否访问:  用其他机器的浏览器打开http://ip/test.aspx c.跑xsp自带的测试程序(多点几个页面,查看是否会出现gdiplus.dll DllNotFoundException的一场):1.修改Apache的配置,开放防火墙8080端口Listen 8080
    NameVirtualHost *:8080<VirtualHost *:8080>
        ServerAdmin [email protected]
        DocumentRoot /var/www/test/
        ServerName local.mydomain.com
        ErrorLog logs/local.mydomain.com-error_log
        CustomLog logs/local.mydomain.com common
    </VirtualHost>2.复制/opt/mono/lib/xsp/test目录到var/www/下3.service httpd restart4.用浏览器打开http://ip:8080/
      

  5.   

    我放弃了,配置不成功
    对linux不熟悉
    而且这两天接连被无奈
    先的配置的PHP环境,网页传上去后第一次访问正常,再访问就无权限访问了
    然后配置MONO又一直出503错误
    头痛的要死
    我果然不适合linux
      

  6.   

    To:kagetu_toki
    在linux上配置mono运行环境,以及apache、mysql等,mono本身并不是问题,配置很简单的,主要是多少要熟悉一下linux。
      

  7.   

    顶lz一下。学生们第一次听说没有关系,只要决策者懂就行了,不需要那些到处应聘的人听说。当人们知道微软以外的人开发的替代.net类库的功能更强大(而且可以无缝结合),会知道有比单纯使用微软的.net类库更大的效益的——例如速度更快、更加灵活地开发使用原生.net类库做不到或者很难做到的动态功能,等等。
      

  8.   

    因为爱所以爱
            有人说,现在做网站很难的,你做过市场调查没有,现在有多少人在使用mono,有没有前景,有推广计划没有,以后有什么打算。说老实话这些我都还没有去考虑。    建本网站的动力,主要来自于个人喜好,本人既是DotNet的爱好者,也钟爱Linux和BSD,两者本来八杆子打不到一起去,只有mono才能把它们弄在一起,正好满足了个人的好奇心和虚荣心。    个人觉得mono的确是个好东西,值得去学习和了解。google一下,在国外有很多基于mono的项目和讨论区,而目前国内基本上没有,关注者也不太多,只有少量博客文章偶尔提到mono的最新进展,所以作为爱好者,觉得应该做一点事情。就本人水平来说,大事情做不了,但拿别人的可运行于mono的cms用一下,提供一个分享、交流平台,还是有能力办到的。    建一个网站也不花什么钱,vps空间费也能承受得起,本人并不担忧此网站有没有前途,mono的发展是有目共睹的,相信会有很多热心的爱好者会加入进来;另外,网站所谓前途,也要看怎么理解,本来就是个人的小网站,玩兴趣而已,有人参与有人捧场就是前途。    所以,如果硬要找出一个担心来,就是担心自己没有多少时间能花在上面。
      

  9.   

    我在mac下用monodevelop,中文乱码???。。有解决的方法没