background preloader

PM & Patterns

Facebook Twitter

Dependency Inversion Principle in C# – SOLID Design Principles – Part 5 « John Nelson's Blog. Dependency Inversion Principle in C# – SOLID Design Principles – Part 5 Posted on Updated on Overview In our introduction to the SOLID Design Principles, we mentioned the Dependency Inversion Principle as one of the five principles specified.

Dependency Inversion Principle in C# – SOLID Design Principles – Part 5 « John Nelson's Blog

In this post we are going to discuss this design principle. Though a discussion of Dependency Injection and Inversion of Control are warranted here, we will save those topics for another post. Dependency Inversion Principle – Introduction The Dependency Inversion Principle is a software design principle that provides us a guideline for how to establish loose coupling with dependencies from higher-level objects to lower-level objects being based on abstractions and these abstractions being owned by the higher-level objects.

The definition reads as follows: Бесплатная электронная книга по гибким методологиям разработки. IoC Container Benchmark - Performance comparison - www.palmmedia.de. In this post I will do a performance comparison of the most popular IoC containers.Of course performance is not the only criteria when choosing a container for a project.

IoC Container Benchmark - Performance comparison - www.palmmedia.de

Perhaps you need features like interception or you develop for a specific platform, then not all containers are suited. But especially in high-load scenarios like a web application, a fast container can help you to serve more requests in the same time, so why not choose the fastest one? The test setup The contestants The number of available DI containers is quite big (see table below). The test setup Several benchmarks are executed to test the performance of the containers in different scenarios. Presentation Model (MVVM) Good Practices. Download demo - 265 KB Contents Introduction.

Presentation Model (MVVM) Good Practices

Einar Ingebrigtsens Playground. Not everyone has the luxury of jumping on new technologies, it can be historical reasons, don’t have time to learn, deployment reasons – or flat out you simply don’t like anything new :) .

Einar Ingebrigtsens Playground

Anyways, I was doing a codereview on a project last week, which was written in Windows Forms. The developers had some pain, Windows Forms being one of them – and a constant feeling that they were barking up the wrong tree when using Windows Forms. Its been a couple of years since my last Windows Forms project, and I must admit I remember the feeling of constantly banging my head against the wall without getting the code quality I wanted when doing UI.

MVVM for .NET Winforms – MVP-VM (Model View Presenter - View Model) Introduction. This post introduces the MVP-VM (Model View Presenter – Model View) design pattern, which is the windows forms (winforms) equivalent of WPF/Silverlight MVVM.

MVVM for .NET Winforms – MVP-VM (Model View Presenter - View Model) Introduction

The MVP-VM pattern is best suited to winforms applications that require full testing coverage and use data binding extensively for syncing the presentation with the domain model. Evolution Before we start digging deep into MVP-VM, lets have a quick review of the patterns from which it has evolved. Presentation Model. MVVM (Model-View-ViewModel) Pattern For Windows Form Applications, using C# Introduction The MVVM pattern is in favour of WPF/Silverlight developers because of its advantages.

MVVM (Model-View-ViewModel) Pattern For Windows Form Applications, using C#

Microsoft says that MVVM: Separates the business and presentation logic of the application from its UI, and makes it much easier to test, maintain, and evolve. Allows developers and UI designers to more easily collaborate when developing their respective parts of the application. Understanding The Application Controller Through Object Messaging Patterns. Earlier in the year, I posted a few times on the Application Controller pattern that I was implementing, including some workflow service related posts, all leading up to the presentation on decoupling workflow from forms that I gave at Austin Code Camp ‘09.

Understanding The Application Controller Through Object Messaging Patterns

I’ve been working with this style of architecture in my winforms apps since then, and have really grown to love it. And now with my new job and my new team, I’ve recently had a chance to take the same patterns and port them over to the .net compact framework. The good news is that it took zero changes to the core architecture and code. The 2 things I had to do were re-write the form implementations in compact framework forms, and replace structuremap with a ninject version compiled for the compact framework. It was an easy port and the code is available on github, along with the original winforms version. BlogPosts - compactcontainer - Compilation of blog posts about CompactContainer - IoC & DI container for .NET Compact Framework.

Inversion of Control Containers and the Dependency Injection pattern. In the Java community there's been a rush of lightweight containers that help to assemble components from different projects into a cohesive application.

Inversion of Control Containers and the Dependency Injection pattern

Underlying these containers is a common pattern to how they perform the wiring, a concept they refer under the very generic name of "Inversion of Control". In this article I dig into how this pattern works, under the more specific name of "Dependency Injection", and contrast it with the Service Locator alternative. C# 5.0 vNext - New Asynchronous Pattern. HhhhsdadsDownload SampleCode-Async - 386.02 KB Table of Contents Introduction.

C# 5.0 vNext - New Asynchronous Pattern

Классика ООП - Почему объектно-ориентированное программирование провалилось? [MUST READ] Прошло ровно 10 лет с публикации известной и классической в мире программирования статьи, написанной Ричардом Гэбриелом, название которой стало уже нарицательным и вынесено в заголовок моей заметки.

Классика ООП - Почему объектно-ориентированное программирование провалилось? [MUST READ]

Почему объектно-ориентированное программирование провалилось? Прошло ровно 10 лет со времени публикации известной и классической в мире программирования статьи, написанной Ричардом Гэбриелом (Richard Gabriel), название которой стало уже нарицательным и вынесено в заголовок моей статьи. Статья стала настолько острой и злободневной для своего времени, что вызвала бурный всплеск обсуждений в сообществе программистов, целый ряд известных программистов включился в открытую полемику с автором, от редакции известнейшего американского программистского журнала Dr. Обзор паттернов проектирования. 2005 г. Данная работа представляет собой обзор нескольких наиболее значительных монографий, посвященных паттернам проектирования информационных систем. Материал оформлен в виде структурированного справочника, в который включены паттерны проектирования обьектов информационных систем, архитектурные системные паттерны и паттерны интеграции информационных систем.

В справочнике приведены краткие описания паттернов проектирования, однако, несмотря на свою лаконичность, данные описания позволяют понять ключевые особенности каждого паттерна и успешно использовать его на практике. Design Pattern for importing data - DoFactory. First of all, I believe you should ask the other way around: What exactly do I want to achieve? Whether or not there are design patterns that can help you to prevent common problems to arise will be the next question. Обзор паттернов проектирования. NET Design and Process Solutions. The IDesign serviceware downloads is a set of original techniques, tools, utilities and even breakthroughs developed by the IDesign architects.

The utilities are largely productivity-enhancing tools, or they compensate for some oversight in the design of .NET or WCF. Канбан в IT (Kanban Development) Я собираюсь написать несколько статей про новую методологию гибкой разработки Канбан (Kanban Development) в целях подготовки к Scandinavian Agile Conference 2009, где я буду делать один из докладов (кстати, заодно приглашаю всех на конференцию). Сегодня публикую первую из статей.