我已经在SO和网络上阅读了很多关于各种WPF框架(Caliburn,Prism)和模块框架(MEF,Unity)的优点和功能并将它们组合在一起的帖子。
理论上,我喜欢他们背后的想法。而且我知道,一旦我掌握了这些系统,它实际上可能会提高开发速度 - 但是具有这种复杂程度的学习工具和框架的前期成本似乎很高。
项目背景:
我正在使用一个10年前的Access数据库系列(包含大量不良的宏代码)并重新设计数据库。最重要的是,我想提出显示和呈现该信息的最佳方式。使用Access(2007)是一个选项,但不是我想要使用的选项。
我所工作的公司是一个中小型企业,该应用程序在工作日将有大约40-80个并发用户。这就是我想避免访问的原因。
我目前正在使用Entity Framework 4(SQL Server 2008 R2)和.NET 4(C#/ WPF)的Model-First功能。
困境:
新数据库的高级设计是基于权限的(角色只是一组权限),我希望UI根据这些权限显示信息/编辑按钮/等。如果我采用标准方法,那么代码将会被if / else语句所占据。但是,如果我使用大型框架 - 我觉得它基本上是一个数据库访问层是过度的 - 特别是考虑到高前期学习曲线。更不用说我不是百分百肯定这些框架会帮助我以他相信的方式。
问题:
我正在寻找一些关于这些框架是否值得在小规模“数据库层”类型应用程序中学习曲线的讨论。
此外,如果它们被认为是过度杀伤,那么是否有任何框架可以帮助这类系统?我已经考虑过将UI转换为网络,这看起来很完美(而且更多是我的专业知识)。
感谢您的时间。
答案 0 :(得分:1)
从它的声音来看,这似乎是WCF RIA Services的完美候选者。然后,您可以使用您选择的演示文稿(当前为Silverlight或ASP.NET)作为前端。根据具体情况,您可以混合和匹配演示文稿。
答案 1 :(得分:0)
鉴于Caliburn的传统方法和您的安全需求,我认为它们非常适合。使用Caliburn,您可以根据指定的约定或烘焙的内容自动连接控件。显示您可以拥有Button的约定,其中其名称包含与允许使用该操作的角色相关的后缀。使用公开Users角色的基础ViewModel,您可以根据用户角色启用/禁用按钮。