如何为.net应用程序提供web界面

本文关键字:web 界面 应用程序 net | 更新日期: 2023-09-27 18:03:45

我有一个带有WinForms GUI的。net (c#)应用程序。除此之外,我想提供一个辅助的web GUI,以便应用程序可以从用户家中的另一台pc控制。

所以部分网页(值)应该由应用程序填写。

web界面应该是开箱即用的,所以用户不需要安装或配置第三方软件。

实现这个的最好方法是什么?

第二个问题:一旦实现了这一点,我想在服务器上运行我的应用程序,并在互联网上提供对多个用户的访问,我能很容易地转移到一个更高性能的web服务器吗?

如何为.net应用程序提供web界面

您可以采用以下方法:

轻量级

你可以使用像Nancy这样的轻量级web框架来为页面提供服务,并让它从你的应用程序/数据库中获取数据。Nancy被设计成可以在任何地方运行,这使得它更适合构建桌面应用程序。你可以通过阅读为什么使用NancyFx来感受Nancy的语法。

Asp.net

Asp.net通常与IIS一起使用,但也可以作为桌面应用程序部署。这篇Lunar Frog博客文章描述了你如何做到这一点。它提到IIS Express需要使用官方安装程序安装到您的用户机器上。

如果你没有做过太多的web应用程序开发,最好遵循Asp.net教程,先构建一个虚拟应用程序。


我自己都没用过。Asp.net是大多数c#开发人员的第一选择,它将帮助你更好地构建web应用程序。(REST,控制器,模板/视图等)但是一个更轻的解决方案会帮助你更快地开始,可能更适合桌面应用程序。

这两个选项都可以在单独的服务器上运行,但要注意从两个前端(Gui和web)分离业务逻辑和数据库查找。南希甚至声称她是在linux上运行的!


您还需要决定是将数据呈现到模板中,还是使用javascript获取数据。

模板/视图引擎

Asp.net和Nancy都有自己的首选视图引擎,如NHaml或TextTemplatingFilePreprocessor。Nancy在这里描述了它支持的类型。

Javascript,JSON

或者,你可以构建一个返回JSON的API,并使用Ember.js、Knockout.js或Angular.js等前端javascript框架来使用这些数据。

Web API (http://www.asp.net/web-api)可以完成这里需要的一切。

理想情况下(在大多数情况下),你的WinForms应用程序应该将所有数据备份到数据库(最好通过API),你的Web API将与数据库交互,而不是与WinForms应用程序交互。

是的,将来你可以把Web API移到其他服务器上。