WCF与N层体系结构

WCF与N层体系结构,wcf,architecture,Wcf,Architecture,我正在开发一个使用n-tire应用程序体系结构设计的应用程序。该应用程序是在.NET平台上开发的,使用C#、VB.NET、Framework 3.5、Dataset、WCF、asp.NET更新面板、JavaScript、Josn和第三方工具。 我目前提议的布局就是这样 表示层->业务逻辑->WCF->DAL->数据访问 重点是: 上面的布局是构建SOA系统的正确方法吗 一如既往,我们非常感谢您的建议您的服务应该是业务操作,而不是数据操作。更好的设计版本是: 表示层->WCF->业务逻辑->数据访

我正在开发一个使用n-tire应用程序体系结构设计的应用程序。该应用程序是在.NET平台上开发的,使用C#、VB.NET、Framework 3.5、Dataset、WCF、asp.NET更新面板、JavaScript、Josn和第三方工具。 我目前提议的布局就是这样

表示层->业务逻辑->WCF->DAL->数据访问

重点是: 上面的布局是构建SOA系统的正确方法吗


一如既往,我们非常感谢您的建议

您的服务应该是业务操作,而不是数据操作。更好的设计版本是: 表示层->WCF->业务逻辑->数据访问


如今,N层/分层是一个相当过时的概念。它总是出故障。Instaed,如果是交互服务,请将您的软件视为一个数字。

看起来可能是正确的,尽管我也将WCF放在了您的Pres和Biz层之间。另外,不要害怕为您的SOA架构提供一条非线性路径(也就是说,拥有来自N层路径一侧的“EmailService”和“WeatherDataService”等辅助服务。显然,WeatherDataService将来自DAL一侧,但EmailService可能来自业务层一侧

以下是一些非常棒的链接:


这取决于您的定义,请参阅

一般来说,为了从SOA中获得最大的好处,您的服务应该设计为可由多个使用者重用。这意味着将您的业务逻辑“置于”WCF层之下。然后您可以使用相同的服务和业务逻辑,例如,Silverlight客户端、WPF客户端等

将您的场景更改为:


多个表示层->WCF->业务逻辑->DAL->数据访问

我可以让oracle应用程序或java应用程序也使用相同的服务和业务逻辑吗?是的,Kathy。该体系结构允许您使用几乎任何客户端的服务。您只需确保您的服务是使用一种格式创建的其他系统可以理解这一点。我唯一担心的是.NET数据集的序列化方式。实际上,我正在使用数据集和数据表从数据库中的存储过程中获取数据。这可能会导致任何问题吗?您只需确保数据集/数据表按您希望的方式序列化。我需要ink使用一个简单的数据集和一个DataTable应该没有问题,但是您必须在您的环境中进行检查。对于数据集有多个具有关系的DataTable的情况,我提出了警告。