4

我正在寻找一个框架,它允许我通过基于 Web 的 GUI(使用嵌入式 Web 服务器)而不是 winforms 来管理我的应用程序。

像这样的东西:http ://www.webtoolkit.eu/wt 但是对于.NET

在我的代码中,我应该能够实例化类(如按钮、表单等),并且当用户浏览到给定端口时,应用程序应该将其呈现为 javascript/ajax 等。最好在按下按钮时,通知我的代码应该被调用。

与我发布的关于 extjs 的另一个问题相比,这是一个不太具体的问题。我希望这会吸引更多的观众,因为它更通用

谢谢。


更新:

类似卡西尼的解决方案不符合要求。由于网络浏览器嵌入在我的应用程序中,因此不需要 ASP.NET 服务器端脚本。我宁愿拥有框架,当页面上发生事情时,在我的应用程序中调用函数。例如 onButtonClicked()。

4

9 回答 9

3

您可以将System.Net.HttpListener 类用作嵌入式网络服务器。HttpListener 将为您完成低级别的工作,但您必须自己编写返回 Html/javascript/images 的代码。

我自己尝试一下只是为了好玩,使用GeckoFx将 firefox嵌入到应用程序本身中嵌入的 Web 服务器上。它似乎运作良好,但我的测试非常简单且有限。

于 2009-05-22T08:16:23.077 回答
2

嵌入Cassinni并使用 ASP.NET 怎么样?

于 2009-05-22T07:35:46.310 回答
2

您可以在自己的应用程序中托管 ASP.NET 运行时,并使用任何 Web UI 框架,如 LiveUI 或类似的东西。在此处查看如何执行此操作。

于 2009-05-29T05:44:55.703 回答
1

如果您可以使用 ASP.NET(使用开发服务器或 cassini),那么您的任务会更简单。我强烈推荐这种方法。在这种情况下,您可以使用 liveui、componentart 或 teleric。liveui 提供了基于 Extjs 的框架来实现 3-tiered web 应用程序。componentart 和 teleric 提供了不错的 ASP.net 控件。

而 webui 可能可以在没有 ASP.net 基础设施的情况下作为 httpHandler 工作。但我不建议使用 webui,因为 1 潜在的性能问题 2 复杂且不灵活的编程模型。

于 2009-05-29T05:18:55.037 回答
1

您是否受限于您的应用程序可以支持的框架?如果您可以使用 .NET 3.0+,则可以使用Windows Presentation Foundation来定位 Web(通过 xbapp 或 silverlight)和传统的 Windows 窗体应用程序。

就应用程序之间的通信而言,这就是Windows Communication Foundation (WCF) 真正发挥作用的地方。

澄清一下,您可以使用 Casini 托管您的 Web 应用程序并使用 WCF 在它与您的应用程序之间进行通信,或者使用 xaml 标记您的应用程序并将其公开为具有相同 UI 的 Web 应用程序和普通 Windows 应用程序。

于 2009-05-30T20:14:51.890 回答
0

如果您想将运行中的 WinForms 代码自动转换为 HTML,那么您已经陷入了困境。我用Visual WebGui做过类似的事情,但它确实需要修改你的代码,并且基本上会为你生成一个 ASP.NET 应用程序——需要一个实际的 Web 服务器来运行它。

我看到您不喜欢 Cassini 选项——如果您还希望它在没有Web 服务器的情况下也能工作,那么我认为快速回答是“没办法”。

如果您有一个相对简单的界面,我认为您最好的选择可能是从您现有的表单或从头开始动态生成 HTML 代码,并使用 System.Net.HttpListener。

于 2009-05-25T12:55:07.347 回答
0

我很久以前做过一个 .NET 2.0 项目,它基本上有一个Webbrowser控件。
我将通过它的 Document 属性为 WebBrowser 控件提供 html,并监听导航事件,以便从我的资源中获取 Html(或立即构建它)并将其再次提供给 WebBrowser 控件。

现在乐趣从ObjectForScripting属性开始。这允许您的 html 页面通过 Javascript 与 .NET 对象对话,例如:window.external.SomeNetFunction(bla).
不要忘记将ComVisible属性添加到ObjectForScripting.

我希望这就是你要找的。在这个解决方案中,您有一个可以导航的网页,也可以通过 javascript 与您的应用程序对话。(像这样你可以接近 .NET 版本的 AIR...)

于 2009-05-25T17:59:57.253 回答
0

DevExpress 有一个产品可以满足您的需求。不过,您将不得不为此付出代价...

http://www.devexpress.com/Products/NET/Application_Framework/

于 2009-06-01T07:05:07.667 回答
-4

我建议改用 Linux 路线,并依靠嵌入式 httpd、boa 或类似的东西来缩小尺寸。不建议在嵌入式系统上运行 Windows,过多的臃肿和过多的安全漏洞。最好使用 Linux 或 RTOS。

于 2009-05-22T07:11:55.833 回答