我有一个工作的 WinForms 应用程序,用 c# 编写,分为几个层(数据层、模型、业务逻辑、公共(public)层等)。我想允许用户也使用网络浏览器进行数据操作。我是否需要创建某种中间层,或者我可以安全地使用来自 Web 表单的业务层?另外,在 Web 层应该使用什么样的 MS 技术,正如我所看到的,我们可以使用经典的 ASP.NET 页面、Silverlight 或其他东西?该应用程序本身有多种用于输入数据的表单,以及许多带有图表和报告的不同表单。
提前致谢。
最佳答案
如果不了解您现有应用的详细信息,就很难提出建议。也没有一个正确答案。 Silverlight、ASP.net (MVC)、Javascript/jquery/ajax 都是很好的技术,都有它们的用武之地。但是,当您自己决定时,这里有一些想法和事项需要考虑。
- 胖 winform 应用程序通常是具有本地状态的胖客户端。您的数据模型等...可能依赖于在更胖的本地进程中跨多个请求持久保存的状态。
- 厚 winform 应用程序通常由一个用户和进程使用 - 除非您编写并发代码,否则您的应用程序可能不是线程安全的。
- 网络进程由发出请求的多个用户共享 - 任何共享状态都需要考虑并发性和内存占用。
- 您通常希望 Web 进程保持较少的状态并将更多的客户端体验传递给客户端 - 因此 ajax、jquery 等的流行......更多 javascript 技术。
- Silverlight 更接近您的 winform 进程 - 它托管在浏览器插件中,具有由该用户访问的状态和代码。您必须将 View 层更改为 silverlight,但您可以保留模型和数据层。
- 在 silverlight 插件中运行确实比完整的 winform 应用程序有更多的限制(沙盒)。 http://msdn.microsoft.com/en-us/library/dd470128%28v=vs.95%29.aspx
- 许多人喜欢 ASP.Net MVC - 看看吧。
- 使用 ajax、jquery 等的 Javascript 方法在最近几年获得了很大的发展势头。请注意,这将是您的 winform 代码的更大转变,这可能是好是坏取决于您如何看待它。
关于c# - 构建网络用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8498538/