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文件格式十分便捷。
SharpDevelop功能
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 配置文件中,对应于 <Extension> 。例如下面这个功能模块的配置
lt;Extension path = "/SharpDevelop/Workbench/Ambiences">
<Class id = ".NET" class = "ICSharpCode.SharpDevelop.Services.NetAmbience"/>
</Extension>
指定了扩展点路径为 /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对应于 <Extension> 标签下的内容。例如下面这个定义
lt;Extension path = "/SharpDevelop/Workbench/Ambiences">
<Class id = ".NET" class = "ICSharpCode.SharpDevelop.Services.NetAmbience"/>
</Extension>
<Extension ...> 内部定义了一个Codon,<Class ...> 表示该Codon是一个 Class(类),接着定义了该Codon的 ID和具体实现该Codon的类名ICSharpCode.SharpDevelop.Services.NetAmbience。运行期间将通过反射来找到对应的类并创建出来,这一点也是我们无法在以前的语言中实现的。
再例如这一个定义
<Extension path = "/SharpDevelop/Views/ProjectBrowser/ContextMenu/CombineBrowserNode">
<MenuItem id = "Compile"
label = "${res:XML.MainMenu.RunMenu.Compile}"
class = "ICSharpCode.SharpDevelop.Commands.Compile"/>
<MenuItem id = "CompileAll"
label = "${res:XML.MainMenu.RunMenu.CompileAll}"
class = "ICSharpCode.SharpDevelop.Commands.CompileAll"/>
<MenuItem id = "CombineBuildGroupSeparator" label = "-" />
...
</Extension>
这个扩展点中定义了三个菜单项,以及各个菜单项的名字、标签和实现的类名。这里的Codon就对应于系统中的MenuCodon对象。
5、Command 命令
正如前文所述,Codon描述了一个功能模块,而每个功能模块都是一个 ICommand 的实现。最基本的 Command 是 AbstractCommand,根据Codon的不同对应了不同的 Command。例如 MenuItemCodon 对应 MenuItemCommand 等等。
6、Service 服务
插件系统中,有一些功能是整个系统都要使用的,例如文件访问、资源、消息等等。这些功能都作为插件系统的一个基本功能为整个系统提供服务,我们就叫;服务”好了。为了便于访问,这些服务都统一通过 ServiceManager 来管理。其实服务也是一种类型的插件,它们的扩展点路径在目录树中的 /Workspace/Services 中。
理解了这几个基本的概念之后,就可以看看 SharpDevelop 的代码了。从 src/main/startup.cs 看起吧,之后是addin.cs、addinTree.cs 等等。
项目开发步骤
1、点击 菜单 文件 -- 新建 -- 解决方案 -- windows应用程序,输入名称 test,点击 建立
2、点击 设计(代码页面 左下角) ,从 源代码 切换到 设计界面
3、点击 工具(项目页面 左下角),拖放控件到界面,右侧属性中可更改
4、双击 控件,进入代码页面,输入代码
5、右击 左侧项目中的 test -- 运行项目 ,即可
C#程序制作方法
1、打开SharpDevelop,新建一个解决方案
2、在弹出的对话框中,在左侧的树形菜单中选择 C# > Windows Application,在右侧选择 Windows Applications,在下面的项目名称(Name)中填写:HelloWorld,最后点击 Create 按钮
3、在中部的编辑区域下部选择Design标签以显示可视化编辑,在左侧工具栏下部中选择Tools标签,然后在上面选择 Windows Form 部分,在其中找到 Label 组件,并拖拽入可视化编辑区域;在右侧的属性窗口找到 Text 属性,把指修改为 HelloWorld
4、最后点击顶部工具栏的绿色三角形按钮,第一个C#版的 HelloWorld 程序就运行起来了
中文界面设置
初始界面为英文,点击 菜单 Tools -- Options -- General -- UI Language -- Chinese -- OK,界面即改为中文,如果首次部分没有显示中文,可以退出再进入即可。
SharpDevelop特色
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、彻底开源系统:
一款出色的软件假如可以对外开放源代码,针对众多程序猿而言,毫无疑问找到一座专业知识的保险库。将其源代码开展细读,学习培训出色的技术编程和核心理念,将进一步提高阅读者的技术实力;针对软件公司而言,还可以从对外开放的源代码中寻找能够运用的物品。小编以前细读过一部分软件源代码,从这当中获益匪浅。
SharpDevelop是一款采用C#开发的全新轻量级开发环境!该软件拥有类似于Office XP以及VS.NET的界面风格,并且还能够支持C#、java、VB.NET的多种程序语言与多种语言界面,让用户可以更好进行学习C#与软件开发规范。