ASP.NET入门随想之抽象的力量

简介:  ? ASP.NET入门随想之抽象的力量 小 时看过一故事:三书生欲进京赶考,问一老僧三人前景如何,老僧端坐如山,最后缓缓伸出一指。于是三书生路上争论不休,不明老僧指哪一人会黄榜题名,不料后 来三人同时高中,高兴之余,不禁对老僧的权威起了疑心。三人衣锦返乡后,追问老僧,老僧及端坐如山,缓缓曰:一指表示三人皆中,三人立马晕倒。 ■ASP的编程思想 -写八股文 MS在java技术的冲击下匆忙
  ?
ASP.NET入门随想之抽象的力量
小 时看过一故事:三书生欲进京赶考,问一老僧三人前景如何,老僧端坐如山,最后缓缓伸出一指。于是三书生路上争论不休,不明老僧指哪一人会黄榜题名,不料后 来三人同时高中,高兴之余,不禁对老僧的权威起了疑心。三人衣锦返乡后,追问老僧,老僧及端坐如山,缓缓曰:一指表示三人皆中,三人立马晕倒。

■ASP的编程思想 -写八股文

MS在java技术的冲击下匆忙推出ASP技术。要不是因为WinServer操作系统的霸主地位,粗陋的ASP不太可能在OO推行二十几年、C++和JAVA如火如荼之际站稳脚跟。

我 们从ASP技术中几乎可以看出编程技术的几十年的演进过程。大多数人写的第一个ASP程序,就是在HTML字符流中插入<%="Hello, Welcome to ASP World!"%>,瞬间冲动一直支撑着ASP程序员从输出网页内容到输出网页结构到输出网页脚本程序的学习过程,只要你对HTML语法结构和数据 库有一定了解,熟悉某一两种程序设计语言,你就可以很快地拨弄出几个网站,要是你还会点PS和FLASH,那你就简直不得了了;终于有一天有人想起C语言 include "string.h"之类的东东,开始意识到重复的代码可以定义一个函数或过程来重复调用,于是网络上开始盛行<include file="****.asp">语句;复杂的企业计算不堪忍受ASP粗糙的八个固有组件,然又有白骨精们编写出DLL以体现JAVA标志性的N层 结构技术,于是又出现了一个新名词叫DLL陷阱,如果你编写出来的DLL和WIN系统现有的同名,那么离重装机器的日子就不远。简单地说,ASP就是面向 过程和面向对象的杂交体,原始、混乱,在同一个程序中,你可看到call sub,也可看到set rs=conn.execute("……"),什么东西!

但不管怎么折腾,ASP编程的实质,就是始终面对着组织网页HTML字符流 这个过程,尽管带着点OO的影子,但它的目的决定了它是面对过程,在它的眼里,花哨网页中的文字和图片一样,都是字符,它的任务,就是从< html>标签开始,不断用response.write 语句生成<head>到<body>、<div>、<input>一直到</html>标 签字符流,最后构成客户端HTML网面和客户端脚本程序,恰似八股文之破题、承题、起讲……

■WEB程序编程思想的演进 -让人民币来得更猛烈些吧!

让我们来想像一下你的月薪从1,000RMB到>30,000RMB的过程。

一个静态网页就似WORD文档,CSS就象是WORD文档的模板。如果你恰好做这些事,那么你的职位叫网面设计师,月薪1,000,这时你年少无知;

如果你开始知道如何用程序自动生成一个页面时,此时你的编程思想是围绕着某个具体网页展开的,恰如五六十年代的面对过程时代。那么你的月薪将可能有2,000,叫程序员,这时你初出毛庐;

你 做了许多重复的事,发现许多页面需要一些公共功能,比如网站往往需要一个公共的CONN文件来创建数据库连接对象时,程序员自然会将这个创建过程封装成函 数来重复调用,这时的编程思想是围绕着公共功能展开的,正如七八十年代的结构化编程,已经开始对功能的进行抽象。风华正茂的你开始被人叫成软件工程师了, 月薪3500;

当你又发现一个网站中其实都是由公共的内容组成的,比如登录框,它往往有固定的数据(用户名/密码)、固定的外观(用 户名和密码输入框 / 提交按钮)、固定的动作(审核 / 登录成功 / 登录失败),从结构化角度来看,完成登录框需要定义若干个变量和若干个函数,但我们进一步抽象,把对话框看成一个整体,它用数据来表示自己的特征(不同用 户名和密码的组合),用方法来表示自己所能处理的事件,封装起来,即成为对象。可用如下结构来表示:

class 登录{用户名;密码;审核;登录成功;登录失败;输入界面;}

再 用对象的眼光来观察网站,那么就会发现小到输入框,大到页面,都是对象,从整个网站中抽象出最基本的内容(不可再分、缺一不可)设计成对象,然后就是简单 地组合。这时的编程思想是面对整个网站,其实这就是八九十年代风行一时的OO思想;这时你可能已经有了名片,上面印着高级软件工程师几字,月薪 5000RMB,不过你早上梳头时,会发现自已的眼角已有了皱纹;

当一个企业需要把互联网溶入到它的机体时,它必须把现有的桌面程序 和WEB程序看成一个整体,两者需要公共的组件,如这时的登录请求不仅可能是WEB程序,还可能是桌面程序,也就是说需要统一的使用授权组件来处理这类事 物,那么这时的编程思想是面对组件;这时你的头衔已改成架构师,月薪>10000,不过镜子里的脑袋上出现若干白发;

一切看起 来已经好象很完美了,不!正如我们对月薪的追求永无止境一样,企业所想的不仅仅是让用户们简单地浏览它们网页这么简单。他的关联客户又对你的系统提出新要 求,如希望用他们的JAVA系统直接完成转账过程,可我的系统是用ASP.NET系统架构出来的!另外,你可不能让别人轻松划走2^N RMB。成千上万家的关联客户让你的编程思想开始面对公共服务。对方可不认识你的这对象那组件,就他而言,转账是一件事,只要在他的桌面程序中用他那粗短 的手指输入用户名和密码后,其它就是你系统的事。如果你能熟练地用WEB Service 完成这些事情,那么恭喜你,薪水就你而言,只是一个数字而往往不具有实际意义,当然,你现在已很难用自身的魅力来吸引清纯少女了,用十八岁女孩的话说,你 已经是老男人了,虽然你才三十出头。
相关文章
|
7月前
|
开发框架 前端开发 .NET
七天.NET 8操作SQLite入门到实战 - (1)第七天BootstrapBlazor UI组件库引入
七天.NET 8操作SQLite入门到实战 - (1)第七天BootstrapBlazor UI组件库引入
|
7月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
172 0
|
7月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
94 0
|
4月前
|
前端开发 JavaScript 安全
入门Vue+.NET 8 Web Api记录(一)
入门Vue+.NET 8 Web Api记录(一)
158 4
|
14天前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
23 3
|
1月前
|
程序员 C# 图形学
全面的C#/.NET自学入门指南
全面的C#/.NET自学入门指南
|
2月前
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
44 2
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
69 8
|
7月前
|
开发框架 .NET 中间件
七天.NET 8操作SQLite入门到实战 - (2)第七天Blazor班级管理页面编写和接口对接
七天.NET 8操作SQLite入门到实战 - (2)第七天Blazor班级管理页面编写和接口对接
157 7
|
3月前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)