我正在寻找一个框架,它允许我通过基于Web的GUI(使用嵌入式网络服务器)而不是winforms来管理我的应用程序。
像这样的东西:http://www.webtoolkit.eu/wt但是后来是.NET
在我的代码中,我应该能够实例化类(如按钮,表单等),当用户浏览到给定端口时,应用程序应将其呈现为javascript / ajax等。 优选地,当按下按钮时,应该调用我的代码中的通知。
这是一个不太具体的问题,而不是我发布的关于extjs的另一个问题。我希望这会吸引更多的观众,因为它更通用
感谢。
更新
像解决方案一样的卡西尼号不符合要求。由于webbrowser嵌入在我的应用程序中,因此不需要ASP.NET服务器端脚本。我宁愿拥有框架,在页面上发生事情时调用我的应用程序中的函数。 例如onButtonClicked()。答案 0 :(得分:3)
您可以将System.Net.HttpListener class用作嵌入式网络服务器。 HttpListener将为您执行低级别的操作,但您必须自己编写返回Html / javascript / images的代码。
我自己试了一下,使用GeckoFx将firefox嵌入到应用程序本身嵌入的Web服务器中。它似乎运作良好,但我的测试非常简单且有限。
答案 1 :(得分:2)
如何嵌入Cassinni并使用ASP.NET?
答案 2 :(得分:2)
您可以在自己的应用程序中托管ASP.NET运行时,并使用任何Web UI框架,如LiveUI或类似的东西。了解如何执行此操作here。
答案 3 :(得分:1)
如果您可以使用ASP.NET(使用开发服务器或cassini),那么您的任务将更简单。我强烈推荐这种方法。在这种情况下,您可以使用liveui,componentart或teleric。 liveui提供基于Extjs的框架来实现3层Web应用程序。 componentart和teleric提供了很好的ASP.net控件。
而webui可能可以作为没有ASP.net基础结构的httpHandler工作。但我不建议使用webui,因为1个潜在的性能问题2复杂且不灵活的编程模型。
答案 4 :(得分:1)
您是否仅限于应用程序可以支持的框架?如果您可以使用.NET 3.0+,The Windows Presentation Foundation可用于定位web(通过xbapp或silverlight)和传统的Windows窗体应用程序。
就应用程序之间的通信而言,这就是Windows Communication Foundation(WCF)真正闪耀的地方。
为了澄清,您可以使用Casini托管您的Web应用程序并使用WCF在它与您的应用程序之间进行通信,或使用xaml标记您的应用程序并将其作为Web应用程序和具有该应用程序的普通Windows应用程序公开UI。
答案 5 :(得分:0)
如果您想自动将正在运行的WinForms代码转换为HTML,那么您已经处于深水状态。我已经使用Visual WebGui做了类似的事情,但它确实需要修改你的代码,并且基本上会为你生成一个ASP.NET应用程序 - 需要一个真正的Web服务器来运行它。
我看到你不喜欢Cassini选项 - 如果你还希望这个无需一个web服务器,那么我认为快速回答是“没办法”。
如果您有一个相对简单的界面,我认为您最好的选择是动态生成HTML代码,无论是从现有表单还是从头开始,都可以使用System.Net.HttpListener。
答案 6 :(得分:0)
我很久以前做过一个基本上有Webbrowser控件的.NET 2.0项目 我会通过它的Document属性用html提供WebBrowser控件,并且会监听导航事件,以便从我的资源中获取Html(或立即构建它)并将其再次提供给WebBrowser控件。
现在,乐趣从ObjectForScripting属性开始。这允许您的html页面通过Javascript与window.external.SomeNetFunction(bla)
进行通信
不要忘记将ComVisible
属性添加到ObjectForScripting
中使用的类。
我希望这就是你要找的东西。在这个解决方案中,您有一个可以导航的网页,也可以通过javascript与您的应用交谈。 (像这样你可以接近.NET版本的AIR ......)
答案 7 :(得分:0)
DevExpress拥有满足您需求的产品。你不得不为它做好准备......
http://www.devexpress.com/Products/NET/Application_Framework/
答案 8 :(得分:-4)
我建议改用Linux路由并依赖嵌入式httpd,boa或类似的东西来保持大小。不建议在嵌入式系统上运行Windows,太多膨胀和太多安全漏洞。最好使用Linux或RTOS。