MVVMCROSS和CSLA .NET是两个在应用程序开发方面具有不同目的的框架,但两者都以自己的方式支持数据绑定。这是对它们如何处理数据绑定的详细比较:
mvvmcross数据绑定
MVVMCross主要是用于跨平台开发的MVVM(模型视图 - 视图模型)框架,尤其是用于使用Xamarin的移动应用程序。它提供了可靠的数据绑定机制,该机制将视图与ViewModel连接起来。该连接对于维持UI和基础数据模型之间的同步至关重要。
- 流利的语法:MVVMCross使用流利的语法来实现数据绑定。开发人员可以直接在代码中指定绑定类型,例如'Oneway'或`twoway'。例如,您可以使用`bind()。对于(v => v.text)。
- 目标界定:为了支持更复杂的绑定场景,尤其是“ twoway”绑定,MVVMCross介绍了``targetbinding''的概念。这使开发人员可以通过在视图上订阅事件并通知更改的视图[4]来定义自定义绑定。
- 绑定模式:MVVMCROSS支持各种绑定模式,包括``Oneway'','twoway'和``Oneme''。这些模式决定了如何在视图和ViewModel之间同步数据。例如,`twoway''绑定通常用于编辑表格,而`oneTime''对静态数据很有用[7]。
CSLA .NET数据绑定
CSLA .NET是一个专注于业务逻辑和数据访问的框架。它为数据绑定提供了强有力的支持,这在需要基于业务逻辑更改的UI应用程序中特别有用。
- 业务对象:CSLA .NET使用具有内置支持数据绑定的属性的业务对象。这些属性通常使用`propertyInfo`对象定义,启用验证和更改跟踪等功能[2]。
- InotifyPropertychanged:CSLA业务对象固有地支持`inotifyPropertychanged`,这对于数据绑定至关重要。该接口允许在属性更改时通知UI,并确保UI与业务逻辑层[2] [6]保持同步。
- 数据访问和验证:CSLA .NET将数据访问和验证规则直接集成到业务对象中。这意味着数据绑定不仅会更新UI,还会触发业务逻辑验证和数据持久操作[2] [5]。
##密钥差异
- 目的:MVVMCross主要集中在跨平台应用程序的UI级数据绑定上,而CSLA .NET则以内置数据绑定支持为中心围绕业务逻辑和数据访问。
- 实现:MVVMCross对复杂方案使用流利的语法和自定义`targetBinding',而CSLA .NET依赖于`iNotifyPropertychanged'和属性注册来进行数据绑定。
- 绑定上下文:MVVMCross通常将视图绑定到ViewModels,而CSLA .NET将UI组件直接绑定到封装数据和业务逻辑的业务对象。
总而言之,尽管两个框架都支持数据绑定,但它们在应用程序体系结构中起着不同的作用。 MVVMCross专注于UI级数据同步,而CSLA .NET将数据与业务逻辑和数据访问集成在一起。
引用:[1] https://yanxiaodi.gitbook.io/xamarin-mvvmcrosshandbook/ususion-mvvmcross-to-create-your-first-first-first-first-first-first-camarin-app/creating-the-ios-project/creat-the-ios-project/estand-------ios-project/estanding-the-data-data-data-binding-syntax
[2] https://irinpdf.com/blog/net-help/csla-net/
[3] https://stackoverflow.com/questions/17373587/how-well-well-wold-would-mvvmcross-and-csla-net-net-work-work-together-together-in-a-a-a-multi-platform-strategy
[4] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[5] https://blog.lhotka.net/2019/09/12/aspcore-csla5
[6] https://cslanet.com/old-forum/5371.html
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[8] https://stackoverflow.com/questions/1683388/data-binding-in-net-net-with-csla-bos