InfoVista.NET

InfoVista.NET 开源之旅

  博客园 :: 首页 :: 联系 :: 订阅 订阅 :: 管理
  15 Posts :: 0 Stories :: 115 Comments :: 0 Trackbacks

在 Rss Bandit 和 SharpDevelop 之间的权衡

(心理变化过程,没有技术含量,只是胡诌,呵呵)

距离上次的WebLog居然过了一个月有半,其实心理是一直希望可以经常写点东西的,
我开始发觉到Blog的好处,因为我不是一个简单的Reader,我开始"Dancing with blog"
在这个Blog的好处,我以为就是集思广益,即使是一个C#专题,已经有这么多人在参与了,
而且,我已经晚了,但还不是最晚。。。我知道很多同我一样的人每天要访问这里好几次,
内容是多彩多样,反馈也很快,这大概就是动力,说明它如同血液般流动着,而我的开源
之旅,也继续在进行着。

以前我写过一个InfoStudio的例子,但是总觉得没有骨架支撑,程序结构比较乱,也就是
写不下去了,所以停了下来。直到我开始研究Design Pattern和Plug In结构的时候,我开始
有点找到了方向。对于程序员来说,用最新的技术和最好的技术总是令人心动。

经常在网上逛,我知道了Rss Bandit这个Rss Reader,开源的,界面和我所想的OfficeXP类似,
并且有一个很好的Command模式和ListViewEx来使用,当然它最大的好处是有个plug-in结构,
好像最初就是msdn有篇文章上衍生出来的这么一个工具。我一开始简直如获至宝,我想,
InfoVista.NET就应该在它的基础上开发了。。。但是我发现,它的文档比较少,而且专注于
RSS上,这有点使我徘徊不前。

SharpDevelop是个好东西,而且作者写了一本书来说明它的结构,我买了一本,一年以前就买了,
现在我终于要好好读一下前面的几章了,(中文翻译一般,后来下到了英文电子版)
它的AddIn结构和Service结构很好,这使得一切功能都被一个个小功能组合起来,容易扩充。
显示管理工具也很好,花了许多时间在看。大概SharpDevelop是多人开发,所以结构上考虑得
比较多,据说作者本人也是参考了Eclipse插件结构的,我笑了,说明我正在学习使用先进的东西。
当SharpDevelop重构了许多次以后,现在的版本我想是不会大改了,除非要升级到Net 2.0,
(靠,微软升级真快啊,搅局)所以,我选择了SharpDevelop的架构。

所以最近的工作一直在看别人的源码,我尝试生成一个VS.NET的Sln文件,编译是失败了,
不过没有关系,现在我的任务就是把AddIn, Service,Gui的功能提取出来,然后作为我的
InfoVista.NET的框架,写界面和重构都是痛苦的过程,一定会消耗很多时间的。

以前我在存取内容上也权衡过,到底是用一个Access的mdb,还是用Xml文件?后来出于简单实现
的考虑,我选了xml,毕竟以后做个转换也容易。

如果有人看过我前面的文章,智商和阿甘一样的人应该都知道我想做什么,我想做一个通用
的 Application Tempplate(Explorer) ,界面类似Office 2003, 以后别人可以在它基础上
轻松加无数功能,每一个功能就是一个应用,如果在野心一点,就是再有一个Web的版本。

今天写到这里,写应用软件如同小学写作文,开始很难,且有无数的选择...
听说上海有个.NET俱乐部了,可喜可贺。

2005-7-20

 

posted on 2005-07-20 16:44 ChinaRay.XiiX 阅读(1374) 评论(9)  编辑 收藏 网摘 所属分类: InfoVista 开源项目

Feedback

#1楼  2005-07-20 17:33 mikespook      
“我想做一个通用的 Application Tempplate(Explorer) ,界面类似Office 2003, 以后别人可以在它基础上轻松加无数功能,每一个功能就是一个应用,如果在野心一点,就是再有一个Web的版本。”

这个描述很像Eclipse,不过目标是dotNET版本~~吼吼~~
  回复  引用  查看    

#2楼 [楼主] 2005-07-20 17:59 ChinaRay.XiiX      
Eclipse 是一个集成开发环境,而我的想法是一个
File Explorer, Image Explorer, Info Explorer,
因为Exploer-Like应用实在很多,但是每个人都要重复
开发一次界面,太麻烦了。
  回复  引用  查看    

#3楼  2005-07-20 18:12 蛙蛙池塘      
越强大的东西灵活性就越查,你就弄个应用程序浏览器吧,类似IE的,就相当于一个容器,模块可以一个一个放进来,模块之间共享一个架构,你可以公开你这个架构的接口和合同,只要符合你这个接口和合同的模块都可以加进来。现在的工具好像都很在意扩展性,都可以载入些模板啦,插件儿啦什么的。
  回复  引用  查看    

#4楼  2005-07-20 19:51 Garland [未注册用户]
作者提到的那本介绍SharpDevelop的书哪里有下载呢?
如果可能,请发一份到我的邮箱里。。谢谢

(我从很早就使用这个软件,认为它很好。现在也在看它的源代码,只是一直不得要领)

我的邮箱: garlandz@126.com
  回复  引用    

发扬一下share精神,本人这里有转换为sln的SharpDevelop 1.03.X版本,如果需要可以邮件向我索取,Sjsupport@163.com
  回复  引用    

#6楼  2005-07-21 15:38 poweword      
看了半天也不明白楼主的主要意图,其实主要还是不明白Application Tempplate的目的和意义在哪里。也许是我资质太差,呵呵,感觉这种东西对开发帮助不大,容易走偏。
  回复  引用  查看    

#7楼  2005-07-22 11:14 编写人生      
吐血支持,偶每次换工作就要重写一边界面模型。
  回复  引用  查看    

#8楼  2006-02-07 18:09 勤能补拙      
小弟最近看了看SharpDevelop ,虽然了解了它的构造过程,但不知它如何动态刷新菜单,请教兄台了。
QQ:307331145
  回复  引用  查看    

#9楼 [楼主] 2006-02-08 13:05 ChinaRay.XiiX      
SharpDevelop中菜单大概处理过程:
1. SharpDevelop.Addin 中定义

<Extension path="/SharpDevelop/Workbench/MainMenu">
<MenuItem id="File" label="${res:XML.MainMenu.FileMenu}">
<MenuItem id = "New"
label = "${res:XML.MainMenu.FileMenu.New}"
icon = "Icons.16x16.NewDocumentIcon"
description = "${res:XML.MainMenu.FileMenu.New.File.Description}"
shortcut = "Control|N"
class = "ICSharpCode.SharpDevelop.Commands.NewInfoVista">
</MenuItem>
。。。

2. ServiceManager 读配置信息, 生成 MenuService

3. MenuService 会调用第三方的控件CommanderBar构造菜单,你说的动态刷新可能在这里处理,但是可以拿来主义。

4. 当菜单构造好后,在自己的处理类(定义在addin),如ICSharpCode.SharpDevelop.Commands.NewInfoVista
中加入自己的具体处理代码
  回复  引用  查看    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-09-22 11:30 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: