Geeks With Blogs


Currently Reading

CLR via C#m
Under The Influence(of code) Abhijeet Patel's blog C#
Maximize your keystrokes before you die
Today’s topic/rant is not a technical topic but very relevant to techies in particular. Someone wise that I respect, one said “You have a finite number of keystrokes left in your hands before you die” and created this. Morbidity aside, this is a true statement. However, the upper and lower limits of the finiteness of your keystrokes is controlled by no one else but you and the choices you make for yourself. “How so?”, you might ask. The short answer is the the nature of the work we do and motivation.By ......

Posted On Friday, July 15, 2016 9:14 PM

Mutexes, Semaphores, Monitors, ReaderWriterLocks, AutoResetEvents & ManualResets oh my!
Mutexes, Semaphores, Monitors, ReaderWriterLocks, AutoResetEvents & ManualResets oh my! Up until a few years ago, mainstream programming for the most part did not involve asynchrony and/or parallelism except for the most performance demanding applications. In the multi core world we live in today async and parallel programming have become common place. Libraries such as TPL which provide first class framework level support and keywords like async/await built on TPL provide language support for ......

Posted On Sunday, July 15, 2012 6:58 PM

MEF 101 - Part2
This is part 2 of a 2 part series exploring the MEF.We covered some of the basics in Part 1 In this part we'll cover the following: Catalogs Recomposition Export Providers Catalogs: Catalogs provide one way for MEF to discover components that it can compose. In it's most basic form it contains a registration of types. A container by itself is just an empty repository. The catalog is the one that collects and returns ComposablePartDefinitions i.e (objects of types that you have registered with MEF) ......

Posted On Sunday, October 30, 2011 3:27 PM

MEF 101 - Part1
The Managed Extensibility framework or MEF is a framework released as part of .NET 4 and Silverlight that provides a mechanism to dynamically compose an application at runtime out of loosely coupled parts and provides a variety of mechanisms to discovering these parts. You can think of this as an implementation of a plugin framework that enables plugging in functionality into a container, based on information available at runtime. The most notable example of a MEF client is the Visual Studio 2010 ......

Posted On Saturday, July 3, 2010 9:03 AM

A simple Dynamic Proxy
Frameworks such as EF4 and MOQ do what most developers consider "dark magic". For instance in EF4, when you use a POCO for an entity you can opt-in to get behaviors such as "lazy-loading" and "change tracking" at runtime merely by ensuring that your type has the following characteristics: The class must be public and not sealed. The class must have a public or protected parameter-less constructor. The class must have public or protected properties Adhere to this and your type is magically endowed ......

Posted On Sunday, April 4, 2010 3:41 PM

Chunking a List - .NET vs Python
Chunking a List As I mentioned last time, I'm knee deep in python these days. I come from a statically typed background so it's definitely a mental adjustment. List comprehensions is BIG in Python and having worked with a few of them I can see why. Let's say we need to chunk a list into sublists of a specified size. Here is how we'd do it in C# static class Extensions { public static IEnumerable<List<T>... Chunk<T>(this List<T> l, int chunkSize) { if (chunkSize <0) { throw ......

Posted On Sunday, March 7, 2010 12:36 PM

Showing Progress in a .NET Console Application
Showing the progress of an operation is trivial in rich client applications using a progress bar control of some sort. But what about .NET console apps? The Console class offers 2 static methods Console.Write and Console.WriteLine to write out to the Console, but any subsequent calls to these methods will write the content out at the current location of the cursor.This doesn't really help when you want the progress percentage to refresh in place instead. The trick is to write out the "\r" character ......

Posted On Sunday, February 21, 2010 10:50 AM

Covariance and Contravariance in C# 4.0
C# 4.0 introduces the notion of Covariance and Contravariance of generic type parameters for interfaces and delegate types. Eric Lippert has put together a bunch of posts that goes into details of the why and how, an excellent read but not for the faint of heart. I would strongly suggest reading these posts to get a firm grounding and a better appreciation of this feature. It took me a while to get my head wrapped around this, especially since none of the VS2010 Betas were not out at the time and ......

Posted On Sunday, January 10, 2010 12:50 PM

T4 template consuming a WCF service
It’s been a while since I’ve blogged since things have been crazy busy. I finally decided to kick myself and do a post so without further ado, the problem at hand: A co-worker of mine asked me whether its possible to dynamically create a type from some data he is receiving from a WCF service (over HTTP). My natural response was, why would you need to do that since Visual Studio creates a proxy from the metadata exposed by the service and the return types would typically be DataContracts. Well, it ......

Posted On Sunday, October 18, 2009 12:06 AM

Why no Anonymous Iterators in C#
Yes I’m a language geek and yes the awesome Eric Lippert is my idol when it comes to anything C# and the CLR, I’ve been following his blog for a long time and recently Eric wrote an awesome series on the how and why of Iterator Blocks. The entire series is very well worth a read, but then again I’d read almost anything Eric writes from why the sky is blue to why the Falkirk Wheel has horns. I had posed a question on this post about why there are no anonymous iterators in C#. Eric provided a very ......

Posted On Monday, August 24, 2009 9:55 PM

Copyright © Abhijeet Patel | Powered by: