从基于Window的迁移到基于Web的开发

时间:2010-02-24 09:42:29

标签: asp.net winforms

到目前为止,使用C#winforms应用程序并取得了成功....我的下一个项目将是基于web的asp.net ...

因为我是一个新手我想知道

  • 将Window移至基于Web的开发时遇到的挑战?

  • 我需要注意哪些因素?

3 个答案:

答案 0 :(得分:4)

对于以前的Windows开发人员而言,使Web开发成为不同体验的重要事情可能就是这两个:

  • 状态管理:使用Web应用程序,您的代码仅在实际用户请求期间在服务器上存在很短的时间。然后它终止。在Windows开发中,您习惯于让您的对象在整个时间都存在,而您的状态只是“正在”。例如,如果将数据加载到对象中,那么该对象就在那里。当用户单击过滤数据的按钮时,所有代码都会修改现有对象并完成。但是,在Web应用程序上,该对象仅存在片刻。因此,当用户单击该按钮时,您必须重建该对象,然后对其进行过滤,然后再将结果发送到客户端。这种无状态的Web应用程序设计是一项真正的挑战,并将在您的代码中随处可见。当然,有一些方法可以进行状态管理,但并不总是自动的。仅这一点就使编程Web应用程序与Windows应用程序有很大不同。

  • 客户端是HTML / Javascript:浏览器会公开表示页面的对象模型,您可以使用javascript与该对象模型进行交互;但它是人类发明的最复杂,组织最差的物体模型之一。只是掌握各种物体,他们做了什么,以及他们的许多怪癖都需要花费很多时间。除此之外,您可以“使用此API”执行的大量事情(无论是通过惯例还是来自所谓的标准)都会让这更加有趣。然后再加上一个事实,即与Windows UI相比,您可用的标准UI功能非常有限,并且您最终会感到非常沮丧......

至于要注意的事情......哇!这是一个很重要的名单!

我想最重要的是确保您在多个浏览器中测试您的网页。太少的开发人员只是“假设”它将在所有这些中起作用。我还建议你不要使用IE进行初始开发。我发现如果你使用Chrome或Firefox并确保它首先在那里工作;那么它更有可能在IE中工作......但反之则不然。 IE仍然具有很多向后兼容性,允许它渲染那些在其他地方无法正常工作的东西。

答案 1 :(得分:2)

要进入网络编程,最简单的开关就是开始使用网络表单。

然而,由于Web表单隐藏了很多互联网如何使其看起来像桌面编程,因此您无法获得完整的体验。

构建网站的更“原生”方式是遵循MVC模式。哪个不是更难,但它是不同的。

ASP.NET MVC可能是您最好的选择,因为您已经使用了C#和Visual Studio。但是,如果需要,您可以轻松切换到Django,Symfony或Ruby on Rails。

答案 2 :(得分:2)

除非你有一个团队,否则欢迎来到这个美好的世界:

  • 托管(IIS等)
  • 网页设计
  • CSS / HTML
  • 的Javascript
  • 页面生命周期(何时做什么)
  • 超时
  • 安全
  • 表格处理

尽管业务逻辑/流程与开发平台无关,但在转换到Web开发时还有许多方面需要考虑。我实际上开始做基于Web的应用程序编程,我很乐意有机会制作一个快速的winforms应用程序。

基于Web的内容需要考虑更多的设计/可用性。同样,由于我没有完成大量的winforms,我不确定具体细节,但网上有更多的闪光(这可能是一种祝福或分心),而这一切都需要知识。

希望有所帮助。