Clarion (lenguaje de programación)
Clarion es un lenguaje de programación comercial, propietario, de cuarta generación (4GL), multiparadigma, lenguaje de programación y entorno de desarrollo integrado (IDE) de SoftVelocity utilizado para programar aplicaciones de bases de datos. Es compatible con el método de acceso secuencial indexado (ISAM), el lenguaje de consulta estructurado (SQL) y los objetos de datos ActiveX (ADO) métodos de acceso a datos, lee y escribe varios formatos de bases de datos de escritorio de archivos planos, incluidos ASCII, valores separados por comas (CSV), DOS (binario), FoxPro, Clipper, dBase y algunas bases de datos relacionales. A través de ODBC, Microsoft SQL Server, Sybase SQL Anywhere y Oracle Database mediante el uso de controladores de bases de datos nativos acelerados y XML, Clarion se puede utilizar para generar resultados en HTML, XML, texto sin formato y formato de documento portátil (PDF), entre otros..
El entorno de desarrollo de Clarion (IDE) se ejecuta en el lenguaje Clarion. El IDE proporciona funciones de generación de código a través de un sistema de plantillas que permiten a los programadores describir el programa desde un nivel abstracto superior al de las declaraciones de código. Luego, el generador convierte este nivel superior en código, que a su vez se compila y vincula utilizando un compilador y vinculador normal. Esta capa de generación a veces se denomina programación 4GL. Usar la capa de generación es opcional. Es posible crear programas completamente a nivel de código (los llamados 3 Lager), sin pasar por todas las funciones de generación de código.
Si las plantillas se utilizan para generar código, entonces los programadores pueden inyectar su propio código en el código generado para alterar o ampliar las funciones ofrecidas por la capa de plantilla. Este proceso de incrustación de código se puede realizar mientras se visualiza el código generado circundante. Esta combinación de código de plantilla y código generado permite actualizar la configuración de la plantilla y regenerar el código sin pérdida del código incrustado.
Las plantillas (a partir de las cuales se genera el código) se proporcionan en formato fuente y los desarrolladores son libres de crear sus propias plantillas. Varios desarrolladores han escrito muchas plantillas: algunas se ofrecen como complementos comerciales y otras son gratuitas.
Existen tres productos principales de Clarion: Professional Edition, Enterprise Edition y.NET.
Historia
La primera versión del lenguaje Clarion fue un producto de DOS llamado Clarion 1.0 y se lanzó por primera vez en abril de 1986. Clarion fue creado por Bruce Barrington, uno de los fundadores de la empresa de atención médica "HBO & Empresa" (posteriormente adquirida por McKesson Corporation) y un pequeño equipo de desarrolladores. El objetivo de Barrington era crear un lenguaje que fuera compacto y expresivo, y que maximizara el uso de la pantalla mapeada en memoria de la PC IBM mediante la creación de un diseñador de pantalla. La versión 1 produjo pseudocódigo; la versión inicial incluía un diseñador de pantalla, un intérprete, un editor y un depurador. Inicialmente admitía bases de datos compuestas por archivos DAT, que era el formato de archivo ISAM propiedad de Clarion. Bruce Barrington formó Barrington Systems y lanzó la versión 1.0.
Clarion 1.0 requería el uso de un dongle, en un momento en que el sentimiento de la industria se estaba volviendo contra los dongles. Esto se vio compensado por la capacidad de crear aplicaciones libres de regalías. El dongle se omitió en la versión 1.1.
En ese momento, se vendió una versión aún más básica. Llamado Personal Developer, limitaba estrictamente lo que un usuario podía hacer, pero era adecuado para aplicaciones de bases de datos muy básicas. Cuesta mucho menos que Professional Developer 1.x.
La versión 2.0, lanzada en mayo de 1988, se denominó Clarion Professional Developer (CPD) e incluía un componente llamado Designer, que incorporaba un diccionario de datos. CPD generó código Clarion basado en el contenido de ese diccionario y una plantilla llamada "archivo modelo". Debido a que el archivo modelo era un archivo de texto, se podía modificar (de forma limitada) para crear código personalizado. El archivo modelo se implementó con la función "explorar y formar" paradigma, donde los datos se muestran inicialmente al usuario en un cuadro de lista, y la actualización se realiza a través de un formulario llamado mediante botones asociados con la lista. Designer creó todo lo esencial del código CRUD (crear, leer, actualizar, eliminar) y los desarrolladores pudieron mejorar las funciones insertando código en puntos específicos del código generado o codificando manualmente nuevos procedimientos. Clarion Professional Developer también presentó los módulos de extensión del lenguaje (LEM), que podrían ampliar el lenguaje utilizando módulos compilados en otros lenguajes creados en el formato LEM. Clarion Software y muchos desarrolladores de herramientas de terceros crearon LEM para todos los propósitos, incluida una extensión para conectarse a otras bases de datos como dBase, Clipper y Paradox.
CPD 2.x era una solución de base de datos con todo lo necesario para pantallas, informes, bases de datos y archivos de ayuda. También se lanzó una versión de Clarion 2.x para usuarios finales, Clarion Personal Developer, para que el usuario empresarial cree aplicaciones personales. Por entonces, Clarion lanzó Clarion Report Writer. Fue creado como un producto independiente para usuarios finales de Clarion Personal Developer y usuarios de programas escritos por desarrolladores con CPD, y como un programa integrado incluido con Clarion Professional Developer versión 2.1 lanzada en 1989.
En 1991, Barrington obtuvo la licencia de tecnología de compilación de una empresa llamada Jensen & Socios Internacionales (JPI).
JPI fue fundada en 1987 por Niels Jensen, quien anteriormente (1979 o 1981) había sido uno de los fundadores de Borland. Philippe Kahn fue el responsable de marketing que construyó Borland alrededor del compilador Turbo Pascal de 49 dólares. Niels y su equipo estaban trabajando en una nueva tecnología de compilación en Borland cuando Kahn decidió comprar Wizard C y llamarlo Turbo C. Niels y varios otros desarrolladores dejaron Borland y fundaron JPI, donde continuaron trabajando en su tecnología de compilación, llamada TopSpeed., que compraron a Borland por 1,7 millones de dólares.
Clarion Database Developer 3.0 (CDD) se lanzó en 1993. Era un producto revolucionario que agregaba muchas características y tecnología que podían crear programas con un formato "como Windows" Interfaz de usuario de acceso de usuario común (CUA). Gran parte de los cambios de CDD encajan bien en el paradigma de programación de Windows y sentaron las bases para el futuro producto Clarion para Windows.
El CDD IDE era completamente nuevo y estaba basado en el JPI IDE. Incluía muchas herramientas de calidad de programación profesional: editor, sistema de proyectos, compilador, enlazador y depurador visual. Atrás quedó el código p de CPD. El compilador JPI para el lenguaje Clarion produjo verdaderos archivos de código de máquina, LIB y bibliotecas de vínculos dinámicos (DLL). Los binarios podrían compilarse en modo protegido permitiendo que los programas de DOS utilicen memoria extendida, rompiendo la barrera de los 640 KB.
El lenguaje Clarion 3.0 se mejoró de muchas maneras, por ejemplo: nuevos tipos de datos (CSTRING, PSTRING, DATE, TIME, USHORT, ULONG), sistema de controlador de archivos (por ejemplo, Btrieve, Clarion, Dbase, FoxPro, Paradox), colas (tablas) se mejoraron, se mejoró el procesamiento de pantalla para CUA. La generación de código mediante modelos fue reemplazada por plantillas que tenían más funciones y eran extensibles. Esto permitió generar código mucho más robusto y complejo.
Con todo este nuevo poder vino la complejidad. Muchos usuarios existentes encontraron difícil la transición a CDD. CPD era simple y fácil de usar, lo que atrajo a muchos no programadores que podían crear programas respondiendo preguntas. CDD era más adecuado para programadores profesionales. Los programas aún se podían desarrollar con la misma facilidad, pero el tamaño y las amplias funciones del IDE lo hacían parecer complejo.
Las primeras 5 versiones de parches de CDD tenían errores hasta el punto de ser inutilizables, lo que provocó que tantos usuarios abandonaran el producto que fue casi un desastre para la empresa. Clarion siguió trabajando en CDD y en la versión 3.007 ya era utilizable.
La versión 3.1 llamada Clarion para DOS (CFD) se lanzó en 1995. Resultó mucho más estable, pero en ese momento había poco interés en las herramientas de desarrollo de DOS. Una característica importante fue el controlador de archivos TopSpeed, un formato de archivo ISAM que permite contener todos los índices y múltiples archivos de datos en un solo archivo de disco.
Durante este tiempo, la relación entre Clarion Software y JPI se hizo más estrecha y el 30 de abril de 1992, Clarion se fusionó con JPI para formar una entidad que eventualmente se llamaría TopSpeed Corporation. Los empleados del Centro de Desarrollo TopSpeed en Londres se pusieron a trabajar en CDD y resolvieron muchos de los errores.
TopSpeed lanzó Clarion para Windows versión 1.0 (también conocido como CW 1.0) en enero de 1995. La versión final 1.003 fue junio de 1995. El IDE fue escrito completamente como una GUI de Windows y podía producir archivos binarios Win16 EXE y DLL para ejecutarse en Windows 3. X. El lenguaje presentaba muchas mejoras necesarias para admitir la interfaz de usuario de Windows basada en eventos. Un desarrollador de Clarion podría crear fácilmente una aplicación MDI multiproceso. CW 1.0 continuó con la flexibilidad de la base de datos agregada en CDD, además de agregar un controlador ODBC que permite la conexión a bases de datos SQL o cualquier fuente compatible con ODBC.
El modelo de plantilla monolítica de DOS fue mejorado significativamente en CW 1.0 y reemplazado por un modelo que permitía que una ventana usara múltiples plantillas (plantillas de extensión, control o procedimiento). Por ejemplo, en DOS, un procedimiento de pantalla podría admitir la exploración de una tabla de datos. En CW 1.0, una ventana podía utilizar varias plantillas de control de exploración, cada una de las cuales mostraba una tabla diferente. Este cambio de diseño supuso una mejora importante en la capacidad de generación de código de Clarion.
Clarion para Windows versión 1.5 (también conocido como CW 1.5) se lanzó en septiembre de 1995, con la versión final 1.502 en enero de 1996. Esta versión agregó soporte para crear archivos binarios Win32 nativos para Windows 95 y Windows NT 4. El mismo código fuente podría apuntar a Win16 o Win32. El IDE siguió siendo de 16 bits, pero agregó compiladores, enlazadores y depuradores de 32 bits.
Clarion para Windows versión 2 (también conocido como CW20) se lanzó en junio de 1996, con la versión final 2.003 en marzo de 1997. CW20 agregó características clásicas de programación orientada a objetos al lenguaje, incluyendo herencia, encapsulación, métodos virtuales y sobrecarga. CW20 mejoró el soporte de 32 bits, agregó soporte ActiveX y soporte SQL mejorado.
Clarion 4 (también conocido como C4) se lanzó en diciembre de 1997, y la versión final 4.002 se lanzó en mayo de 1998. TopSpeed decidió omitir la temida versión número tres (la explicación oficial fue que CW 1.5 "debería haber sido CW 2.0"). #34; entonces CW 2.0 "debería haber sido CW 3.0", así que llamemos a la siguiente versión 4). Debido a que el desarrollo de DOS estaba muerto, el nombre eliminó la categoría "para Windows". título.
C4 vino con un nuevo conjunto de plantillas y una biblioteca de clases denominada Application Builder Classes (ABC). El conjunto de plantillas original generó un código de procedimiento, que se estaba volviendo cada vez más complejo. El conjunto de plantillas ABC generó mucho menos código y aprovechó la biblioteca de clases, que contenía la mayor parte de la lógica para ventanas, exploraciones, formularios, etc. C4 mejoró la programación orientada a objetos agregando constructores y destructores (sin parámetros).
Clarion 5 (también conocido como C5) se lanzó en mayo de 1998, y la versión final 5.0B se lanzó en junio de 1999. El producto se dividió en las ediciones Professional y Enterprise.
Clarion 5.5 (también conocido como C55) se lanzó en agosto de 2000, y la versión final 5.507 se lanzó en enero de 2002. C55 agregó interfaces a la programación orientada a objetos.
Clarion 6.0 (también conocido como C6) se lanzó en noviembre de 2003 y agregó soporte directo para subprocesos múltiples preventivos.
Clarion 6.1 se lanzó en mayo de 2004.
Clarion 6.2 se lanzó en mayo de 2005.
Clarion 6.3 lanzado en enero de 2006. Excluyendo parches, esta es la versión final del entorno de desarrollo Clarion de 16 bits. El uso de un IDE de 16 bits produjo algunos problemas al utilizar las tecnologías actuales de Windows (ActiveX, OCX, COM, DOC,...); sin embargo, tenga en cuenta que la serie 6.x de Clarion produce ejecutables Win32 nativos (exes y/o dlls de 32 bits). Las versiones anteriores producían ejecutables de 16 y 32 bits; la compatibilidad con 16 bits se eliminó del producto de usuario final con la versión 6.0 de Clarion.
El 13 de abril de 2009, SoftVelocity lanzó Clarion 7 (también conocido como C7). El nuevo IDE resultará familiar para los usuarios de SharpDevelop, SoftVelocity obtuvo una licencia comercial para el código SharpDevelop e integró la tecnología de generación de código y aplicaciones de Clarion, corrigió y amplió las funciones básicas. Las principales características nuevas (aparte de las características IDE modernas estándar que faltan en C6) incluyen un sistema de compilación basado en MSBuild y compatibilidad con todas las versiones de Clarion hasta Clarion para Windows 1.5.
Clarion sigue siendo un entorno de desarrollo Win32, pero está disponible una versión beta.NET Framework del lenguaje, denominada Clarion#. La última versión de Clarion# fue la versión 9353, entregada el 18 de junio de 2012. No hubo más versiones desde entonces. Tanto Clarion# como C7 comparten el mismo IDE, aunque actualmente se envían como productos separados. A diferencia de Clarion 7 y versiones posteriores, Clarion# aún no tiene un editor de diccionario ni un generador de aplicaciones. Se esperaba que un IDE Clarion7+/Clarion.Net hubiera soportado el desarrollo tanto de Win32 como de.NET. Sin embargo, dado que han pasado al menos 15 años desde que se anunció Clarion.Net sin una versión oro, el futuro de Clarion.Net no está claro.
El nuevo IDE (en modo Clarion#) conserva la capacidad de crear aplicaciones.NET con VB.NET y C#.
El 12 de septiembre de 2011 SoftVelocity lanzó Clarion 8. Continúa la línea de Clarion 7 (la última versión fue C7.3).
En agosto de 2014 se lanzó C9.1 Gold.
En noviembre de 2015, se lanzó Clarion 10. C10 fue rediseñado para desarrollarse en.NET 4
En octubre de 2018, se lanzó Clarion 11.
Clarion 11.1 es la versión actual, compilación 13788, que se lanzó en febrero de 2022.
A partir de agosto de 2023, la comunidad espera un lanzamiento de Clarion 12, pero hasta el momento no hay comentarios oficiales sobre funciones futuras confirmadas.
Notabilidad
Clarion es históricamente conocido como una de las primeras herramientas de programación informática 4GL, desarrollada por primera vez en la década de 1980.
Críticas
No hay versión de prueba disponible
Actualmente, no existe una versión de prueba de ninguna edición de Clarion a partir de 2023, lo que hace imposible producir ni siquiera una versión simple de "Hello World" programa en Clarion sin comprar primero una licencia. Se anunció una Clarion Community Edition gratuita en la Conferencia Internacional de Desarrolladores de Clarion (CIDC) en 2019, pero aún no está disponible.
Documentación deficiente
La documentación de Clarion tiene diferentes estándares y cuenta con una combinación de "nivel empresarial" y ".NET" habilidades se combinan en una fuente de ayuda para todos.
Esto puede dar como resultado que algunas funciones se describan en la ayuda (junto con fragmentos de código) donde esa función no se encuentra en el producto específico que se está utilizando. Por ejemplo, se incluye la documentación de Clarion.Net, incluso cuando el producto clarion.NET no está instalado. Sin embargo, la documentación específica de un producto está claramente etiquetada como tal.
La documentación se ha quedado atrás con respecto al producto y está claro que no se revisa completamente en cada versión. Por ejemplo, existen numerosas referencias a "Clarion 7" dentro del "Clarion 9" documentación. Este problema se evidencia en el "Tutorial" y "Aplicación de muestra" nivel también.
Propiedades de idioma
Clarion es un lenguaje de programación imperativo que admite una sintaxis de programación orientada a objetos. El lenguaje no distingue entre mayúsculas y minúsculas. Los finales de línea se tratan como terminadores de declaración implícitos, a menos que se utilice un carácter de continuación de línea explícito. Las etiquetas de datos y programas siempre se declaran en la columna 1, el código siempre tiene sangría desde la columna 2 en adelante. La sangría adicional es opcional. La sintaxis del código se parece más a BASIC y Pascal en estructura, aunque el lenguaje es bastante diferente de ellos.
Los bloques de código normalmente tienen un comienzo implícito (no se utiliza ninguna palabra COMIENZO) y un final explícito o implícito.
Por ejemplo;
Si x = 5 y = z * 3 final
Se puede utilizar un punto en lugar de la declaración END.
Si x = 5 y = z * 3 .
El código se puede concatenar en una línea usando; separador (o en el caso de SI una declaración ENTONCES).
Si x = 5 entonces y = z * 3.
Tenga en cuenta el período que finaliza el bloque de declaración IF.
Uso de plantillas
Clarion genera su código mediante plantillas. El código generado por plantillas tiende a ser muy confiable, especialmente si la plantilla ha estado en uso durante algún tiempo.
Las plantillas se envían en formato fuente y se pueden editar; sin embargo, no se recomienda editar las plantillas de envío. El código generado por las plantillas se puede aumentar o modificar creando plantillas personalizadas adicionales o incorporando código específico.
Las plantillas pueden generar cualquier archivo basado en texto y no se limitan a declaraciones de idioma.
Amplia variedad de extensiones de terceros, compatibilidad con varios idiomas
El lenguaje Clarion puede interactuar con archivos DLL producidos por otros lenguajes. Es compatible con bibliotecas que utilizan el método Pascal o el método C de paso de parámetros. Las llamadas a la interfaz de programación de aplicaciones (API) de Windows se pueden realizar directamente desde el lenguaje.
Flexibilidad de la base de datos
Clarion se centra en los datos, lo que significa que está diseñado para usarse entre una amplia variedad de proveedores de bases de datos y se centra en los datos.
Este enfoque en datos comienza con el Diccionario de datos, que es un método para declarar formalmente tablas de datos. Las plantillas utilizan ampliamente este diccionario al generar el programa. Los cambios en el nivel del diccionario pueden llegar en cascada al programa, provocando cambios automáticos en el programa.
El diccionario de datos proporciona un método independiente del proveedor para declarar tablas, lo que a su vez significa que cambiar un programa de un proveedor de base de datos a otro es relativamente sencillo, dentro de las limitaciones de las características que proporciona la base de datos elegida.
Clarion admite bases de datos SQL y almacenes de datos que no son SQL. Se incluye soporte para tipos de archivos ISAM populares (dBase, Btrieve, etc.) y también se proporcionan dos sistemas de archivos ISAM propietarios (Topspeed (TPS) y Clarion (DAT)).
En el código del programa, las tablas son un tipo de datos nativo. El acceso a la tabla se proporciona mediante una interfaz DLL estándar (denominada controlador de base de datos) que separa el programa del almacén de datos elegido. Esta abstracción permite que el backend elegido cambie sin cambios o con cambios mínimos en el programa.
Clarion admite de forma nativa muchos formatos de bases de datos, incluidos, entre otros:
- ASCII
- Básico
- BTrieve
- Clarion (DAT)
- TopSpeed (.TPS)
- Clipper
- DBaseIII
- DBaseIV
- DOS
- FoxPro/FoxBase
- Sra. SQL (T-SQL)
- ODBC
- SQL omnipresente
- SQLite
- MySQL
- Oracle
- ADO (ActiveX Data Objects)
El controlador ODBC permite el acceso a cualquier fuente ODBC. Firebird y Postgres son opciones populares a las que se accede a través de ODBC.
Además, debido a su capacidad para interactuar fácilmente con cualquier biblioteca de clases.NET, es capaz de aprovechar cualquiera de las últimas tecnologías desde una perspectiva de base de datos, incluido ASP.NET y cualquier otro que Microsoft ponga a disposición, incluida Windows Communication. Foundation y Windows Workflow Foundation, de cualquier versión.
Aprendizaje
Clarion es un lenguaje funcional, parecido a BASIC o Pascal, pero con objetos y clases agregados.
Habilidades de diccionario
En todas las áreas de las "secciones de declaración de datos del diccionario de datos" - a saber, la "sección de datos globales", la "sección de declaración de datos específica del módulo" y las "secciones de declaración de datos locales" - cuando declaras un tipo de datos o variable simple o complejo, también puedes declarar su "mensaje o etiqueta", "máscara" o "imagen", ya sea es de solo lectura o no, ya sea que se deba omitir en el formulario, los colores de primer plano y de fondo, la transparencia y una gran cantidad de otros atributos.
Si esa variable se ingresa en un formulario en el IDE de Clarion, adopta esas propiedades y se reflejan automáticamente. El diccionario de datos (o 'base de datos' en términos SQL) contiene información sobre los datos y sobre cómo deben representarse en aplicaciones que utilizan la "base de datos" declaración.
Cuanto más tiempo dedique un desarrollador de Clarion a definir el diccionario de datos, más tiempo ahorrará cuando el generador de aplicaciones 4GL produzca resultados, generalmente listas de datos con capacidades CRUD completas, validación y búsqueda automática desde " niño" mesas.
Hola mundo
Un ejemplo "Hola mundo N#34; programa en Clarín:
PROGRAMA
MAP
FIN
CODE
MENSAJE('Hola Mundo'','Clarion')
RETURN
Clarion acepta varias sintaxis diferentes, por lo que el mismo programa se puede presentar de diferentes maneras. Por ejemplo, el programa anterior también puede ser
PROGRAMA
MAP.
CODE
MENSAJE('Hola Mundo'','Clarion')
El retorno al final es opcional, ENTONCES es opcional, FIN se puede reemplazar por ".", la separación de declaraciones puede ser ";" en lugar de avance de línea (y muchos más), entonces esto:
IF Fecha1
MENSAJE('La segunda fecha es antes de la primera')
MESSAGE('Enter the date again')
FIN
Es exactamente lo mismo que:
IF Date1 ■ Date2 THEN MESSAGE('The second date is before the first one'); MESSAGE('Enter the date again').
Programación para no programadoras
(feminine)El código de muestra que se muestra en la página "Hello World" example es un ejemplo de código escrito a mano, que el compilador Clarion compilará fácilmente. Sin embargo, la mayoría de los desarrolladores no escriben programas completos a nivel de código, sino que utilizan plantillas para generar código.
Debido a esta capacidad de describir un programa a un nivel superior al del código, Clarion ha sido más popular tanto entre los no programadores como entre los programadores con habilidades o capacidades limitadas. Es posible que los no programadores generen programas sofisticados basados en datos sin escribir código de lenguaje o agregando solo cantidades mínimas de su propio código.
El mapa global
Una característica de Clarion se llama Mapa global.
Dentro de él, se declaran definiciones de procedimientos, incluidas, si es necesario, declaraciones a bibliotecas o DLL externas escritas en lenguajes que no sean Clarion. Para uso de la aplicación Clarion. Clarion también puede generar archivos DLL que pueden ser consumidos por aplicaciones externas que no sean de Clarion, aprovechando al máximo todas las capacidades 4GL de Clarion y simplemente conectándose a los procedimientos que ha creado..
Dentro de este MAP, puede aprovechar todas las declaraciones API de Windows, utilizando, si es necesario, los tipos de datos que ya no están documentados y que son fundamentales para el sistema operativo (SO) de Windows.
Interoperar con bibliotecas.NET
Como Clarion# se basa en.NET versión 4 (la misma versión utilizada para desarrollar Clarion 10 IDE), permite al desarrollador utilizar otras bibliotecas.NET.
La ventaja de usar Clarion# directamente es que compilar una DLL de Clarion# genera un archivo LIB que es compatible con Clarion para Windows y permite que un programa de Clarion para Windows llame a las funciones.NET en la DLL de Clarion# de la misma manera en cuanto a otras DLL de Win32.
Si un desarrollador de Clarion desea utilizar código compilado en otros lenguajes, puede utilizar Exportaciones no administradas, un paquete NuGet desarrollado por Robert Gieseck (https://www.nuget.org/packages/UnmangedExports). Las exportaciones no administradas permiten a un desarrollador exponer funciones desarrolladas utilizando.NET en lenguajes nativos en Windows. Esto es útil para quienes deben mantener un producto Clarion pero no tienen forma de actualizar herramientas de terceros debido a la falta de soporte. La mayoría de las herramientas de terceros se pueden reescribir en.NET con facilidad.