Nothing is more of the truth then old tales. Some long time ago Sean Sexton said If you’re a developer doing WPF development, you really need to be using Expression Blend. Yes, I know the party line on WPF development runs something like this: Every Dev team should have at Read more…
Did you ever noticed that after restart of the IIS ASP.Net page which has Crystal Reports Viewer would take much longer to come up? Some of it is expected since on initial start up, a number of Crystal assemblies and objects need to be created and this does take time. I Read more…
With introduction of garbage collection (System.GC name space) in .Net, life of the Windows programmer become easy – no need to worry about releasing objects, code become simpler, etc. In “old” time one would need to use Interfaces to achieve similar functionality and it does have some advantage even over GC – Read more…
As a long time Delphi and C# programmer one become used to some features of the language and may not go deep into “philosophical” thinking about such features. This often happen with Asserts… What is Assert or Assertion? By its definition Assert: state categorically affirm: to declare or affirm solemnly Read more…
Evolution has a spiral nature… it is true for any science, process, or development.
Not long time ago Waterfall Model of development prevailed. Very formalized, well described and structured, very structured… and it was “too much” which killed it… like a grandpa, it collected a lot of knowledge and experience, but he was to old and slow to keep up with the grandson… So was WF model – developers wanted something better and simpler, with built-in flexibility and after few iterations we’ve got “Agile model” and “XP programming” emerged. “Spiral” development cycles… “loose” modeling… like with JPEG, developers got “loose compression” of software process definition.
Not that we are loosing quality of the development, but we define the development process with desired level of formality/quality.
Remember in “Pirates of Caribbean” – pirates have “the pirate code”. Not being the law, it was a code of conduct which was helping keep the structure and discipline.
Same for “free spirit” development models, there is the need for some “guidelines” or “rules” everybody can understand and follow if want to achieve structure and efficiency. For the process there is an Agile methodology, and for the code/architecture there are Design Patterns.
First introduced over 30 years ago, term “Patterns” surfaced in software industry several time: originally in 1977, then in 1987 and then finally in 1994.
Since that time and Object Oriented Design becoming main stream in Software Industry it transformed into a common terminology.
It still come in “waves” to one company or another, coming ashore and and then retracting back to the sea of the theories. But with Object Oriented Programming being a mainstream in evolution of software development, Patterns or Design Patterns knowledge become a common base.
Today you hear about it everywhere – “What design pattern did you use?”, “application blocks“, etc.
To think about it, there is nothing new here. As an OO developer you may used it just a minute ago.
- Abstract Factory – allows manage/create instances of several types of classes – generic access.
A-ha! In .Net the perfect example would be generics and reflection – there you are working with objects without precise knowledge of their type or parameters.
- Singleton – have you ever created global instance of the class? This is a one example for you.
- Adapter – we heard it somewhere recently… Aaaa… OleDBDataAdapter… From MSDN: “The OleDbDataAdapter serves as a bridge between a DataSet and data source for retrieving and saving data”
- Bridge – have you moved from Single/mono-design applications to C/S or created front-end ASP.Net page for your Application Server back-end? Then you have separated interface from implementation of the logic, or used a Bridge pattern.
- Proxy – Accessing your web-service from your code? Then you have most likely using some sort of Proxy class.
I was always for a “built-in” support of features in modern development environment. Even if it comes in basic form, we, as programmers, should have ability to do “basic” stuff without 3rd party involvement. There are plenty of 3rd party solutions on the market which would help you include some kind Read more…
Some time ago I have wrote about steps Microsoft was making into multi-touch interface support inside Windows application. If you visited PDC 2008, then you probably already heard that Microsoft had officially presented a new .Net framework/API which would be available as part of Windows 7. If you have missed Read more…