到目前为止,可以使用C#winforms应用程序并获得成功。...我的下一个项目是asp.net中基于Web的项目...
因为我是新手,所以我想知道
将基于Windows的窗口转换为基于Web的开发时遇到的挑战? 我需要注意哪些因素? 对于前Windows开发人员而言,使Web开发成为不同体验的重要方面可能是以下两个:
状态管理:使用Web应用程序,在实际用户的请求期间,您的代码仅在服务器上保留了很短的时间。然后终止。在Windows开发中,您习惯于使对象始终处于 Activity 状态,而状态只是“是”。例如,如果将数据加载到对象中,则该对象就在那里。当用户单击用于过滤数据的按钮时,所有代码所做的就是修改现有对象并完成。但是,在Web应用程序上,对象仅存在片刻。因此,当用户单击该按钮时,您必须重建对象,然后对其进行过滤,然后将结果再次发送给客户端。 Web应用程序的这种无状态设计是一个真正的挑战,它将在您的代码中无处不在。当然,有很多方法可以进行状态管理,但是它并不总是自动的。仅此一项,就使Web应用程序编程与Windows应用程序感觉非常不同。 客户端是HTML / Javascript:浏览器确实公开了表示页面的对象模型,您可以使用javascript与该对象模型进行交互;但是它是人类有史以来最复杂,组织最混乱的对象模型之一。仅仅掌握各种对象,它们的功能以及它们的许多怪癖可能会花费很多时间。此外,使用该API可以“执行”的大量操作(无论是从约定还是从所谓的标准)都不是“应该”执行的,这使此操作变得更加有趣。然后添加一个事实,即与Windows UI相比,您可以使用的标准UI功能非常有限,最终您会感到非常沮丧。
至于需要提防的事情...哇!那是一个很大的清单!
我猜最大的是要真正确保您在多个浏览器中测试页面。仅有很少的开发人员只是“假设”它可以在所有人员中使用。我还建议您不要使用IE进行初始开发。我发现,如果您使用的是Chrome或Firefox,请先确保它可以在那里运行;那么它也更有可能在IE中工作...但是事实并非如此。 IE仍然具有许多向后兼容性,从而使其能够呈现在别处无法正常工作的内容。