vox-core-clr
NOTICIA: vox-core-clr es parte de vox-core, y por tanto se ejecuta sobre vox-core. Si usted ya tiene instalado vox-core no descargue este módulo, puesto que vox-core ya tiene incluido este módulo. Si desea usar este módulo sin instalar vox-core por favor instale voxnode-clr
VoxSoftware está creando módulos independientes de cada parte de vox-core utilizando el prefijo voxnode- en lugar de usar vox-core-. Por lo tanto si desea usar alguno de los submódulos presentes en vox-core, de manera independiente revise utilizando este prefijo.
vox-core-clr ==> voxnode-clr
vox-core-clr permite usar Tipos y Ensamblados .NET desde nodejs. vox-core-clr tiene las siguientes ventajas sobre edge.js
- No tiene que compilarse. vox-core-clr crea un canal de comunicación entre .NET y nodejs
- Permite usar clases ya predeterminadas de .NET sin tener que compilar código fuente C# u otro lenguaje
- Los métodos devuelven tareas asíncronas (Similares a Promises, compatibles con async/await: Regenerator de facebook y vox-core-es6 de vox-core)
vox-core-clr tiene ciertas características más:
- Permite compilar código fuente C#
- Permite cargar ensamblados por nombre y por archivo
- Permite utilizar cualquiera de las sobrecargas de un método
- Permite obtener y ajustar valores de propiedades con índices
Dependencias
Debe instalar .NET Framework 4.0 en Windows (en versiones recientes viene preinstalado), o Mono en sistemas Unix
Cambios
Documentación
Incluye las siguientes clases:
- VW.Clr.Field
- VW.Clr.Function
- VW.Clr.InvocationException
- VW.Clr.InvocationTimeoutException
- VW.Clr.IPC uso interno
- VW.Clr.Manager
- VW.Clr.Property
- VW.Clr.Type
Ejemplo
Este ejemplo usa sintaxis ES6 y async/await. Se puede usar un transpilador como babel, o ejecutar directamente con vox-core creando un archivo con extensión .es6
var clr= var { // Esta parte se demora un poco mientras se carga por completo el canal de comunicación await clr // La primera vez se demora un poco más porque carga los miembros de los tipos var d= await console var d= await console var d= await console var d= await console await clr process} var { try var Xml= {} // Cargar los tipos ... XmlDocument= clr await XmlDocument var doc= await XmlDocument var root= await doc await doc var elemento1= await doc var elemento2= await doc await elemento1 await elemento2 await doc console var tasks=root elemento1 elemento2 doc await coreVWTask catcher console } var { try var Xml= {} // Cargar los tipos ... var scope= clr XmlDocument= clr await XmlDocument var doc= await var root= await await doc var elemento1= await doc var elemento2= await doc await elemento1 await elemento2 await doc console await scope catcher console }