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
具體應用
領域實體

界面代碼:
<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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
