Asp.net是快速开发的代名词, 那么如何用Asp.net来实现 RIA, 高性能, 同时又不过份的失于快速开发呢?
2008-09-18 13:20
525 查看
Asp.net 网页的基本模式是server side control, server side状态和server side生命周期. 在这种模式下, client side的任何状态变化都要靠server side 的代码来响应. 所以, client side放个屁, server side 就打个雷 ( postback to server). 不仅如此, server control 的状态也需要serialize, 并且在clent 和server 之间传来传去, 这更增加了server 的负担.
当一个人初学asp.net时, 一定会觉得.net是真好用, 三下五除二就能开发出一个看起来蛮不错的网页. 但是, 这样的网页, 仅对于小客户群有用. 而且, 页面上的许多操作, 动不动就postback, 让page重新刷新一下, 用户感觉也不好.
web 上的优化, 是高性能网站优化的重要一环. 如果使用asp.net, 不优化和优化的差别是非常大的. 比如说吧, 如果优化, 带一万用户只需要十台web server, 不优化就需要三十台web server甚至更多, 这在软硬件投资, 机房, 网络, 网络流量等方面的差别又会被再次放大.
对于要求 Ria(rich client app)和高性能的网站来说, 采用基本的asp.net模式, 显然是有问题的. 所以如果能够兼有, visual studio, c#, asp.net的方便与快捷性, 同时做到Ria和高性能, 那显然是个很好的事情. 要做到这点, ajax显然是少不了的, 另外, 一些client side control 库, 也是很有必要的, 比如 YUI, jQuery, Open rico等等. 除此以外, 你还必须明白, 那些asp.net server control 用起来是基本无害的, 那些是一定要避免的. 另外, 你要兼考虑 client side application lifetime and state management 和 server side application lifetime and state management, 这两种application modal. 并且, 常常是两者混合着用. 按照 client side application 模式, 大部份的用户交胡在cient断完成, 不麻烦server, 仅当需要数据时, 才向server 端发出请求. 按照 server side application 模式, 你仍然可以比较方便的使用server side control, 特别是在初次 render 时.
所以, 要做到RIA, 高性能, 快速开发, 三者并有, 其实是蛮难的.
顺便评论一下微软为什么采用asp.net的编程模式. 我想, 一方面把开发工具做的好学易用, 另一方面让开发出来的网页对服务器构成巨大的负载, 这完全是符合微软利益的. 好学易用, 必然有很多人用, 这样微软既卖工具又卖server 操作系统. 对服务器的负载大, 这样, 为了负载同样的客户, 你就得用更多的服务器( load balance), 这又促进操作系统的销售. 这是阳谋和还是阴谋, 我就不知道了.
当一个人初学asp.net时, 一定会觉得.net是真好用, 三下五除二就能开发出一个看起来蛮不错的网页. 但是, 这样的网页, 仅对于小客户群有用. 而且, 页面上的许多操作, 动不动就postback, 让page重新刷新一下, 用户感觉也不好.
web 上的优化, 是高性能网站优化的重要一环. 如果使用asp.net, 不优化和优化的差别是非常大的. 比如说吧, 如果优化, 带一万用户只需要十台web server, 不优化就需要三十台web server甚至更多, 这在软硬件投资, 机房, 网络, 网络流量等方面的差别又会被再次放大.
对于要求 Ria(rich client app)和高性能的网站来说, 采用基本的asp.net模式, 显然是有问题的. 所以如果能够兼有, visual studio, c#, asp.net的方便与快捷性, 同时做到Ria和高性能, 那显然是个很好的事情. 要做到这点, ajax显然是少不了的, 另外, 一些client side control 库, 也是很有必要的, 比如 YUI, jQuery, Open rico等等. 除此以外, 你还必须明白, 那些asp.net server control 用起来是基本无害的, 那些是一定要避免的. 另外, 你要兼考虑 client side application lifetime and state management 和 server side application lifetime and state management, 这两种application modal. 并且, 常常是两者混合着用. 按照 client side application 模式, 大部份的用户交胡在cient断完成, 不麻烦server, 仅当需要数据时, 才向server 端发出请求. 按照 server side application 模式, 你仍然可以比较方便的使用server side control, 特别是在初次 render 时.
所以, 要做到RIA, 高性能, 快速开发, 三者并有, 其实是蛮难的.
顺便评论一下微软为什么采用asp.net的编程模式. 我想, 一方面把开发工具做的好学易用, 另一方面让开发出来的网页对服务器构成巨大的负载, 这完全是符合微软利益的. 好学易用, 必然有很多人用, 这样微软既卖工具又卖server 操作系统. 对服务器的负载大, 这样, 为了负载同样的客户, 你就得用更多的服务器( load balance), 这又促进操作系统的销售. 这是阳谋和还是阴谋, 我就不知道了.
相关文章推荐
- Asp.net是快速开发的代名词, 那么如何用Asp.net来实现 RIA, 高性能, 同时又不过份的失于快速开发呢?
- 基于元数据配置的asp.net数据库应用快速开发框架设计及实现
- .Net语言 APP开发平台——Smobiler学习日志:如何快速实现手机上的资源上传功能
- 如何在asp.net页面上放置的控件上实现左右键菜单,同时
- 如何开发高性能的 ASP.NET 应用程序
- 如何在asp.net页面上放置的控件上实现左右键菜单,同时对之操作(1)
- 如何在ASP.NET大型应用系统的模块化开发实现多版本程序集并存支持[转载]
- 如何开发高性能的 ASP.NET 应用程序 jpyc [原作]
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- [转]ASP.NET 2.0如何实现数据库应用开发
- 如何在asp.net页面上放置的控件上实现左右键菜单,同时对之操作(2)
- 同事间闲聊,如何成为优秀架构师?如何才能快速能成为C#ASP.NET开发高手?
- 如何在asp.net页面上放置的控件上实现左右键菜单,同时对之操作(1)
- 如何开发高性能的 ASP.NET 应用程序
- ASP.NET 2.0如何实现数据库应用开发
- 如何开发高性能的 ASP.NET 应用程序
- ASP.NET MVC 多语言实现技巧 最简、最易维护和最快速开发
- 如何在asp.net页面上放置的控件上实现左右键菜单,同时
- 高级别问题:如何在ASP.NET大型应用系统的模块化开发实现多版本程序集并存支持
- .Net语言 APP开发平台——Smobiler学习日志:如何快速实现手机上的资源上传功能