在上篇文章里(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列举了国内外用ASP.NET开发的大型网站有哪些。最后提到了用.NET开发的大型网站和LAMP/JAVA平台的成本比较。其实在很多时候,收费的不一定就比免费的成本更高。因为开发一个网站要使用哪个平台的技术更合适,需要考虑很多种情况(除了开发技术本身,还要考虑人工,开发效率,时间,后续的支持,维护等等),要综合计算成本才行。微软平台本身虽然是收费的,但总体的成本并非一定比LAMP/JAVA高,上篇文章列举的国内外的那么多基于ASP.NET开发的大型网站就是例证。尤其是在开发效率上,无论是C#开发语言,还是免费的开发工具(Visual Studio Express,或者MonoDevelop/SharpDevelop),.NET明显比其他两个平台更胜一筹。而这一点正是互联网企业所需要的。效率就是生产力。并且,由于有Mono(http://mono-project.org/)这个开源平台的存在,.NET技术也可以在linux/BSD等开源服务器上使用。使.NET完全可以实现跨平台应用。据此,我们可以分windows/linux两种方式来架构我们的ASP.NET网站:

一、Windows平台
在Windows平台下开发大型网站,很多人首先想到的是Microsoft软件高昂的许可费,觉得成本一定很高。其实,这里有个误区。我们开发ASP.NET网站,web服务器完全可以用Windows server的WEB版本windows web server 2003/2008,它们并不贵(参考http://hi.baidu.com/slmt/blog/item/d1533a12a6cc335af919b863.html,才3k多rmb。并且注意了,一个系统是一次性买,买了可以用N年,现在还有很多大型网站在用win2003,想想已经用了多少年?而人员工资则是月付,几年下来成本也很高)。贵的地方,应该是SQLServer数据库和支持它的windows server企业版。它们确实很贵。但我们开发网站不一定非要用SQLServer啊。数据库可以使用在linux下部署mysql,postgresql等开源数据库,并且也可以考虑用mongodb等开源NOSQL数据库。一般的中大型网站有十几台web服务器就足够了(这里有2013年底的Stack Overflow服务器数据可参考),也就是3w多人民币而已啊!对于Stack Overflow这种规模的网站,这点钱应该也不算什么了吧。当然,如果你真能做到像myspace那种超大型的.NET网站,你应该可以直接找微软要优惠价来批量购买了。呵呵。

二、Linux平台
如果真的不肯在服务器上花一分钱,就要用完全免费的。我劝你根本不必因此而放弃.NET强大的生产力,而选择其他平台,因为还有Mono。Mono现在已是suse,ubuntu,debian等linux发行版中的默认安装包(apt-get install mono-complete),并且ubuntu本身就有很多代码是用c#写的。你可以通过类似Linux+Apache/Nginx+Mono的组合(或者用Jexus web server)来代替Windows+IIS来架构完全免费的ASP.NET WEB SERVER。目前国内外也有了很多基于mono开发的网站案例,如:
http://www.stockren.com/http://www.msannu.cn/(此外,还有像Unity3D,Xamarin更多国外知名公司在基于mono开发应用)
在linux上架设mono的方法有很多,可以参考如下博文:

配置linux(apache) + mono 下运行 asp.net
http://www.cnblogs.com/hcl0208/archive/2010/10/25/1860173.html
Ubuntu10.10下Mono2.10+Nginx+fastcgi 部署asp.net网站
http://www.cnblogs.com/xiaogangqq123/archive/2011/02/28/1967345.html

三、补充:

见不少同学反映本文不够给力,没有真正的提到实际的架构,而只是泛泛而谈windows和linux。其实关于大型网站架构的文章网上有太多太多了。如下图,是国内某基于asp.net的大型网站的架构设计图,其实不管是.net还是java/LAMP,不管什么平台,道理都一样。(大图)

在本架构图中,如果把iis替换成apache,SqlServer替换成mysql,也一样成立。合理的架构是跟平台无关的。最看不惯的是某些业内所谓的高手,说大型网站用asp.net不行,没有java/LAMP好。相信看了这个架构图,再想想bing,hotmail,myspace,match,qidian,dangdang,m18,vancl等等基于.net开发的大型网站案例,就应该闭上他们的嘴!大型网站的开发,人的能力和合理的架构才是关键所在!(最近一个反例很能说明问题:用java开发的www.12306.cn相信大家都有目共睹。它是架构/人的能力的问题,还是语言/平台的问题?)

(转)谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)的更多相关文章

  1. 谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)

    在上篇文章里(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列举了国内外用ASP.NET开发的大型网站有哪些.最后提到了 ...

  2. ASP.NET开发的大型网站有哪些架构方式

    谈谈用ASP.NET开发的大型网站有哪些架构方式(成本) 在上篇文章里(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列 ...

  3. 基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?

    首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...

  4. 基于微软平台IIS/ASP.NET开发的大型网站有哪些?

    首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/Java平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...

  5. (转)基于微软平台IIS/ASP.NET开发的大型网站有哪些?

    首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...

  6. .NET开发的大型网站列表、各大公司.NET职位精选,C#王者归来

    简洁.优雅.高效的C#语言,神一样的C#创始人Anders Hejlsberg,async/await编译器级异步语法,N年前就有的lambda表达式,.NET Native媲美C++的原生编译性能, ...

  7. 2018 dnc .NET Core、.NET开发的大型网站列表、各大公司.NET职位精选,C#王者归来

    简洁.优雅.高效的C#语言,神一样的C#创始人Anders Hejlsberg,async/await编译器级异步语法,N年前就有的lambda表达式,.NET Native媲美C++的原生编译性能, ...

  8. Mysql在大型网站的应用架构演变

    原创文章,转载请注明: 转载自http://www.cnblogs.com/Creator/本文链接地址: Mysql在大型网站的应用架构演变 本文已经被多处转载,包括CSDN推荐以及码农周刊等等,阅 ...

  9. 转:Mysql在大型网站的应用架构演变

    原文来自于:http://www.cnblogs.com/Creator/p/3776110.html 原创文章,转载请注明: 转载自http://www.cnblogs.com/Creator/本文 ...

随机推荐

  1. cookie、LocalStorage、sessionStorage三者区别以及使用方式

    cookie用来保存客户浏览器请求服务器页面的请求信息 HTML5的WebStorage提供了两种API:localStorage(本地存储)和sessionStorage(会话存储) WebStor ...

  2. JWT入门简介

    官网:https://jwt.io/ 文档:https://jwt.io/introduction/ 目录 什么是JWT 头部(Header) 载荷(Payload) 签名(Signature) JW ...

  3. [物理学与PDEs]第3章第1节 等离子体

    1.  磁流体力学研究等离子体这种导电流体在电磁场中的运动. 2.  任何物质由于 $T, p$ 等条件的不同而可以处于固态.液态.气态 (常见的三种聚集态) 或等离子体. 3.  等离子体就是电离气 ...

  4. 学习WPF

    http://www.cnblogs.com/prism/archive/2010/07/21/1781855.html 如何在WPF中画三角,以及把按钮设置成颜色渐变的样式:

  5. jetty启动设置端口

    nohup java -jar start.jar jetty.port=10010 命令不能在后台运行,ctrl+c程序就自动停止了,可以在命令后面加个&符号,就可以了 nohup java ...

  6. token的设置与获取

    以用户登录为例: application-resources.yml: #用户session在redis中保存的key REDIS_STU_SESSION_KEY: REDIS_USER_SESSIO ...

  7. 论文阅读笔记:《Contextual String Embeddings for Sequence Labeling》

    文章引起我关注的主要原因是在CoNLL03 NER的F1值超过BERT达到了93.09左右,名副其实的state-of-art.考虑到BERT训练的数据量和参数量都极大,而该文方法只用一个GPU训了一 ...

  8. 求逆序对常用的两种算法 ----归并排 & 树状数组

    网上看了一些归并排求逆序对的文章,又看了一些树状数组的,觉得自己也写一篇试试看吧,然后本文大体也就讲个思路(没有例题),但是还是会有个程序框架的 好了下面是正文 归并排求逆序对 树状数组求逆序对 一. ...

  9. P2866 [USACO06NOV]糟糕的一天Bad Hair Day--单调栈

    P2866 [USACO06NOV]糟糕的一天Bad Hair Day 题意翻译 农夫约翰有N (N \leq 80000)N(N≤80000)头奶牛正在过乱头发节.每一头牛都站在同一排面朝东方,而且 ...

  10. uboot、内核、根文件系统启动流程

    [1]Uboot的启动流程  Uboot的启动分为两个阶段.  第一阶段:设置异常向量表,设置ARM核为svc模式,关cache和关mmu,  关看门狗,初始化时钟,串口,内存,初始化栈空间,清bss ...