c# - 构建网络用户界面

标签 c# asp.net .net silverlight-4.0 .net-4.0

我有一个工作的 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/

相关文章:

javascript - 在 FormView 的 Edittemplate 中显示 Google map 时遇到问题

c# - 无法修改存储在另一个属性中的结构的属性

c# - 模棱两可的调用错误,两个函数都有不同的返回类型

c# - 如何通过互联网自托管 asp.net web api?

c# - 调用 Thread.SpinWait 时会内联吗?

asp.net - 如何在 ASP.NET MVC 2.0 的区域内共享 View ?

.net - 是否可以获取WPF Popup控件的Hwnd?

c# - 如何在字符串中同时使用 $ 和 @?

c# - Visual Studio 2015 无法添加服务引用

c# - 当在方法中枚举静态变量时将其设置为 null 会发生什么