2

我正在为业务线分布式系统规划架构,其中必须在非常相似的用例场景中支持许多不同类型的不同设备。

其中,我需要支持

  • 基于 Windows Mobile 6.x 的 PDA
  • 个人电脑工作站

这些应用程序将提供非常简单的业务逻辑,因此我不想为此使用过分夸大的架构。然而,我需要支持:

  • 远程更新
  • PDA 的大多数断开连接的客户端场景(以及可选的 PC)

在研究合适的参考架构时,我偶然发现了Mobile Application Blocks Community ReleaseMobile Contribute对该版本的扩展。让我感兴趣的是:

  • 断开连接的代理和连接监视器以支持大多数断开连接的客户端方案
  • 支持更新的移动更新程序应用程序块

我也知道桌面平台的SCSF对应物。

现在,这是我的问题

  1. 根据您的经验,VS2008/WM6.x/.NET CF 3.5 的 MCSF 扩展是否足够成熟和稳定以供生产使用?我不想成为知道它并不真正适合商业用途的受害者,而我正处于项目的中间。
  2. 由于应用程序将非常简单,我不想使用 MVP 模式和其他与 CAB 相关的框架添加使其过于复杂。我只需要支持上面描述的场景。是否可以使用 MCSF 社区发布组件而不必以 MCSF 方式构建整个应用程序(使用命令、依赖注入、MVP 等)?我想我会希望为简单的应用程序保持简单。
  3. 桌面 PC 应用程序也是如此。我还认为,在这里使用完整的 CAB/SCSF 将是一个主要的过度杀伤力,因为这确实是一组非常简单的要实现的功能,但我想通过使用更新程序和可能的断开连接来减少开发时间客户端块。只是没有复杂的 UI 部分(我将为 UI 创建普通的 WinForms)。这有没有可能?

我还在研究在 PC 和 PDA 之间共享一些与断开连接的客户端/远程更新相关的代码的可能性,但我认为 MCSF/SCSF 不可能。

我将不胜感激在我之前走这条路的人的建议:)

4

1 回答 1

1
  1. MCSF 是绝对可怕的。似乎微软的某个人只是告诉一个经验不足的开发人员采用 SCSF 并在 Compact Framework 上“使其工作”。这被翻译为“如果它编译,那就没问题”,因为这似乎就是发生的一切。

    它运行吗?当然,但神圣的缓慢蝙蝠侠!它在任何现实世界的场景中都完全无法使用。糟糕的是,我从头开始编写了一个替代品,它保持(大部分)界面兼容性并且只包含最少的功能集。

  2. 我发现如果一个应用程序包含 2 个或更多视图,那么值得使用 MVP 模式。在某些时候,您需要添加另一个视图,并且您已经为它进行了架构设计。此外,将您的对象放入 DI/IoC 框架通常会启用事件聚合等功能,我发现即使在无头应用程序中也非常有用,因此即使没有任何 MVP goo,我最终也会使用它。

  3. 桌面在我的书中没有什么不同。我创建的 IoC 库同样支持 CF 和 FFx(以及 MonoTouch 和 Phone 7),因为我做了很多跨平台的代码共享。我很少创建一个我不使用它的桌面项目。

现在我并不是说你必须使用我的 IoC 项目。我发现它对我遇到的所有问题都很有用,而且我很清楚,当我遇到缺失的功能区域时,我可以快速添加它(尽管几个月来我没有发现太多缺失)。如果你觉得舒服或喜欢另一个 DI/IoC 框架,那就太好了,使用它。我要说的是 a) 远离任何与 MCSF 相关的事情,b) 使用 DI/IoC 框架,即使您认为该应用程序对一个人来说太简单了,因为没有真正的应用程序这样的东西这太简单了,无法从中受益。

于 2011-03-21T14:09:55.800 回答