66020 members! Sign up to stay informed.

Sponsored Links


Resources

.NET Research Library
Get .NET related white papers, case studies and webcasts

News News News Messages: 2 Messages: 2 Messages: 2 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

Smacchia looks at .NET component dependency

Posted by: Jack Vaughan on March 15, 2007 DIGG
Patrick Smacchia has arrived at rules to help you create a clear and maintainable architecture. He provides a view on component dependecy issues.

Some advise from Smacchia: Watch out for assemblies; employ namespace hierarchies; and watch out for new dependency cycles as an application grows.Read the article on TSS.NET.

http://www.theserverside.net/tt/articles/showarticle.tss?id=ControllingDependencies
  Message #229587 Post reply Post reply Post reply Go to top Go to top Go to top

Don´t be afraid of a large number of assemblies

Posted by: Ralf Westphal on March 18, 2007 in response to Message #229438
Although I agree with Patrick on the importance of controlling the dependencies among the different "parts" of a software (methods, classes, assemblies, components, processes) and I like his recommendation to use namespaces to structure code... I disagree with his recommendation to reduce the number of assemblies.

Right to the contrary I think, splitting projects into a larger number of assemblies (or VS2005 projects for that matter) is the number one means to actually make clear and enforce encapsulation.

Assemblies are the material to forge true components of. So whoever believes in component oriented software development, that means wrapping up functionality in binary packages for easy re-use and easier decoupling, should strive for chopping a problem into as many assemblies as necessary - and not as few as possible.

Assemblies (or components consisting of 1 or a few assemblies) should be the focus for every developer. Logical structure arrived at by modelling and design should be reflected by physical structure and work organization. That´s an obvious truth, I´d say. Logical structure that´s not made tangible - and assemblies are more tangible that namespaces - tends to erode. Trying to keep the number of assemblies low during development - and putting many assemblies/VS2005 projects into one or just a few VS2005 solutions - are an invitation to increased coupling.

However, I agree with Patrick that a large number of assemblies might be detrimental to easy deployment or high performance. Fundamentally there´s no difference for the CLR if an application consists of 3, 30, or 300 assemblies. But checking 300 assemblies for completeness while bundling up an application for deployment is harder than checking 3.

So my recommendation is: Distinguish between implementation and deployment. Split code into as many assemblies as seems necessary to get high testability, and productivity, and retain a good structure.

But when it comes to deployment, then merge the many assemblies into just a few depending on runtime requirements to balance performance and memory footprint.

I use ILmerge (http://research.microsoft.com/~mbarnett/ILMerge.aspx) for this purpose all the time without a problem.

-Ralf
http://www.ralfw.de (German)
http://ralfw.blogspot.com/ (German)
http://weblogs.asp.net/ralfw/
http://object-relational-mapping.blogspot.com/

  Message #229610 Post reply Post reply Post reply Go to top Go to top Go to top

Need 4 Speed

Posted by: Eric Khosa on March 19, 2007 in response to Message #229438
I work in an environment in which lower product development time/competitive speed to Market is paramount. To meet these objectives, we support parallel software development but unfortunately without the use of branching. This means that a single Assembly –being the smallest deployable unit- has the potential of turning into a dependency bottleneck within our development process. As you may already be aware, the problem arises when two or more pieces of work need to be concurrently performed on files that reside within the same class library or assembly. Of course, allowing both pieces of work to proceed would result in a dependency –both work items will need to be released at the same time – thereby impacting speed to market. Having the option of producing more assemblies certainly alleviates this risk…...

Recent active threads Recent active threads Recent active threads More More More
PPT to SWF (Flash) and PDF to SWF Conversion in .NET Application
Integrating 3rd Party Single Sign On into SharePoint Portal 2003
[ANN] Agile Cambridge 2010 - October 14-15
Solutions for open source data quality
Talend Appoints Vice President of Corporate Development
We had a fire at work today
How to add barcoding support to ASP.NET Mobile websites (VB.NET
More active threads »
Top posters of the weekTop posters of the weekTop posters of the week
This list contains the members who have made the most posts in all forums over the last 7 days:
  1. aspose seo
  2. Guru Talend
  3. Mark Dalgarno
  4. Jim Thorstad
  5. Sophie Everett
Hot threads Hot threads Hot threads More hot threads More hot threads More hot threads

Eclipse vs. Visual Studio at EclipseCon 2006

Speaking at EclipseCon 2006, Java developer and independent consultant Madhu Siddalingaiah compared Microsoft's Visual Studio IDE to the open source development environment of Eclipse.
(32 comments, last posted December 29, 2007)

Tech Talk: Peter Provost on CAB and Agile development

In this tech talk, Microsoft's Peter Provost talks about the design of the Composite UI Application Block and how the p&p team has led Microsoft in the adoption of Agile methodologies.
(0 comments, last posted April 17, 2006)

Book excerpt: Framework Design Guidelines

Chapter 4 of Framework Design Guidelines, titled "Type Design Guidelines," presents patterns that describe when and how to design classes, constructs and interfaces. In this chapter, Abrams and Cwalina divide types into four groups and discuss the do's and don'ts of type design.
(2 comments, last posted July 07, 2006)

Q&A: Miguel "Mono Man" De Icaza

Paul Ferrill caught up with prime open-source .NET applications driver Miguel De Icaza at Novell's BrainShare conference last week. They discussed the status of Windows Forms for Mono (it's coming along) and VB.NET for Mono (it looks like it's out).
(5 comments, last posted March 30, 2006)

Tech Talk: Jack Greenfield on software factories and DSLs

In this tech talk, Microsoft Visual Studio architect Jack Greenfield discusses the company's approach to Domain-Specific Languages, or DSLs, and the part they play in software factories.
(0 comments, last posted March 15, 2006)
More hot threads »

News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
All Content Copyright ©2007 TheServerSide Privacy Policy      Powered by JIVE
Site Map