zoukankan      html  css  js  c++  java
  • .net项目的二次开发解决方案

    公司原来项目的二次开发方式主要使用SQL,基本上也能满足客户的要求,优点是使用简单,只要熟悉SQL语句就可以操作,缺点是受限制太多,需要对数据库底层相当的了解,使用时容易出错,无法直接调用业务层代码等,研究了一下.net的动态编译,感觉用它来做二次开发效果应该不错的。
    首先我们先做个demo来解释一下动态编译,下面这段代码的意思就是先组织一个源码字符串,然后编译执行。

    动态编译简单代码

    了解了上面这段代码,我们基本对动态编译的概念清楚了,但是如果在项目中这样使用的话,我们要自己去控制源代码的全部文档内容,如果大规模应用的话会非常的麻烦,需要重复编写命名空间构造,类构造,函数构造等,如果我们还想看到一个格式良好的源码,我们还必须自己控制格式。现在我们来介绍一种源码构造方式来解决这些问题,请看如下代码:

    动态编译简单代码改进

    执行结果如下:


    大家了解了动态编译之后,我们这里介绍一个稍微复杂一点的应用:
    需求:我们先预定义一个执行流程,而具体执行代码可以在我们项目部署之后再编写。比如说工资的计算在不同应用中算法会有很大的不同。
    我们首先定义一个数据库中的数据结构:

    然后将这个表拖入到dbml(生成的dbml文件请下载源码)文件中,现在我们就开始编写相应的代码吧:
    首先我们先来处理函数的参数,如果我们只是将参数列表的字符串存入数据库中的话,我们还要根据格式序列化和反序列化这个参数,所以我们使用

    xml存入sqlserver2005中,格式如下

    参数格式

    为了方便起见我们在这里定义一个FunctionScript的分布类来处理参数问题

     

    参数处理

    然后我们需要一个代码构造类,用于根据情况构造代码:

    代码构造类

    下面我们再编写一个用于编译的类:

    编译类

    我们再构造一个用于执行的类:

    执行类

    主函数代码如下:

    主程序

    运行结果如下

    这里边工作的四个对象的时序图如下:

    源码下载

    在项目中应用可以结合http://www.cnblogs.com/nuaalfm/archive/2008/09/08/1286640.html中的插件编程

  • 相关阅读:
    如何选择创业项目:四项原则与四个步骤
    做管理人要注意的十一点细节
    成功激励格言精选
    将自己的姿态放低:你应具备赚钱以外的四种能力
    让我的爱带给你最大的幸福和感动
    秋收情不收.七夕感怀
    成功人士的十五条座右铭
    足迹
    人生成功的生活经典治理名言
    真正的贵人就是你自己
  • 原文地址:https://www.cnblogs.com/nuaalfm/p/1333381.html
Copyright © 2011-2022 走看看