IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

为什么国内还有那么多网站使用.NET架构?

标点符 2012-01-08 22:13:40 累计浏览 5,242 次
本机暂存

    一、目前使用.NET 的国内大型网站有哪些?

  • 卓越http://www.amazon.cn/
  • 当当http://www.dangdang.com/
  • 京东http://www.360buy.com/
  • 凡客http://www.vancl.com/
  • 携程http://www.ctrip.com/
  •     二、为什么这么多网站使用Windows/.NET?

  • 创业初期,创始人非技术背景出身,对Unix/Linux存在恐惧心理或对使用何种平台和框架没有想法。
  • 创业初期,创始人技术出身,选择了自己擅长的语言。
  • 创业初期,创始人对语言没有什么要求,唯一的要求就是省钱、快速上线。
  •     三、使用Win/.NET的好处有哪些?

  • 人员:招聘比较快,各大高校和培训机构都有教.NET的。初级程序员工资要求比较低。
  • 开发:入门简单,开发效率高。
  • 维护:Windows Server 界面操作简单,便于维护,有现成的商业监控维护工具可用。
  • 服务:提供了整体解决方案,如SQL Server提供了统计计算、数据挖掘、事务支持等。
  •     四、使用Win/.NET有哪些不好的地方?

  • 使用.NET基本上被强制捆绑到了Windows上,虽然Linux机器上也有.NET支持的Mono( http://www.mono-project.com/ ),但是性能并没有Windows系统上的那么好。.NET程序员在整个网站基础架构的优化改良上课选择的东西比较少。微软的东西一般不太会出现问题,但是如果出现问题,很难快速的找到解决方案。
  • 最新的技术不能及时的应用到Windows平台,只能期望微软的早日更新。比如Windows对snmp协议的支持目前只能到2c,不能到3。许多无数的开源、高端服务器组件只有Linux/Unix版本。许多优化技术、高性能分布式缓存、数据库、NoSQL解决方案等等,仅针对Linux/Unix。
  • Windows Server的授权费比较贵(对于大型网站可能不太在乎)。如果有上百台服务器就需要购买上百份授权,如果一台服务器上安装N个虚拟机,就需要购买N份授权。
  •     五、京东商城选择.NET的原因是什么?

  • 刘强东之前有.net程序员背景, 一开始的版本由他进行开发。.NET的人也比较容易招,创业初期有很多公司都是使用盗版的Windows Server的,不需要支付授权费用(不知道京东商城是不是)。
  • 京东商城不是一家技术公司,它只是一个建立在电子商务平台上的销售公司。早期更偏向后端的物流仓储管理,后端进销存体系就是.net基础的。京东现在用的内部ERP,一开始是刘强东自己开发的。
  •     六、京东商城为什么一做活动就宕机?

  • 管理不到位,管理者急功近利,要求员工超、快、猛,貌似每个公司都这样。项目的进度较少了设计和思考的时间。
  • 运维不到位,没有提前对每次活动会带来的流量进行合理的评估,为活动提供服务器资源等。 这个猜想貌似不靠谱,貌似用堆服务器的方法无法解决性能问题。
  • 架构不到位,前后台的依赖比较高。比如前台的库存要直接依赖后台库存数据等,这些不知道京东是如何处理的。
  • 原开发不到位,开发者的能力没有到登峰造极的地步(这个比较困难啊),貌似除了微软自身的网站可以做到,其他网站的程序员很难做到。
  •     七、京东商城用.NET架构合适吗?

        目前京东商城已经停止招.NET程序员了,进而转向JAVA。这是京东商城对目前出现问题的一个响应。但是开发程序的转变仅仅是第一步。系统性能的瓶颈主要集中在操作系统、网络和数据库上。京东商城在改变目前架构的时候肯定会遇到很多阻力和问题。比较典型的会有:

  • 人员问题:目前掌权的,为京东商城立下汗马功劳的都是.NET会程序员,不可能把其撤掉。要让其领导新招的JAVA程序员,下属也会认为不妥。目前大量的.NET后期将何去何从,辞退或转型都不太好处理。
  • 程序问题:现在的版本是通过不断的迭代才稳定下来的,如果需要同步无可避免的还会遇到很多问题。时间成本和人员成本都比较高。
  • 数据问题:对原有架构的调整需要保证原来系统中的业务流、资金流,、数据流的整体平移。如供货商的管理,供应商考核,采购管理,退货管理等数据。
  • 现实问题:没有像F1赛车那样的设计(现在的京东确实没有),无法对高速行驶的车辆更换主要零部件。京东也不可能会停下来。
  •     八、如果真的遇到上述问题改如何去解决?(来看下实例)

        Stack Overflow 现在他们使用越来越多的Linux服务器,比如HAProxy(负载均衡), Redis(NoSQL数据库), Bacula(数据备份系统), Nagios(远程监控软件), 日志, 路由器都运行于Linux系统,几乎所有需要并行处理的功能都是由Linux处理。

        当当目前已经渐渐转到Linux + PHP + Mysql,搜索、推荐等C++的后台也从Windows转为Linux版了。现在订单等后台作业依然采用C#跑着。

        本文整理自知乎:http://www.zhihu.com/question/19818863

    同分类推荐文章

    1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
    2. Go 实验特性详解 (2026-06-21 10:05:27)
    3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

    查看更多 后端 文章 →

    建议继续学习

    1. 代理的加密部分 (累计阅读 8,414)
    2. Emacs安装配置 (累计阅读 8,370)
    3. 关于”为什么京东今天还在用.net架构?”的乱想 (累计阅读 7,198)
    4. 有道面试总结 (累计阅读 7,053)
    5. 干嘛不去掉“I”和“Impl”? (累计阅读 6,748)
    6. .NET 还是 Java? (累计阅读 5,654)
    7. 晒晒我们的开源项目 (累计阅读 5,454)
    8. 使用scp在windows和Linux之间互传文件 (累计阅读 5,365)
    9. Git安装使用手记 (累计阅读 5,051)
    10. 如何在Windows下编译或调试MySQL (累计阅读 4,671)