MonoDevelop是一款免费的基于GNOME可以用来涉及诸如C#和其他.NET语言的IDE.
MonoDevelop主要的特性有以下几点:
- Code Completion 和Visual Studio中的智能感知一样,可以大大的提高编码效率.
- Class Management MonoDevelop 有喝Vs中一样的类库管理.可以轻易的管理一个项目.
- Built-in Help 怀念win下面的msdn,MD提供了内建的.NET和GTK文档.可以轻松的获得帮助.
- Project Support MD本来就是一个非常强悍的IDE.
- Add-ins 按照官方的说法就是MD有一个非常强大的add-in engine.利用统一的API和完整的扩展接口.你制作的插件可以在不同的平台上使用.另外就是MD的插件管理支持在线安装.
也许自己赶上了好时间,MonoDevelop刚刚发布了 1.0版本.上面那些是我翻译的.下面是官方的版本:
Features
The main features of MonoDevelop are:
- Customizable workbench, including custom key bindings, custom layouts, and external tools.
- Support for several languages, with C#, VB.NET and C/C++
support included, and Boo and Java (IKVM) support available as separate
add-ins.
- Support for code completion and type information tooltips.
- Refactoring operations to simplify changes like renaming
types and type members, encapsulating fields, overriding methods, or
implementing interfaces.
- Code navigation operations such as jumping to variable definitions and finding derived classes.
- Easy to use GUI designer for GTK# applications, also supporting the creation and management of custom GTK# widget libraries.
- Integrated source code version control, with support for Subversion.
- Integrated unit testing based on NUnit.
- Support for ASP.NET projects, allowing web projects can be built and tested on XSP.
- Integrated database explorer and editor (beta).
- Integration with Monodoc, to provide documentation about classes.
- Support for makefiles, both generation and synchronization.
- Support for Microsoft Visual Studio project formats.
- Packaging system that allows generating tarballs, source code and binary packages.
- Command line tools for building and managing projects.
- Support for localization projects.
- Extensible add-in architecture.
对于一个IDE来讲已经可以满足自己的需要了.
另外就是前些天安装完之后,出现了乱码,几乎所有的MonoDevelop菜单全部是乱码,今天终于搞定了.主要是语言设置的问题,本来以后是字体的原因,在MonoDevelop里面重新设置了字体,但是没有效果.最后把OS的语言环境换成了英文就okay了.还好OS在多国语言方面还是比较强悍的.
Mono是一
个跨平台的.net应用.说白了就是把.net一直到诸如Linux,Solaris,Mac OS X,Unix当然了,还有Win平台.你可以利用它在其他平台上开发并部署.net的项目.其实就目前.net的技术来讲,.net已经完全的超越了java,只是由于java本身的一些特性,诸如跨平台,和广泛的支持,丰富的框架.java还是稍微占据了一些优势的.但是随着时间的推移,相信.net会越来越强大的.而Mono就是一个开始.
官方给了这些特性
Features
很吸引人对不,而且最新的Mono 1.9_5甚至支持了Linq这个在.net3.5中才有的特性.一般来讲,在.net中那些不过分依赖于win的类库在这里都可以找到.
更加吸引人的就是在Mono下面也有一个类似Vs的IDE工具,Mono Develop.
最近开始学习这个冬冬,毕竟在mac下面比较熟悉的也就是python和Mono了.
最近做得这个项目是java的,没想到来了之后的第一个项目居然是java的.以前并没有接触过java.这段时间的接触,说实话,给自己了一个很坏很坏的影响.诚然,.net有很多地方都是从java学来得.但是.net用起来方便许多,而且较java而言更具有面向对象的特性.java的框架太多了,也许这可以成为灵活,但是这也带来了太多的问题.我们这个项目的框架简直是一塌糊涂,很多时间很多事情,都是处于一种迷茫的状态.
唉,不管那么多了,不像上一个项目,这个项目自己差不多把该学到的东西都学了.只是希望下次不要碰到这么烂的框架了.
刚看到.NET Framework的类库正式开源了。主要包括以下的部分:
- .NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc).
- ASP.NET (System.Web, System.Web.Extensions)
- Windows Forms (System.Windows.Forms)
- Windows Presentation Foundation (System.Windows)
- ADO.NET and XML (System.Data and System.Xml)
其中比较感兴趣的就是ADO.NET部分了,:)这个可以说是.net的精华所在了。等这个项目结束之后要装个VS2008了!^_^还有一周就Okay了!
.NET Framework Library Source Code now available
基本的东西永远是最重要的。
1、虚拟对象系统—VOS
它既支持过程性语言也支持面向对象的语言,同时提供一个类型丰富的系统来容纳它所支持的各种语言的特性。对于过程性语言,它描述了值的类型并指定了类型的所有值必须遵守的规则;在面向对象的语言方面,它统一了不同编程语言的对象模型。每一个对象在VOS中都被唯一标识以与其他对象相区别。
2、元数据
元数据是对VOS中类型描述代码的一种称呼。在编译程序将源代码转换成为中间代码时,它将自动生成,并与编译后的源代码共同包含在二进制代码文件中。元数据携带了源代码中类型信息的描述,这在一定程度上解决了版本问题;程序使用的类型描述与其自身绑定在一起。在CLR定位与装载类型时,系统通过读取并解析元数据来获得应用程序中的类型信息,JIT编译器获得加载的类型信息后,将中间语言代码翻译成为本地代码,在此基础上根据程序或用户要求建立类型的实例。由于整个过程中,CLR始终根据元数据建立并管理对应特定应用程序的类型,从而保证了类型的安全性。
此外,元数据在解决方法的调用,建立运行期上下文界限等方面都有着自己的作用。而关于元数据的一切都由.net在后台完成。
3、公共语言规范—-CLS
CLS是CLR定义的语言特性集合,主要用来解决互操作问题。如果一个类库遵守CLS,那么同样遵守CLS规范的其他变成语言将能够使用它的外部可见项。所有支持CLS并仅使用CLS中的语言特征的组件被称为CLS组件。
在CLS中是用System.CLSCompliantAttribute类来标识一个集合或者类是否是符合CLS规范的;在System.CLSCompliantAttriute的构造器中有一个Boolean型的返回值,代表了与之相关联的项是否符合CLS规范。
4、虚拟执行系统—-VES
VES是VOS的实现,它用来驱动运行环境。元数据的生成与使用、公用语言规范的满足性检查以及
应用程序执行过程中的内存管理均由它来完成。具体来说,VES主要完成以下功能:
(1)装入中间代码。
(2)使用JIT将中间代码转换为本地码。
(3)装入元数据。
(4)代码管理服务—包括垃圾收集器和异常处理。
(5)定制与调试服务。
(6)线程和环境管理。
ReSharp是VS的一个很好用的插件,通过这个可以对代码进行优化,更符合标准。但是ReSharp的内存占用太疯狂了。用ReSharp主要用的就是他的代码优化,和快速Nunit测试了。其他的一些功能都可以省略掉的。
其中最让人感觉郁闷的就是ReSharp的智能感应了。感觉还没有VS的好。所以我们还是返回VS的吧。具体的方法是:
启动VS2005 ReSharp->Options->General 取消智能感知
然后就是开启VS的只能感知了。