New/Enhanced Features of Share Point 2010

SharePoint is a collection of products and software tools by Microsoft that
mainly provides collaboration functions, process management, searching and
document management. This article i will try to present some of the new/enhanced
features of the Share Point 2010
Continue Reading

What is the big deal about design patterns?

What is the big deal about design patterns? Is it the “holy grail” of object-oriented programming? Or, is it just some fad used to over-complicate a project’s design? If you’ve ever known me for any amount of time [as a programmer], you should know that I am an avid champion for both object-oriented design, as well as design patterns. With that said, this article will be biased toward the use of design patterns; the intent of this article will be to explain why I prefer using design patterns, as well as what I feel its benefits are for you as programmer.

What are design patterns? More specifically, why should you care?

As with any technology, there may be one or more specific meanings that are commonly used to describe the technology. I feel that this is especially true when it comes to computer science, and the application of design patterns. To quote Wikipedia, “A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise.” What does this definition really mean? To me, it means that a design pattern is an abstract way to describe a problem through logic and structure in your code; i.e., you write your code in such a way that it reflects the idea behind what the design pattern is supposed to achieve.

To put it more simply, a design pattern by itself is not a solution to a problem; the only solution to a problem is the code itself. A design pattern is nothing more than an idea of how the programmer decides to look at a problem, which helps them determine the code that they will write. This is just as true as saying that it is good practice to encapsulate a piece of code through inheritance or abstraction. It is just another design principle of “good object-oriented design”.
Continue Reading