我们以一个寓言开头:   庄周家境贫寒,于是向监河侯借粮。监河侯说:“行,我即将收取封邑之地的税金,打算借给你三百金,好吗?”庄周听了脸色骤变忿忿地说:“我昨天来的时候,有谁在半道上呼唤我。我回头看看路上车轮辗过的小坑洼处,有条鲫鱼在那里挣扎。我问它:‘鲫鱼,你干什么呢?’鲫鱼回答:‘我是东海水族中的一员。你也许能用斗升之水使我活下来吧。’我对它说:‘行啊,我将到南方去游说吴王越王,引发西江之水来迎候你,可以吗?’鲫鱼变了脸色生气地说:‘我失去我经常生活的环境,没有安身之处。眼下我能得到斗升那样多的水就活下来了,而你竟说出这样的话,还不如早点到干鱼店里找我!’”

.Net发布有7年了,但是微软有一点做得非常非常不好:在不断发布新版本Framework的时候,却没有去实现.NET的大规模普及。套用微软官方的术语:您可以选择我们的VISTA系统,已经内置了.netframework3.0。WINDOWS7则内置了3.51。如果你去相信这些与现实世界不着边的鬼话,那么你就是上面故事中的那条鱼。现实世界是VISTA的装机率很不乐观,而装机量最大的XP则根本就没有内置任何版本的.NET。2010年之前(也就是监河侯收税之前),你仍然会面临很多的XP客户。

所以,至今仍然有一个最根本的问题摆在我们这些.NET程序员面前:客户装了.NetFramewok没有?如果没有装,你的程序写得再好再漂亮都是徒劳。你怎么去让他装?怎么和他解释这个必要性?如果他不愿意怎么办?能不能实现自动化安装?从前我在一些朋友的博客里也时常留言有这个观点,无外乎归纳出这么一种解决办法:

在项目发布中把.NET集成封装进去,让它在客户那里实现自动安装

这种做法固然是可取并且是必须的,但是存在两个缺陷:

一.如果我们发布的是不需要安装即可运行的绿色程序怎么办?

二.把2.0集成进去还勉强可以接受,但是如果程序中使用到3.0甚至是3.5的技术,难道你要把60多M的3.0(忘记是多少了,反正是大于或等于60M)和180多M的3.5也集成进去?记得有一位朋友曾经在某篇博客的留言中说,对于企业级程序,集成这些进去是可以接受的。但是,现实中没有没有那么多的“企业级”。我们需要的是实实在在的面向广大群众。以他们能够接受的方式来传播我们的程序。

面对客户,你不能以程序员的观念去和他们谈问题,他之所以找你做程序,是因为你是程序员,而他不是

所以,“可靠性”、“易于开发”、“易于移植”、“稳定性好”等等这些字眼,对客户来说,全是扯蛋,他们最关心的就是一点:“方便使用”。

我的解决方案,谈不上能够本质上得到解决,只能说是3个建议,本着上面提到的几点:

一.如果你的应用程序面向群众广泛,那么,只能建议你最低最低限度的,只使用2.0就够了。然后封装个23M的framework进去。至于LINQ,拉姆达表达式之类的概念,还是等你拥有了比较稳定的客户群体之后再去在版本升级中考虑吧。要知道,好事不出门,坏事传千里,如果在面向大众化的程序中要求安装3.0和3.5,90%会遇到某个热门论坛或者某个热门评论说“要装个什么百多M的东西”、“为什么我的电脑不能运行”,“建议大家不要下载”的时候,足以给你造成很大的客户损失,到时候你就是丞相遇到兵了,个中滋味就慢慢体会吧。今天是2008年12月6日,这个建议足以保证在未来2年内有效。

.“ASP好还是JSP好,JSP好还是ASP.NET好,ASP.NET好还是PHP好,.NET好还是JAVA好……”,这样的月经话题时常出现在各大程序员社区,并且已经被视位弱智议题。但是,面对现实情况,你必须有能力向客户解释清楚:为什么要用.net开发,它的好处在哪里,为什么别人用JAVA开发而你不用,为什么别人用VB6,VC6而你不用,为什么别人用PHP而你不用……,以客户能够理解的方式,以有利于客户的观点来阐述兼容性、稳定性、版本支持、易于二次开发等问题,而不要去谈真泛型和假泛型、单一继承和多重继承、字符串操作效率等等客户不关心的东西。

三.最幸运的一点,如果你本来就是为VISTA(以及更高版本OS)系统开发程序(例如VISTA优化大师),那么什么都不需要担心了。

四.基于我们的职业着想,亲自为我们自己的亲戚、朋友、面对面的客户装上.NET,也许你不能为天下所有XP用户都做这个事情,但是当你的身边人能够以一种良好的体验来感受到你的程序自身所带来的便利性和帮助性的时候,他们自然会为你做义务推广,到那时,客户们也就不介意你那个“百多M的东西”了。这不是帮助谁,而是为你自己。做的人多了,客观上自然也就会体现出效果了。当然,前提条件是应用程序自身要做好,要不然暴雪或EA也不敢要求客户保证“directX9.0C”(这东西同样也是20多M,但是XP-SP2却内置了,你说微软它歹毒不?)。

五.写给“XX花园后续版”、“XX论坛精简版”、“XX政府OEM版”的作者和电脑城装机人员,本着大家都是搞IT的同行,也请你们在工作中为我们稍微提供一些便利性,顺手放个framework进去,对大家都有益。将来的WINDOWS7时代也同样要靠你们帮助的(那时候会有8.0、9.0问题)。

转自:网页制作教程网

转载于:https://www.cnblogs.com/iawsky/archive/2008/12/14/1354918.html

转:给.net 程序员的一些建设相关推荐

  1. 【程序员养生系列】日常养生的章程,以及一些养生问题的解答,以及心理建设

    文章目录 1. 前言 一些思考 2. 日常养生的章程 2.1. 饮食 2.2. 作息 2.3. 运动 2.4. 日常 2.5. 参考文献 3. 养生问题的解答 3.1. 扣齿有好处吗? 3.2. 所谓 ...

  2. 30+程序员,平时都忙些什么事情?平时都想些什么?以后有啥计划?

    很多人都说,30岁以后了,写程序还有前途嘛?我有时候也迷茫,但是迷茫过后,总会给自己寻找方向,每个人都需要有个信念.没有信念,活着就没意思,无聊,觉得没奔头了. 废话少说,我来说说,我平时工作都忙些什 ...

  3. 程序员必备技能:如何画好架构图?

    目录 先厘清一些基础概念 1.什么是架构 2.什么是架构图 3.架构图的作用 4.架构图分类 怎样的架构图是好的架构图 画架构图遇到的常见问题 1.方框代表什么? 2.虚线.实线什么意思?箭头什么意思 ...

  4. 优秀的Java程序员应具备哪些编程技术?

    想要成为一名合格的java程序猿,需要学习的知识是有很多的,但是基础知识一定要非常牢固,基础不牢固的程序员,随时都会被新的知识和技术所淘汰,下盘不稳风一吹就倒,那么具体作为一个优秀的Java程序员应具 ...

  5. 《新程序员003》正式上市!华为、阿里等 30+ 公司的云原生及数字化实战经验...

    作者 | 唐小引 出品 | <新程序员>编辑部 <新程序员 003:云原生和全面数字化实践>图书今日正式上市,纸书和电子书同步上架 CSDN 商城.New 程序员小程序.京东. ...

  6. 这类程序员成华为宠儿,分分钟秒杀众应届毕业生

    近日,华为20亿奖励员工的新闻频频刷屏. 其中20亿奖金不是面向所有的华为员工,20亿奖金包涉及到的是研发体系.造AI芯片和建设生态的员工. 从5G开始部署以来,华为获得了来自全球各地运营商的订单,签 ...

  7. 焦虑的 BAT、不安的编程语言,揭秘程序员技术圈生存现状!

    [编者按]在迭代不休的技术圈中,仅在过去的一个月期间,我们见证了有史以来第一张黑洞照片的诞生:经历了为让人义愤填膺的 996:思考了作为程序员的年龄之槛:膜拜了技术大神的成长历程:追逐了如编程语言.人 ...

  8. 神爱程序员,于是带来Python

    "我累了,需要很长时间的休息." 2018 年 7 月,在 PEP 572(Python 改进提案) 被接受后的第三天,由于仍然不断面对着别人的质疑,反馈意见不断袭来,让这位一手缔 ...

  9. 聊一聊如何优雅地向程序员提问题

    0x00 前言 你是否遇到过抛出了一个问题后,群里突然安静了,或者是大家继续聊其它话题自动忽略你的问题? 你是否遇到过抛出了一个问题后,别人只是随便回你一句,然后再继续追问就不再搭理你了? 你是否遇到 ...

最新文章

  1. php alert 乱码
  2. 我的2017与2018
  3. [Java基础]Lambda表达式练习
  4. idea 调试技巧1
  5. sklearn中的make_blobs的用法
  6. java rmi 是否 必要_Java学习之路-RMI学习
  7. mysql 5.5 udf_MYSQL5漏洞之udf提权
  8. 解决idea中找不到程序包和找不到符号的问题
  9. 《机器视觉算法与应用》第3章 机器视觉算法之形态学——学习笔记
  10. 银联在线支付B2C UnionPay.NET
  11. JS处理支付宝H5支付
  12. Duilib中caption的问题
  13. 项目需求分析答辩总结(含评审结果)——日不落战队
  14. 计算机控制plc开机,PLC控制系统与工控计算机控制系统的区别
  15. [Unity3D] [学习] Unity3D的官方文档
  16. XP系统屏幕倒立翻转了怎么办???
  17. openwrt pptpd start 报错validation filed
  18. MSDC 4.3 接口规范(12)
  19. 什么是邓氏编码DUNS NUMBER?
  20. Java简繁体转换分享

热门文章

  1. a标签 href和onclick 传递的this区别
  2. 两个字符串的最长公共子序列长度_算法学习笔记(58): 最长公共子序列
  3. 【CCCC】L2-001 紧急救援 (25分),,Dijkstra标准模板(多路径,最大点权和路径打印)
  4. 【2020模拟考试T3】【PAT乙】1028 人口普查 (20分) 字符串比较
  5. 【NOI OpenJudge】【1.4】编程基础之逻辑表达式与条件分支
  6. 【NOIP2015】【Luogu2615】神奇的幻方(模拟填数)
  7. vba 根据分辨率 缩放显示比例_GANTTER.VBA.初体验
  8. [leetcode周赛]1346. 检查整数及其两倍数是否存在
  9. Qt QTimer在线程的应用与思考
  10. bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)