SharpDevelop是一款采用C#开发的全新轻量级开发环境,该软件拥有类似于Office XP以及VS.NET的界面风格,并且还能够支持C#、java、VB.NET的多种程序语言与多种语言界面,让用户可以更好进行学习C#与软件开发规范。
SharpDevelop是专为C#和VB.NET项目开发人员打造的专业代码编辑,不但能够支持多种语言界面、多种程序语言,让用户?轻松书写C#、ASP.NET、XML、HTML等多种代码,并且还能够对HTML、ASP、ASP.NET提供彩色语法显示支持,也支持把彩色的代码输出为HTML格式文件十分便利。
1、体积小功能强大:
和几个G的Visual Studio .NET相比,它仅仅只有11M多,体积相差了几百倍,但是麻雀虽小,五脏俱全,用它开发普通的程序,足够用了。
2、框架-插件结构:
软件采用框架——插件的可扩展的体系结构。Eclipse曾经宣称可以成为世界上所有语言的开发工具,只要提供相应的插件。笔者认为该软件也可以做到这一点。整个系统可以分为两大模块:可复用的框架+插件集合。其中框架部分是软件的基础,其中全局属性、工具包、资源、基础图形用户界面层又是整个框架的基础,在此之上的可扩展模块树主要负责管理插件集合。框架之上的是代表各个功能模块的插件的集合,其中插件又允许有只插件。
3、解决方案和工程文件同Visual Studio 2005 100%兼容:
从SharpDevelop2.0开始,软件的解决方案和工程文件采用完全相同的格式,这下它们就可以互相打开对方的工程,再也不用为兼容性发愁了。
4、完全免费:
世界上有没有免费的午餐?有,这就是此款软件。相对于一个License 几千美金的Visual Studio .NET来说,这也许是该软件最大的优势了。许多小的公司、个人,在起步阶段,资金匮乏,Visual Studio .NET对它们来说太奢侈了,既然有同Visual Studio .NET完全兼容的软件可以选择,而且免费,何乐而不为呢?
5、完全开源:
一款优秀的软件如果能够开放源代码,对于广大程序员来说,无疑找到了一座知识的金库。将其源代码进行研读,学习优秀的编程技术和理念,将大大提高读者的技术水平;对于软件企业来说,也可以从开放的源代码中找到可以利用的东西。笔者曾经研读过部分软件源代码,从中受益匪浅。
1、本身由C#开发,而且公开了全部源代码,用户完全可以把这款软件当做学习C#以及软件开发规范的材料
2、支持多种程序语言,包括C#、java以及VB.NET,同时还支持多种语言界面
3、编辑器的界面风格类似于OfficeXP以及VS.NET
4、可以支持书写C#,ASP.NET,ADO.NET,XML,HTML等多种代码
5、支持基于项目或者是文件的开发
6、可以对C#,HTML,ASP,ASP.NET,VBscript,VB.NET,XML提供彩色语法显示支持
7、可以把彩色的代码输出为HTML格式文件
8、可以自己在代码中做标记
9、支持丰富的代码模板和外接插件
SharpDevelop的插件系统更加强大,它的整个系统的基础就仅仅是一个插件管理系统,而你看到的所有的界面、功能统统都是以插件的形式挂入的。在这样的一个插件系统下,我们可以不修改基本系统,仅仅使用插件就构造出各种各样不同的系统。
现在让我们来看看它的插件系统。进入到SharpDevelop的安装目录中,在Bin目录下的SharpDevelop.exe 和 SharpDevelop.Core.dll是这个系统的基本的插件系统。在Addins目录下有两个后缀是addin的文件,其中一个 SharpDevelopCore.addin 就是它的核心插件的定义(配置)文件,里面定义的各个功能模块存在于Bin/Sharpdevelop.Base.dll 文件中,另外还有很多其他的插件定义在Addins目录下的addin文件中。
分析SharpDevelop的代码,首先要弄清楚几个基本的概念,这些概念和我以前的预想有一些区别,我深入了代码之后才发现我的困惑所在。
1、AddInTree 插件树
SharpDevelop 中的插件被组织成一棵插件树结构,树的结构是通过 Extension(扩展点)中定义的Path(路径)来定义的,类似一个文件系统的目录结构。系统中的每一个插件都在配置文件中指定了 Extension,通过Extension中指定的 Path 挂到这棵插件树上。在系统中可以通过 AddTreeSingleton对象来访问各个插件,以实现插件之间的互动。
2、 AddIn 插件
在 SharpDevelop 的概念中,插件是包含多个功能模块的集合(而不是我过去认为的一个功能模块)。在文件的表现形式上是一个addin配置文件,在系统中对应 AddIn 类。
3、Extension 扩展点
SharpDevelop中的每一个插件都会被挂到 AddInTree(插件树) 中,而具体挂接到这个插件树的哪个位置,则是由插件的 Extension 对象中的 Path 指定的。在addin 配置文件中,对应于
lt;Extension path = "/SharpDevelop/Workbench/Ambiences">
指定了扩展点路径为 /SharpDevelop/Workbench/Ambiences ,也就是在插件树中的位置。
4、Codon
这个是一个比较不好理解的东西,在 SharpDevelop 的三个作者写的书的中译版中被翻译为密码子,真是个糟糕的翻译,可以跟Handle(句柄)有一拼了。词典中还有一个翻译叫“基码”,我觉得这个也不算好,不过还稍微有那么一点意思。(这里我原来误写为“代码子”,在评论中有位仁兄说这个翻译不错,现在我觉得也好像确实不错 ^o^)
根据我对代码的理解,Codon 的功能是描述(包装)一个功能模块(一个功能模块对应一个实现了具体功能的 Command 类)。为了方便访问各个插件中的功能模块, Codon 给各种功能定义了基本的属性,分别是 ID (功能模块的标识),Name (功能模块的类型。别误会,这个Name 是addin文件定义中Codon的XML结点的名称,ID才是真正的名称),其中Name可能是Class(类)、MenuItem(菜单项)、Pad(面板)等等。根据具体的功能模块,可以继承Codon定义其他的一些属性,SharpDevelop中就定义了 ClassCodon、MenuItemCodon、PadCodon等等,你可以根据需要自己定义其他类型的Codon。
在addin定义文件中,Codon对应于
lt;Extension path = "/SharpDevelop/Workbench/Ambiences">
再例如这一个定义
168.49MB|行业软件
115.08MB|行业软件
38.68MB|行业软件
8.51 MB|行业软件
219.1 MB|行业软件
41.9 MB|行业软件
181.8 MB|行业软件
65.81 MB|行业软件
34.6 MB|行业软件
16.88MB|行业软件
对于您的问题快深感抱歉,非常感谢您的举报反馈,小编一定会及时处理该问题,同时希望能尽可能的填写全面,方便小编检查具体的问题所在,及时处理,再次感谢!