Lightswitch应用程序框架似乎有一些嗡嗡声。 阅读一些帖子/论坛/文章并听取视频提供了一些答案,但提出了一些其他答案。
扩展吗 是否有几个钩子来覆盖或扩展功能?
模块化?可以集成MEF / Prism吗?是否有可以在运行时加载的动态模块的概念?
可本地化?有关不同语言本地化的任何特殊功能吗?
Versionnable?任何版本的概念如此同步版本可以共存?
抽象?可以抽象和替换与数据源的连接吗?
可测试性?不同的组件是否可以自动测试?容易还是难以实现?
横切/ NFR?任何挂钩都可以插入NFR代码? (记录,缓存,审计,安全)
这是构建一些PAAS应用程序的可靠框架吗?
答案 0 :(得分:3)
让我根据我刚刚做的eval给你2美分:
扩展
您当然可以添加自定义控件,显然会有已发布的可扩展性API。
模块化
没有。 Lightswitch不是代码生成器,它抽象出UI的实现。
本地化
没有看到任何东西,但我想这会分阶段发生。
Versionnable?
您可以TFS Lightswitch项目,但如果您的意思是从执行角度进行版本控制......就像将新版本的应用程序部署到服务器一样简单。客户端将根据我的理解检查运行时的更新并根据需要进行安装。
抽象
是的,如果你在WCF RIA服务层抽象它很容易做到。
可测
业务规则可以在RIA服务层实施,因此应该快速测试,但如果您严重依赖通过UI驱动的规则,则必须使用其他基于UI的测试工具。
横切/ NFR
如果您专注于将应用程序的RIA服务层作为业务规则的中心位置,并让UI专注于用户体验,那么您将不会遇到太多重叠。我认为Lightswitch是许多解决方案的好客户,但它的核心功能是将其用作RIA服务的客户端,RIA服务本身并不依赖于Lightswitch。
我希望我至少提供了一些有用的见解。
答案 1 :(得分:2)
可扩展性?当内置LS控件不允许您执行所需操作时,您可以使用几乎任何Silverlight控件(包括第三方控件),或创建自己的自定义Silverlight控件。除了使用LS控件之外,还有一些工作要做,因为LS控件内置了一些额外的“智能”,所以你可以将它们放在屏幕上,绑定和放大。使用它们。框架中还内置了可扩展点,允许您创建自己的“扩展”(shell,控件,主题等)。
模块化? LS已经使用了MEF,因此很有可能在未来可以进一步利用它。 LS 生成代码,但对于自身而言,不是为了外部消费。然而,微软的Eric Erhardt有一篇很好的文章
显示了如何重用LS构造的数据模型(在Eric的情况下,他使用它来创建一个RIA服务,聚合数据以便在图表控件中显示)。
可本地化?我不相信目前有任何内置的本地化功能。
可版本化?对于基于网络的应用,如果数据架构没有改变,我不明白为什么你不能发布单独的版本,但点击桌面(OOB)应用程序-once apps&因此受该技术的支配。
抽象?如果要为数据源创建RIA服务,可以抽象出实现细节。
可测试性?不幸的是,V1并没有考虑“可测试性”。如果将业务逻辑提取到Silverlight类库中(在客户端上使用,或者在服务器上使用完整的.NET类库),您可以对该逻辑进行单元测试,但是您在LS应用程序本身中编写的代码是在这个时间点上并不是真正的单元可测试的。