如何为.Net应用程序提供Web界面

Cod*_*r14 3 .net c# webserver embeddedwebserver

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

因此,部分网页(值)应由应用程序填写.

Web界面应该开箱即用,因此用户无需安装或配置第三方软件.

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

第二个问题:一旦实现,我想在服务器上运行我的应用程序并提供对互联网上多个用户的访问,我可以轻松地转移到更高性能的Web服务器吗?

Jam*_* EJ 5

以下是您可以采取的一些方法:

轻量级

您可以使用像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.南希描述它支持的人在这里.

Javascript和JSON

或者,您可以构建一个返回JSON的API,并使用前端javascript框架(如Ember.js,Knockout.jsAngular.js)来使用该数据.