选择正确的.NET体系结构。WCF?WPF/Forms、ASP.NET(MVC)?
我的处境是,我必须从底层设计并实现一个相当大的系统。我有一些(实际上是很多)关于体系结构的问题,我想听听你们的意见和想法 我不希望我在这里写得太多,但我想让大家了解一下这个系统是什么 有关应用程序的快速信息,如果您愿意,请阅读:我无法分享有关该项目的详细信息,但基本上这是一个我们为客户提供服务以管理其用户的系统。我们有一条用户呼叫的热线,我们的热线使用一个(windows)应用程序(intranet)来管理用户的数据等。客户还有一个web应用程序,他们可以在其中查看报告、有关其业务和用户的信息以及修改其数据的能力。修改数据不仅仅是地址等用户数据,还包括有关用户拥有的产品/服务的信息,这可能很复杂 这些应用程序将构建在Microsoft.NET Framework 4上,并带有MS SQL Server 2008数据库。将有一些应用程序必须访问此数据库,例如:选择正确的.NET体系结构。WCF?WPF/Forms、ASP.NET(MVC)?,.net,wpf,wcf,architecture,.net,Wpf,Wcf,Architecture,我的处境是,我必须从底层设计并实现一个相当大的系统。我有一些(实际上是很多)关于体系结构的问题,我想听听你们的意见和想法 我不希望我在这里写得太多,但我想让大家了解一下这个系统是什么 有关应用程序的快速信息,如果您愿意,请阅读:我无法分享有关该项目的详细信息,但基本上这是一个我们为客户提供服务以管理其用户的系统。我们有一条用户呼叫的热线,我们的热线使用一个(windows)应用程序(intranet)来管理用户的数据等。客户还有一个web应用程序,他们可以在其中查看报告、有关其业务和用户的信息以
- 内部网应用程序(由我们和我们的热线使用)
- 客户web应用程序类型1
- 客户web应用程序类型2
- 客户web应用程序类型(n个不同的应用程序)
编辑1:似乎很多人都同意我们应该使用WCF。当在数据层引入ORM映射器和使用WCF的服务层时,性能一定会受到影响吗?你对此有何评论?
另一个不断出现的问题是我们如何处理身份验证和角色。intranet应用程序具有“主”访问权限(无限制)。但是,当客户从web应用程序检索有关其用户的信息时,返回的内容取决于他们的“服务级别”以及与客户相关的一些其他参数。处理这个问题的最佳方法是什么?有什么模式/最佳实践吗?这种设计看起来非常可行 WCF是服务层的一个很好的候选者,很高兴看到一些ORM时代正在发展,您有理由拥有一个基于表单和基于web的UI WPF的行为(本质上)类似于Windows窗体。然而,如果你正在写新的东西,微软推荐它胜过Win表单 ASP.NETMVC是基于web的东西的一个很好的候选者-页面是无状态的,您可以对页面进行更多的控制
查看个人“WPF VS WinForms”类型的讨论,了解更多详细信息。如果您的团队还没有WPF方面的经验,我建议您在桌面客户机上使用WinForms,假设您有日程压力(什么项目没有?),WPF非常强大,但它也有陡峭的学习曲线。我一直在将它用于相对较小、可见性较低的项目,它给了我自由,让我真正了解该技术应该如何使用,而不是试图将一些东西拼凑在一起,就好像它只是带有更漂亮控件的WinForms
我对WCF没有太多的经验,但我的理解是,那里也有很多学习曲线。与WPF一样,这取决于您的团队知道什么,以及您可以投入多少时间学习新技术。您是否考虑过Silverlight+RIA服务?--它是具有丰富用户界面的n层系统的自然选择。您可以将其用于内部网和面向客户端的应用程序。正如上文提到的Sohnee,我认为您的逻辑体系结构方法非常可靠,我认为WCF是“最佳选择”。我相信你会分享你对演示技术和ORM的看法。我将在服务层上提供几个项目,我在服务层上花了很多时间开发与您非常相似的应用程序:
- 如果还没有,请开始查看AppFabric。这是微软托管WCF服务的方向,它为您提供了许多好处,例如高速检测和服务管理,而这些都是您现在无法从WCF中获得的李>
- 根据您的网络基础设施和业务合作伙伴的网络基础设施,考虑您可以使用哪种类型的协议(以及WCF绑定)。如果您可以使用TCP作为高速传输,只要它能与您的网络配合使用,您的状态就会很好
- 考虑将MSMQ集成到您的逻辑体系结构中,以提供排队和有保证的交付。Juval Lowy在他的WCF书籍中有一些关于MSMQ集成的优秀资料
- 现在开始考虑您的服务接口和服务版本控制策略。早期作出的决定