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. Windows下管理Python安装包

    Pip:A tool for installing and managing Python packages. Pip在Python环境中的地方就相当于Ubuntu环境中的apt-get.以及Mac系 ...

  2. Qt 操作Excel

    Qt对Excel的数据读/写操作没有现存的类,需要使用QAxObject,下面是从网上下载下来的一个封装好的类,感觉还可以,一般情况下够用,拿来给大家分享. 头文件: #ifndef EXCELENG ...

  3. 数位DP入门Ural1057

    CF一战让我觉得很疲倦,所以今天感觉很慢. 昨天解D题时候,因为太累,根本连题目都没看,今天看了之后感觉不会做,听闻是数位DP问题. 有某神说过,DP的功力建立在刷过的题上,我真的毫无功力可言. 介绍 ...

  4. ASP.Net大文件上传组件详解

    首先右键单击网站根目录,在弹出的快捷菜单中,选择"添加引用"菜单项,弹出"添加引用",切换到"浏览"找到组件的Dll文件"Best ...

  5. Git---Git及GitHub使用笔记

    一.远程项目获取(克隆) syntax: $ git clone <版本库的网址> $ git clone <版本库的网址> <本地目录名> example: $ ...

  6. 【收集整理】Linux下的目录讲解

    Linux下的目录介绍:在Linux系统中,一切东西都是存放在一个唯一的“虚拟文件系统”中的,这个“虚拟文件系统”是树状的结构以一个根目录开始.以文件来表示所有逻辑实体和非逻辑实体,逻辑实体指文件和目 ...

  7. php 需熟练掌握的几个函数

    class Test { } $obj = new Test; 一.__construct() {}  构造函数 二.__destroy() {} 析构函数 三.__get() {} 试图读取一个并不 ...

  8. iBatis系列一

    XML iBatis可以使用xml来作为参数输入以及结果返回:这个功能的优势在于某些特定的场景:还有可以通过DOM方式来作为参数传递:但是这个方式应用的比较少,如果服务器是xml服务器可以采用这种方式 ...

  9. 15个Docker基本命令及用法

    Docker入门教程:15个Docker基本命令及用法   本文中,我们将学习15个Docker命令以及命令的用法和功能,并通过实践学习它是如何工作的. AD:51CTO 网+ 第十二期沙龙:大话数据 ...

  10. ListToDataTable

    public static DataTable ToDataTable<T>(IEnumerable<T> collection)       {           var ...