Miscellaneous

本文介绍了DotNet下的多个持久化框架,包括开源的Gentle.net和Nhibernate,以及商业框架XPO和ECO。特别深入探讨了ECO框架的多客户端操作冲突解决方案和Undo/Redo机制。

What's TeamB
http://info.borland.com/newsgroups/teamb/

RemObjects  .net上的新object pascal,支持mono,可以集成在vs2003 vs2005
http://www.remobjects.com/

DotNet下面的一些持久化框架: (Object persistence frameworks)
Gentle.net        http://sf.net/projects/gopf    //开源
Nhibernate       http://www.nhibernate.org          //开源,如同java的hibernate
XPO                   http://www.devexpress.com       //商业,有源码可买
ECO                  http://www.borland.com               //商业,无源码
个人制作的持久化框架:
Swallow.net     http://www.cnblogs.com/Laser_Lu
Persistence     http://cnblogs.com/lovinger2000

 关于ECO多客户端操作冲突的action选项:
ChangeActionKind.Ignore - Nothing happens when change is applied, and the change is removed from the list of changes.
ChangeActionKind.Discard - Discard the cached copy in the EcoSpace, so it will be re-fetched on demand from the persistence mechanism.
ChangeActionKind.Keep - Keep the cached copy in the EcoSpace, so a subsequent update will overwrite the changes written to the persistence mechanism
ChangeActionKind.Verify - Check the value of the element has really changed. If it is the same, the element is removed from the list of changes.
ChangeActionKind.Reread - Immediately fetch the new value from the persistence mechanism.
ChangeActionKind.Undecided - Change cannot be applied. Calling Apply results in nothing happening and change remains in the list of changes.
//更新客户端Ecospace数据与数据操作冲突检测的例子
EcoSpace.PersistenceService.RetrieveChange();
foreach(IChange c in EcoSpace.PersistenceService.GetChanges())
{
  if(c.isDirectConflict)
    {
       c.Action=ChangeActionKind.Discard;
   }   else {
                      c.Action=ChangeAction.Kind.Keep;
                }
}

ECO中使用的OCL语言说明书
http://www.viewpointsa.com/bold_resources/getting_started_with_bold/Part3-OCL.html

Bold有个版本可以用在Delphi2005中使用,在ECO的官方网站上有得下载.

Multi-Client ECO的Undo/Redo操作方式:
try
{
相关的ECO操作.......
Begintransaction();
UpdateDatabase();  //因为UpdateDatabase中已含有commit
}
catch
{
Undo操作
}

DotNet的DataGrid使用大全
http://blog.youkuaiyun.com/johncools/archive/2006/01/24/587498.aspx
http://www.cnblogs.com/iCeSnaker/archive/2004/07/31/29017.aspx

判断ECO类的属性的类型:
IProperty p = 某某对象.某某属性;
if (p.StructuralFeature.Type_.ObjectType == typeof(bool)) ...

自定义ocl变量的使用结构
rhroot<-(1)---(1)-ExpressionHandle-(1)----(1)->OclVariables-(1)----(0..n)->VariableHandle



Delphi2006 fix1
http://cc.borland.com/Item.aspx?id=23916

自定义的枚举属性与字段的Pmapper属性:
这个可以参考陈省写的基于ECO的数据库开发第二篇

Microsoft中文网站的Webcast技术广播
http://www.microsoft.com/china/msdn/events/webcasts/shared/Webcast/MSDNWebCast.aspx

if("A".Equals('A'))
    Console.WriteLine("impossible!  这个Equals函数只能对比string,不能有转换,wirteline不会执行");

I find it interesting that String.ToCharArray is built into .NET, but there is no easy way to convert a char[] to a string. It seems rather obvious to me that the char[].ToString should return a string of the characters, but
Microsoft neglected this and did the generic Array.ToString (which returns "System.Array", or in this case, "System.Char[]").
and the answer is
char[] ar;   String s = new String(ar);

http://kb.youkuaiyun.com/DotNET/Articles/200606/9cedf5b3-fc9a-4c1d-a029-947f209867eb.html

http://cleo.cnblogs.com/category/52107.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值