在写《Asp.Net 服务器组件系列文档》之前,笔者不才,揣测微软战略用意:

  • 微软利益诉求莫过于 微软产品和技术的市场份额;
  • 因此,微软战略之一莫过于将 所有开发人员 团聚在 微软周围,以推动微软技术更新,微软系统的推广;
  • 因此,就有了 简化编程(比如 C#的诞生),网罗开发人员(跨语言的.Net平台)等相关举动;
  • 而 微软的“所见即所得”(VS开发工具中 WinForm,Asp.Net,Silverlight 等 都支持这里理念)编程理念,则将开发人员的门槛降低了不少;
  • 简而言之:微软的技术取向上:让开发人员简单编程才是第一位,微软技术的执行性能可能才只是第二位或更往后;

项目开发中,技术选择的矛盾:

一家公司,同一个业务功能:

  • 让一个四年工作经验的人写 100行代码;
  • 或者让一个应届毕业生 基于某个技术,写2行代码(但是性能只有前者的 80%);

问,这家公司将作何选择?

前者:

  • 性能很快,代码流畅整洁;
  • 项目测试或交付,发现BUG,100行代码内阅读代码,修改代码;
  • 人力有限,修复BUG可能交给一些能力相对差点的人,于是 可能代码风格不一致,技术能力不一致,修复BUG时,又带入新的BUG;
  • 类似的BUG也要修改,实际修改代码行数 取决于 这 100行代码如何复用;
  • 最终可能出现:代码增加到 150行,修改BUG之后,性能降低,可能引入新的BUG;

后者:

  • 性能只有前者80%,代码流畅简洁;
  • 项目测试或交付,发现BUG,2行代码内阅读代码,修改代码;
  • 人力有限,另选一个应届毕业生修改,依然2行代码,顶多5行;
  • 类似的BUG,搜索一下 相关技术关键字,修改 5*N 行代码;如果是技术BUG,只用修改技术代码;
  • 最终可能出现:代码增加致 5行,性能还是那个性能,很难引入新的致命BUG——代码少,BUG就少;

做过大项目的人或许都体验过 被人追着 改BUG 的情景:

情况紧急 或者 能力不足,保不准就 先贴个狗皮膏药应付BUG;

等到想起 要将狗皮膏药修改成正规代码时,自己又忙的不可开支,没时间改——只要不报错,管他代码是否规范;

因此,我也看到过某些项目完成的时候代码很漂亮,但是最后测试或交付之后,代码就惨不忍睹了。

本文当适合人群,不适合人群请自觉绕行:

  • 如果你在 上面的公司技术的选择中,选择了前者, 本系列文档 不适合你。
  • 如果你 在项目中,排斥反射机制 等技术,是一个 性能挑剔派,本系列文档 不适合你。

Asp.Net 服务器组件的 优缺点:

优点:

  • 开发者门槛低;
  • VS中,所见即所得,不得就直接报错,扼杀错误于摇篮;
  • 技术封装;

缺点:

  • 性能损失 20%-50%;
  • 技术BUG将导致批量错误;

当然,欢迎补充….

至此,让我们开始 Asp.Net 服务器组件的编程之旅吧…..

相关系列文章链接:

『Asp.Net 组件』Asp.Net 服务器组件 的开发优势和劣势的更多相关文章

  1. 『Asp.Net 组件』Asp.Net 服务器组件 内嵌JS:让自己的控件动起来

    代码: using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ...

  2. 『Asp.Net 组件』Asp.Net 服务器组件 内嵌图片:自己的图片控件

    代码: using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ...

  3. 『Asp.Net 组件』Asp.Net 服务器组件 内嵌CSS:将CSS封装到程序集中

    代码: <span style="font-family:Microsoft YaHei; font-size:12px">using System; using Sy ...

  4. 『无为则无心』Python基础 — 5、Python开发工具的安装与使用

    目录 1.Pycharm下载 2.Pycharm安装 3.PyCharm界面介绍 4.基本使用 (1)新建Python项目 (2)编写Python代码 (3)执行代码查看结果 (4)设置PyCharm ...

  5. 『Asp.Net 组件』第一个 Asp.Net 服务器组件:自己的文本框控件

    代码: using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DemoWebControl ...

  6. Tomcat中的服务器组件和 服务组件

    开始学习Tocmat时,都是学习如何通过实例化一个连接器 和 容器 来获得一个Servlet容器,并将连接器  和 servlet容器相互关联,但是之前学习的都只有一个连接器可以使用,该连接器服务80 ...

  7. MySQL 8 服务器组件

    MySQL 服务器包含了一个基于组件的架构,用于扩展服务器功能.服务器和其他组件可以使用组件提供的服务.(在使用服务方面,服务器也是一个组件,等同于其他组件).组件之间交互仅通过他们各自提供的服务. ...

  8. asp.net core 系列 18 web服务器实现

    一. ASP.NET Core Module 在介绍ASP.NET Core Web实现之前,先来了解下ASP.NET Core Module.该模块是插入 IIS 管道的本机 IIS 模块(本机是指 ...

  9. ASP.NET 3.5控件和组件开发技术之客户端回发/回调揭密

    本文摘录自<纵向切入ASP.NET 3.5控件和组件开发技术>. 对于服务端控件元素,比如ASP.NET的Button标准服务端控件在提交时可以自动把请求发送到服务端处理,这样的控件我们不 ...

随机推荐

  1. 自我介绍&软工实践博客点评

    想想既然写了点评博客,那就顺便向同学们介绍下自己吧. 我是16届计科实验班的,水了两件小黄衫,于是就来当助教了_(:_」∠)_ 实话说身为同届生来当助教,我心里还是有点虚的,而且我还是计科的..感觉软 ...

  2. Y1S002 xshell脚本编写示意

    SecureCRT可以自己录制脚本,非常的方便:但是考虑到CRT收费,所以不计划把CRT作为使用的终端. vbs脚本(test.vbs): Sub main xsh.Screen.Synchronou ...

  3. Exp2 后门原理与实践 20164302 王一帆

    1 实验内容 1.1实验主要内容 (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主机操作Shell, 任务计划启动 (0.5分) (3)使用MSF ...

  4. Mysql更新关联子查询报错

    报错内容:sql  1093 - You can't specify target table 'u' for update in FROM clause 错误原因: if you're doing ...

  5. css 制作导航条布局

    代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...

  6. LINUX监控-spotlight

    这里连接的user不能是root(spotlight需要一个具有root权限的用户,但是又不允许是root),所以需要给要连接的linux端创建一个有root权限的用户,在linux主机创建了root ...

  7. jieba中文分词

      jieba中文分词¶   中文与拉丁语言不同,不是以空格分开每个有意义的词,在我们处理自然语言处理的时候,大部分情况下,词汇是对句子和文章的理解基础.因此需要一个工具去把完整的中文分解成词. ji ...

  8. Vue(二十九)页面加载过慢问题

    1.使用按需加载 2.路由懒加载

  9. SSIS - 7.发邮件任务

    发邮件任务在SSIS中使用特别多,当包执行失败或者有报错的时候可以用发邮件任务给管理员发邮件通知. 一.SMTP连接管理器 SMTP连接管理器是发邮件任务用来连接SMTP(Simple Mail Tr ...

  10. 通过一个小故事,理解 HTTPS 工作原理

    本文摘录参考: 细说 CA 和证书(主要讲解 CA 的使用) 数字签名是什么?(简单理解原理) 深入浅出 HTTPS 工作原理(深入理解原理) HTTP 协议由于是明文传送,所以存在三大风险: 1.被 ...