本期嘉宾:郭红俊(ghj1976),孟宪会(孟子E章) ,刘如鸿(策划编辑)
聊天主题:高性能的Web应用程序开发
嘉宾[主持人]: 各位网友大家下午好!
欢迎大家到CSDN嘉宾聊天室。
[2004-10-21 13:39:00]
嘉宾[主持人]:
今天我们非常荣幸的请到了几位在Web开发方面非常有经验的嘉宾来CSDN聊天室作客。
[2004-10-21 13:48:00]
嘉宾[主持人]:
请大家在这次聊天活动中,尽量围绕关于Web开发技术方面的问题进行讨论,请不要涉及其他内容
[2004-10-21 13:49:00]
嘉宾[主持人]: 嘉宾介绍
先介绍一下今天来聊天室做客的嘉宾
[2004-10-21 13:51:00]
嘉宾[主持人]:
孟宪会:大名鼎鼎的“孟子E章”,CSDN上的顶尖人物,“江湖”一等一的高手。
[2004-10-21 13:51:00]
嘉宾[主持人]:
郭红俊(ghj1976):MS MVP,CSDN论坛架构设计者和主力开发人员,擅长ASP.NET和XML。
[2004-10-21 13:52:00]
嘉宾[主持人]:
刘如鸿:《MSDN开发精选》策划编辑,擅长基于COM/COM+和ASP.NET的企业应用,同时熟悉客户端脚本设计。同时也是这次聊天的主持人。
[2004-10-21 13:54:00]
嘉宾[主持人]: 聊天规则1
在聊天过程中,请不要谈论与本次聊天主题无关的话题
[2004-10-21 13:55:00]
嘉宾[主持人]: 聊天规则2
请各位网友将需要嘉宾解答的问题提交给现场的chengyancy
[2004-10-21 13:55:00]
嘉宾[主持人]:
我们的聊天马上就要开始了。
[2004-10-21 13:57:00]
嘉宾[主持人]:
再次声明,请大家在这里不要涉及一些与本次主题无关的话题!
[2004-10-21 14:01:00]嘉宾[刘如鸿]:
大家好,我是刘如鸿,目前是《MSDN开发精选》的策划编辑,主要擅长com/com+和dotNet及其脚本开发
[2004-10-21 14:05:00]
嘉宾[孟宪会(孟子E章)]:
欢迎大家光临“高性能的Web应用程序开发” 聊天室
[2004-10-21 14:07:00]
嘉宾[主持人]:
已经有嘉宾来了,请大家开始!
[2004-10-21 14:07:00]
嘉宾[刘如鸿]:
我们今天举办这个活动是希望有更多的人了解asp.net,孟子和郭红俊(ghj)都是csdn上的顶尖高手,这次有幸请到他们来作为我们的嘉宾
[2004-10-21 14:07:00]
嘉宾[郭红俊(ghj1976)]:
欢迎大家来到聊天室,我的一些信息如下:
网名: ghj1976 蝈蝈俊.net
Blog: http://blog.joycode.com/ghj/
Email: ghj1976@csdn.net
目前正在从事下一代CSDN技术社区的规划工作,对下一代技术社区有任何想法,都可以联系我。
[2004-10-21 14:08:00]
嘉宾[郭红俊(ghj1976)]:
问:能否介绍一下CSDN论坛的架构设计?几次改版都在提高性能方面做了哪些工作?如何做的?效果如何?
答:目前 CSDN 论坛的架构,从性能来说,主要采用下面几个技术:
1、静态文件技术;
2、双缓存帖子列表技术;
3、应用逻辑数据库存储过程封装(这个技术由于受数据库服务器性能的限制,下一代会放弃这个技术)
[2004-10-21 14:10:00]
嘉宾[刘如鸿]:
问:asp转asp.net,C#有没有问题,整个框架老是搞不清楚,谢谢!
答:asp和asp.net还是两个不同的框架,或者说运行环境还是有比较大的差距,总体来说asp是解释执行的服务器端技术,而asp.net则在托管环境下的Web应用解决方案
[2004-10-21 14:11:00]
嘉宾[刘如鸿]:
我想,高性能可以从如下几个方面考虑吧
1。响应速度
2。容载能力
3。系统的可扩展性
4。系统的弹性
[2004-10-21 14:13:00]
嘉宾[郭红俊(ghj1976)]:
问:asp转asp.net,C#没有问题,整个框架老是搞不清楚,谢谢!
答:看来你架构方面的文章看的比较少, MSDN 专门有站点讲架构的。
http://msdn.microsoft.com/architecture/
另外,如果英文不是足够好,可以看《.NET系统架构与开发》这本书。不过这本书仅仅是翻译的一些MSDN上关于.net 架构方面的文章。 英语好的,就不要看了。这本书,翻译仍然不是足够好。
[2004-10-21 14:14:00]
嘉宾[刘如鸿]:
问:对海量数据型网站应如何处理?
答:缓存设计是一个非常重要的策略。另外需要根据具体的业务去做具体的实现的
[2004-10-21 14:16:00]
嘉宾[孟宪会(孟子E章)]:
问:我一直不能理解XML在页面与Database之间如果起到很好的作用的?
答:两者之间本质上并没有什么关系,只是应用的时候才进行结合。
[2004-10-21 14:16:00]
嘉宾[郭红俊(ghj1976)]:
问:在CSDN中静态文件技术怎么实现?
答:静态文件只是为了提高阅读速度,而不是保存数据,所以CSDN的静态文件是数据库内容的一个镜像,所以有时候,会发现有些不同步的问题。静态文件的更新,只是在需要的时候在更新。
[2004-10-21 14:16:00]
嘉宾[郭红俊(ghj1976)]:
问:WEB的安全性如何,以及如何提高其速度?
答:安全性和速一般是矛盾的。衡量的标准就是看你要保密的东西有多大价值,如果发现价值不大,速度第一,安全第二,否则安全第一,数据第二。
[2004-10-21 14:18:00]
嘉宾[刘如鸿]:
问:.NET开发的Web应用比JAVA开发的Web应用好在哪里?
答:.NET开发相对于Java最大的优势还是在开发效率吧,毕竟对于一个商业公司,成本是一定需要考虑的,而不仅仅是因为信仰所以选择Java,VS.NET是目前市面上最好的IDE,而且.net在针对开发人员方面的考虑更加亲切一点
[2004-10-21 14:18:00]
嘉宾[郭红俊(ghj1976)]:
问:双缓存帖子列表技术是什么技术能说一下吗
答:一层缓存,即数据缓存;再一层缓存,即输出缓存。这跟ASP.net 的缓存概念一样的。
不过,目前CSDN 的ASP 缓存是通过使用 Application+Xml Dom 对象来实现的缓存,.net 中就不用这么复杂,有很多种选择。但是思路,仍然是这两种缓存。
[2004-10-21 14:20:00]
嘉宾[刘如鸿]:
问:三层体系结构会不会影响web应用程序的性能?
答:在Web应 用开发中,分层是非常必要的,从某种意义上来说紧耦合的编码方式是能够获得最好的效率,但是在一个大型站点开发过程中,如果都那样的开发大家应该可以理 解,是无法想象的。分层设计有利于你更好的抽象,也比较合适大型站点开发。如果因为分层而造成性能问题,我们可以在设计完毕之后对模型进行降解,比如原先 都分层设计的某些模块采用在同一个代码段中实现,但是这个并不意味着你不分层设计。
[2004-10-21 14:22:00]
嘉宾[郭红俊(ghj1976)]:
问:缓存与静态页面,那种方法效率最高?
答:具体情况具体分析。比如,如果数据量很大,像 CSDN 论坛帖子, 总共有进
[2004-10-21 14:23:00]
嘉宾[孟宪会(孟子E章)]:
问:双缓存帖子列表技术是什么技术能说一下吗?
答:asp.net建议尽量使用缓存来提高性能,缓存技术在msdn上和网络上都有许多介绍。专们的书没有看到。如果需要的话我可以进行综合一下房到csdn上
[2004-10-21 14:24:00]
嘉宾[刘如鸿]:
问:请介绍一下asp.net中MVC模式的实现吧?
答:Model,View,Control,从简单的来说我们可以理解为BO(Business Object),这个层面是针对数据模型的,View可以理解为aspx页面,Control则是你的业务逻辑,三层设计在web开发中是很常见的,你可以参考微软提供的《企业结构与模式》这本书,在中文站点有对应的地址。
[2004-10-21 14:24:00]
嘉宾[郭红俊(ghj1976)]:
问:如何突破SESSION下载,保存网页html?
答:最简单,模拟人的正常操作, 如果该网站限制了一分钟只能访问三个页面,那你程序中也一分钟请求三次。IE 的操作,就是传递Http信息,这些完全可以用程序模拟出来的。
[2004-10-21 14:25:00]
嘉宾[刘如鸿]:
问:.NET和JAVA的web应用中,速度谁更好一些呢?我以前用过C#写web应用,发现速度好像不快。
答:如果从运行速度来说,C#应该是优于Java实现的,毕竟在虚拟机这个层次上,在windows上.net做的比java好,影响速度的原因很多的,不能够因此归咎于c#或者java谁慢。
[2004-10-21 14:26:00]
嘉宾[孟宪会(孟子E章)]:
问:如果只开发过asp,可以推荐一些书,系统的对.net的web开发学习的吗?好的一本书实在太重要了!
答:你说的很对。一本好的书对学习有很大帮助。可以参考asp.net高级编程,wrox出版的。清华翻译的
[2004-10-21 14:26:00]
嘉宾[郭红俊(ghj1976)]:
问:CSDN的静态页面不是XML么?
答:那是你只看到CSDN有论坛,没看到CSDN有新闻、文档,新闻、文档,这里CSDN是用的 SHtml 技术,而不是XML 技术。静态文件技术其实可以根据使用哪种静态文件,分很多类。具体使用那种静态文件,要看你的实际需求。
[2004-10-21 14:27:00]
嘉宾[郭红俊(ghj1976)]:
问:像sohu这样的大的门户网站,如何生成静态页面给客户端访问的呢?
答:sohu 的其实是最简单的,他的核心是新闻, 新闻只要一次发布, 然后就不用修改了,他只需要在发布后,生成静态文件即可。
[2004-10-21 14:28:00]
嘉宾[孟宪会(孟子E章)]:
问:我在开发一个B/S模式的文档管理系统,实现电子文档的在线编辑和签入签出等功能,其中批量文件上传(包括相对路径信息)功能由于浏览器安全限制没办法在web上实现,大家有办法吗?
答:批量上传一般是在客户端做控件。
[2004-10-21 14:29:00]
嘉宾[刘如鸿]:
问:像sohu这样的大的门户网站,如何生成静态页面给客户端访问的呢
答:你可以通过一些框架来完成静态页面的生成,这是纯粹的服务器端技术,在IIS下面,你甚至可以用aspx来实现,然后采用URL Rewrite技术,让用户感觉你是生成了大量的html,比如你可以将/article.aspx?id=12345映射成/articles/12345.html,请求的是静态html,真正处理还是aspx。这些技术在iis5.0通过isapi就可以实现,当然了,asp.net下面实现更加容易一些
[2004-10-21 14:29:00]
嘉宾[郭红俊(ghj1976)]:
问:csdn网站用了几个服务器,实现群集和负载均衡了吗?
答:目前版本的CSDN没有实现负载均衡,下一代的设计,负载均衡是要实现的。目前CSDN有10多台服务器。分别在做不同用途。
[2004-10-21 14:29:00]
嘉宾[刘如鸿]:
问:文档,新闻类使用shtml的静态文件的好处是什么?
答:使用shtml最大的好处就是容易被搜索引擎索引,一般来说搜索引擎对于静态页面的pagerank是高于动态页面的
[2004-10-21 14:31:00]
嘉宾[孟宪会(孟子E章)]:
问:alibaba网站的站内搜索是怎么实现的?它的特点是用户搜索后得到的页面全是静态的,连分页都是,这是如何实现的?
答:alibaba网站没有去研究,应当是服务端动态生成的。
[2004-10-21 14:31:00]
嘉宾[刘如鸿]:
问:对生成的大量静态临时文件该怎么处理?
答:你可以通过一些存储机制去解决的,或者简单的删除,就看你的业务需要了。
[2004-10-21 14:32:00]
嘉宾[孟宪会(孟子E章)]:
问:生成静态页的的好处是什么?跟ASP,JSP页面有什么区别?
答:静态页不需要服务器进行处理,直接送往客户端。可以大大降低服务器的开销。asp,jsp等需要在服务器端解析后才发送到客户端。需要cpu,内存的消耗
[2004-10-21 14:34:00]
嘉宾[郭红俊(ghj1976)]:
问:在WEB开发中最主要的部分是数据库结构设计吗?
答:对小型网站来说,数据库设计好了,绝大多数问题就解决了。如果对大型网站来说,机群、性能、这些会占很大比重。网站是啥? 网站是个数据展现、收集平台,也就是把数据库的内容展现出来,以及把需要收集的数据记录到数据库。显然,展现这里也是一个重要的部分。所以,我的观点,对于小型的网站,要做好WEB开发,重要的两点基本功:
1、数据库;2、美工(提高用户体验)。如果网站大了,就需要综合考虑了。
[2004-10-21 14:34:00]嘉宾[刘如鸿]:
问:高性能的Web应用程序开发含义很大了吧! b/s 结构是否可以真正取代 c/s结构呢?
答:我想不可以的,目前很多C/S回归的论讨在各个网站都可以看见,但是可以预见的是,目前的发展需要一个更加易于部署,易于实现的运行时,比如微软的Smart Client技术,还有Mozilla的XUL,还有MacroMedia的Flex等等,也许我们可以期待Longhorn的avalon技术!
[2004-10-21 14:34:00]
嘉宾[刘如鸿]:
问:采用URL Rewrite技术让用户感觉是生成了大量的html,实际还是aspx,请问,采用这种方式(至少我觉得换汤不换药)对性能是否一定有提高?
答:我想性能的提高不是在于你采用哪个具体的技术,而是在于你是否有完整的解决方案,比如你提到的这个问题,我们可以通过aspx的缓存来提高效率的。
[2004-10-21 14:36:00]