不要被程序关在门外

    为了系统功能的扩展,我们在AnyData程序中增加了脚本编译和执行的功能,但是我们把脚本的编辑也放置到AnyData程序本身了,这非常危险。
    如果我们启动Anydata之后,打开脚本编辑器,为在程序初始化时增加一个一段脚本,通知网络中其他的程序,某个AnyData的实例已经启动起来了,但是,非常不幸,这段脚本尽管编译通过了,但是在运行时出现严重错误,导致应用程序无法正常启动,我们需要编辑脚本,改正脚本中的错误,但是AnyData无法启动,我们对程序无法修改,所以我们被关在门外了。
    为此我们要做的是将脚本的编辑器和脚本的HOST程序分开。在这个例子中,AnyData程序就是脚本的HOST,负责脚本的编译和运行,作为一个宿主程序。脚本的编辑器应该放置到另外一个单独的程序中,这样,我们可以通过脚本编辑器编辑脚本,然后通过宿主程序调试脚本,即使脚本产生错误,我们也可以通过脚本编辑器修改脚本。
    我希望把脚本的编辑器放到流程设计器中,因为流程设计器中需要设计流程命令,流程命令应该可以在客户哪里被方便的修改,而不是在公司修改,这些东西应该被保存在数据表中。脚本也是为了实现根据用户的需求对应用程序进行定制的,也应该在客户哪里被方便的定制和编辑。
    这需要调整系统的结构,加强流程设计器的功能,在流程设计器中增加脚本编辑器和管理器。还需要考虑,如果脚本的有关接口改进了,原来的脚本需要修改,这比较麻烦,是否有好的解决办法。例如,我们给用户A安装了应用程序,其中有脚本的支持,半年之后,我们对脚本的接口改进了,但是需要给用户A升级一些DLL,但是A的需求没有任何的变化。我们还需要现场给用户调整脚本的代码吗,这似不太合理。如果接口中增加了新的函数,则旧的脚本是否可以自动被修改呢?.NET Framework中是否有这样的功能,可以枚举接口DLL中的接口函数是否被修改了。然后在自动修改脚本文件的内容?
    我们可以试试。如果上述的方法不通,我们还有其他的解决方案吗?

你可能感兴趣的:(.net,网络,脚本,dll,扩展)