• Bmrxntfj.UIMapper界面对象映射


    Bmrxntfj.UIMapper 0.1
    (UIMapper)界面/对象映射
    主要是为了隔离界面,把重心放在领域模型上。在领域模型中,一切皆为对象。
    比如O/RM,也是为了隔离关系数据到领域对象的转换。
    一些不重复,但感觉重复的代码,比如:
    1、UI->Model(界面数据转化为领域数据)
    User.FirstName=txtFirstName.Text;
    User.LastName=txtLastName.Text;
    User.NickName=txtNickName.Text;

    2、Model->UI(领域数据转化到界面)
    txtFirstName.Text=User.FirstName;
    txtLastName.Text=User.LastName;
    txtNickName.Text=User.NickName;

    但是可能还会有很多类似这样的代码。
    Bmrxntfj.UIMapper 的目的就是为了解决这样的问题。目前Bmrxntfj.UIMapper只支持简单的功能,不能实践应用。Bmrxntfj.UIMapper的目标是一个辅助的工具,只关心界面与模型之间的数据交接,不与数据库产生联系。
    在开发之前,也有类似的成熟产品Wilson UIMapper(http://uimapper.net),可惜只能研究下free version。
    另外园子里也有人写过类似的东西,只不过也不成熟。
    资料:
    http://www.cnblogs.com/microsheen/archive/2005/06/06/168520.html
    http://microsheen.cnblogs.com/archive/2005/08/28/224607.html

    具体应用
    领域实体

    Code



    界面代码:
    <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
    <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
    <asp:TextBox ID="txtNickName" runat="server"></asp:TextBox>
    <br />
    <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
    <asp:TextBox ID="txtMemeberCount" runat="server"></asp:TextBox>

    配置文件:
    <?xml version="1.0"?>
    <page>
      <object type="User">
        <property type="System.String" name="FirstName" controlid="txtFirstName"></property>
        <property type="System.String" name="LastName" controlid="txtLastName"></property>
        <property type="System.String" name="NickName" controlid="txtNickName"></property>
        <reference type="Dept" name="Dept">
          <property type="System.String" name="Name" controlid="txtName"></property>
          <property type="System.String" name="MemeberCount" controlid="txtMemeberCount"></property>
        </reference>
      </object>
    </page>

    代码:
    Model->UI
    Mapper mapper = new Mapper(Server.MapPath("map.xml"));
    mapper.MappingUI(new User());

    UI->Model
    Mapper mapper = new Mapper(Server.MapPath("map.xml"));
    object user=mapper.MappingObject(typeof(User));
    源码文件:
    /Files/bmrxntfj/UIMapper.rar

  • 相关阅读:
    Delphi TListView刷新闪烁问题
    GO语言下载、安装、配置
    理解领域模型Domain Model
    Competing Consumers Pattern (竞争消费者模式)
    Compensating Transaction Pattern(事务修正模式)
    一致性hash算法简介
    CQRS, Task Based UIs, Event Sourcing agh!
    Circuit Breaker Pattern(断路器模式)
    Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications 云设计模式:云应用的规范架构指导
    Cache-Aside Pattern(缓存模式)
  • 原文地址:https://www.cnblogs.com/bmrxntfj/p/1161176.html
Copyright © 2020-2023  润新知