<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4261493623714341980</id><updated>2012-01-28T03:08:13.153+02:00</updated><category term='MVP'/><category term='MEF'/><category term='UML'/><category term='MVXX'/><category term='Multi Threading'/><category term='MVVM'/><category term='MVC'/><category term='Design Patterns'/><category term='Silverlight'/><category term='Testing'/><category term='Networking'/><title type='text'>Design Codes</title><subtitle type='html'>Aviad Ezra on software architecture surroundings the .NET environment</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-6888590074232184904</id><published>2012-01-02T03:58:00.001+02:00</published><updated>2012-01-28T03:08:13.394+02:00</updated><title type='text'>Tracking Performance Degradation with Visual Studio Load Testing Framework and Cruise Control .NET</title><summary type='text'>In previous posts we created a Load Test for the book store service and saw how the Load Test can be executed continuously via 'Cruise Control .NET' (CCNet),  In this post, we'll take a step forward and add a custom task to CCNet that will query the database and generate a custom xml summary that includes performance comparison with previous runs, performance counters measurements per machine (</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/6888590074232184904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2012/01/tracking-performance-degradation-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/6888590074232184904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/6888590074232184904'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2012/01/tracking-performance-degradation-with.html' title='Tracking Performance Degradation with Visual Studio Load Testing Framework and Cruise Control .NET'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-pIjhgkT7VeY/TwEO-Qs3feI/AAAAAAAACFA/5v6NylG0j4A/s72-c/image_thumb3%25255B1%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-8179045640541198382</id><published>2011-12-30T23:55:00.001+02:00</published><updated>2012-01-04T21:24:40.405+02:00</updated><title type='text'>Continuous Integration for Visual Studio Load Test via Cruise Control .NET</title><summary type='text'>In the previous post we created a load test for the book store service. We developed a functional test per user scenario for generating synthetic load and walked through the entire process of creating and running the Load Test.  In this post we will see how the Load Test can be executed continuously via 'Cruise Control .NET' (CCNet) and provide immediate feedback via CCNet's portal. here's a </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/8179045640541198382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2011/12/continuous-integration-for-visual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/8179045640541198382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/8179045640541198382'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2011/12/continuous-integration-for-visual.html' title='Continuous Integration for Visual Studio Load Test via Cruise Control .NET'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-NiV6Wg16oCM/TwSndz6qeWI/AAAAAAAACGk/256GYwW8c3Q/s72-c/video456feb3fa173%25255B3%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-496376325158497306</id><published>2011-12-29T17:59:00.001+02:00</published><updated>2012-01-04T21:23:26.959+02:00</updated><title type='text'>Creating a Load Test using Visual Studio 2010</title><summary type='text'>Visual Studio Team System Test Edition provides extremely powerful framework for developing load tests for web applications. The framework (Load Testing Framework) introduces a simple process for generating synthetic load, possibly from multiple machines, and provides rich infrastructure for generating reports.  The framework can be used to generate load and collect results for different purposes</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/496376325158497306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2011/12/creating-load-test-using-visual-studio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/496376325158497306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/496376325158497306'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2011/12/creating-load-test-using-visual-studio.html' title='Creating a Load Test using Visual Studio 2010'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-eQZ7ZazDpq4/Tv09_ngi2PI/AAAAAAAACCc/EGld984VRTU/s72-c/videod83e501f6461%25255B3%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-6721731888235147552</id><published>2010-12-03T00:48:00.001+02:00</published><updated>2011-10-15T21:57:54.442+02:00</updated><title type='text'>Component Testability KILLERS (and suggested solutions)</title><summary type='text'>Since system quality depends on component quality, any defective component causes a ripple effect throughout systems that include that component. Hence, validation and quality control of isolated components is crucial for producing quality systems. In order to validate component quality, we must follow a cost effective test process and implement a rigorous quality process for all generated </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/6721731888235147552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2010/12/component-testability-killers-and.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/6721731888235147552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/6721731888235147552'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2010/12/component-testability-killers-and.html' title='Component Testability KILLERS (and suggested solutions)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/TPgiJiyDkTI/AAAAAAAAB8o/0su8uyKVgC8/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-6890729987637174013</id><published>2010-11-07T01:36:00.001+02:00</published><updated>2010-11-13T08:26:11.913+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVVM'/><category scheme='http://www.blogger.com/atom/ns#' term='MEF'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Testing with Managed Extensibility Framework (MEF) for Silverlight</title><summary type='text'>In the previous post, we developed test strategies for a three tiers, MVVM based Silverlight application, which uses the Managed Extensibility Framework (MEF) in order to loosen the coupling between the components and to provide better testability and extensibility. In this post, we’ll see how the Managed Extensibility Framework (MEF) fit in with the overall testing strategy and try to figure out</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/6890729987637174013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2010/11/testing-with-managed-extensibility.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/6890729987637174013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/6890729987637174013'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2010/11/testing-with-managed-extensibility.html' title='Testing with Managed Extensibility Framework (MEF) for Silverlight'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_aUOgqE3fGXc/TNXmawK4OdI/AAAAAAAAB8Q/Taor12YUqZs/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-4008185441004265605</id><published>2010-11-01T12:46:00.001+02:00</published><updated>2011-12-05T06:27:20.583+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVVM'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Testing Silverlight 4.0 App with MVVM, MEF and WCF Data Services</title><summary type='text'>In the previous post, we reviewed a simple 3 tiers Silverlight application that follows the MVVM design pattern, uses MEF for applying the dependency injection pattern, and uses WCF data service implemented using a custom data provider for CRUDing data in a RESTfull way (via HTTP). In this post, we’ll put together a testing strategy for the application and demonstrate testing in component level </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/4008185441004265605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2010/11/testing-silverlight-mvvm-mef-wcf-custom.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4008185441004265605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4008185441004265605'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2010/11/testing-silverlight-mvvm-mef-wcf-custom.html' title='Testing Silverlight 4.0 App with MVVM, MEF and WCF Data Services'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/TM6aVbruLOI/AAAAAAAAB7g/rgFG_iSUKq4/s72-c/image_thumb3.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-4243426821303232569</id><published>2010-10-24T00:41:00.001+02:00</published><updated>2010-11-07T04:08:06.679+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVVM'/><category scheme='http://www.blogger.com/atom/ns#' term='MEF'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Developing Silverlight 4.0 App with MVVM and MEF</title><summary type='text'>In the previous post we walked through the process of developing three tiers web app using Silverlight 4.0, MVVM and WCF Data services. In this post, we’ll see how we can take advantage of the new Managed Extensibility Framework (MEF) for Silverlight in order to loosen the coupling between the parts in the application and by that 1) simplify the development process, 2) make our application more </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/4243426821303232569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2010/10/developing-silverlight-40-app-with-mvvm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4243426821303232569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4243426821303232569'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2010/10/developing-silverlight-40-app-with-mvvm.html' title='Developing Silverlight 4.0 App with MVVM and MEF'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_aUOgqE3fGXc/TMNkX0QODVI/AAAAAAAAB7Q/A2hYb4rhCh4/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-73511155531006673</id><published>2010-10-13T00:27:00.001+02:00</published><updated>2010-11-07T21:11:30.598+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVVM'/><category scheme='http://www.blogger.com/atom/ns#' term='MVXX'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Developing Silverlight 4.0 Three Tiers App with MVVM and WCF Data Services (OData via ATOM)</title><summary type='text'>In this post we’ll walk through the process of developing a three tiers, rich web application using Silverlight 4.0. As many applications built on top of WPF/Silverlight technologies, we’ll based the design on MVVM design pattern, and we’ll use WCF data services to query/update data exposed by a mid tier application.  In the next posts we’ll add the new Managed Extensibility Framework (MEF) to </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/73511155531006673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2010/10/silverlight-mvvm-odata-wcf-data.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/73511155531006673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/73511155531006673'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2010/10/silverlight-mvvm-odata-wcf-data.html' title='Developing Silverlight 4.0 Three Tiers App with MVVM and WCF Data Services (OData via ATOM)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_aUOgqE3fGXc/TLTgZs19wOI/AAAAAAAAB5c/q93lEq9-ecA/s72-c/image_thumb19.png?imgmax=800' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-2585923587209692764</id><published>2010-08-08T05:39:00.001+03:00</published><updated>2010-11-07T04:08:06.680+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi Threading'/><title type='text'>The Pillars of Concurrency</title><summary type='text'>In recent years, microprocessors designers are hitting the walls of memory latency, heat dissipation, and number of transistors for single core processors. As a result, the microprocessors industry consistently introducing more cores on the same chip in order to keep on providing stronger processors and maintain Moore's law. Consequentially, applications' parallelism become more fine-grained, </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/2585923587209692764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2010/08/concurrency-responsive-scalability.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2585923587209692764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2585923587209692764'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2010/08/concurrency-responsive-scalability.html' title='The Pillars of Concurrency'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_aUOgqE3fGXc/TF4YtgVI2zI/AAAAAAAAB3s/m4haTBW3GjQ/s72-c/image_thumb11.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-7277270145833704721</id><published>2010-02-23T21:35:00.001+02:00</published><updated>2010-11-07T04:08:06.680+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi Threading'/><title type='text'>Scaling Up with STM.NET (Software Transactional Memory)</title><summary type='text'>Content       Abstract        Locking Hazards        STM.NET Overview        STM.NET Characteristics        STM.NET Implementation        Alternative Implementations      Hardware Transactional Memory   Abstract  Every developer that spent enough time with concurrent applications must have learned that producing a reliable, high performance application that scales gracefully to many core hardware</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/7277270145833704721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2010/02/scaling-up-with-stmnet-software.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7277270145833704721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7277270145833704721'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2010/02/scaling-up-with-stmnet-software.html' title='Scaling Up with STM.NET (Software Transactional Memory)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_aUOgqE3fGXc/S4Qt2qjkmWI/AAAAAAAAB0E/dUndaFuvjbU/s72-c/image_thumb31.png?imgmax=800' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-1543682553627919594</id><published>2009-10-18T03:14:00.001+02:00</published><updated>2010-11-07T04:08:06.681+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi Threading'/><title type='text'>Concurrency Levels Tuning with Task Parallel Library (How Many Threads to Use?)</title><summary type='text'>In the post ‘Scaling Up with Task Parallel Library’ we reviewed the way in which the TPL (Task Parallel Library) library facilitates the process of adding concurrency to applications. One of TPL’s features that I thought worth a separate discussion is that it enables developers to manually tune the amount of threads (concurrency level) that will be used to serve a given set of tasks.   Manual </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/1543682553627919594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/10/how-many-threads-tpl-concurrency.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/1543682553627919594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/1543682553627919594'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/10/how-many-threads-tpl-concurrency.html' title='Concurrency Levels Tuning with Task Parallel Library (How Many Threads to Use?)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/St4Il2BsyRI/AAAAAAAABaE/I8gGI7JsGsk/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-518251685384493191</id><published>2009-10-03T17:44:00.001+02:00</published><updated>2009-10-25T21:13:48.514+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>UML Use Case Diagrams – Modeling the System Functionality</title><summary type='text'>UML Use case diagrams are used to illustrate the behavior of the system during requirements analysis, they show system wide use cases and point out which use case is performed for which actor.      A use case describes a sequence of actions that make up one or more business process and provide something of measurable value to an actor, an actor is a person, organization, or external system that </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/518251685384493191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/10/uml-usecase-actor-activity.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/518251685384493191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/518251685384493191'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/10/uml-usecase-actor-activity.html' title='UML Use Case Diagrams – Modeling the System Functionality'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_aUOgqE3fGXc/SuSPK53rSLI/AAAAAAAABa8/0AV-koyGh3Y/s72-c/image_thumb%5B8%5D.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-1392722062245808428</id><published>2009-09-04T09:52:00.001+03:00</published><updated>2009-09-27T02:08:18.752+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>UML Deployment Diagrams – Modeling the System Physical Architecture</title><summary type='text'>In the previous post we saw how component diagrams can be used to model the logical architecture of a system. In this post we’ll see how deployment diagrams are used to model the physical architecture of a system; we’ll start from the most simple use of the deployment diagram in which we only present the nodes and their inter-relationships, and complete the picture by including the components and</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/1392722062245808428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/09/uml-deployment-component-diagrams.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/1392722062245808428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/1392722062245808428'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/09/uml-deployment-component-diagrams.html' title='UML Deployment Diagrams – Modeling the System Physical Architecture'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_aUOgqE3fGXc/SqC5Ae6qVGI/AAAAAAAABW0/yI3dbSE7UT0/s72-c/image_thumb2.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-3556101923007852305</id><published>2009-08-22T20:00:00.001+03:00</published><updated>2009-12-09T02:02:10.232+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>UML 2.0 Component Diagrams – Modeling the System Logical Architecture</title><summary type='text'>In UML 2.0 Component diagrams are used to model the logical architecture of a system by showing the system high level components and their inter-relationships. In the next post I will show how components are used in deployment diagrams to model the physical architecture of a system.       A component is an encapsulated unit within a system which provide one or more interfaces. When using </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/3556101923007852305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/08/uml-20-component-diagrams.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/3556101923007852305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/3556101923007852305'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/08/uml-20-component-diagrams.html' title='UML 2.0 Component Diagrams – Modeling the System Logical Architecture'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/SpAj_82qfqI/AAAAAAAABVI/pmH82fNAXPs/s72-c/image_thumb2%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-4259154511712025535</id><published>2009-08-02T02:51:00.001+03:00</published><updated>2011-05-22T16:50:55.775+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVXX'/><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>MVVM for .NET Winforms – MPV-VP (Model View Presenter - View Model) Introduction</title><summary type='text'>This post introduces a variation of MVP design pattern called MVP-VM, which is the windows forms (winforms) equivalent of WPF MVVM. The MVP-VM (Model View Presenter – Model View) pattern is a tailor made solution for winforms applications that require full testing coverage and extensively use data binding for syncing the presentation with the domain model.  MVVM (Model View View Model) introduces</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/4259154511712025535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/08/mvp-mvvm-winforms-data-binding.html#comment-form' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4259154511712025535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4259154511712025535'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/08/mvp-mvvm-winforms-data-binding.html' title='MVVM for .NET Winforms – MPV-VP (Model View Presenter - View Model) Introduction'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_aUOgqE3fGXc/TNwqJktUMJI/AAAAAAAAB8g/qdCcE8kazjE/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-8342612051822715385</id><published>2009-07-10T07:05:00.001+03:00</published><updated>2011-05-02T17:52:07.075+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Multicast Application with Multihomed Support (C# .NET Sample)</title><summary type='text'>In the previous post we’ve reviewed the multicast addressing technology and examined some of its pitfalls.  In this post we’ll dive through the implementation of a simple application that allows sending and receiving multicast data over the LAN, while enabling the selection of the network interfaces (IPEndPoint) through which the multicast traffic will be sent and received.   As illustrated in </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/8342612051822715385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/07/multicast-igmp-c-code-sample-net.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/8342612051822715385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/8342612051822715385'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/07/multicast-igmp-c-code-sample-net.html' title='Multicast Application with Multihomed Support (C# .NET Sample)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_aUOgqE3fGXc/Sla9lgXIGdI/AAAAAAAAArA/bjWbGJSjCk4/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-46752443618514211</id><published>2009-07-07T17:39:00.001+03:00</published><updated>2010-11-07T04:10:13.436+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Multicast Addressing Pitfalls</title><summary type='text'>The IP multicast model has been described as follows: “You put packets in at one end, and the network conspires to deliver them to anyone who asks”. That sounds pretty simple indeed, but as you spend more time with applications that deliver multicast services you find that in many cases you will ‘put packets in at one end, look at the network protocol analyzer, and see nothing that you expect’. </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/46752443618514211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/07/multicast-ip-udp-igmp-multi-homed.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/46752443618514211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/46752443618514211'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/07/multicast-ip-udp-igmp-multi-homed.html' title='Multicast Addressing Pitfalls'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_aUOgqE3fGXc/SlNd8zRW8II/AAAAAAAAAqI/fKgT9aGyt9k/s72-c/image_thumb6.png?imgmax=800' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-5414624817013034544</id><published>2009-06-11T20:16:00.001+03:00</published><updated>2010-11-07T04:08:06.682+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi Threading'/><title type='text'>.NET CLR Thread Pool Internals</title><summary type='text'>In the previous post we saw how applications that need to scale up can utilize the Task Parallel Library and the improved CLR 4.0 thread pool in order to optimize the scheduling of their massive amount of fine grained, short living tasks.  In this post we’ll dive through the implementation of the CLR thread pool in an attempt to understand the way in which it optimizes the creation and </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/5414624817013034544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/06/net-clr-thread-pool-work.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/5414624817013034544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/5414624817013034544'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/06/net-clr-thread-pool-work.html' title='.NET CLR Thread Pool Internals'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_aUOgqE3fGXc/SjFGc-GipQI/AAAAAAAAAdM/qtUdHYfwV3s/s72-c/image_thumb%5B8%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-927990182559805676</id><published>2009-06-02T19:17:00.001+03:00</published><updated>2009-09-22T16:04:37.864+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='Multi Threading'/><title type='text'>UML Activity Diagram – Modeling Parallel Applications</title><summary type='text'>Activity diagrams are used to model the behaviors of a system, and the way in which these behaviors are related in an overall flow of the system. In simple terms, they show system-wide and component-wide workflows.   This post introduces an approach for modeling parallel applications by utilizing activity diagrams to show parallel workflows and point out the places at which they get synchronized,</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/927990182559805676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/06/uml-activity-diagram-parallel-threading.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/927990182559805676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/927990182559805676'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/06/uml-activity-diagram-parallel-threading.html' title='UML Activity Diagram – Modeling Parallel Applications'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_aUOgqE3fGXc/SiVQZp336sI/AAAAAAAAAbU/VrjWCKOBjJo/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-8848281860390774812</id><published>2009-06-02T08:50:00.001+03:00</published><updated>2009-09-22T16:05:17.540+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>UML Sequence Diagram: Interaction Fragment (Alt, Opt, Par, Loop, Region)</title><summary type='text'>A common issue with sequence diagrams is how to show conditions and iterations. Indeed, the activity diagram is more appropriate to model control logic that involves conditions, loop etc, but in practice, most developers prefer to stick with the sequence diagram to show how objects interact together with the control logic involved.     &lt;!--
google_ad_client = "pub-5348403345358173";
/* 728x90, </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/8848281860390774812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/06/uml-fragment-alt-opt-par-loop-region.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/8848281860390774812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/8848281860390774812'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/06/uml-fragment-alt-opt-par-loop-region.html' title='UML Sequence Diagram: Interaction Fragment (Alt, Opt, Par, Loop, Region)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_aUOgqE3fGXc/SiTBemT0cRI/AAAAAAAAAbE/gP9L2VX9-uY/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-2118423143564862513</id><published>2009-05-28T05:27:00.001+03:00</published><updated>2011-03-02T00:20:09.182+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>UML Class Diagram: Association, Aggregation and Composition</title><summary type='text'>The UML Class diagram is used to visually describe the problem domain in terms of types of object (classes) related to each other in different ways.  There are three primary inter-object relationships: association, aggregation, and composition. Using the right relationship line is important for placing implicit restrictions on the visibility and propagation of changes to the related classes, </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/2118423143564862513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/05/uml-association-aggregation-composition.html#comment-form' title='38 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2118423143564862513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2118423143564862513'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/05/uml-association-aggregation-composition.html' title='UML Class Diagram: Association, Aggregation and Composition'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/Sh32Qhp2UUI/AAAAAAAAAZ8/eUfvcSbRB_Y/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-8754705747072914020</id><published>2009-04-30T00:18:00.001+03:00</published><updated>2010-12-08T10:41:46.160+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi Threading'/><title type='text'>Scaling Up with Task Parallel Library (TPL) and CLR 4.0 Thread Pool</title><summary type='text'>Seeing that the CPU hit the power wall and probably wont go any faster and in the light of the shift to many core machines, software developers are starting to realize that in order to achieve a continuous increase in performances (re-enable the free lunch) there’s no escape from writing programs that scale up to multiple processors, for the most part by introducing more and more parallelism. In </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/8754705747072914020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/04/task-parallel-library-parallel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/8754705747072914020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/8754705747072914020'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/04/task-parallel-library-parallel.html' title='Scaling Up with Task Parallel Library (TPL) and CLR 4.0 Thread Pool'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_aUOgqE3fGXc/Su6uZrV6bkI/AAAAAAAAB2c/mRQrHrmV3Xo/s72-c/image10_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-2534104004181244213</id><published>2009-03-08T01:00:00.001+02:00</published><updated>2010-11-07T04:08:06.683+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Multi Threading'/><title type='text'>Thread Synchronization in .NET (Monitor, ReaderWriterLock, ContextBoundObject, and Immutable Objects)</title><summary type='text'>The are many locking techniques out there that can be applied to synchronize access to a shared resource, making the right decision regarding to which technique to use can make the different between application that scales and application that performs poorly, doesn’t scale or even suffers from lock convoys phenomena's.      Since lock based programming is so error prone, Microsoft introduced the</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/2534104004181244213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/03/thread-safety-using-monitor.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2534104004181244213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2534104004181244213'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/03/thread-safety-using-monitor.html' title='Thread Synchronization in .NET (Monitor, ReaderWriterLock, ContextBoundObject, and Immutable Objects)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/ScOFDXSpv9I/AAAAAAAAAWk/03PXh89N9Ww/s72-c/image_thumb%5B19%5D.png?imgmax=800' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-6948912712224900664</id><published>2009-02-09T07:38:00.001+02:00</published><updated>2010-11-07T04:13:27.544+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Design Patterns: Singleton Facade (with C# .NET Sample)</title><summary type='text'>Facade is an object that provides common access point to the application class library; it is accessible for large set of application objects through well designed API with convenient methods.   When designing a large system with many classes that are spread across many packages it's often make sense to design a facade that is accessible to all application objects and through which application </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/6948912712224900664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2009/02/design-patterns-singleton-facade-with-c.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/6948912712224900664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/6948912712224900664'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2009/02/design-patterns-singleton-facade-with-c.html' title='Design Patterns: Singleton Facade (with C# .NET Sample)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_aUOgqE3fGXc/SY_BM9BIYUI/AAAAAAAAAV0/B9bH7cO7Fd8/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-7148033381574316643</id><published>2008-12-15T01:42:00.001+02:00</published><updated>2010-11-07T04:13:27.544+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Design Patterns: Visitor vs. Strategy (with C# .NET Sample)</title><summary type='text'>Both visitor and strategy design patterns offer a way of separating an algorithm from an object, in this post we'll review the implementation of the patterns in a simple car wash application and try to figure out in which cases each pattern should be applied.     Basic Object Model  The Car object is composed out of wheel, engine and body, each implements ICarElement.      As for now, we know </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/7148033381574316643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/12/design-patterns-visitor-vs-strategy.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7148033381574316643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7148033381574316643'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/12/design-patterns-visitor-vs-strategy.html' title='Design Patterns: Visitor vs. Strategy (with C# .NET Sample)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_aUOgqE3fGXc/SUWZtLnXjVI/AAAAAAAAATY/q2fp8idtenM/s72-c/image_thumb9.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-27067135499784282</id><published>2008-11-05T02:12:00.001+02:00</published><updated>2010-12-08T11:46:20.821+02:00</updated><title type='text'>Developing a Visual Studio Custom Tool</title><summary type='text'> This post contains generic code that's ready for use.  The code was tested and debugged.  Full solution is available at the end of the post.  This post will walk you through the entire process of creating and registering a 'Custom Tool' for visual studio .NET.  A 'Custom Tool' can be attached to any xml file within your C# project (csproj) - once attached, it creates nested .cs file within which</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/27067135499784282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/11/developing-custom-tool-for-visual.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/27067135499784282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/27067135499784282'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/11/developing-custom-tool-for-visual.html' title='Developing a Visual Studio Custom Tool'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_aUOgqE3fGXc/SRDk_S2SEBI/AAAAAAAAAQ4/UDcPGkIvNpE/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-7824397798114115767</id><published>2008-10-29T13:50:00.001+02:00</published><updated>2010-11-07T04:13:27.545+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVXX'/><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Model View Presenter (MVP) Design Pattern with .NET - Winforms vs. ASP.NET Webforms</title><summary type='text'>    MVP implementation for .NET desktop/smart-client (winforms) applications can take the form of Supervising Controller or Passive View. The main difference between the patterns is that 'Supervising Controller' encourages coupling between the View and the Model (via Observer-Synchronization) while 'Passive View' forbids it.   Typically, we'll chose 'Supervising Controller' if we have state full </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/7824397798114115767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/10/model-view-presenter-design-pattern.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7824397798114115767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7824397798114115767'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/10/model-view-presenter-design-pattern.html' title='Model View Presenter (MVP) Design Pattern with .NET - Winforms vs. ASP.NET Webforms'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_aUOgqE3fGXc/STWtuSv6InI/AAAAAAAAARg/nFhucT2K7vI/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-2389304947208564816</id><published>2008-09-12T19:07:00.001+03:00</published><updated>2010-11-07T04:13:27.545+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVXX'/><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>MVP (Model View Presenter) Design Pattern for Web (Client-Server) Applications</title><summary type='text'>The 'Model View Presenter' pattern was published in 1996 by 'Mike Potel' of the Taligent's as IBM's next generation programming model for C++ and Java applications; MVP architecture was based on Smalltalk classic MVC programming model (see above) that was most common at the time and inspired many other libraries and application frameworks. Potel described MVP as unified conceptual programming </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/2389304947208564816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/09/mvp-model-view-presenter-design-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2389304947208564816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2389304947208564816'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/09/mvp-model-view-presenter-design-pattern.html' title='MVP (Model View Presenter) Design Pattern for Web (Client-Server) Applications'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/aviadezra/SMqSpLEQDNI/AAAAAAAAAN4/lq2_zc2r5vM/s72-c/image_thumb31.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-81681423360225075</id><published>2008-07-12T21:40:00.001+03:00</published><updated>2010-11-07T04:13:27.545+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVXX'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Web MVC Design Pattern and ASP.NET MVC Framework</title><summary type='text'>Even though MVC was designed as a framework for desktop applications three decades ago - it fits quite well in web applications which require URL mapping or/and direct handling of http messages (requests/response); this article reviews the implementation of MVC in web applications of that nature and shows how MVC is used as base architecture in ASP.NET MVC Framework. MVC for Desktop Applications </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/81681423360225075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/07/mvc-for-web-applications-and-aspnet.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/81681423360225075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/81681423360225075'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/07/mvc-for-web-applications-and-aspnet.html' title='Web MVC Design Pattern and ASP.NET MVC Framework'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/aviadezra/SHj6djej3tI/AAAAAAAAALY/EzwzcTQob40/s72-c/image_thumb23.png?imgmax=800' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-530629162009309301</id><published>2008-07-05T12:45:00.001+03:00</published><updated>2011-06-17T04:33:06.292+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Sending Typed (Serialized) Messages over .NET Sockets (C# Source Code Included)</title><summary type='text'> Client-server communication via .NET sockets can be established pretty easily by using the 'Sockets communication' package introduced in .NET Socket. The package supports sending/receiving raw array of bytes in two directions and allows multiple clients connection.     In some applications we'll rather transfer structured data in the form of typed messages over raw array of bytes. To accomplish </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/530629162009309301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/07/code-sample-sending-typed-serialized.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/530629162009309301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/530629162009309301'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/07/code-sample-sending-typed-serialized.html' title='Sending Typed (Serialized) Messages over .NET Sockets (C# Source Code Included)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/StmknXc7yLI/AAAAAAAABZ0/6lV7T7GpTL0/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-4931874023916970565</id><published>2008-07-01T20:07:00.001+03:00</published><updated>2010-12-08T11:08:08.500+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>.NET Sockets in Two Directions with Multiple Client Support (C# Source Code Included)</title><summary type='text'> This post contains generic code that's ready for use.  Full solution is available at the end of the post.  Preface This post will walk you through the implementation of a simple client-server application that establishes two way communication via .NET sockets while using infrastructure package that extracts the low level sockets API from the application.   The basic package can be added with an </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/4931874023916970565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/07/code-sample-net-sockets-multiple.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4931874023916970565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4931874023916970565'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/07/code-sample-net-sockets-multiple.html' title='.NET Sockets in Two Directions with Multiple Client Support (C# Source Code Included)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/StmjA8JdiQI/AAAAAAAABZs/eHSZGAw8HTc/s72-c/image_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-3679592425871425605</id><published>2008-07-01T18:22:00.001+03:00</published><updated>2010-12-08T11:06:49.316+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>.NET Sockets - Two Way - Single Client (C# Source Code Included)</title><summary type='text'> This post contains generic code that's ready for use.  The code was tested and debugged.  Full solution is available at the end of the post.  Preface This post will walk you through the implementation of 'client-server' communication package with which single clients can establish communication with the server, send bytes array, and listen to server messages.  This package can be added with </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/3679592425871425605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/07/code-sample-net-sockets-single-client.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/3679592425871425605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/3679592425871425605'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/07/code-sample-net-sockets-single-client.html' title='.NET Sockets - Two Way - Single Client (C# Source Code Included)'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-4319566916776248649</id><published>2008-06-30T23:35:00.001+03:00</published><updated>2010-11-07T04:13:27.546+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVXX'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>MVPC (Model View Presenter Controller) Design Pattern for .NET WinForms</title><summary type='text'>New!!! Power point presentation (ppt) of MVC/MVP/MVPC can be downloaded from here. MVPC (Model View Presenter Controller) design pattern is a variation of Potel's MVP pattern (see above) when its main idea is to promote TDD (Test Driven Development) and yet, support Data Binding. Its concept can be embodied in the infrastructure of rich client applications.   Since starting from .net2.0 visual </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/4319566916776248649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/06/mvpc-model-view-presenter-controller.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4319566916776248649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4319566916776248649'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/06/mvpc-model-view-presenter-controller.html' title='MVPC (Model View Presenter Controller) Design Pattern for .NET WinForms'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/SoejO1zfYOI/AAAAAAAABVA/tqZ7uis4Amc/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-7243663591083740951</id><published>2008-06-29T18:19:00.001+03:00</published><updated>2010-11-07T04:13:27.546+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVXX'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>MVC (Model View Controller) Design Pattern</title><summary type='text'>In this article we will walk through the first two phases in the evolution of MVC. We'll review the Classic MVC pattern that was developed by Trygve Reenskaug for Smalltalk in the late 70's and see how it was evolved into Application Model MVC. MVC Concept  MVC concept is to make a clear division between domain objects (model) and presentation objects (view and controller); it introduces the </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/7243663591083740951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/06/mvc-model-view-controller-design.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7243663591083740951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7243663591083740951'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/06/mvc-model-view-controller-design.html' title='MVC (Model View Controller) Design Pattern'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/aviadezra/SGen7hYs7YI/AAAAAAAAAJw/QpnkUlVHfQo/s72-c/image_thumb9_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-5726050387347683964</id><published>2008-06-22T03:17:00.001+03:00</published><updated>2011-04-14T22:11:34.073+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Patterns of Enterprise Application Architecture (PeAA) and .NET Framework</title><summary type='text'> PowerPoint presentation is now available for download  - PeAA – Patterns of Enterprise Application Architecture.ppt .NET 2.0+ typed DataSet is a combination of Table Module, Unit of Work, Table Data Gateway and Metadata Mapping design patterns.  If you are an architect that is somewhat familiar with .NET technologies - you should know just what I mean.  If you don't - you are in for a treat.  </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/5726050387347683964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/06/patterns-for-enterprise-applications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/5726050387347683964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/5726050387347683964'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/06/patterns-for-enterprise-applications.html' title='Patterns of Enterprise Application Architecture (PeAA) and .NET Framework'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-2976158948973750630</id><published>2008-06-20T04:06:00.001+03:00</published><updated>2010-12-08T10:46:57.638+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>.NET Remoting Events (with C# Code Sample).</title><summary type='text'> This post contains generic code that's ready for use.  Full solution is available at the bottom of the post.  This post will walk you through the implementation of a simple client-server application that establishes remoting communication in two directions while using infrastructure components that extract the common remoting related tasks from the application.   Introduction Establishing </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/2976158948973750630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/06/code-snippets-remoting-client-server_19.html#comment-form' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2976158948973750630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/2976158948973750630'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/06/code-snippets-remoting-client-server_19.html' title='.NET Remoting Events (with C# Code Sample).'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_aUOgqE3fGXc/StiBidnnSQI/AAAAAAAABZk/YZkb176361k/s72-c/image_thumb%5B6%5D.png?imgmax=800' height='72' width='72'/><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-7717336372069979350</id><published>2008-06-19T21:48:00.001+03:00</published><updated>2010-12-08T11:05:27.134+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>One Way .NET 2.0 Remoting (with source code).</title><summary type='text'> This post contains generic code that's ready for use.  The code was tested and debugged.  Full solution is available at the end of the post.  Preface In this post you can find all the code that you need in order to establish remoting communication in one direction (from client to server). While establishing one way inter process communication via remoting is fairly simple, things get pretty </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/7717336372069979350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/06/code-snippets-remoting-client-server.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7717336372069979350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/7717336372069979350'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/06/code-snippets-remoting-client-server.html' title='One Way .NET 2.0 Remoting (with source code).'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-3804619615233139802</id><published>2008-06-07T03:29:00.001+03:00</published><updated>2010-12-08T11:03:57.460+02:00</updated><title type='text'>Data Binding of Business Objects in Visual Studio .NET 2005/8</title><summary type='text'>Introduction This article reviews the way in which .NET Framework enables developers to data bind business objects to the UI at design time, much needed feature that is new to visual studio 2005.  It will walk you through a step by step tour, starting from the design time binding of typed DataSet's, through binding of simple data objects, to binding of complex business objects that were designed </summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/3804619615233139802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2008/06/binding-domain-objects-in-visual-studio.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/3804619615233139802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/3804619615233139802'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2008/06/binding-domain-objects-in-visual-studio.html' title='Data Binding of Business Objects in Visual Studio .NET 2005/8'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/aviadezra/SFLowwcf8OI/AAAAAAAAAG4/Jl0nVi4dhDc/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4261493623714341980.post-4192190202759444363</id><published>2007-07-17T20:38:00.000+03:00</published><updated>2010-11-07T04:13:27.547+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVXX'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>Twisting the MVC Triad - Model View Presenter (MVP) Design Pattern</title><summary type='text'> In this post we’ll review the way in which MVP (Model View Presenter) design pattern evolved from Smalltalk’s old fashion 'Classic MVC' and 'Application Model MVC' patterns (see above) and the way in which it has developed and varied during the years that followed. Hopefully, after reviewing the pattern and its variations against its MVC predecessors we'll be able to distinguish MVP from MVC and</summary><link rel='replies' type='application/atom+xml' href='http://aviadezra.blogspot.com/feeds/4192190202759444363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aviadezra.blogspot.com/2007/07/twisting-mvp-triad-say-hello-to-mvpc.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4192190202759444363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4261493623714341980/posts/default/4192190202759444363'/><link rel='alternate' type='text/html' href='http://aviadezra.blogspot.com/2007/07/twisting-mvp-triad-say-hello-to-mvpc.html' title='Twisting the MVC Triad - Model View Presenter (MVP) Design Pattern'/><author><name>aviade</name><uri>http://www.blogger.com/profile/09707070940026784485</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_aUOgqE3fGXc/SvPdkb5mtwI/AAAAAAAABbU/Fa7qtS8bmsY/S220/Aviad.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_aUOgqE3fGXc/TCzxMvhreBI/AAAAAAAAB3g/7Xd05GnDEqg/s72-c/image_thumb%5B12%5D.png?imgmax=800' height='72' width='72'/><thr:total>15</thr:total></entry></feed>
