黄鸣ID:21aspnet
1883123次访问,排名5好友0人,关注者228
21aspnet的文章
原创 959 篇
翻译 9 篇
转载 22 篇
评论 1129 篇
清清月儿的公告
最近评论
somethingblue:感谢楼主

好话就不多说了,就说两点:
对于固定表头只能在IE中实现,还有,固定表头和导出数据到EXECL不能共存!!
somethingblue:我发现:
固定表头不能在火狐里面实现!
固定表头和实现导出到EXCEL不能共存,不知道能不能有其它的办法实现!!

感谢楼主,楼主真是辛苦了,让我学到很多东西!!

sunyanjunsoft:非谢作者,清清月儿,但是我的说一句,在好多的代码不应该写在服务器端的。这样会把服务器卡坏的。不过还是非常的感谢。一a直想请教你的两个问题,一个就是让DataGrid或者是GridView中,一行中在多个单先按钮,咋让他实现单选呢。第二个问题,一个列中如果有多个单选按钮又咋去实现单选呢。帮我想想,我的Email: sunyanjunsoft@126.com
sunyanjunsoft:非谢作者,清清月儿,但是我的说一句,在好多的代码不应该写在服务器端的。这样会把服务器卡坏的。不过还是非常的感谢。一a直想请教你的两个问题,一个就是让DataGrid或者是GridView中,一行中在多个单先按钮,咋让他实现单选呢。第二个问题,一个列中如果有多个单选按钮又咋去实现单选呢。帮我想想,我的Email: sunyanjunsoft@126.com
sunyanjunsoft:非谢作者,清清月儿,但是我的说一句,在好多的代码不应该写在服务器端的。这样会把服务器卡坏的。不过还是非常的感谢。一a直想请教你的两个问题,一个就是让DataGrid或者是GridView中,一行中在多个单先按钮,咋让他实现单选呢。第二个问题,一个列中如果有多个单选按钮又咋去实现单选呢。帮我想想,我的Email: sunyanjunsoft@126.com
文章分类
收藏
    相册
    图片库
    图片库2
    .NET 工具
    C# to VB.NET Translator
    Fiddler
    FxCop代码标准检测工具
    httpwatch
    Memcached
    Multiple IE
    Nunit单元测试
    Tab集合
    VB.NET and C# Comparison
    VB.NET 代码转为C#
    网站国际排名查询工具
    .NET 下载/讲座视频
    chinaitlab
    enfull
    Visual Studio 2005 的工具
    wrox出版社书刊代码下载
    中国台湾微软MSDN
    中文MSDN WebCast网络广播全部下载列表
    源码之家
    .NET 优秀Blog
    cathsfz
    cnkiminzhuhu
    cuike519的专栏
    dahuzizyd的专栏
    DotNet技术交流乐园
    DotNet男孩社区
    dudu
    gztoby
    Kemin's booootLog
    kimyoo(RSS)
    LoveCherry
    MSDN每日追踪
    Nios.Org
    Think Different and Think More
    Visual Studio.net专栏
    WCF Tools 中国研发团队的专栏
    中国DotNet俱乐部
    体验ASP.NET 2.0新特性
    刘洪峰
    天轰穿
    孟宪会
    宝玉
    开心就好【博客堂】
    张子阳
    思归呓语
    木子 [I am praying]
    李会军
    李洪根【VB】
    永春阁
    汉飞扬【Vista】
    涂曙光【SharePoint】
    维生素C.net
    网际浪子
    葛涵涛
    蒋涛
    蝈蝈俊.net[csdn版]
    蝈蝈俊.net[joycode版]
    谭振林
    邹建
    阿不
    阿良.NET
    雨痕
    鸟食轩(RSS)
    .NET 优秀网站
    .NET 官方网www.asp.net
    .NET开发资源精华收【不得不看】
    ASP .NET FAQ
    asp101
    aspfree
    C#开源资源
    C#开源资源大全
    C#语言在线帮助网站
    codeproject
    infragistics
    iwebsms
    MSDN Web/服务
    MSDN中文
    Scott Guthrie(ASP.NET之父)
    SharePoint爱好者
    VS2005.com
    Wintellect
    www.411asp.net
    世界上最大的Open Source项目在线网站
    中国C#技术学习中心
    官方ASP.NET入门教程
    微软中文新闻组
    微软官方.NET指导站点
    最好的索引网站
    正则
    邮件发送常见问题解决方法
    Ajax链接
    AJAX载入等待图片在线生成
    bindows(RSS)
    DHTML menu4作者主页(RSS)
    Dhtmlgoodies
    Dynamicdrive
    EXT类库
    json
    Tabs
    Tabs
    Tabs
    Yahoo YUI
    大量DHTML代码
    无忧脚本 - JavaScript
    索漫
    综合开发技术网
    CSDN
    IBM中文Web 项目资源中心
    W3C技术在中国
    中国BS网
    中文C#技术站
    天新网
    天极网开发频道
    太平洋电脑网web开发
    看雪
    统一教学网
    编程爱好者
    网页设计师:web标准教程及推广,网站重构
    老猫理想
    蓝色理想
    豆豆技术网
    赛迪网
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 大型互联网网站架构心得收藏

    新一篇: 学习.net应该知道什么 | 旧一篇: 给网站管理员的建议:创建可利用的、可抓取的网站

    大型互联网网站架构心得之一:分

    转自 : 朱晔 ID:LoveCherry  http://blog.csdn.net/LoveCherry/archive/2008/06/19/2564096.aspx

    我们知道,对于一个大型网站来说,可伸缩性是非常重要的,怎么样在纵向和横向有良好的可伸缩性,就需要在做架构设计的时候考虑到一个分的原则,我想在多个方面说一下怎么分:

    首先是横向的分: 1. 大的网站化解为多个小网站:当我们一个网站有多个功能的时候,可以考虑把这个网站拆分成几个小模块,每一个模块可以是一个网站,这样的话我们到时候就可以很灵活地去把这些网站部署到不同的服务器上。 2. 静态动态分离:静态文件和动态文件最好分离开成2个网站,我们知道静态网站和动态网站对服务器来说压力的侧重不同,前者可能重IO后者重CPU,那么我们在选择硬件的时候也可以有侧重,而且静态和动态内容的缓存策略也不一样。典型的应用,我们一般会有独立的文件或图片服务器。 3. 按照功能来分:比如有一个模块是负责上传的,上传操作很消耗时间,如果和其它应用混在一起的话很可能,一点点访问就会使服务器瘫痪,这种特殊的模块应该分开。安全的不安全的也要分开,还需要考虑到以后SSL的购买。 4. 我们不一定要全部用自己的服务器,搜索、报表可以依靠别人的服务,比如google的搜索和报表服务,自己做的不一定比得过别人,服务器带宽都省了。 其次是纵向的分: 1. 文件也相当于数据库,IO的流量可能比数据库还大,这也算是纵向级别的访问,上传的文件图片一定要和WEB服务器分开。当然,数据库和网站都放在一个服务器上的很少了,这是最基本的。 2. 对于涉及到数据库访问的动态程序来说,我们可以使用一个中间层(所谓的应用层或逻辑层)来访问数据库(部署在独立的服务器上),最大的好处就是缓存和灵活性。缓存的内存占用比较大,我们要把它和网站进程分开,而且这样做我们可以很方便的去改变一些数据访问的策略,即使到时候数据库有分布的话在这里可以做一个调配工作,这样灵活性就很大了。还有好处是中间层可以做电线网通桥梁,可能网通访问双线再访问电信会比网通直接访问电信服务器快。 有人说我不分,我可以做负载均衡,对,是可以的,但是如果分的话,同样的10台机器肯定比不分10台机器可以承受更多的访问量,而且对硬件的需求可能不会很高,因为知道需要哪个硬件特别好。争取让每一个服务期都不空闲,又都不是太忙,合理进行组合调整和扩充,这样的系统伸缩性就高了,能根据访问量来调整的前提就是之前有考虑到分,分的好处是灵活性、伸缩性、隔离性以及安全性。

    对服务器来说,我们有几点是要长期观察的,任何一点都可能是瓶颈: 1. CPU:动态文件的解析需要比较多的CPU,CPU出现瓶颈就要看是不是哪个功能过长时间占用线程,如果是就分出去。或者就是每一个请求处理时间不长,但是访问量很高,那么就加服务器。CPU是好东西,不能让他干等,不做事情。 2. 内存:缓存从IIS进程独立出去,一般对WEB服务器来说内存不够的情况不是很多。内存比磁盘快,要合理利用。 3. 磁盘IO:用性能监视器找到哪些文件IO特别大,找到了就分到独立的一组文件服务器上去,或者直接做CDN。磁盘慢,大规模读取数据的应用靠缓存,大规模写入数据的应用可以靠队列来降低突发的并发。 4. 网络:我们知道,网络的通讯是比较慢的,比磁盘还慢,如果是做分布式缓存,分布式计算的话,要考虑到物理服务器之间网络通讯的时间,当然,在流量大了以后,这可以提高系统的接纳能力一个等级。静态内容可以借助CSD分担一部分,在做服务器假设的时候还要考虑中国特色的电信网通情况以及防火墙。 对SQL SERVER数据库服务器来说[UPDATE]: 其实还是水平分割和纵向分割,一个二维表,水平分割就是横过来切一刀,纵向分割就是竖直切一刀: 1、纵向分割就是,我们不同的应用可以分到不同的DB中,不同的实例中,或者说把某个拥有很多字段的表拆分成小表。 2、横向分割就是,某些应用可能不负载,比如用户注册,但是用户表会非常大,可以把大表分开。可以采用表分区,数据存储在不同文件上,然后再部署到独立物理服务器增加IO吞吐以改善读写性能,土一点的做法就是自己定期把老的数据存档。表分区的另外一个优势可以增加数据查询速度,因为我们的页索引可以有多层了,就像一个文件夹中的文件不要太多,多分几层文件夹一样。 3、还可以通过数据库镜像、复制订阅、事物日志,把读写分开到不同的镜像物理数据库上,一般来说够用,如果还不行可以用硬件来实现数据库的负载均衡。当然,对于BI,我们可能还会有数据仓库。 架构上考虑到了这些之后,流量大了,就可以在这个的基础上再去调整或者做WEB服务器或者应用服务器的负载均衡。很多时候我们都是在重复发现问题-》找到瓶颈-》解决这个过程。 典型的架构如下: 动态WEB服务器配好点的CPU,静态WEB服务器和文件服务器磁盘好点 应用服务器内存大点,缓存服务器也是,数据库服务器当然内存和CPU都要好

    大型互联网网站架构心得之二:并于换

    “分”是一个比较大的原则也是一个比较高层的原则,这次我想说一下其它两个原则:并与换。

     
     
    为什么要分?是因为我们希望通过分来提高系统的承载能力,那并又是并什么呢?我想了一下有几个方面可以并:
     
    1.       合并用户请求,最基本的就是合并CSS/图片/脚本,还可以合并页面。不过合并就可能产生流量的浪费,需要有一个平衡点。
    2.       合并接口的粒度,如果做分布式应用的话,我们可能不会直接访问数据库而是调用应用层提供的接口,由于是网络调用,代价比较大,因此在设计的时候尽量提供粒度比较粗的接口,一次调用返回比较多的数据,而不是细化到添加删除修改的层次。
    3.       合并接口的部署,对于频繁的跨机器调用可以考虑有一些数据冗余,把跨网络的服务编程进程间通讯,甚至转到客户端来做。比如论坛发贴时候脏词的过滤,直接调用应用层提供的接口(跨机器)是可以的,但是可能代价比较大,可以把这个接口使用IPC方式部署在本机。
     
     
    时间换空间,空间换时间是常见的做法,具体一点说:
     
    1.       缓存。缓存的重要性早计算机的硬件中就有重要的体现。对于网站,有很多种缓存,可以是客户端资源的缓存,可以是页面输出缓存,也可以是应用层的数据缓存,目的都是一样的,或是减少了服务器请求次数,或是减少了请求的处理过程,或是减少了数据库的访问次数。当然,生成静态文件也可以算是一种缓存。不访问磁盘固然不可能,但是我们要极大限度降低磁盘访问的机会。
    2.       有的时候为了获取极快的响应,我们还会不惜代价采用重复计算。比如,我们的某个操作很可能会由于网络问题等原因响应比较慢,在设计的时候可以有一个统一的处理接口,由这个接口分发到不同的服务器去异步实现这个操作,哪个服务器先返回了结果我们就用这个结果,然后杀死其他服务器的冗余操作。
    3.       网站一般追求比较快的响应,一般不太会在比较高的层次用时间来换取空间,但是在一些用户独有数据的处理算法上可能还是会考虑到空间的节省问题。
    4.       有的时候我们会用一些聚合表来存放聚合数据,也就是进行一些预计算提高复杂计算(比如报表)的性能。当然,对于数据分析,构建多维数据库也是一种不错的选择。
     
    有很多网友留言说说的比较粗,没有什么具体的东西。我觉得架构这个东西很难去说具体怎么做,因为具体实施的时候要看情况去应用的,由于没有完美的东西,所以做架构通常是去做一个平衡,很可能某一个侧重不同会影响到架构的实施。希望我的这些文章能给大家一个提示的作用,看了之后如果你觉得“这点我倒没有考虑到,以后要注意”那或许就是最大的帮助了,下面我想说一些其它方面的问题,每一条都很零散,算是一个补充吧:
     
    1.       到底是采用已有的东西还是自己去做需要详细考虑的,采用别人的东西可能比较稳定,但是自己的控制少了一点,采用自己做的东西可以很灵活,但是可能会问题比较多。不管怎么样,我们在采用一个第三方框架的时候务必要进行缜密的调查,看到他的不足,否则项目很可能在后期被这个框架制约,反之,决定自己去做一个框架的时候也要看到自己需要什么其他框架不能提供的东西。
    2.       数据传输的时候可以做压缩,但要考虑到压缩解压缩需要CPU资源,在IO(磁盘,带宽,传输能力)和CPU之间有一个平衡的考虑。
    3.       理想的可伸缩性架构是可以自由增加或替换服务器,无需去停机维护或做很大的调整。在使用一个统一的调度中心来调度这些服务器,分配请求的时候,我们要考虑一下调度服务器能承受多少流量。
    4.       使用大量的廉价服务器还是少量的高配服务器?如何根据需求来组合服务器发挥最大作用。
    5.       对于分布式构架,我们尽量让每一个节点保持简单的逻辑,尽量减少同一层次节点之间的依赖,另外。需要有统一的地方来管理所有的节点。
    6.       功能分解、使用异步进行整合、故障转移、失效保护。
    7.       软件的架构升级和计算机硬件的架构升级很像,可能有一段时期,我们是在慢慢提高整体能力,2年也才提高了几倍,之后发现只有通过某种彻底的架构改变才能提高数十倍的能力,升级之后,我们或许又会遇到其他问题。就像CPU,是简单提高主频还是彻底更换架构。
    8.       数据方面,读写分离、数据库分隔、功能划分、缓存、镜像。
    9.       硬件网络上的架构很重要,但软件开发中的一些细节不可忽略,好的架构不意味着不需要代码审阅。

    发表于 @ 2008年06月24日 10:32:22|评论(loading...)|收藏

    新一篇: 学习.net应该知道什么 | 旧一篇: 给网站管理员的建议:创建可利用的、可抓取的网站

    评论

    #jack7659 发表于2008-06-25 10:56:32  IP: 118.26.231.*
    好文章,
    学习了,
    #bestdowt1314 发表于2008-06-26 08:58:45  IP: 222.180.188.*
    相当不错,学习中....
    #xiaoli_x 发表于2008-06-26 12:14:02  IP: 61.172.241.*
    恩,从思想上进行了总结。
    #HZCJH 发表于2008-06-26 13:11:42  IP: 125.122.115.*
    高屋建瓴,给后学者提示了方向,值得学习
    #memoCKH 发表于2008-06-28 16:37:18  IP: 116.8.166.*
    很不错的文章,多写些,学习...
    #mjjmjjmjj 发表于2008-07-14 15:54:24  IP: 218.95.230.*
    谢谢,学习并收藏了!
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 清清月儿