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
