美文网首页C#+IronPython编程历险记
实践中认识C#与Python脚本结合的优势

实践中认识C#与Python脚本结合的优势

作者: 我自由吗 | 来源:发表于2019-05-15 10:25 被阅读0次

    软件更新、维护的考量

    在一个项目中,需要频繁的改动规则。真的是几乎每天都要改,每天都要发版本。发版本不仅仅意味着要改代码,还有后续一系列的编译、上传、更新,提交安全认证等等,我们烦,用户更烦。

    问题总得解决,在长达几年的过程中,尝试了几种方案,分享出来供大家参考。

    最初采用的方案是在线升级的方式,即把需要频繁改动的代码封装到一个类库,然后每次软件打开自动更新这个类库。然而最大的问题是360等安全软件会认为这个dll不安全,有时甚至直接报毒,用户不知所措,严重影响使用。这种更新方式适合更新不频繁的软件。

    第二个方案是把规则进行了一定程度的抽象,让他们最终都通过字符串来定义,然后在服务器上保存这些字符串,客户端程序每次请求这些字符串,然后再执行。这种可以解决一些简单的问题,但涉及到一些较复杂的流程,就无法胜任了。

    第三个方案就是引入了脚本引擎,在js与python之间,感觉python的语法更友好些,就选择了python。而与C#的结合,IronPython似乎更完美些。这种可以把易变的规则都通过python脚本重写,放到服务器上。软件运行前检查脚本,如果不存在就更新,存在就执行。目前认为这种方式是最成熟的。

    软件防盗版的考量

    如果把软件功能全部都分发到客户端,破解者只需要把软件破解,然后再通过互联网分发,你就一点办法都没有了。

    基于python脚本结合,使得防破解另开了一个途径。软件的核心流程是通过python脚本定义的,可以把这部分脚本分成两种,一是针对试用版的免费脚本,二是针对注册版的付费脚本。这样即便破解者破掉了软件,也无法得到付费脚本,破解了也没用。

    劣势

    1 开发成本上升。原本核心代码只需要1条语句,现在需要先从服务器请求,再解析,再组装执行。而且服务器端也要进行相应的代码开发。

    2 运营成本上升。原本只需分发下去就好,现在则需要有一台服务器一直运行着。

    对商业软件来说,这种方式是一种较好的选择。

    相关文章

      网友评论

        本文标题:实践中认识C#与Python脚本结合的优势

        本文链接:https://www.haomeiwen.com/subject/wwuuaqtx.html