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. BCEC手动验证业务方法

    在每次割接或业务调整后手动执行并做好业务验证工作 一.研发区利用ansible手动执行巡检程序: 步骤1:登陆 10.254.3.4/opt/ansible 步骤2:手动执行 sh compute_c ...

  2. win8.1企业版更新到win10解决方案

    最近想把自己的win8.1更新成win10,发现月底就要免费更新了,由于我的电脑是企业版,官方不提供企业版的免费升级,所以用电脑管家或者360老是提示不对.我就百度了在注册表里面改成了专业版的,接着继 ...

  3. bzoj1008: [HNOI2008]越狱

    思路:首先所有情况就是m^n,然后不可能发生越狱的情况就是第一个有m种选择,第二个要与第一个不同就是m-1种选择,第三个要与第二个不同也是m-1种选择,然后不可能发生越狱的情况数就是m*(m-1)^( ...

  4. Java内存模型JMM与可见性

    Java内存模型JMM与可见性 标签(空格分隔): java 1 何为JMM JMM:通俗地讲,就是描述Java中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量这 ...

  5. PL/SQL学习(一)

    原文参考:http://plsql-tutorial.com/ 组成: 声明部分(可选) 执行部分(必选) 异常处理(可选)       声明:         DECLARE       执行:   ...

  6. Sqlserver知识点1

    1.字符串     字符数据类型是SQL Server 中最常用的数据类型之一,它可以用来存储各种字母.数字符号和特殊符号.在使用字符数据类型时,需要在其前后加上英文单引号或者双引号. (1)char ...

  7. js函数与变量同名

    console.log(a); var a = 3; function a(){} 输出的结果是:[Function: a] 注意一下几点就能知道原因了! 1)函数声明会置顶2)变量声明也会置顶3)函 ...

  8. rpc远程调用开发

    RPC即远程过程调用,适用于集群管理,集群节点就是RPCServer,而我们发起远程调用的web服务器就是RPCClient.所以是少数rpcClient(可能一个)对多个RPCServer(集群节点 ...

  9. 防止apche列出目录以及下载文件

    1.修改httpd.conf,将override none改为override all 2.在需要设置权限的目录上传.htaccess文件,.htaccess文件内容如下: <FilesMatc ...

  10. Linux调整SWAP分区

    刪除原swap分區,重建swap,步驟如下:1,swapoff -a #停止交換分區2,fdisk /dev/sda #進入fdisk,刪除原swap分區,重新建立新分區(swap分區的系統ID是82 ...