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验证码图片。

全新ASP框架——IISNODE介绍的更多相关文章

  1. ASP.NET Core 介绍

    原文:Introduction to ASP.NET Core 作者:Daniel Roth.Rick Anderson.Shaun Luttin 翻译:江振宇(Kerry Jiang) 校对:许登洋 ...

  2. 表现层及ASP.NET MVC介绍(二)

    表现层及ASP.NET MVC介绍(二) 最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和 ...

  3. 表现层及ASP.NET MVC介绍(一)

    表现层及ASP.NET MVC介绍(一) 本文将介绍表现层及ASP.NET MVC的一些要点,特别是ASP.NET MVC的一些抽象和封装技巧,如果你对MVC还不了解,可以参考<ASP.NET ...

  4. Go语言Web框架gwk介绍 1

    Go语言Web框架gwk介绍 (一)   今天看到Golang排名到前30名了,看来关注的人越来越多了,接下来几天详细介绍Golang一个web开发框架GWK. 现在博客园支持markdown格式发布 ...

  5. 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式

    连表查询都用Left Join吧   最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在 ...

  6. Spring源码解读(一):Spring的背景起源及框架整体介绍

    一.前言 Spring起源于2002年Rod Johnson写的一本书<Expert One-on-One J2EE>,书里介绍了Java企业应用程序开发情况,并指出Java EE和EJB ...

  7. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  8. 开源实体映射框架EmitMapper介绍

    开源实体映射框架EmitMapper介绍   综述       EmitMapper是一个开源实体映射框架,地址:http://emitmapper.codeplex.com/.       Emit ...

  9. [推荐]dubbo分布式服务框架知识介绍

    [推荐]dubbo分布式服务框架知识介绍 CentOS+Jdk+Jboss+dubbo+zookeeper集群配置教程    http://wenku.baidu.com/view/20e8f36bf ...

随机推荐

  1. 04_过滤器Filter_05_Filter解决全站中文乱码问题(POST方式)

    [工程截图] [web.xml] <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns: ...

  2. jQuery查看dom元素上绑定的事件列表

        jQuery API提供了一种能够查看元素已绑定事件的列表,这个功能在进行功能调试的时候特别有用,尤其确定在代码执行过程中元素绑定的事件是否被更改. 1: jQuery( elem ).dat ...

  3. [C#]Thread Safe Dictionary in .NET 2.0

    using System.Collections.Generic; using System.Threading; namespace CSharpUtilHelpV2 { /// <summa ...

  4. Java源代码分析与生成

    源代码分析:可使用ANTLRANTLR是开源的语法分析器,可以用来构造自己的语言,或者对现有的语言进行语法分析. JavaParser 对Java代码进行分析 CodeModel 用于生成Java代码 ...

  5. php怎么保留相除后几位小数:sprintf

    $n=0.1265489; echo sprintf("%.2f", $n); // 0.13

  6. yii2源码学习笔记(十八)

    View继承了component,用于渲染视图文件:yii2\base\View.php <?php /** * @link http://www.yiiframework.com/ * @co ...

  7. c# datagridview导出到excel【转载】

    c# datagridview导出到excel[转载] http://hi.baidu.com/weizier/blog/item/8212caea1123b4d6d439c9fe.html 本作者使 ...

  8. 重复数据插入unique列时,锁加在哪?

    1.测试目的 当插入重复数据到有unique索引的表中时,采用何种加锁机制. 2.测试思路 利用10046确定是什么操作导致加锁阻塞了进程: dump锁定前最近一次操作的块结构来分析加锁机制. 3.测 ...

  9. 理解和熟练运用js中的call及apply

    call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向. 因为 JavaScript 的函数存在「定义时上下文」和 ...

  10. Central Europe Regional Contest 2012 Problem I: The Dragon and the Knights

    一个简单的题: 感觉像计算几何,其实并用不到什么计算几何的知识: 方法: 首先对每条边判断一下,看他们能够把平面分成多少份: 然后用边来对点划分集合,首先初始化为一个集合: 最后如果点的集合等于平面的 ...