V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ricepig
V2EX  ›  程序员

其实.net平台没这么糟

  •  
  •   Ricepig ·
    ricepig · 2013-05-17 23:33:36 +08:00 · 15461 次点击
    这是一个创建于 4004 天前的主题,其中的信息可能已经有所发展或是发生改变。
    近两年来经常听到说,.net及微软体系开发的网站/程序/应用很难扩展,容易遇到性能问题,低效等等类似的话,也有不少仇视微软平台的。对于C#语言,也因为出身不好,地位可能还不如java吧(就语言本身来说)。极端一点的,觉得用微软平台或开发语言就是坏品味的代表。

    但是,我发现许多人对这个问题的看法并不直接来自于自己的经验,而是通过阅读一些文章而得到。对此,我经常表示无奈。在一些日子以前,我看到了老赵(@JefferyZhao)的一些语言比较的文章,非常客观地说明了C#语言的优点。

    今天,我无意中阅读了Javaeye站长Robbin的一篇文章:http://robbinfan.com/blog/43/rid-off-dotnet-experience。写的很好,给大家推荐了。

    其中,他写道:“简单说来,就是单纯让.net做应用层的编程语言和框架,其他都交给Linux平台的开源解决方案。而.net框架单纯做应用层,无论ASP.net MVC的开发效率,还是.net CLR虚拟机的运行效率都非常好,目前我们单台Windows服务器上跑几百万的动态请求毫无压力,而且应用层架构是可以横向扩展的:如果请求负载非常高,只需要添加更多Windows服务器即可。总之,做到了扬长避短。”

    Robin前几年亲自将JavaEye从java改成ror实现,深深体会到ror的优势,现在他能够说.net开发效率和运行效率都很好,是有一定说服力的。

    当然,微软平台的开放性一般,而且收费较贵,这个是无法规避的缺点。但是其中一部分也是可以克服的。

    最后,还是要再赞一下Visual Studio,我心目中最强的IDE,没有之一。免费阉割版的Express都很良心。这也是我为什么还眷恋windows而没法完全转向osx的重要原因之一。
    第 1 条附言  ·  2013-05-18 04:29:17 +08:00
    补充一下我对vs的看法,或者我对ide的偏好吧

    - 是ide,不是文本编辑器
    - 速度快、流畅
    - 智能:高亮,智能感知,智能提示,自动完成,重构
    - 调试方便
    - 编辑功能强大
    - 一定扩展性
    - 别太贵

    vs的缺点比较明显:贵,快捷键捉急,对build工具支持一般
    第 2 条附言  ·  2013-06-02 02:51:55 +08:00
    有些同学认为.net没有ide就是一个灾难,其实我觉得是一个错觉

    1. vs是一个优秀的ide,甚至说是最优秀的ide之一都不为过,有这么一个ide,当然就由奢入俭难。正如一开始就用vim,然后让你用notepad当然不愿意了。
    2. .net的入门教程,很多都是从使用vs开始,因此给大家印象就是,打开vs,新建工程,拖几个控件,写两行代码的VB范儿。实际上教大家从头开始写代码的教程也是有的,Petzold的winform相关教程就几乎是ide无关的。
    3. 确实微软的很多框架依赖于vs,vs里无数模版向导给这些框架提供了很多方便。但是,也有一些框架为全手写提供了帮助,最典型的就是asp.net mvc及razor,如果大家大概地看一下mvc从1到4的变更,及razor的语法,就会发现其实对全手写越来越友好了,打的字也更少了。

    从vs 2002的.net 1.0到现在,.net已经经过了12个年头,希望大家用发展的眼光看待吧。
    149 条回复    1970-01-01 08:00:00 +08:00
    1  2  
    davepkxxx
        101
    davepkxxx  
       2013-05-19 20:44:48 +08:00
    我觉得.net平台的问题是封闭,论坛不活跃,社区参与力度小。

    这个平台很优秀,也不看看是什么人设计的。
    Ricepig
        102
    Ricepig  
    OP
       2013-05-19 21:05:07 +08:00   ❤️ 1
    @raptor
    我想听到“我们要的兼容性是xxx”,而不是“这不是我想要的兼容性”
    我想听到”我不喜欢它的xxx“,而不是”我不喜欢它“
    我想听到“xxx被微软搞成了xxx,而更好的是xxx”,而不是“xxx就是屎”

    喜好是一方面,它是不是优秀是另一方面。
    leizongmin
        103
    leizongmin  
       2013-05-19 22:05:42 +08:00
    我大易语言威武,支持Windows和Linux,全中文编程,友好的IDE,傻瓜式的功能库,娃哈哈
    Ricepig
        104
    Ricepig  
    OP
       2013-05-19 23:40:11 +08:00
    @leizongmin 牛逼的易语言!V5!
    misterx
        105
    misterx  
       2013-05-20 01:33:53 +08:00
    @plan9 @LokiSharp @Ricepig

    VS Express 写的程序其实是*可以*作为商业用途的。

    参见:http://stackoverflow.com/questions/2624589/visual-studio-express-2010-license
    hanf
        106
    hanf  
       2013-05-20 08:40:49 +08:00
    我也觉得这个平台不错,可惜也白搭,闭源与不可跨平台(不要反驳)注定了这个东西的下场,
    起码不可能作为服务端开发平台,楼主说用来开发客户端桌面应用,倒是比较务实的想法。
    csx163
        107
    csx163  
       2013-05-20 09:40:49 +08:00
    基于网络的应用用C#真的很方便,不然我会用mono跑C#么...
    chloerei
        108
    chloerei  
       2013-05-20 09:45:13 +08:00
    Linux 用户说它不开源、授权贵、绑死在一家公司,Mac 用户说他经常变动、用户体验不好。都忘了自己也只穿了一只鞋。
    feikaras
        109
    feikaras  
       2013-05-20 09:55:33 +08:00
    反正我始终没有忘记微软的一贯作风以及他的东西全能用,各种能用,但不好用的经典特色
    raptor
        110
    raptor  
       2013-05-20 11:50:10 +08:00
    @Ricepig 所以说,不喜欢的话,你们再怎么说它优秀也没用啊,摊手。
    raptor
        111
    raptor  
       2013-05-20 11:51:16 +08:00   ❤️ 1
    @chloerei 不好意思,我穿了一双,每天在Mac和Linux之间切换无压力,中间还时不时连FreeBSD服务器……
    Ricepig
        112
    Ricepig  
    OP
       2013-05-20 14:53:24 +08:00 via iPhone
    @raptor 你没明白他说的,没有一个平台兼有两者优点。你用多平台是另一回事了。切换无压力也就是随便一说,你看哪个公司的环境会各平台切换无压力。

    这又让我想到,当年有人吐槽java的跨平台是一次开发到处调试
    akira
        113
    akira  
       2013-05-20 15:35:26 +08:00
    这个和女神对你说,其实你是个好人。 有什么区别
    LokiSharp
        114
    LokiSharp  
       2013-05-20 16:15:40 +08:00
    @Ricepig 类Unix系统之间,直接 SSH 连上就可以管理了。额,Windows 可以用 PuTTY 来管理 类Unix系统。

    反过来的话呢?别说远程管理了,没有 GUI 的 Window Server 管理起来就简直就是噩梦。
    raptor
        115
    raptor  
       2013-05-20 16:24:45 +08:00
    @Ricepig 切换Windows平台绝对有压力好不好。
    Ricepig
        116
    Ricepig  
    OP
       2013-05-20 17:31:44 +08:00
    @akira 电工谈对女神的理解。。。不靠谱吧?
    Ricepig
        117
    Ricepig  
    OP
       2013-05-20 17:32:51 +08:00   ❤️ 1
    @LokiSharp 这个是的,现在windows也开始重视了。windows 2012有纯CUI安装了。
    wodemyworld
        118
    wodemyworld  
       2013-05-20 18:02:35 +08:00
    C#设计的非常棒,这点可以胜java,但.net确实不太好,可能是为了兼容历史代码没太能改太大吧
    tangzx
        119
    tangzx  
       2013-05-21 07:13:01 +08:00 via iPhone
    Windows命令行有许多历史遗留问题,比方参数约定,有一些地方为了兼容Xnix而使用Posix风格,许多地方则用反斜杠,dosbatch,cmd,power shell,还有一些很封闭的小环境比如wmi 查询表达式,完全都是自成一体的东西;所以这些都是历史遗留问题啊,所以回复里大家说的"微软总喜欢推翻自己的东西"是确实很对的而且这也给微软自己和用户带来了挺大的困难
    tangzx
        120
    tangzx  
       2013-05-21 07:14:33 +08:00 via iPhone
    光拷贝命令从98时代就有copy xcopy robocopy 而且参数风格都不一样
    jjx
        121
    jjx  
       2013-05-21 08:07:38 +08:00
    还有dos提示符的utf-8 ,吐血啊
    Narcissu5
        122
    Narcissu5  
       2013-05-21 08:35:37 +08:00
    @LokiSharp 如果你的服务器用的是windows,手边不可能没有windows的机器。GUI的管理界面肯定比命令行要人性化——不然人类发明这玩意儿干嘛?
    LokiSharp
        123
    LokiSharp  
       2013-05-21 11:23:47 +08:00
    @Narcissu5 但是,服务器上用类Unix系统的话,随便找到一台机器可以用CLI来管理,甚至是手机,只要是有Terminal的都可以。

    而Windows呢?
    cxe2v
        124
    cxe2v  
       2013-05-21 11:57:56 +08:00   ❤️ 1
    @LokiSharp 你是觉得找一台装了windows的机器十分困难还是怎么的?你随便找到的一台机器有百分之70的概率都装有windows
    LokiSharp
        125
    LokiSharp  
       2013-05-21 12:16:21 +08:00
    @cxe2v 你说的机器里算上手机了吗?
    cxe2v
        126
    cxe2v  
       2013-05-21 12:44:03 +08:00
    @LokiSharp 你会真的用手机来管理服务器吗
    LokiSharp
        127
    LokiSharp  
       2013-05-21 12:47:24 +08:00
    @cxe2v 临时使用啊,不行吗?随身带一个便携蓝牙键盘。
    chloerei
        128
    chloerei  
       2013-05-21 12:51:39 +08:00
    @LokiSharp 厉害厉害。
    thinkif
        129
    thinkif  
       2013-05-21 13:07:56 +08:00
    @LokiSharp
    @cxe2v
    “你说的机器里算上手机了吗?”,看到这句话,我想说我手机里的确有管理windows服务器的软件,2X Client用起来感觉不错
    swulling
        130
    swulling  
       2013-05-21 13:11:25 +08:00
    @cxe2v 普通的windows还不行,管理windows server的工具需要另外一台windows server
    你去网吧随便找台xp肯定没法用.

    linux的话,在网吧下个putty就能用了
    swulling
        131
    swulling  
       2013-05-21 13:12:19 +08:00
    @cxe2v 当然要是说的是远程桌面就算我没说。

    真有人用远程桌面去管理100+的服务器,绝对是超人
    AntiGameZ
        132
    AntiGameZ  
       2013-05-21 13:15:44 +08:00
    @davepkxxx 封闭和论坛不活跃,也是个“老印象”

    微软虽然也在做开源,并且看得到的,最近5年时间,微软在开源方面的投入和收获还是很大的。但是,归根结底,微软是一家卖软件的公司,如果你不付钱,体会不到微软的好。

    Visual Studio,SQL Server,Windows,Sharepoint,Biztalk等等等等,如果你付了钱,买足够高级的服务,出现问题的时候,是能够得到及时,准确的服务的,但放眼国内,有几家公司能“甘心”不但买了微软的产品,还买了微软的服务。

    即便,真的咱们舍不得钱,微软技术支持论坛的诸多工程师还是很敬业的,提出的问题,基本上都可以得到解答(不是解决哦),但时间上无法保证,但就我观察,身边很少人会知道去用这个服务。
    min
        133
    min  
       2013-05-21 14:07:14 +08:00
    @AntiGameZ 嗯,knowledge base都不知道的很多的,一边baidu一边喷微软资料少不开放
    min
        134
    min  
       2013-05-21 14:08:20 +08:00
    @swulling mmc桌面版windows上有啊,不需要找server版的系统
    tititake
        135
    tititake  
       2013-05-21 14:32:46 +08:00
    几百万动态请求是个什么概念?并发几百万?

    我有次在win2003上安装个邮件服务器,需要安装.net framework 2.0,我安装好了之后,IIS就停止服务了。重启服务无效,只好重启机器。机器重启后IIS就好了,问题是安装时根本没提示需要重启。还好不是很重要的服务器,花几分钟重启还能接受。
    kshatriya
        136
    kshatriya  
       2013-05-21 17:15:22 +08:00
    .net作死的地方是在win8上面的实现, 太坑爹了
    kshatriya
        137
    kshatriya  
       2013-05-21 17:18:04 +08:00
    c#本身理念挺好的, 唉
    kshatriya
        138
    kshatriya  
       2013-05-21 17:21:40 +08:00
    m$一贯的传统, 把框架当项目做
    raptor
        139
    raptor  
       2013-05-22 09:20:24 +08:00
    @Narcissu5 人性化和效率之间,我选择后者
    davepkxxx
        140
    davepkxxx  
       2013-05-22 09:43:39 +08:00
    @AntiGameZ 我只买过windows操作系统,所以基本只在使用windows时遇到问题才去官方询问解决方案。
    AntiGameZ
        141
    AntiGameZ  
       2013-05-22 14:39:41 +08:00
    @davepkxxx 官网询问、工单、电话支持,数量,反应时间都是有所不同的。
    davepkxxx
        142
    davepkxxx  
       2013-05-22 14:43:23 +08:00
    @AntiGameZ 我是在官网问的,当时问的是关于win8兼容性的一个问题,过了差不多一周才回复我。
    Ricepig
        143
    Ricepig  
    OP
       2013-05-23 01:15:45 +08:00
    @raptor 开发效率还是运行效率啊,要说运行效率C#碉堡了啊
    raptor
        144
    raptor  
       2013-05-23 11:10:02 +08:00
    @Ricepig 回复要看上下文啊。我那句是回复那个人说的“GUI的管理界面肯定比命令行要人性化——不然人类发明这玩意儿干嘛?”,GUI肯定不如CLI有效率啊。
    emohacker
        145
    emohacker  
       2013-06-02 02:32:55 +08:00
    我对IDE的感受是,IDE用惯了,就懒了,临时记忆力减退,敲击速度越来越慢
    不过我是做前端开发的,对IDE需求比较弱
    刚毕业的时候做了半年的.net开发,只懂点皮毛,知道做.net平台不用IDE是灾难。
    Ricepig
        146
    Ricepig  
    OP
       2013-06-02 02:43:29 +08:00
    @emohacker 实际上不用IDE也并不是灾难,也许C#这种静态语言比ruby这种动态语言开发效率是要稍低一点(不用ide的话),但是也没有到C#不用ide就是灾难的地步。

    只是微软的ide及ide与语言、框架结合的比较好罢了。很多人就止步于拖拖控件,或者依靠ide生成点东西上了。
    Ricepig
        147
    Ricepig  
    OP
       2013-06-02 02:44:34 +08:00
    @raptor CLI大概在批量管理的时候更有效率吧,在少数场景也会出现gui更有效率的情况。
    raptor
        148
    raptor  
       2013-06-02 12:00:11 +08:00
    @Ricepig 绝大多数情况下都是CLI更有效率…GUI更有效率的情况…极少吧,反正我还没有碰到过
    citydog
        149
    citydog  
       2013-06-02 12:38:31 +08:00
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2423 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 08:01 · PVG 16:01 · LAX 01:01 · JFK 04:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.