需要架构建议 [英] Architecture Advice Required

查看:55
本文介绍了需要架构建议的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个三层CRM应用程序(ASP.Net UI,VB.Net Business

Layer& VB.Net数据访问层),由多个类组成。

该应用程序将部署到许多客户端。我们的一些

客户没有现有的CRM系统,并且很高兴我们的应用程序

存储客户信息。其他客户已经有了一个CRM系统

,并希望我们的应用程序提供它b / b
提供的附加功能。这些客户希望从现有系统中查找核心客户信息(ID,名称,

电话,地址等),

让我们的系统存储其他信息,与这些

的客户有关。


因为我把业务和业务分开了。数据访问逻辑分离成

图层我应该能够轻松创建一个IClient接口并拥有

类clsClientA_BLL和clsClientB_BLL实现这个常见的

接口。然后,这些类中的每一个都应该能够从正确的数据存储中访问客户端

数据,并强制执行客户特定的业务

规则。


我最初的架构类似于这个


解决方案:MyCRM

Project1:MyCRM_WEB

Project2:MyCRM_BLL
Project3:MyCRM_DAL


MyCRM_WEB引用MyCRM_BLL

MyCRM_BLL引用MyCRM_DAL


我需要修改这个以便分割MyCRM_BLL以便我有

MyCRM_BLL.dll(所有常用类)

MyCRM_ClientA_BLL(仅限ClientA特定业务类)

MyCRM_ClientB_BLL(仅限ClientB特定的业务类)

MyCRM_ClientA_DAL(仅限ClientA特定的数据访问类)

MyCRM_ClientB_DAL(仅限ClientB特定的数据访问类)


我不知道如何组织这些组件,因为对于ClientA,他们

不能拥有ClientB特定的dll s(或反之亦然)。我如何安排我的解决方案,以便WEB项目引用了

MyCRM.dll和MyCRM_ClientA_BLL.dll或MyCRM_ClientB_BLL.dll,

取决于它被部署到谁?

解决方案

也许它可以通过一个布尔值来解析,并且在
$ b下注册到注册表$ b设置时间


< te *********** @ camden.gov.ukwrote留言

新闻:ff ********************************** @ v53g2000 hsa.googlegroups.com ...


我有一个三层CRM应用程序(ASP.Net UI,VB.Net Business

Layer& VB.Net数据访问层),包括类的数量。

该应用程序将部署到许多客户端。我们的一些

客户没有现有的CRM系统,并且很高兴我们的应用程序

存储客户信息。其他客户已经有了一个CRM系统

,并希望我们的应用程序提供它b / b
提供的附加功能。这些客户希望从现有系统中查找核心客户信息(ID,名称,

电话,地址等),

让我们的系统存储其他信息,与这些

的客户有关。


因为我把业务和业务分开了。数据访问逻辑分离成

图层我应该能够轻松创建一个IClient接口并拥有

类clsClientA_BLL和clsClientB_BLL实现这个常见的

接口。然后,这些类中的每一个都应该能够从正确的数据存储中访问客户端

数据,并强制执行客户特定的业务

规则。


我最初的架构类似于这个


解决方案:MyCRM

Project1:MyCRM_WEB

Project2:MyCRM_BLL
Project3:MyCRM_DAL


MyCRM_WEB引用MyCRM_BLL

MyCRM_BLL引用MyCRM_DAL


我需要修改这个以便分割MyCRM_BLL以便我有

MyCRM_BLL.dll(所有常用类)

MyCRM_ClientA_BLL(仅限ClientA特定业务类)

MyCRM_ClientB_BLL(仅限ClientB特定的业务类)

MyCRM_ClientA_DAL(仅限ClientA特定的数据访问类)

MyCRM_ClientB_DAL(仅限ClientB特定的数据访问类)


我不知道如何组织这些组件,因为对于ClientA,他们

不能拥有ClientB特定的dll(或者反之亦然)。我如何安排我的解决方案,以便WEB项目引用了

MyCRM.dll和MyCRM_ClientA_BLL.dll或MyCRM_ClientB_BLL.dll,

取决于它被部署到谁?


你看过CSLA了吗?
http://en.wikipedia.org/wiki/Compone...l_Architecture
http://www.lhotka.net/

-

Anil Gupte
www.keeninc.net
www.icinema.com
www.wizo.tv

< te *********** @ camden.gov.ukwrote in message

新闻:ff ********************************** @ v53g2000 hsa.googlegroups.com ...


>我有一个三层CRM应用程序(ASP.Net UI,VB.Net Business

Layer& VB .Net数据访问层)由c的数量组成lasses。

该应用程序将部署到许多客户端。我们的一些

客户没有现有的CRM系统,并且很高兴我们的应用程序

存储客户信息。其他客户已经有了一个CRM系统

,并希望我们的应用程序提供它b / b
提供的附加功能。这些客户希望从现有系统中查找核心客户信息(ID,名称,

电话,地址等),

让我们的系统存储其他信息,与这些

的客户有关。


因为我把业务和业务分开了。数据访问逻辑分离成

图层我应该能够轻松创建一个IClient接口并拥有

类clsClientA_BLL和clsClientB_BLL实现这个常见的

接口。然后,这些类中的每一个都应该能够从正确的数据存储中访问客户端

数据,并强制执行客户特定的业务

规则。


我最初的架构类似于这个


解决方案:MyCRM

Project1:MyCRM_WEB

Project2:MyCRM_BLL
Project3:MyCRM_DAL


MyCRM_WEB引用MyCRM_BLL

MyCRM_BLL引用MyCRM_DAL


我需要修改这个以便分割MyCRM_BLL以便我有

MyCRM_BLL.dll(所有常用类)

MyCRM_ClientA_BLL(仅限ClientA特定业务类)

MyCRM_ClientB_BLL(仅限ClientB特定的业务类)

MyCRM_ClientA_DAL(仅限ClientA特定的数据访问类)

MyCRM_ClientB_DAL(仅限ClientB特定的数据访问类)


我不知道如何组织这些组件,因为对于ClientA,他们

不能拥有ClientB特定的dll(或者反之亦然)。我如何安排我的解决方案,以便WEB项目引用了

MyCRM.dll和MyCRM_ClientA_BLL.dll或MyCRM_ClientB_BLL.dll,

取决于它被部署到谁?



10月10日,6:49 * am,Anil Gupte / iCinema.com < anil-l ... @ icinema.com>

写道:


你看过CSLA了吗? http://en.wikipedia.org/ wiki / Compone ... ww.lhotka.net/


-

Anil Guptewww.keeninc.netwww.icinema.comwww.wizo .tv< ter ry.holl ... @ camden.gov.ukwrote in message


新闻:ff ***************** ***************** @ v53g2000 hsa.googlegroups.com ...


我有一个三层CRM应用程序(ASP.Net UI,VB.Net Business

Layer& VB.Net数据访问层),由多个类组成。

应用程序将部署到客户数量。 *我们的一些

客户没有现有的CRM系统,并且很高兴我们的应用程序

存储客户信息。其他客户已经有了一个CRM系统

,并希望我们的应用程序提供它b / b
提供的附加功能。 *这些客户希望从现有系统中查找核心客户信息(ID,名称,

电话,地址等),并且

让我们的系统存储其他信息这与

客户有关。


因为我把业务分开了数据访问逻辑分离成

图层我应该能够轻松创建一个IClient接口并拥有

类clsClientA_BLL和clsClientB_BLL实现这个常见的

接口。 *这些类中的每一个都应该能够从正确的数据存储中访问客户端

数据,并强制执行客户特定的业务

规则。


我的初始架构类似于这个


解决方案:MyCRM

Project1:MyCRM_WEB

Project2:MyCRM_BLL

Project3:MyCRM_DAL


MyCRM_WEB引用MyCRM_BLL

MyCRM_BLL引用MyCRM_DAL


我需要修改这个以便MyCRM_BLL是分开的,所以我有

MyCRM_BLL.dll(所有常见类)

MyCRM_ClientA_BLL(仅限ClientA特定业务类)

MyCRM_ClientB_BLL(仅限) ClientB特定业务类)

MyCRM_ClientA_DAL(仅限ClientA特定数据访问类)

MyCRM_ClientB_DAL(仅限ClientB特定数据访问类)

< blockquote class =post_quotes>
我不知道如何组织这些组合对于ClientA来说,他们不需要具有ClientB特定的dll(或者反之亦然)。 *我如何

安排我的解决方案,以便WEB项目引用了

MyCRM.dll和MyCRM_ClientA_BLL.dll或MyCRM_ClientB_BLL.dll,

取决于它被部署到谁? - 隐藏引用文本 -



- 显示引用文本 -



我在上一个项目中使用了这个。问题仍然存在,即使是使用CSLA的b $ b。即如果在ClientA站点上我如何构建我的UI,它需要从ClientA_BLL.dll实例化一个对象
;在ClientB站点,它需要从ClientB_BLL.dll实例化一个对象。
。我的理解

是UI需要引用ClientA_BLL.dll和

ClientB_BLL.dll。如果是这种情况,那么当我部署到ClientA,

而不发送ClientB_BLL.dll时,UI会抱怨。

同样,当我向ClientB倾斜时,没有发货ClientA_BLL.dll

然后用户界面就会抱怨。


如果有人能给我一个如何的具体例子,我很感激

对此进行排序。


tia


I have a three tiered CRM application (ASP.Net UI, VB.Net Business
Layer & VB.Net Data Access Layer) that consists of number of classes.
The application will be deployed to a number of clients. Some of our
clients have no existing CRM system and are happy that our application
stores Client information. Other clients have already got a CRM system
and want our application for the additional functionality that it
offers. These clients would want core Client information (ID, Name,
Phone, Address etc) to be looked up from their existing system, and
have our system store additional information that relates to these
clients.

As I have seperated the business & data access logic into discrete
layers I should easily be able to create a IClient interface and have
classes clsClientA_BLL and clsClientB_BLL implement this common
interface. Each of these classes should then be able to access client
data from the correct data store, and enforce client specific business
rules.

My initial architecture is similar to this

Solution: MyCRM
Project1: MyCRM_WEB
Project2: MyCRM_BLL
Project3: MyCRM_DAL

MyCRM_WEB has a reference to MyCRM_BLL
MyCRM_BLL has a reference to MyCRM_DAL

I need to modify this so that MyCRM_BLL is split so that I have
MyCRM_BLL.dll (all common classes)
MyCRM_ClientA_BLL (only ClientA specific business classes)
MyCRM_ClientB_BLL (only ClientB specific business classes)
MyCRM_ClientA_DAL (only ClientA specific data-access classes)
MyCRM_ClientB_DAL (only ClientB specific data-access classes)

Im not sure how to organise these components as, for ClientA, they
cannot have the ClientB specific dlls (or vica versa). How do I
arrange my solution so that the WEB project has references to
MyCRM.dll and MyCRM_ClientA_BLL.dll or MyCRM_ClientB_BLL.dll,
depending on who it is being deployed to?

解决方案

maybe it could be resolved with a boolean value wrotten to the registry at
setup time


<te***********@camden.gov.ukwrote in message
news:ff**********************************@v53g2000 hsa.googlegroups.com...

I have a three tiered CRM application (ASP.Net UI, VB.Net Business
Layer & VB.Net Data Access Layer) that consists of number of classes.
The application will be deployed to a number of clients. Some of our
clients have no existing CRM system and are happy that our application
stores Client information. Other clients have already got a CRM system
and want our application for the additional functionality that it
offers. These clients would want core Client information (ID, Name,
Phone, Address etc) to be looked up from their existing system, and
have our system store additional information that relates to these
clients.

As I have seperated the business & data access logic into discrete
layers I should easily be able to create a IClient interface and have
classes clsClientA_BLL and clsClientB_BLL implement this common
interface. Each of these classes should then be able to access client
data from the correct data store, and enforce client specific business
rules.

My initial architecture is similar to this

Solution: MyCRM
Project1: MyCRM_WEB
Project2: MyCRM_BLL
Project3: MyCRM_DAL

MyCRM_WEB has a reference to MyCRM_BLL
MyCRM_BLL has a reference to MyCRM_DAL

I need to modify this so that MyCRM_BLL is split so that I have
MyCRM_BLL.dll (all common classes)
MyCRM_ClientA_BLL (only ClientA specific business classes)
MyCRM_ClientB_BLL (only ClientB specific business classes)
MyCRM_ClientA_DAL (only ClientA specific data-access classes)
MyCRM_ClientB_DAL (only ClientB specific data-access classes)

Im not sure how to organise these components as, for ClientA, they
cannot have the ClientB specific dlls (or vica versa). How do I
arrange my solution so that the WEB project has references to
MyCRM.dll and MyCRM_ClientA_BLL.dll or MyCRM_ClientB_BLL.dll,
depending on who it is being deployed to?


Have you looked into CSLA?
http://en.wikipedia.org/wiki/Compone...l_Architecture
http://www.lhotka.net/

--
Anil Gupte
www.keeninc.net
www.icinema.com
www.wizo.tv
<te***********@camden.gov.ukwrote in message
news:ff**********************************@v53g2000 hsa.googlegroups.com...

>I have a three tiered CRM application (ASP.Net UI, VB.Net Business
Layer & VB.Net Data Access Layer) that consists of number of classes.
The application will be deployed to a number of clients. Some of our
clients have no existing CRM system and are happy that our application
stores Client information. Other clients have already got a CRM system
and want our application for the additional functionality that it
offers. These clients would want core Client information (ID, Name,
Phone, Address etc) to be looked up from their existing system, and
have our system store additional information that relates to these
clients.

As I have seperated the business & data access logic into discrete
layers I should easily be able to create a IClient interface and have
classes clsClientA_BLL and clsClientB_BLL implement this common
interface. Each of these classes should then be able to access client
data from the correct data store, and enforce client specific business
rules.

My initial architecture is similar to this

Solution: MyCRM
Project1: MyCRM_WEB
Project2: MyCRM_BLL
Project3: MyCRM_DAL

MyCRM_WEB has a reference to MyCRM_BLL
MyCRM_BLL has a reference to MyCRM_DAL

I need to modify this so that MyCRM_BLL is split so that I have
MyCRM_BLL.dll (all common classes)
MyCRM_ClientA_BLL (only ClientA specific business classes)
MyCRM_ClientB_BLL (only ClientB specific business classes)
MyCRM_ClientA_DAL (only ClientA specific data-access classes)
MyCRM_ClientB_DAL (only ClientB specific data-access classes)

Im not sure how to organise these components as, for ClientA, they
cannot have the ClientB specific dlls (or vica versa). How do I
arrange my solution so that the WEB project has references to
MyCRM.dll and MyCRM_ClientA_BLL.dll or MyCRM_ClientB_BLL.dll,
depending on who it is being deployed to?



On Oct 10, 6:49*am, "Anil Gupte/iCinema.com" <anil-l...@icinema.com>
wrote:

Have you looked into CSLA?http://en.wikipedia.org/wiki/Compone...ww.lhotka.net/

--
Anil Guptewww.keeninc.netwww.icinema.comwww.wizo.tv<ter ry.holl...@camden.gov.ukwrote in message

news:ff**********************************@v53g2000 hsa.googlegroups.com...

I have a three tiered CRM application (ASP.Net UI, VB.Net Business
Layer & VB.Net Data Access Layer) that consists of number of classes.
The application will be deployed to a number of clients. *Some of our
clients have no existing CRM system and are happy that our application
stores Client information. Other clients have already got a CRM system
and want our application for the additional functionality that it
offers. *These clients would want core Client information (ID, Name,
Phone, Address etc) to be looked up from their existing system, and
have our system store additional information that relates to these
clients.

As I have seperated the business & data access logic into discrete
layers I should easily be able to create a IClient interface and have
classes clsClientA_BLL and clsClientB_BLL implement this common
interface. *Each of these classes should then be able to access client
data from the correct data store, and enforce client specific business
rules.

My initial architecture is similar to this

Solution: MyCRM
Project1: MyCRM_WEB
Project2: MyCRM_BLL
Project3: MyCRM_DAL

MyCRM_WEB has a reference to MyCRM_BLL
MyCRM_BLL has a reference to MyCRM_DAL

I need to modify this so that MyCRM_BLL is split so that I have
MyCRM_BLL.dll (all common classes)
MyCRM_ClientA_BLL (only ClientA specific business classes)
MyCRM_ClientB_BLL (only ClientB specific business classes)
MyCRM_ClientA_DAL (only ClientA specific data-access classes)
MyCRM_ClientB_DAL (only ClientB specific data-access classes)

Im not sure how to organise these components as, for ClientA, they
cannot have the ClientB specific dlls (or vica versa). *How do I
arrange my solution so that the WEB project has references to
MyCRM.dll and MyCRM_ClientA_BLL.dll or MyCRM_ClientB_BLL.dll,
depending on who it is being deployed to?- Hide quoted text -


- Show quoted text -

I have used this on my last project. The question still remains, even
using CSLA. ie How do I build my UI if at ClientA site, it needs to
instantiate an object from ClientA_BLL.dll; and at ClientB site, it
needs to instantiate an object from ClientB_BLL.dll. My understanding
is that the UI would need a reference to both ClientA_BLL.dll and
ClientB_BLL.dll. If this is the case, then when I deploy to ClientA,
without shipping ClientB_BLL.dll, the UI is going to complain.
Likewise, when I deply to ClientB, without shipping ClientA_BLL.dll
then the UI is going to complain.

Id appreciate if someone could give me a concrete example of how to
sort this out.

tia


这篇关于需要架构建议的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆