Asp是一门经典的动态网页编程语言,通常使用vbscript或者Jscript脚本来实现。一个好的框架,可以帮助您更加快速地使用Asp来完成您的网站开发任务。而Asp框架的终结者——IISNODE框架,无疑就是这样一款产品。
作者:沈赟杰
官网:http://api.webkits.cn/
交流:431804354(QQ群)
一、框架简介
IISNODE是一套有着完善机制的Asp(非Asp.NET)框架,并且使用了完美兼容nodejs的模块加载方式,易于扩充增加自己的模块。整个框架采用Asp下的Jscript编写,可以直接运行于普通的Asp虚拟主机上。
- 整个框架完全使用JScript实现,彻底摒弃了VBScript:使用与JavaScript语法相同的JScript,真正实现了前后端开发语言统一,降低开发学习成本;
- 实现了完全遵循CommonJS规范的ASP界的require,这样很多遵循CommonJS规范的不涉及DOM操作的JavaScript类库便可以直接拿来使用了,大大地丰富了ASP开发资源;
- 除了require,我们也实现了很多与nodejs接口完全相同的核心组件,如文件操作模块fs、路径操作模块path等,同时,我们还扩充了很多es5的方法,基于这三点,我们高度实现了与node的兼容,很多node的模块无需任何修改,直接可用;
- 扩充简单:模块的扩充使用的是全世界通用的CommonJS规范,机制非常健全;
- 开发了仿node命令行的spm工具,spm是为了更方便的模块开发而生的,使用spm可以方便地安装、开发、调试、提交模块,同时,还有很多基于spm的扩展模块:如js文件压缩、js文件格式化(反压缩)、依赖模块打包合并等;
- 基于jszip在全世界范围内首次实现了ASP上的无组件zip文件压缩和解压缩,该功能可以在普通的虚拟主机上运行,这是很多ASP程序员梦寐以求的功能;
- 实现了运行在服务端的Ajax请求服务,使用与jQuery相同的ajax接口,在服务端发送ajax请求;
- ......
二、框架核心
因为Asp中使用的Jscript遵循的是ECMAScript V3规范,为了更好的兼容性,我们在框架中引入了几个JS库。
ECMAScript:兼容ES5和ES6规范的JS库。
Underscore:集成大量JS常用方法,减少开发时代码书写的工作量。
JSON:更加方便的处理json数据,这样我们可以直接require一个json文件作为配置文件。
Date:扩展日期处理功能。
三、系统模块
event:事件模块,用来对过程进行事件处理。事件处理作为业务过程的HOOK,有它本质上的优势。我们可以通过挂钩这些事件,在过程处理时候自动触发回调,让程序的扩展性更强。
Promise:我们引入了Promise来处理任务机制。
Process:全局系统类库,用于存放系统信息以及系统事件。process模块用来与当前进程互动,可以通过全局变量process访问,不必使用require命令加载。它是一个Event对象的实例。
path:本模块包含一套用于处理和转换文件路径的工具集。几乎所有的方法仅对字符串进行转换, 文件系统是不会检查路径是否真实有效的。
fs:基于fso的文件操作模块,具有与nodejs的fs模块几乎相同的接口,不支持异步处理。
require:本框架的核心方法,也是最重要的原型方法。require 把一个基于本文件模块下的PatherSelector路径选择器转化为绝对地址后获取该地址所在的文件模块后编译,返回该模块的exports接口。
Request:Express的输入流对象,包含了所有输入数据。可以使用中间件或者自定义中间件对其扩展。
Response:输出模块,继承自console。所以console中所有方法属性,它都可以使用。
四、SPM功能
Series Package Manager简称spm,它是一套IIS NODE的辅助开发工具,主要用户开发者的插件在线下载安装,插件提交和本地调试。它能很方便地将用户编写的模块在SPM中调试过程,并且省去了新建路由调试的麻烦,同时,SPM也支持自定UI表现,使你的CMD命令执行过程动态化。只要你精通前端,那么你将很容易建立你自己的命令过程,这对开发者和用户有很大的吸引力。
有了SPM,模块开发与调试变得更加方便,实现真正的快速开发。
五、扩展模块
IISNODE兼容大部分的nodejs模块,至少50%以上的nodejs模块可以无需任何修改就直接运行于IISNODE框架之上,大大丰富了IISNODE的资源。目前我们已经选择了几十个模块集成到IISNODE框架中。
ajax:运行在服务端的Ajax请求服务,类似jquery的接口。
ejs:Embedded JavaScript templates。
express:IIS Node 核心运行框架,用于网站搭建和服务。基本兼容NODEJS的express框架。
mssql:SQL SERVER 数据库支持框架。集成了数据库连接,DBO操作,存储过程。
access:Access 数据库操作组件,支持Access中间件,调用方便,兼容MSSQL组件调用方式。
sql-bricks:SQL语句生成器,以更便捷的方式来进行数据库操作。
compressor:将入口模块依赖的所有模块都打包成一个文件,减少FSO操作次数,提高效率。
xml:XML操作类,类似jquery的选择器。
zip:无需开启特殊权限,可以直接运行于普通虚拟主机上的ASP ZIP压缩解压程序。
upfile:ASP无组件上传模块,目前世界上唯一一个已公布的纯JScript实现的ASP文件上传处理模块。
debris:远程断点续传模块,实现了离线下载功能。模块体现实时进度下载和分块下载。
crypto-js:Modularized port of googlecode project crypto-js。
uglify-js:JavaScript parser and compressor/beautifier toolkit。
debug:一个SPM控制台调试组件,用这个组件能很方便地调试到系统的变量以及错误地方。
js-beautify:Reformat and reindent bookmarklets, ugly JavaScript, html and CSS。
qr-encode:无组件二维码生成,支持中文,支持保存图片成文件,支持Adodb.Stream输出。
captcha-png:简单的验证码生成,无组件生成png验证码图片。