Featured Articles

Why MEF

By David Giard

Microsoft Managed Extensibility Framework (MEF) is a framework for building extensible applications. Using MEF, you can build extensible applications constructed of loosely-coupled composable parts. By constructing an application of parts, any part can be replaced at runtime, without recompiling or redeploying the entire application. Scenarios for MEF One use of MEF is to create an extensible application... Read more...


Object Oriented Programming, Part 3: OOP Concepts

By David Giard

In this article, we will discuss the key concepts important to Object Oriented Programming (OOP). An object-oriented system has the following characteristics · Inheritance · Polymorphism · Abstraction · Encapsulation · Decoupling Some systems (and some languages) don’t fully support all the above constructs and still refer to themselves as “object-oriented”... Read more...


Object Oriented Programming, Part 2: Understanding Objects

By David Giard

Before we can do that, it’s important to understand the basics of objects before you can grasp Object Oriented Programming. Key Object Concepts Objects are essentially a collection of structured data stored in memory. An object is based on a class that defines how to create an object. In this article, I will describe the following concepts. · Classes · Class members o Properties... Read more...


Object Oriented Programming, Part 1: Overview of OOP

By David Giard

What is OOP? Most people think of their business systems in terms of the interactions of people, institutions, programs and other entities. When describing a system, they often speak in terms of these interactions between entities. For example, they may describe how a customer communicates order information to a salesperson that inputs this information into an Order Processing program. Describing entities... Read more...


Architect Leadership

By Jim Holmes

Architects on software teams often have sizeable responsibilities for the project’s success but little direct authority over the developers working on the project. In many cases, particularly in the consulting world, architects are resources shared across several projects. Often they’re not responsible for the daily successful execution of the project – that falls to developer leads... Read more...


Tidbits

Microsoft's "Bluebooks"

http://blogs.msdn.com/jmeier/archive/2010/03/07/the-power-of-blue-books-for-platform-impact.aspx

Microsoft's "Bluebooks" are the works put out by the Patterns and Practices group. They cover a variety of topics including architecture, security, and testing.

"Ultimately, Blue Books give us a strategic look at platform pain points as well as competitive analysis, and a consolidated set of success patterns to run with....

Benefits at a Glance
Here is a quick rundown of some of the key ways that Blue Books have helped Microsoft and customers win time and again:

  • Platform Playbooks - Serve as platform playbooks for Microsoft, field, support, customers, and partners
  • Shaping the Platform and Tools – Shape the platform and tools by testing out patterns and practices as well as methodologies and methods with the broad community before baking into the platform and tools.
  • Scaling Success Patterns - Broadly scale proven practices and success patterns for predictable results
  • Roadmaps for Platform Adoption - Lay out roadmaps for technology adoption as well as success patterns
  • Competitive Wins - Win competitive assessments (the Blue Books have played a critical role in influencing industry analysts and in winning competitive assessments time and again)
  • Innovation for Exponential Success - Innovate in methodologies and methods for exponentially improving customer success on the platform
  • Frame and Name the Problem Domains – Frame out and name the problem spaces and domains (when you frame out and name a space, whether through patterns or pattern languages, you create a shared vocabulary and model that empowers people to make forward progress at a faster pace and more deliberate way.)

The list goes on, but the essence is that these playbooks help customers make the most of the platform by sharing the know-how through prescriptive architectural guidance."



Should IT run “like a business” or “like a non-profit?”

http://blogs.msdn.com/nickmalik/archive/2010/03/05/should-it-run-like-a-business-or-like-a-non-profit.aspx

I've had this discussion many times and this article has my rethinking my position.

"For years, we’ve heard the old saw: If only we could run IT like a business!  But really, we cannot.  IT does not have a market the way a business does, and IT cannot ignore the edicts of the CEO like an outside service provider can. "



The Forecast for Cloud Computing

http://www.cioinsight.com/c/a/Trends/The-Forecast-for-Cloud-Computing/

"What does cloud computing mean for the future of large-scale corporate IT? Will cloud computing evolve into a big, fluffy cumulus, allowing IT to transform from a perceived technology cost center into a strategic business asset? Or will it become a dark, stormy mass signaling the end of corporate IT as we know it?"



Video: Architects? We Don't Need No Stinkin' Architects!

http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Architects-We-Dont-Need-No-Stinkin-Architects/

"Nobody denies the need for software architecture, but many challenge the idea that you need a dedicated software architect to get it. Michael Stiefel compares software to painting to answer this question. Yes we do need architects, but not for the reasons that many think."



Scaling Web Appliation with the Hierarchical-Model-View-Controller (HMVC) pattern

"The Hierarchical-Model-View-Controller (HMVC) pattern is a direct extension to the MVC pattern that manages to solve many of the scalability issues already mentioned. HMVC was first described in a blog post entitled HMVC: The layered pattern for developing strong client tiers on the JavaWorld web site in July 2000. Much of the article concentrates on the benefits of using HMVC with graphical user interfaces. There has been some suggestion that the authors where actually re-interpreting another pattern called Presentation-Abstraction-Control (PAC) described in 1987. The article in JavaWorld provides a detailed explanation of how HMVC can aid in the design of desktop applications with GUIs. The focus of this article is to demonstrate how HMVC can be used to create scalable web applications."

http://techportal.ibuildings.com/2010/02/22/scaling-web-applications-with-hmvc/

 



Why use Event Sourcing?

http://codebetter.com/blogs/gregyoung/archive/2010/02/20/why-use-event-sourcing.aspx

Not familiar with Event Sourcing? This is probably a good place to start.