当前位置:编程学习 > JAVA >>

Jint - Javascript Interpreter for .NET

Project Description
Jint is a script engine based on the Javascript language. Using Jint, developers can provide fully scriptable applications, execute .NET code without compiling, or create external configuration logic, using the most used script language.
Jint aims at providing every JavaScript functionalities to .NET applications, and bindings to .NET languages can be done in both sides. Jint scripts can use any .NET object from your application, and use every part of the .NET base class library.
Differences with other script engines
Jint is different as it doesn't use CodeDomProvider technique which is using compilation under the hood and thus leads to memory leaks as the compiled assemblies can't be unloaded. Moreover, using this technique prevents using dynamically types variables the way JavaScript does, allowing more flexibility in your scripts. On the opposite, Jint embeds it's own parsing logic, and really interprets the scripts. Jint uses the famous ANTLR (www.zzzyk.com) library for this purpose.
As it uses Javascript as its language you don't have to learn a new language, it has proven to be very powerful for scripting purposes, and you can use several text editors for syntax checking.
Usage scenarios
Create applications users can automate by providing a programmable inte易做图ce. A good example is what VBA is for Microsoft Office applications
Enhance configurability to change your application's behavior and logic without compiling or deploying binaries
Evaluate dynamic code or expressions
Sample usage
Here is a sample in C#, but any .NET language can use Jint. Jint is able to handle all advanced JavaScript techniques decribed on this MSDN article: www.zzzyk.com. It currently implements all concepts defined in ECMAScript version 3.0.

script= @"
  function square(x) {
    return x * x;
  };
 
  return square(number);
  ";
 
var result = new JintEngine()
  .SetParameter("number", 3)
  .Run(script));

Assert.AreEqual(9, result);

You can also check the actual implemented test suite for more samples.
Implemented artifacts
Standard Javascript elements:
Objects and methods
Loops (do, while, for)
Code blocks and scopes
Conditional statements (if, switch/case)
Json
Property indexers
Dynamic properties
Javascript native classes (Math, String, Object, Number)
Regular expressions
Functions (declarations plus anonymous functions)
Prototypes and constructors
.NET bindings
External objects and values
External functions to enhance the script resources
Return value to .NET code
Out of the box Jint Shell application
Use Jint on the command line
Deployment
Jint is deployed as a part of your application and fits inside a single assembly. Nothing as to be installed on the client machine.
Roadmap
0.8 - All javascript languages artifacts as of ECMAScript 3.0
0.9 - Beta phase - All javascript core methods are implemented (Math, slice, ...)
1.0 - Positive feedback from Beta
1.1 - ECMAScript 5.0 elements

补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,