http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=0615b3cc-0fb
f-4cf5-9d49-ae95b50f7e8d

(mind URL wrapping)

On Windows Server 2003, Enterprise Services no longer requires the GAC.
See linked blog post.

-cv



-----Original Message-----
From: Unmoderated discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] On Behalf Of Bill Bassler
Sent: Wednesday, June 02, 2004 2:43 PM
To: [EMAIL PROTECTED]
Subject: [ADVANCED-DOTNET] Best Practices: Sharing business assemblies,
the GAC, deployment and component versioning

Scenario:

We have developed several business components.

The goal of the business components is to encapsulate common business
functionality.

We have developed several client applications that use the business
component's functionality.

All of the common business components are Serviced components because
they
utilize MTS to commit or rollback any transactions against the database.
MTS, of course, requires strong naming.

We currently have the business components deployed to the GAC and they
are "registered" as Serviced components. The main reason for using the
GAC
for deployment was that it made making references among them work
without
any additional configuration and it also allows for the components to
run
as "Server applications".

Issues:

While GAC deployment made making inter-component and client referencing
easier, it of course forces strict versioning between components and
referencing and clients that use them.

While I see the benefit in enforcing strict versioning in this scenario,
constant vigilence on versioning of shared components and clients can be
very painful. Using it implies redeploying any clients and or components
that receive a new build number. To date, in development, we've "locked"
the versions but now we'd like to start versioning deployments with
build
numbers.

Main questions:
Are there any MS best practices outlined for these situations. I find
really nothing comprehensive on the in-and-outs of using the .Net
framework
along with application and component versioning.

In principle, I would not want to privately deploy a copy of each
business
component to each client that uses it (which happens all the time in the
Java world). This really defeats the principle of sharing components.
Besides, the use of COM Server application configuration actually
precludes
its use.

I believe this scenario actually requires a strict build process that
automates to build process for all related client applications and
shared
components but I'm trying to verify that this is the case.

Additional related questions:
Is there a way to tell a client to bind to the assembly with highest
build
number in the GAC and not to a specific version.

Are there other options for sharing strong named business components
with
multiple clients that don't involve the GAC and versioning?

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com
Some .NET courses you may be interested in:

NEW! Guerrilla ASP.NET, 17 May 2004, in Los Angeles
http://www.develop.com/courses/gaspdotnetls

View archives and manage your subscription(s) at
http://discuss.develop.com

===================================
This list is hosted by DevelopMentor�  http://www.develop.com
Some .NET courses you may be interested in:

NEW! Guerrilla ASP.NET, 17 May 2004, in Los Angeles
http://www.develop.com/courses/gaspdotnetls

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to