ONE开放式浏览器引擎 ONE的原理是这样的,通过对trident、gecko和webkit的com接口重新映射在ONE架构里面,产生出一个只有一种命名空间的浏览器模型(如果还有第四个引擎适合,也可以这样累积下去)。trident在.NET里面有较详细的实现,gecko则需要参考xulrunner开源项目,webkit则需要参考webkit开源项目,这三者均分别可以在,msdn、mozilla和webkit的官方网站找到指引,这里就不详细说明了。
ONE由ONE命名空间下的OneWebNavigator控件组成,OneWebNavigator控件继承自 System.Windows.Forms.Panel类,最小的.NET CLR版本是2.0.50727。在XP上需要安装.NET 2.0.50727运行时,在Windows Vista/Seven可以直接使用,目前采用32位的编译方式。
核心文件: one.exe
* 作为控件时,包含了ONE.OneWebNavigator Control。
* 作为浏览器时,包含了One Alpha浏览器,启动时使用参数--help可以查
库文件:
* webkit
和one.exe放在同一个文件夹内,包含了webkit.dll等必须的运行时文件。webkit.dll源自nightly.webkit.org的源程序编译而成。
* gecko
和one.exe放在同一个文件夹的Gecko.Library文件夹内,包含了xulrunner等必须的运行时文件。xulrunner源自releases.mozilla.org的源程序编译而成。
* trident
和one.exe放在同一个文件夹的Microsoft.mshtml.dll文件,源于.NET Primary Interop Assemblies。
ONE的源代码
1) C# 浏览器 (多窗口):多进程多窗口演示如何创建一个OneWebNavigator应用程序。
2) C# 浏览器 (多标签页):扩展OneWebNavigator为OneWebNavigatorEx控件,演示创建新的控件并重新影射OneWebNavigator的接口。
3) VB.NET 浏览器 (多文档窗口):多文档界面(MDI)窗口示范,在一个MDI母窗体内动态创建OneWebNavigator的单文档界面(SDI)窗口。
ONE项目设置要点
1) 输出文件夹设定
程序集文件的输出文件夹必须和one.exe及webkit库、gecko库、trident库的位置一样,否则库文件验证时无法通过(因为找不到)。
2) 32位编译方式
在64位的Windows里,vs2008编译时必须采用x86(32位)的方式。