您是否想要了解客户端 - 服务器程序员面对(必须克服)能够理解(并能够转向)Web应用程序编程的困难?
认为已经编写Windows窗体客户端 - 服务器数据库应用程序至少10年的人。
答案 0 :(得分:0)
HTTP的本质是服务器不会只是坐在那里等待客户的响应。它不能。 (ASP.net可以这样做,但这是框架提供的幻觉/抽象。证据:If IsPostBack
。)每个HTTP请求都是彼此独立的,所以你必须在每个请求中包含足够的信息来提醒服务器它正在做什么。会话cookie在这里有所帮助,但重点是,一旦你需要输入,一切都会停止 - 下一个请求会重新开始。
您在胖客户端中所做的大部分工作现在都将在Web服务器上完成。也就是说,一台服务器(或两台,如果你也算数据库服务器)正在完成大部分/全部繁重的工作。在胖客户端上工作的这个非常慢的解决方案现在正在耗尽所有用户之间共享的CPU周期。将性能和可伸缩性作为次要目标(在让工作起作用的背后)保持不变。
应用程序的用户界面不再直接由您控制(除非您想成为一名傻瓜并要求IE6,在这种情况下您将不会长时间开发网络应用程序)。您需要在许多不同的浏览器中进行测试(至少最新版本的FF和Chrome,以及IE 7-9版本。如果可能的话,也可以使用Safari / Mac。如果您计划支持手机浏览器,则需要更多)。每个人都有它的怪癖。对于 工作的东西,你会想要坚持最低的共同点,并且只使用浏览器怪癖来获得额外的spiff。并且不要在每个浏览器中尝试像素完美的相同性。这种方式就是疯狂,特别是如果你必须支持旧版本的IE,手机等,而是尝试灵活的布局,小的渲染差异不是什么大问题。
几乎按照定义,您有时会在两种不同的环境(浏览器和服务器)上同时使用3种不同的语言(HTML,Javascript和服务器端语言)。您需要始终了解代码运行的时间和位置,以及代码存在的限制。服务器代码和客户端代码之间有一点隔阂,默认情况下它们不共享变量。如果你需要它们,你需要提供一种方法。