2011-07-16 206 views
0

我想制作一个应用程序来分隔界面,业务流程和数据库。NET服务解决方案

这个想法是我想在不同的界面中重用业务流程和数据库部分。

快速例如...

在第一个项目,我使用Silverlight作为我的界面 在第二个项目,我想使用WPF 在第三个项目,我想用ASP NET (所有是.NET技术和相同的应用程序)

任何人都可以告诉我什么应该用于业务流程部分,所以我可以在所有项目中重用业务流程部分?

回答

1

编写使用web服务

WCF or .asmx 

你可以从所有类型的用户界面,你的web服务调用你的中间层正在寻找

+0

WCF服务是由silverlight,asp.net,wpf和旧窗体形式消耗吗? – johan

+0

好吧。 Kobe先生,在我想到使用WCF服务应用程序来实现Web服务的方式之后......我想知道一件事情。我如何保护服务,所以只有会员已经登录到我的应用程序可以调用服务,并且只有我的应用程序调用服务?\ – johan

0

您可以创建一个名为“BusinessLogic.dll”,其含有的所有业务的dll逻辑代码和参考这个DLL在所有项目

+0

感谢您的建议Mr. Samir,但我想我会使用web在这种情况下服务。 – johan

+0

不客气! –

0

对于业务层,我会建议WCF(因为所有的用户界面是.NET,这给你最大的灵活性)。你可以这样做一个的方法有两种:

  1. 一个WCF类库(本质上是一个WCF DLL)
  2. 一个WCF类库或应用程序在一个老式的DLL的顶部坐镇。这将使您能够直接在应用程序中使用业务逻辑,但我认为#1是最佳路线。

您也可以为数据访问层做类似的事情,或者您可以简单地将数据访问层实现为一个由业务层直接引用的(没有插入WCF/Web服务)的DLL。但是,使用WCF访问数据层可为您提供一些灵活性,无需在物理上共同定位业务层和数据层。

在设计和开发过程中,您还可能发现某些类可以被多个图层使用。我通常会将它们放在一个单独的程序集中,并根据需要在各个层次中引用它,以防止反复写入相同的代码。

+0

谢谢你的建议。我将尝试WCF作为我的解决方案 – johan