.NET HTML浏览器控件的替代方案

8
我目前在.NET中使用IE ActiveX(Web浏览器)控件来显示我的应用程序内的HTML,但这非常缓慢(大量虚拟内存占用),并且非常有限。我想用一个完全托管的HTML查看器替换它。
这是与C#(.NET)中是否有更好的Web浏览器控件不同的请求,因为那是关于其他嵌入式浏览器(Firefox / Gecko)的。我不想嵌入浏览器,我想要一个完全托管的控件。
更新(2011年4月13日):Jeff Atwood的这篇文章解释了部分原因,对于那些不清楚为什么需要这个的人们来说,这很重要/必要。

你正在寻找一款完全使用托管代码编写的浏览器?我不知道有这样的浏览器。最好的选择是使用现有Web浏览器的.NET封装器。不清楚为什么这对你来说是不可接受的。 - Cody Gray
@Code Gray - 一个完全使用托管代码编写的浏览器控件,是的。它需要像主流浏览器一样功能丰富吗?不需要。到目前为止,我对嵌入式浏览器的问题仅在于大小,最小的一个将使我的当前系统大小增加一倍,它们会增加大量开销(IE虚拟内存使用量是我的应用程序的4倍),而包装器如果要进行严肃的工作则效果很差。 - Robert MacLean
2
我不是要说话很粗鲁,但那有点傻。一个完全使用托管代码编写的浏览器会比使用本机代码编写的浏览器更加臃肿。你使用托管控件肯定会有更多的开销。我的猜测是会有显着的开销,但我没有真正看到过这样的情况,所以很难确定。我知道你不喜欢IE;我也一样。但是还有其他好的封装可供选择,你应该认真考虑。你不会找到一个用.NET编写的浏览器。 - Cody Gray
@Code Gray - 我认为你误解了重点。首先,膨胀是非常广泛的,我可以接受一些文件大小上的膨胀,但我想避免所有包装器中普遍存在的虚拟内存问题。其次,拥有一个托管代码浏览器(我们这里不是在谈论完整的实现,只是一个HTML查看器/解析器)意味着代码可以很容易地被更改。例如,如果我想要添加对HTML11的支持,那么我可以这样做。考虑到这在JAVA和Delphi中已经存在,它显示出了需求并且可以完成-只是不确定是什么阻止了.NET人员去做这件事。 - Robert MacLean
3个回答

5
在找到Jeff的帖子后,我浏览了一大堆评论,发现了HTMLRenderer,这是一个CodePlex解决方案。它支持CSS 2.1和HTML 4.1,并且是免费和开源(BSD许可证)。不幸的是,代码很混乱,但只有一个部分真正令人担忧,其余部分可以清理干净。

1
我想创建一个纯CSS树形结构,但不幸的是这个东西无法以相同的方式呈现它。 - MD Luffy

1

正如问题所述,“我不想嵌入一个浏览器,我想要一个经过适当管理的控件。” 这是嵌入 WebKit 的包装器。 - Robert MacLean
抱歉,我不理解您的问题。 - Wojtek Turowicz
您可以嵌入一个网页浏览器控件,然后使用像TinyMCE这样的优秀JavaScript HTML编辑器来编辑HTML。 - Matthew Lock

-1

你不可能找到一个浏览器。

编写浏览器的复杂性,特别是在这个竞争激烈的市场上,是非常巨大的。

你可以尝试的是,在 .Net 中运行一个纯 Java 网页浏览器,使用 iKVM

理想情况下,将其中一个浏览器移植到 .net 就好了,但我也找不到任何相关的参考资料。

两个纯 Java 浏览器:

  1. HotJava
  2. Lobo

我只是不明白将Java浏览器嵌入.NET应用程序中有什么意义。当然,这是*可能的。但它并不比嵌入使用本地代码编写的浏览器,如Webkit,Gecko等更好。 - Cody Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接