Software Engineering, Project Management, and Effectiveness
It's long overdo, but we're kicking off a project for v2 of the patterns & practices Application Architecture Guide. You might be familiar with Tom Hollander's post "Application Architecture for .NET" 2 - The Revenge. Well, now it's time for results.
Solution Architects / Dev Leads / DevelopersOur primary audience is solution architects, developer leads, and developers.
Principles, Patterns, and PracticesI'm a principles, patterns, and practices kind of a guy, so expect the guide to be principle-based, durable, and evolvable.
CodePlex Community Site It's a work in progress and it's early, but you can follow along here:
TopicsHere's some of the areas we're looking at for the guide:
Your FeedbackWhat would you like to see in the guide?
Great. Some info REST vs SOAP, usage of JSON, POX etc would be great. Info on optimizing over the wire.
Other bits to cover include identity management and health models
I'm really excited about this, you guys did a phenomenal job with the WCF guidance site.
I'd include information about how to make your code testable. We use mocking frameworks (like Rhino Mocks) on our projects, and we've found that you have to design your code a certain way to make it testable (usually by using interfaces more and concrete classes less).
Another debate that we have is when you're using web services, when should you use DTOs and when is it OK to send your entity objects across the wire?
Great to hear!
Testability is definitely a hot spot these days.
How to pass data across the layers/tiers is a classic issue -- we definitely need to nail that.
Hey Abe -
Identity management, health, REST vs. SOAP are definitely hot spots!
I'd love to see:
- DFO (design for operations) which relates to SLA's that are super relevant in S+S and multitenant scenarios.
- Production monitoring.
- Production incident management and resolution.
I think all these somehow related to AOP which hides somewhere in between Layers, Tiers, and Components
It sounds like you're focused on the end in mind. Production puts your runtime patterns to the test.
A friend and colleague, J.D. Meyer, asked me to consider this question, and I have to admit that it's
Will you also address how Cloud Computing affects some of the architecture attributes, etc?
Good question -- yes, cloud is on the radar. It's a definite trend in today's world.
Those of you who have been paying attention may have remembered a post I did over a year ago announcing
Distribution including REST/SOAP/Messaging, domain modelling using DDD and other approaches, patterns within MVC, mapping between layers...mind you the topics you guys have described sounds good.
One question, are you going to reach out to the community for content or advice?
Great that the guide will be updated!
I would like to see som more information about async work (multiple threads) both on server side and in the client. For example who to handle async wcf calls in the gui so that data always is moved to UI Thread and so that exception is handled and showed (also from the UI Thread) and so on.
I also forgot to add occasionally connected clients with Microsoft Sync Framework would be an interesting area.
The Patterns and Practices team is *finally* updating their architectural guidance. You can see J. D
@Colin - you bet. Community input is a good thing. The best way for now is the codeplex project site, but I'm exploring some additional ways.
@Eric - good point. Occasionally connected is a very interesting area.