高性能Web开发技术”网上聊天活动

本期嘉宾:郭红俊(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 MVPCSDN论坛架构设计者和主力开发人员,擅长ASP.NETXML

[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]

嘉宾[刘如鸿]:

问:aspasp.netC#有没有问题,整个框架老是搞不清楚,谢谢!

答:aspasp.net还是两个不同的框架,或者说运行环境还是有比较大的差距,总体来说asp是解释执行的服务器端技术,而asp.net则在托管环境下的Web应用解决方案

[2004-10-21 14:11:00]

嘉宾[刘如鸿]:

我想,高性能可以从如下几个方面考虑吧

1。响应速度

2。容载能力

3。系统的可扩展性

4。系统的弹性

[2004-10-21 14:13:00]

嘉宾[郭红俊(ghj1976]:

问:aspasp.netC#没有问题,整个框架老是搞不清楚,谢谢!

答:看来你架构方面的文章看的比较少, 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最大的优势还是在开发效率吧,毕竟对于一个商业公司,成本是一定需要考虑的,而不仅仅是因为信仰所以选择JavaVS.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 论坛帖子, 总共有进 20 G 的数据量。使用缓存就很复杂。所以采用静态页面技术。如果更新比较频繁,你再采用静态页面技术的话,数据库的磁盘I/O负载就会很大,这时候,使用缓存就比较好些,因为都是内存操作。依次类推,你要找到你要解决啥问题。再确定用那种方式提高效率。

[2004-10-21 14:23:00]

嘉宾[孟宪会(孟子E)]:

问:双缓存帖子列表技术是什么技术能说一下吗?

答:asp.net建议尽量使用缓存来提高性能,缓存技术在msdn上和网络上都有许多介绍。专们的书没有看到。如果需要的话我可以进行综合一下房到csdn

[2004-10-21 14:24:00]

嘉宾[刘如鸿]:

问:请介绍一下asp.netMVC模式的实现吧?

答: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]

嘉宾[刘如鸿]:

问:.NETJAVAweb应用中,速度谁更好一些呢?我以前用过C#web应用,发现速度好像不快。

答:如果从运行速度来说,C#应该是优于Java实现的,毕竟在虚拟机这个层次上,在windows.net做的比java好,影响速度的原因很多的,不能够因此归咎于c#或者java谁慢。

[2004-10-21 14:26:00]

嘉宾[孟宪会(孟子E)]:

问:如果只开发过asp,可以推荐一些书,系统的对.netweb开发学习的吗?好的一本书实在太重要了!

答:你说的很对。一本好的书对学习有很大帮助。可以参考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没有实现负载均衡,下一代的设计,负载均衡是要实现的。目前CSDN10多台服务器。分别在做不同用途。

[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技术,还有MozillaXUL,还有MacroMediaFlex等等,也许我们可以期待Longhornavalon技术!

[2004-10-21 14:34:00]

嘉宾[刘如鸿]:    

问:采用URL Rewrite技术让用户感觉是生成了大量的html,实际还是aspx,请问,采用这种方式(至少我觉得换汤不换药)对性能是否一定有提高?

答:我想性能的提高不是在于你采用哪个具体的技术,而是在于你是否有完整的解决方案,比如你提到的这个问题,我们可以通过aspx的缓存来提高效率的。

[2004-10-21 14:36:00]

嘉宾[孟宪会(孟子E)]:

问:.NET框架下可以开发MVC结构的应用吗?

答:是可以的,可以参考在 ASP.NET 中实现 Model-View-Controller

http://www.microsoft.com/china/MSDN/library/architecture/patterns/esp/ImpMVCinASP.mspx

[2004-10-21 14:36:00]

嘉宾[刘如鸿]:

问:那么,是否可以这样,我建立数据库对其地址索引,过期删除,但是又被访问到的话再重新生成文件。

答:恩,这是一种实现的方式

[2004-10-21 14:36:00]

嘉宾[刘如鸿]:

问:上万条的记录从XML文件读出来与用datasetSQL数据库读出来那种效率最高?

答:这个时候的XML不是一个最佳的解决方案,特别是在结构化的数据中,xml擅长的领域是在半结构化数据和语义表达,如果是简单的数据访问,DataReader更加优于DataSet

[2004-10-21 14:38:00]

嘉宾[郭红俊(ghj1976]:

问:上万条的记录适合采XML文件的方式处理吗?

答:上万条的记录适不适合Xml,主要是看:

  1、你会对这些数据进行查询么?? 目前 XML的查询性能不是很乐观;

   2、你需要把这些数据加载到内存么??如果要,是不是要一次性加载??那第一加载时间多长你是可以接受的??我想,只要你不需要考虑上面两个问题的话,用Xml 就是可以的,否则不适合。

[2004-10-21 14:38:00]

嘉宾[刘如鸿]:

问:默认情况下,使用ASP.NET总是带有一大堆烦人的VIEWSTATE,而我看到很多ASP.NET构建的网站上都是不用VIEWSTATE,请问他们是怎么做的,是否有相关的模式.VIEWSTATE对效率的影响情况大吗?

答:对于asp.netweb control,你可以禁用viewstate的,效率肯定会有影响的,毕竟对于这些数据服务器需要一个加载和存储的过程。

[2004-10-21 14:39:00]

嘉宾[郭红俊(ghj1976]:

问:shtmlhtml区别在哪里?

答:最明显的一个不同:shtml 可以 使用 这样的包含文件方式。Html 不可以

[2004-10-21 14:40:00]

嘉宾[刘如鸿]:

问:用其他语言,譬如说asp,该怎么实现URL Rewrite,能否举个例子?

答:helicon提供了一个免费的解决方案,你可以从网络上得到,ISAPI_Rewrite支持asp,你甚至可以在iis上启用jsp,php那样的后缀名

[2004-10-21 14:42:00]

嘉宾[孟宪会(孟子E)]:

问:我是一家某行业B2B商务网站的技术人员,我们采用的仍然是asp,是否可以实现URL Rewrite技术呢

答:asp不支持UrlRewrite。你可以参考http://dev.csdn.net/article/42/42861.shtm

[2004-10-21 14:43:00]

嘉宾[刘如鸿]:

问:学习过ASP,不过觉得ASPASPNET实在是天壤之别呀,不知道该学什么,怎么学?

答:我觉得面向对象的设计思想是非常重要的,网络上有相当多asp.net的文章,孟子的网站(http://dotnet.aspx.cc)也有很多文章。

[2004-10-21 14:44:00]

嘉宾[郭红俊(ghj1976]:

问:CSDN为何老是“Service Unavailable”,有无方法解决

答:“Service Unavailable ”是这个瞬间IIS服务器处于非开通状态。出现这个的情况,是因为以前CSDN服务器经常死到哪里,服务器没有任何响应。 后来就作了一个定时监控程序,如果发现一个指定页面,限定时间内,访问没有反应,自动把IIS 重起。

Service Unavailable 就是 IIS 正在重起中时候,访问网页给出的错误信息。在没有彻底提高服务器性能前,没有办法解决 Service Unavailable 的问题。

[2004-10-21 14:44:00]

嘉宾[孟宪会(孟子E)]:

问:能否说一下像论坛这样的海量数据型程序,数据在时刻变化的,到底用XML技术好不好?

答:用xml技术主要是减轻服务器的负担,对搜索,查询等都没有好处,还是要结合数据库的。

[2004-10-21 14:45:00]

嘉宾[孟宪会(孟子E)]:

问:请问孟子,你建议在开发大中型的网站时数据库操做全部使用存储过程吗?

答:是否用存储过程要看你的操作,对于比较复杂的数据库操作和比较费时的,建议用存储过程。同样的sql语句,存储过程总是比asp/asp.net中的快。

[2004-10-21 14:47:00]

嘉宾[郭红俊(ghj1976]:

问:能否指点一下怎么学习ASPNET呢?要看那些书籍比较好呢?

答:强烈推荐《ASP.NET Unleashed》第二版这本书。

也就是这本:http://www.dearbook.com.cn/book/viewbook.aspx?pno=TS0022702

[2004-10-21 14:47:00]

嘉宾[孟宪会(孟子E)]:

问:有没有人熟悉web开发中的构件化设计?向往这方面的研究,请高人指点!

答:你说的构架化是什么意思?是模块化的意思吗?这个应当是软件发展的方向。以后开发软件应当像搭积木。

[2004-10-21 14:49:00]

嘉宾[孟宪会(孟子E)]:

问:能介绍几本关于ASP.NET的书籍吗?最好是循序渐进的方式阅读那种。

答:asp.net高级编程讲的比较全面。先入门,再进行深入参考资料钻研

[2004-10-21 14:50:00]

嘉宾[郭红俊(ghj1976]:

问:三层体系结构会不会影响web应用程序的性能?

答:这要看你如何设计这个三层架构了,以及你的网站是不是达到了需要三层架构的时候。如果网站本身访问量不大,又特意的做三层架构,未必会好。我的意见,不要太刻意的追求这个模式那个模式,选择最适合自己网站的方式。

[2004-10-21 14:52:00]

嘉宾[郭红俊(ghj1976]:

问:有一个朋友说,如果访问量过大会给数据库造成很大的压力,你在实际应用中是怎样提高程序频繁访问数据库效率问题的?

答:1、缓存.虽然对你网站的请求有上万了,但是通过缓存,你可以把对数据库的请求减少到只有几十个;2、提高数据库性能.比如用存储过程。以及数据库设计上使用冗余。减少数据库的压力。

[2004-10-21 14:53:00]

嘉宾[孟宪会(孟子E)]:

问:sina那样的大型网站是怎么开发的,用asp.net可以做到那种效果吗?

答:高性能网站要考虑很多因素,软件硬件都有,sina主要生成的都是静态页面。asp.net应当也可以。

[2004-10-21 14:53:00]

嘉宾[郭红俊(ghj1976]:

问:能否说一下像论坛这样的海量数据型程序,数据又在时刻变化,应如何处理?

答:论坛从总的来说,变化很快,但是具体到一个帖子,这个帖子,可能变化就会很慢。明白我的意思了吧,如果一个东西变化很快,那你就拆分,拆分成小的个体。注意不要拆分的让人感觉你的论坛死气沉沉就行。当然,提高性能也是必须的。

[2004-10-21 14:55:00]

嘉宾[孟宪会(孟子E)]:

问:真正的高性能需要哪几个方面的因素呢?

答:高性能的因素很多:尽量用Cache,少用Session,尤其Session对象,少用Web COntrol,尽量用客户端实现,尽量少与服务器回发,生成的html 应简洁,无多余代码。我若有时间进行整理,会放到http://dotnet.aspx.cc/,这里空间有限!

[2004-10-21 14:57:00

嘉宾[郭红俊(ghj1976]:

问:像阿里巴巴,易趣等这样的电子商务网站,关系到会话的,适合用静态文本技术吗?

答:电子商务网站不太适合用纯静态文件。但是,一个页面不可能都是需要及时更新的,其中一部分可能n久都不更新。这样的话,部分区域的缓存,以及部分区域作静态文件。就可以解决这个问题。

[2004-10-21 14:57:00]

嘉宾[郭红俊(ghj1976]:

问:日流量100万的网站,数据量不是很大,大概需要几台服务器集群?

答:这涉及到你的网站的具体架构。如果你的网站数据更新不需要很及时。采用了静态文件技术。那么,一台普通的服务器就可以完全胜任了。所以,要看几台服务器,除了要看流量,还要看架构。

[2004-10-21 14:59:00]

嘉宾[刘如鸿]:

问:用cache怎么用,具体讲一下?

答:比较简单的讲,cache实现就是将一些数据变动不是特别频繁的内容作缓存,比如对于某些统计数据。我可以缓存一个页面,可以局部缓存。这个依赖于具体框架的实现技术!

[2004-10-21 14:59:00]

嘉宾[郭红俊(ghj1976]:

问:对于CSDN帖子列表技术我还有点疑问。帖子列表的变动是很频繁的,现在都是保存在数据库里面吗?

答:前面我说过,目前版本的帖子列表,采用的是双缓存技术。也就是,其实你阅读帖子列表,是没有跟数据库打交道的,是在跟缓存打交道。

[2004-10-21 15:00:00]

嘉宾[孟宪会(孟子E)]:

问:vs2005+sql2005缓存技术和现在相比是不是会发生比较大的改变,有相关的对比网址吗?

答:sql2005有许多改进。vs2005增加了开发的方便性,比如:自定义,断点,更好的是支持xslt的断点调试,具体可参考http://www.microsoft.com/sql/2005/

[2004-10-21 15:00:00]

嘉宾[刘如鸿]:

问:请推荐一下WEB报表设计的工具?

答:如果是基于.NET的,Reporting Service是首选,另外BOCrystal Report(水晶报表)应用也非常广泛,DataDynamic出品的ActiveReport也非常不错。

[2004-10-21 15:02:00]

嘉宾[孟宪会(孟子E)]:

问:可否请孟子老师介绍一下自定义服务器控件?

答:asp.net快速入门就有了,就不在这里说了吧

http://chs.gotdotnet.com/QuickStart/aspplus/default.aspx?url=/quickstart/aspplus/doc/quickstart.aspx

[2004-10-21 15:02:00]

嘉宾[刘如鸿]:

问:用asp.net可否做倒像servlet那样,url中没有文件的扩展名或给文件任意显示扩展名?

答:恩,可以做到的,通过UrlRewrite就可以,但是不要滥用,因为将所有的请求都提交给ISAPI_ASPNET.dll对于性能是有一些影响的。

[2004-10-21 15:03:00]

嘉宾[郭红俊(ghj1976]:

问:ASP三层开发的优势在哪?仅仅是是代码分离吗?性能上会不会有影响?国内成功应用是:DVBBS

答:一个论坛成功与否,不是他技术有多牛,而是看他的论坛制度。易用性。三层架构是一种比较通用的架构。它能解决绝大多数的问题,但不能解决你的一些特殊需求,特殊情况。比如你的网站很小,做啥三层架构,一层就行了

[2004-10-21 15:04:00]

嘉宾[刘如鸿]:

问:请教一个可能比较可笑的问题,什么叫“部署”?

答:简单的理解,就是将你开发完毕的应用如何从测试平台迁移到运行平台。

[2004-10-21 15:04:00]

嘉宾[孟宪会(孟子E)]:

:怎样设计这种缓存呢?我能用XML暂时存储最常被访问的数据,但是频繁的打开/关闭xml文件也会给I/O带来压力,您说的内存方式是怎么解决的?

答:xml不适合做缓存的存储地的。

[2004-10-21 15:05:00]

嘉宾[郭红俊(ghj1976]:

问:请问采用C/S结构开发网络数据库应用程序还要注意些什么?

答:C/S 结构,其实是两层结构,如果你发现你的数据库压力太大,这时候两个解决方法:1、提高数据库的性能,比如拆分数据库到不同服务器,优化数据库等等;

2、变成三层架构,一个中间层,中间层缓存一些常请求的数据。

[2004-10-21 15:06:00]

嘉宾[孟宪会(孟子E)]:

问:如果你的QQ在线话,在QQ论坛也会显示你在线,好像很同步,我想问一下这是如何实现的?

答:是从一个数据库取信息,登录时作个标记。

[2004-10-21 15:06:00]

嘉宾[孟宪会(孟子E)]:

问:可否请孟子老师介绍一下自定义服务器控件?

答:请参阅:http://chs.gotdotnet.com/QuickStart/aspplus/default.aspx?url=/quickstart/aspplus/doc/quickstart.aspx

[2004-10-21 15:06:00]

嘉宾[刘如鸿]:

问:web程序可以开发高性能的像QQ那样的即时通吗?

答:我想这是两个不同范畴的应用把,在这点上,你可以看看Web MSN Messenger,http://webmessenger.msn.com/可以直接使用你的msn,但是我想web最适合做的工作不是做及时通信,而是在于别的领域

[2004-10-21 15:07:00]

嘉宾[郭红俊(ghj1976]:

问:怎么做缓存 能具体点吗

答:具体的代码,根据语言不同。对WEB程序来说,其实就两大类:1、页面输出缓存,这时候,缓存的是Html这些输出信息;2、数据缓存,这些数据由于要做逻辑运算,缓存的是比较方便计算的数据结构,比如DataSetxml 等等。

[2004-10-21 15:07:00]

嘉宾[郭红俊(ghj1976]:

问:讲讲怎么做缓存吧,天哪,我什么都没学到

答:数据结构那门课学习过么??缓存就是把需要东西保存到内存中,被后来使用,至于如何缓存,可以使链表,可以是队列等等。。当然,有现成的DataSetXml、内存镜像文件 等等这些可以用。

[2004-10-21 15:10:00]

嘉宾[刘如鸿]:

问:像动网中存的一些信息在cookie中,这叫不叫缓存?

答:缓存是针对数据而言的,将一些信息放在cookie严格上来说是一种状态跟踪

[2004-10-21 15:10:00]

嘉宾[郭红俊(ghj1976]:

问:我有个朋友他用C#开发手机短信的应用,我想问一下,手机短信的应用和web的应用有什么不同?

答:短信程序跟其他程序差别不大,其实就是调用其它公司的短信接口,这个接口可能是一个Http Get请求,也可能是一个Http Post 请求,当然,还有Web Service。具体看对方合作公司。剩下的,跟其他的程序一样的。

[2004-10-21 15:11:00]

嘉宾[孟宪会(孟子E)]:

问:问个最笨的问题,什么是缓存?

答:生成高性能、可缩放的 Web 应用程序最重要的因素之一是能够在首次请求项时将这些项存储在内存中,不管它们是数据对象、页还是页的某些部分。可以将这些项存储在 Web 服务器上或请求流中的其他软件上,例如代理服务器或浏览器。使您能够避免重新创建满足先前请求的信息,尤其是那些需要大量处理器时间或资源的信息。这就是通常所说的缓存,它允许您使用多种技术跨 HTTP 请求存储页输出或应用程序数据并对其进行重复使用。这样,服务器不需要重新创建信息,从而节省了时间和资源。ASP.NET 提供了两种您可以用来创建高性能 Web 应用程序的缓存类型。第一种叫做输出缓存,它允许将动态页或用户控件响应存储在输出流(从发起服务器到请求浏览器)中任何具备 HTTP 1.1 缓存功能的设备上。当后面的请求发生时,不执行页或用户控件代码,缓存的输出用于满足该请求。第二种类型的缓存是传统的应用程序数据缓存,可以使用它以编程方式将任意对象(例如数据集)存储到服务器内存,这样您的应用程序可以节省重新创建这些对象所需的时间和资源。

[2004-10-21 15:11:00]

嘉宾[郭红俊(ghj1976]:

问:请讲一下为什么一定要用HttpModuleHttpHandler

答:这个并不是一定要用呀,在你需要的时候,再用呀。建议你看看 ASP.net 的工作原理,懂得工作原理,对设计高性能的程序很有帮助的。

[2004-10-21 15:13:00]

嘉宾[刘如鸿]:

问:请讲一下为什么一定要用HttpModuleHttpHandler

答:如果你理解ISAPI的两种应用,我想理解httpModuleHttphandler就相对容易一点,简单的讲,httpmodule相当于过滤器,能够监听所有的http请求,而httphandler则是一个处理程序,aspx页面也是一个httphandler,只是实现了更多的功能罢了

[2004-10-21 15:13:00]

嘉宾[郭红俊(ghj1976]:

 问:能不能叫孟宪会(孟子E)整理一点缓存相关的技术文章放在csdn

答:孟子的个人网站: http://dotnet.aspx.cc/

                     http://sz.luohuedu.net/xml/

[2004-10-21 15:13:00]

嘉宾[孟宪会(孟子E)]:

问:动网论坛是如何应用缓存技术的?

asp只能用application或者session

[2004-10-21 15:13:00]

嘉宾[刘如鸿]:

问:在效率和服务器负载上哪样更好呢?

答:我想,设计一个好的系统不是在于你某段代码执行有多快,而是在于你的系统是否有能够承受大量的请求,还有在负载量变化比较大的时候怎样去适应这样的改变

[2004-10-21 15:14:00]

嘉宾[孟宪会(孟子E)]:

问:请问采用C/S结构开发网络数据库应用程序还要注意些什么?

答:安全性,性能比较关键。

[2004-10-21 15:15:00]

嘉宾[孟宪会(孟子E)]:

问:我周围有个朋友,他们采用ASP三层结构开发,他们这样就将asp开发中遇到的代码不能分离很好的解决,国内成功的应用是DvBBS,请问这样用在性能上有缺点吗?

答:最好做成dll组件,这样比较高效。

[2004-10-21 15:16:00]

嘉宾[郭红俊(ghj1976]:

 问:能谈谈关于自己在开发中从asp转型到.net中最困难和最重要的地方吗

Session 不能共享。

[2004-10-21 15:16:00]

嘉宾[刘如鸿]:

问:如何在web中调用usb硬件的密匙?我的意思是我做的OA是能过插入usb来登录的。

答:如果要在Web上访问本地资源,需要签名的ActiveX,而且需要在每个客户机器都需要安装,另外一些证书也可以解决的!

[2004-10-21 15:16:00]

嘉宾[孟宪会(孟子E)]:

问:关于缓存设计,哪里这方面比较好例子或书?

答:在网络上就可以找到很多教程的。专门的书好像没有!

[2004-10-21 15:16:00]

嘉宾[孟宪会(孟子E)]:

问:C#windows下运行速度比JAVA下快,这我相信,两者都是微软的产品,兼容性好。我想问一下,用C#开发的web应用好果不在windows下运行呢?

答:c#目前在wndows下运行的好,其它系统还有问题。不过,Mono已经实现在Lunix下运行了!

[2004-10-21 15:17:00]

嘉宾[郭红俊(ghj1976]:

问:用WEB方式访问网络数据库快呢,还是用C/S访问网络数据库快呢??

答:这个问题要具体问题具体分析,他们是不是走的都是一样的带宽,是不是都是ADO.net,被访问的数据库压力如何?访问的服务器压力如何?等等这些都影响到谁更快的问题。

[2004-10-21 15:19:00]

嘉宾[刘如鸿]:

问:ASP.NET的安全性到底如何?

答:我想一个系统的安全性是需要依赖的一些技术和实现,更多的是依赖于你的实现吧,相对于之前的服务器,Windows Server 2003是第一个从安全角度考虑设计的系统,同时ASP.NET对于资源方面提供了一个很好的模型,你可以使用Windows 认证,可以使用简单配置来实现权限控制,可以采用表单认证,还有passport的支持!

[2004-10-21 15:19:00]

嘉宾[孟宪会(孟子E)]:

 问:sqlserver access哪个资源占用大?

答:sqlserver access具体没有见到比较的结果数据,sqlserver应该比较大。access一般用来做小的,不并发的应用!

[2004-10-21 15:20:00]

嘉宾[刘如鸿]:

问:采用C/SWEB开发网络数据库应用程序那个性能好些?

答:C/S结构能够充分利用客户端资源,而B/S则拥有更好的弹性,一切还是从应用的角度出发去考虑你的系统!

[2004-10-21 15:21:00]

嘉宾[孟宪会(孟子E)]:

问:用在web页面上的flash很容易被用户下载,有什么办法加密,防止用户下载,可不可以将flash做成像Real那样的流式处理,在线播放?

答:flash已经是流格式的了。这与swf文件格式有关系!

[2004-10-21 15:22:00]

嘉宾[刘如鸿]:

问:在asp.net采用xml有什么样的益趣?

答:在xml的支持上,.net是做的最好的,XML在存储半结构化数据是有明显的优势的,而且在ado.net,对于xml提供了大量的支持!

[2004-10-21 15:22:00]

嘉宾[孟宪会(孟子E)]:

问:xml web service 主要应用在哪些方面?

答:可以用在任何方面,只是现在应用还不多,技术还不是很成熟。比如提供股票信息,天气预报等!

[2004-10-21 15:23:00]

嘉宾[郭红俊(ghj1976]:

问:asp.net和最近流行的web标准有冲突吗?我注意到asp.net生成的代码有时候是很庞大的,这对性能来说应该是一种负担吧,虽然有缓存机制,但是好像没从根本上减少带宽占用。

答:1ASP.net 2.0 中, html head 上的那些垃圾代码默认没有了。2ASP.net 中引入的 Web Form 需要服务器跟客户端大量的通讯,ViewState 就是为此产生的。这显然影响的网站的性能,(传递的数据更多了。)所以,根据你的自己情况,用 Web Form,以及禁用一些 ViewState,对性能提高都是很有帮助的。微软提供了这个东西,并不是要你任何时候都要用它,我们要有选择的使用它。必要的时候,我们要自己写些组件,替代微软的一些默认组件。

[2004-10-21 15:23:00]

嘉宾[孟宪会(孟子E)]:

问:httphandlehttpmodule是什么,如何应用,有何区别,用这些可以提高性能吗?

答:可参考

http://tech.ccidnet.com/pub/article/c294_a34991_p1.html

http://www.frontfree.net/view/article_856.html

[2004-10-21 15:24:00]

嘉宾[郭红俊(ghj1976]:

问:Session 不能共享。我发现csdn登录程序是用asp.net做的,进去后是asp页面。那样如何处理session

答:Cookie 两者Cookie 是可以通用的。可以参看我的这篇Blog

http://blog.joycode.com/ghj/archive/ 2004/03/17 /16453.aspx

[2004-10-21 15:25:00]

嘉宾[孟宪会(孟子E)]:

问:对于大型商务网站,常面临采用静态页面好呢,还是采用页面缓存好呢?这样的选择有答案吗?

答:各有利弊,对商务网站,还是采用动态的好,因为要进行验证身份等!

[2004-10-21 15:25:00]

嘉宾[孟宪会(孟子E)]:

问:在效率和负载上,我们没有大量请求这个测试环境怎么办?怎么能知道系统是否能经受住考验?

答:微软在vs.net提供了act,可以大致了解!

[2004-10-21 15:27:00]

嘉宾[刘如鸿]:

问:对于大型商务网站,常面临采用静态页面好呢?还是采用页面缓存好呢?这样的选择有答案吗?

答: 从安全的角度考虑,作为电子商务网站,所有的数据是应该保密的,这个时候采用动态页面时一个比较合适的选择,这只是我个人的倾向性,因为使用动态页面,在 页面权限控制方面我们可以更加容易一些,当然了,具体的应用还是依赖于实际的业务,如果你的页面不想被搜索引擎索引到,那么我还是建议使用动态页面,否则 反之[2004-10-21 15:27:00]

嘉宾[郭红俊(ghj1976]:

问:能不能具体说一说csdn上的双缓存是怎么实现的?是否页面缓存保存信息,数据缓存保存页面缓存的索引?

答:对,页面缓存是使用 ASP Application 缓存了页面输出的Html代码;数据缓存是把一个 XML Dom 对象缓存到 Application 对象了。另外有个上次缓存更新时间被记录到 Application , 来实现定时维护缓存。对 ASP 来说,全局缓存只有用 Application 下一代的社区,缓存的可选方案就多多了。

[2004-10-21 15:28:00]

嘉宾[孟宪会(孟子E)]:

:我在网上下载了一个国外朋友写的组件,他可以实现加密flash在网页上的路径,请问这是怎样实现的

加密成什么样子的?

[2004-10-21 15:29:00]

嘉宾[郭红俊(ghj1976]:

问:csdn论坛是完全用Cookie会话的吗?

答:no 因为CSDN Cookie 是加密的Cookie。如果完全用 Cookie 会话的话,性能有压力。CSDN 的会话是结合Session 的使用CookieSession 保存的是解密后的数据。

Cookie 是保存的加密后的数据。这样就不用每次都作解密处理。只是啥时候解密,定时,或者Session丢失的时候解密。

 [2004-10-21 15:30:00]

嘉宾[郭红俊(ghj1976]:

问:如果我使用asp中的application对象,来存储信息,算不算使用了缓存呢?

答:当然算呀!

[2004-10-21 15:30:00]

嘉宾[刘如鸿]:

问:怎么测试性能问题,其入口点是哪里?

答:你可以采用一些压力测试工具,VS.NET自带了Application Center Test,还有Rational也提供了很好的工具,另外对于业务逻辑组件,可以做一些单元测试,这个你可以采用NUnit

[2004-10-21 15:30:00]

嘉宾[刘如鸿]:

问:对于Web应用程序,如何测试以定位其性能问题?换句话说,高性能的Web应用开发怎么测试?

答:我想还是压力测试吧,比如你的站点可以同时接受多少的请求,每秒可以处理多少笔交易!

[2004-10-21 15:31:00]

嘉宾[郭红俊(ghj1976]:

问:如何进入一个要求有验证的页面!比如说如何做一个win form的程序 ,让他用我自己的帐号发帖到SCDN上?

答:注意CSDNCookie,你就可以用程序来实现你在CSDN的活动了。不过也小心你的Cookie被盗。那你就麻烦了。另外,如果你被封杀了,当然无论如何,都发不了帖的。

[2004-10-21 15:32:00]

嘉宾[孟宪会(孟子E)]:

问:从没试过自己开发组件,请问有好的书籍推荐吗?

答:可以到书店看看,我也好久没有留意了。如果开发.net组件,可以看《asp.net 服务器控件与组件开发》。

[2004-10-21 15:33:00]

嘉宾[孟宪会(孟子E)]:

问:不用sessionce能在页面间传递dataset对象吗?

答:Cache也可以

[2004-10-21 15:34:00]

嘉宾[孟宪会(孟子E)]:

问:怎么把一个对象存放到application呢?比如数据库连接,或者XML DOM对象?一般用到什么知识或者技术?

答:放application里不需要什么特别的只是,与一般的相同。不建议存放对象

[2004-10-21 15:36:00]

嘉宾[刘如鸿]:

问:一个页面url加密的问题:像本聊天室地址:?user=uglybean&pass=owTxTExVYMyRDYYTjEeMdqlJTjSGghaU&xb=1&r=19133中间加密算法是怎么样的?有什么好处?

答:这个需要依赖于你具体的算法,有些使用MD5加密或者其他的加密算法!

[2004-10-21 15:36:00]

嘉宾[郭红俊(ghj1976]:

问:好象session也使用了cookie,这与直接使用cookie有什么区别呢?再就是session的安全性到底有多高?

答:Session 的具体数据是保存在服务器的,但是他会保存一个Key在客户端的Cookie中,只有这个Key才可以取对应Session的值。所以,如果你登录某个网站了,我知道你的这个Key,这时候,我完全可以冒名你。Cookie 则是把具体数据,直接保存到客户端了。

[2004-10-21 15:37:00]

嘉宾[孟宪会(孟子E)]:

问:不用sessionce能在页面间传递dataset对象吗?

答:Cache也可以的

[2004-10-21 15:37:00]

嘉宾[郭红俊(ghj1976]:

问:用C#能否开发一个类QQ的网上视频会议系统?客户端是否一定要装.NET框架呢?

答:这就看你是不是 BS 的结构了。现在不是有视频聊天室么, 他们客户端就不需要 .net

[2004-10-21 15:38:00]

嘉宾[刘如鸿]:

问:MSNET上的语言都是平等的,功能是相同的,可是以后的C++要作到开发一切程序甚至是开发操作系统(stan lippmant说的),那么C#也可以罗?是骗人的吗?

答:每个语言都有自己的定位的,即使在.netc#相对于合适做enterprise 开发,而c++/cli做系统级的开发,这个我们《程序员》杂志社第11期有专门c++/CLI的专题,其中也讲到了c++/clic#的关系!

[2004-10-21 15:38:00]

嘉宾[郭红俊(ghj1976]:

问:我觉得要开发高性能的Web应用一定要有可靠的测试做后盾,否则无从谈起?

答:这是当然,高性能网站,其实就是要你找到你网站的瓶颈,然后针对瓶颈修改代码。

[2004-10-21 15:38:00]

嘉宾[孟宪会(孟子E)]:

问:web应用,有很多客端代码 javascrpt, vbscript等,用什么工具测试比较好?

答:interdev,vs.net都支持调试的!

[2004-10-21 15:39:00]嘉宾[郭红俊(ghj1976]:

问:web应用,有很多客端代码 javascrpt, vbscript等,用什么工具测试比较好?

答:微软的 ATC 就是一个典型的测试WEB的工具。

[2004-10-21 15:39:00]

嘉宾[郭红俊(ghj1976]:

问:采用C/SWEB开发网络数据库应用程序那个性能好些?为什么用c/S开发网络数据库应用程序的软件如此少,好多都是WEB的,为什么?

答:C/S 的是 胖客户端, 客户端要求必要严。其实现在整天鼓吹的不是 C/S 也不是 B/S,而是智能客户端程序。

[2004-10-21 15:41:00]

嘉宾[孟宪会(孟子E)]:

问:STAN LIPPMANC++要成为NET中的系统语言,C#也应是才行,对不?

答:这个不能妄下结论,看微软的了!

[2004-10-21 15:41:00]

嘉宾[郭红俊(ghj1976]:

问:我总觉得asp.net的运行速度很慢,vs中运行一个页面要等好半天,原因?

答:第一次运行,他要编译的,当然慢了

[2004-10-21 15:42:00]

嘉宾[郭红俊(ghj1976]:

问:请问什么是智能客户端程序?

答:参看:

http://www.microsoft.com/china/community/program/originalarticles/TechDoc/smartclient.mspx这里讲了智能客户端程序的一些基本概念。

[2004-10-21 15:47:00]嘉宾[郭红俊(ghj1976]:

问:B/S应用中怎样权衡客户端代码与服务器端代码,以提高性能呢?

答:其实就是安全性跟性能综合考虑。比如有些校验,就必须客户端有,服务器段也有。

[2004-10-21 15:48:00]

嘉宾[郭红俊(ghj1976]:

问: CSDN能不能出些C#程序开发的视频讲座呢?最好具体到某一方面的开发,让大家下载啊?

答:CSDN目前正在联系可以提供视频讲座的厂商,跟他们谈合作。如果你有认识的,或者你公司就是做视频讲座的,可以联系我: ghj1976@csdn.net另外,微软中国自己有WebCase 可以到那里下载一些自己感兴趣的视频讲座。

[2004-10-21 15:53:00]

嘉宾[主持人]:

我们的聊天活动将要结束,给大家带来的不妥之处,请原谅。

以后我们还会见面的!

谢谢大家的合作与支持!

希望大家继续关注和支持我们的网站和杂志!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值