Saturday 20 February 2010

All About .NET Threading Synchronization

It's all about concurrency and multi-threading synchronization management and this is a great overview: http://msdn.microsoft.com/en-us/library/ms228964.aspx

1. Locking

2. Signaling

What are WaitHandles?

"Event wait handles allow threads to synchronize activities by signaling each other and by waiting on each other's signals. These synchronization events are based on Win32 wait handles and can be divided into two types: those that reset automatically when signaled and those that are reset manually."

.NET WaitHandles:
  • ManualResetEvent
  • AutoResetEvent
  • EventWaitHandle
  • Mutex
  • Semaphore
ManualResetEvent and AutoResetEvent:
http://www.yoda.arachsys.com/csharp/threads/waithandles.shtml

3. Interlocked Operations

Thursday 18 February 2010

Bidirectional Stateful Solutions

wsDualHttpBinding, TcpListener, netTcpBinding

Sunday 14 February 2010

Asynchronous Programming Design Patterns

Asynchronous Programming Design Patterns:
Asynchronous Programming Model (APM):
Run any Method Asynchronously using IAsyncResult:
Using AsyncResult:
How to Call a Method Asynchronously:

Tuesday 2 February 2010

DebugView using dbgview.exe

"DebugView is an application that lets you monitor debug output on your local system, or any computer on the network that you can reach via TCP/IP. It is capable of displaying both kernel-mode and Win32 debug output, so you don't need a debugger to catch the debug output your applications or device drivers generate, nor do you need to modify your applications or drivers to use non-standard debug output APIs."

Logging And Tracing Solutions

The following are tools that helps you build logging or tracing features in .NET:

Log4Net:
Enterprise Library Logging Application Block:
Common.Logging:
Why not just using standard .NET templates?



Features Comparison (which one to use?):


Caching with Entity Framework

What to Cache?

The first thing you need to ask yourself is that what do I want to cache in my application? What tables or business entities and in what way?

Do I need to cache all tables or just few of them?

How to Cache?

To be continued...