2

长期潜伏者,第一次在这里提问:)

我一直在研究我们公司的下一个软件系统架构。在某种程度上,我们一直在使用 CSLA.net 作为我们的业务对象框架,并且正在考虑围绕它构建我们的新架构。CSLA.net 支持标题中提到的平台,我们正在寻找可以很好地使用它的 mvvm 框架。

目前,我们只支持 windows 环境,但也希望至少支持 Android 和 iOS(通常也在考虑单声道)。我们希望在平台之间共享尽可能多的代码,而 MvvmCross 似乎是 mvvm (+) 框架的一个非常好的部分,尤其是在这种情况下。我看了几个 n+1 个视频,到目前为止我所看到的都非常令人印象深刻。我也喜欢 Stuart 介绍框架和围绕它的概念的风格。

有没有人尝试构建一个使用这两个框架(CSLA.net 和 MvvmCross)的跨平台应用程序?如果有,您的经历是怎样的?另外,如果 Stuart 可以评论如何合并两个框架的视图模型的问题。我记得 Rocky (Rockford Lhotka) 建议,作为使用 mvvm 框架时的一般提示,继承 CSLA.net viewmodelbase(不是 viewmodel)并将 mvvm 框架的要求也实现到该类中。您可以从https://github.com/MarimerLLC/csla/blob/master/Source/Csla.Xaml/ViewModelBase.cs找到 viewmodelbase 的来源。

任何输入将不胜感激。

问候,

哈里

附言。我认为,这将是一个很棒的 n+ 视频。不会吧;)

4

3 回答 3

1

是的,您可以使用多种 MVVM 框架;我已经成功使用了 CaliburnMicro 和我们自己的自定义 MVVM。如果您还没有查看 Rocky 的电子书系列,那么您绝对应该这样做。最大的问题之一是 Silverlight 中反射的限制,因此在 WP8 和 WinRT 中也是如此,因此建议阅读一些内容。

关于可移植类库,您不能为 CSLA 业务对象提供那些(它们需要比 PCL 中可用的更多的东西),因此您必须进行项目链接。通常,在带有预编译器指令的 .NET 库中编写完整的类,例如

#if !SILVERLIGHT

围绕无法为 Silverlight/WP8 编译的代码。我确实将 PCL 用于一些基本的东西,比如枚举和常量,但不用于业务类。

于 2013-07-03T16:39:58.357 回答
1

我个人从未使用过 CSLA,但我已经通过电子邮件和亲自与它的原作者 Rocky 进行了交谈。

CSLA 将自己呈现为一个业务模型对象层,并且它可以非常成功地与独立的 Mvvm 框架进行互操作 - 请参阅Rocky 在 CSLA+Mvvm 上的帖子

MvvmCross 提供更多应用程序和 UI 级别的支持 - 并让应用程序作者可以自由选择他们如何编写业务服务和模型。

正因为如此,的,我认为如果您愿意,应该可以甚至直接将这两个框架一起使用。开始时,编写一些原型可能很有用——也许看看其他集成的方式——例如CSLA+Caliburn 集成

附言。我认为,这将是一个很棒的 n+ 视频。

我更愿意从了解和使用 CSLA 的人那里看到这类文章。我会鼓励 MvvmCross 社区的所有成员贡献他们自己的博客文章、文章、视频和 github 示例。


对此建议的一个警告:我不知道 CSLA 是否支持可移植类库 - 如果不支持,那么您可能需要在应用程序中使用文件链接而不是 PCL

于 2013-06-29T07:37:50.910 回答
0

Xamarin 刚刚发布了一些更新,这意味着可以很快实现具有异步功能的最新框架 4.5...

于 2013-08-01T11:18:06.973 回答