Resources for Microsoft Technologies

1) Basic Resources –

a) Code Complete and Fundamentals of Computer Programming with C#

N.B.-> Learn C# by Building a Simple RPG, O’Reilly’s Coding4Fun Text , Channel 9’s Coding4Fun (Toolkit) and Java Projects that will Have You Inspired and Sharpen Your Skills(think and try all these out in .NET and I bet, you will learn a hell lot)

b) C# 6.0 in a Nutshell

N.B. -> Briefly Exploring C# 6.0 New Features

c) C# 4.0 How to

N.B. -> Ben Watson Talks about C#, WCF, Manycore, and Big O

d) C# for Financial Markets

e) C# in Depth

f) .NET 4.0 Generics

g) .NET and COM: The Complete Interoperability Guide

N.B.-> Create a Custom Marshaling Implementation Using .NET Remoting and COM Interop

h) CLR via C#

N.B. -> Customizing the Microsoft .NET Framework Common Language Runtime

i) Metaprogramming in .NET

N.B.-> Probably, the best part about the above text is Chapter 6.Why? Well, it gives insights into building Genetic Algorithms using .NET Expression Trees.

j) Mastering Regular Expressions

k) Programming .NET Components : Design and Build .NET Applications Using Component-Oriented Programming

l) C# Network Programming and Network Programming in the .NET Framework

N.B -> Dynamic vs. Var vs. Object, Creating a .NET Windows Service: Three Different Approaches, Managed Threading Best PracticesUsing Expression Trees in Your APIs, Expression API vs Reflection, Buffer,File and Stream, CLR Inside Out Series , Coding BibliographyValue vs Reference Types in C#, List Passed By Ref2,000 Things You Should Know About C# , .NET Extensions Methods Library , ExtensionMethod.NET , AutoMapperClone with Better Performance, .NET Deep Copy, Improving C# Reflection Performance , Strongly Typed, High Performance Reflection with C# DelegateDynamic Type using Reflection.Emit , Get Drunk on the Power of Reflection.Emit , Destructors in C#(Using the Destructor and IDisposable together) and Dispose Pattern, Understanding Application Domains , Executing Code in a Separate Application Domain Using C# , Loading Native (NGEN) images and its interaction with the GAC, Exploring and Manipulating the GAC, Demystifying the .NET Global Assembly Cache, GAC Phobia, Anything wrong with NOT signing a .NET assembly?, Why sign an assembly , Strong Names , Consuming assemblies that are located in a folder different from the application base folder, How to add DLL search path, In what order are locations searched to load referenced DLLs?, Dynamic-Link Library Search Order, assembly loading from GAC or Bin (Dll in both the bin and the gac, which one gets used?), The Right Way to Version Your Assemblies, Design-Time Code Generation by using T4 Text Templates, How to have an auto incrementing version number, Using T4 templates to manage assembly version information, How do I determine the dependencies of a .NET application?(sometimes very useful to solve GAC related issues), Learning Network Programming in C#, A Complete Impersonation demo in C#, Imperatively Impersonate a User , Understanding WeakReferences in .NET , W is for …Weak Reference , Lambda , Castle’s DynamicProxy, There is no source available for the current location, IsAssignableToGenericType, Exception.Message vs Exception.ToString(), Pass a method with N params as parameter in C#, Chained null checks and the Maybe monad, .NET Remoting Static method Execution, C# For Scripting, Friendly Unique Id Generation, Can attributes be added dynamically in C#?, Change Attribute’s parameter at runtime, Choosing Between DateTime, DateTimeOffset, TimeSpan, and TimeZoneInfo and LinFu Framework – Part I, Part II, Part III, Part IV, Part V and Part VI.

2) Functional Programming –

F# Books and Tutorials

N.B. -> F# Performance in Scientific Computing, Functional Programming for Everyday .NET Development, F# Programming wiki , MSDN – Real World Functional Ppogramming , Functional C# , FC# – Internal Functional DSL to C# 3.0 , .NET Functional Programming Series , FSharp.ML-industry needs(Machine Learning For .NET) and Functional Programming Bibliography

3) Dynamic Programming –

a) Pro DLR in .NET 4.0

b) DLR Project (The documentation provided, is a really good read)

c) IronPython in Action, Pro IronPython and Professional IronPython

d) IronPython Project and IronRuby Project

N.B. ->  Usage in Private ReflectionDynamic XElement Wrapper, LINQ to CSV using DynamicObject , Dynamic Method Articles , Grokking the DLR, Scripting ASP.NET MVC Views Stored In The Database

4) Concurrent Programming –

Concurrency in C# Cookbook and CLR via C# (last 5 chapters)

N.B.->  Pro Asynchronous Programming with .NET, Parallel Programming with Microsoft .NETIntroduction to RxBest Practices in Asynchronous Programming, Best Practices for c# async/await, Building Parallel Algorithms, Introduction to Async/Await on ASP.NET, Async in C# 5.0, Multithreading in C# 5.0 Cookbook , Threading in C# , C# 2008 and 2005 Threaded Programming, Seven Concurrency Models in Seven Weeks: When Threads Unravel, Patterns for Parallel Programming – Understanding and Applying Parallel Patterns with the .NET Framework 4Articles on Parallel Programming with the .NET Framework 4Parallel Programming in the .NET Framework , A Tour through the Parallel Programming Samples for .NET 4 , Specialized Task Schedulers in .NET 4 , Practical Parallel and Concurrent Programming , Professional Parallel Programming with C#: Master Parallel Extensions with .NET 4 , Pro .NET 4 Parallel Programming in C# , Parallel Processing and Concurrency in the .NET Framework , Concurrent Programming on Windows , Patterns for Parallel Programming , Introduction to Parallel Computing , Developing Parallel ProgramsDeveloping Parallel Programs – A Discussion of Popular Models , Work Stealing in .NET 4.0 ,Lock Free Work Stealing Queue , Understanding the volatile modifier in C# , Volatile keyword in C#, Volatile and MemoryBarrier, TransactionScope with Parallel Extensions, Transactions across a set of Parallel Tasks, Participating in TransactionScopes and Async/Await Going deep into the abyss, Get TransactionScope to work with async / await, Asynchronous Repositories, Mocking async repository calls, The Joy of Rx: Building an Asynchronous API with Rx and IQueryableDataflow Book, Programming Reactive Extensions and LINQ, Reactive Extensions Projects and A WebCrawler demonstrating TPL Dataflow

5) ORM – Entity Framework Code First (Learning .NET Data Development in general) –

a) But Why the Hell do you need an ORM?

b) Getting Started with EF using MVC Series

N.B-> EF 5.x DbContext Fluent Generator for C#

c) Associations in EF Code First

d) Entity Framework 4.1: Expert’s Cookbook

e) Programming Entity Framework: Code First

f) Programming Entity Framework : DBContext

g) Writing an Entity Framework Data Provider

h) Entity Framework Metadata –

Querying Entity Framework Metadata

MetadataWorkspaceExtensions Class

Extended Entity Framework

N.B. -> Using EF Code First, for BulkInsert use a EF wrapper over SqlBulkCopy while for BulkUpdate and BulkDelete use a EF wrapper over table valued parameter. But beware of the fact that while using table valued parameter the order of columns in a datatable need to be in the exact same order as the UDDT as no column mapping is applied.Also, if you are using DBContext directly or ObjectContext(e.g converting a DBContext object to ObjectContext object) and it’s a multi-threaded application,please use it within some lock (or better use a per-thread DBContext/ObjectContext object), since DBContext/ObjectContext is not thread-safe. Whole EF is THREAD- UNSAFE.My personal preference is to use per-thread,per-BoundedContext(can be small functional modules as well) DBContext objects since this approach safe-gaurds multi-threading issues and also gives better performance.

N.B. -> An ADO.NET Tip for highly Concurrent Scenario -> Always use connection,command,data reader, data adapter etc objects using “using” construct of C#. Always open the connection only when u really hit the DB e.g calling DataAdapter.Fill,ExecuteNonQuery etc.So just before doing the actual DB hit open the connection and just after that close it – you can create connection,command etc in that order but technically, you should open any connection just before doing any actual DB hit and just after that close it.Also if there are methods like Get,Save etc in your DAL, use separate set of connection,command etc objects for each method.

Also, one can refer the Extensions Methods Library having very good EF6+ support.

i) Entity Framework Performance Considerations

j) Entity Framework Code First Samples

k) ADO.NET Entity Framework : Stored Procedure Customization

N.B. -> Stored Procedures with Multiple Active Result Sets

l) Entity Framework and Pessimistic Concurrency

N.B.-> DB Concurrency Control with .NET and 6 ways of doing locking in .NET (Pessimistic and optimistic)

m) OData Programming Cookbook for .NET Developers

N.B. -> OData by Example

n) A Tip for Writing Entity Framework Queries Using Datetime Values

N.B. -> Difference between SQLFunctions and EntityFunctions

o) Async Entity Framework Queries and Async database polling with EntityFramework 5

p) Testing EF with a mocking framework

6) Unstructured Data HandlingStructured, semi structured and unstructured dataA Relational Approach to Incrementally Extracting and Querying Structure in Unstructured Data, Storing large files in DB, Art of SQL Server FileStream, FileStream and FileTable in SQL Server 2012, Working with Entity Framework Code First and SQL FILESTREAM, Web API File Upload with MS SQL SERVER FileTable, WCF Large Data and Streaming and Crate.IO Use Cases.

7) Enterprise Excel and VBAExcel Development using VBA, VBA Developer’s Handbook, Pro Excel 2007 VBA, Classes in VBA, Calling Sub and Function Procedures, Macros in Excel (VBA), VBA For Smarties, Excel VBA Referencing Ranges, VBA (Excel): Find Based on Multiple Search Criteria Without Looping, Cheap trick for imitating function pointer/delegate mechanism in VBA, Evaluate Functions and Formulas FunHigher Order Functions in VBA, Application.Run, A ByRef argument with the Application.Run method, Application.Evaluate Method, Calling XLAM/XLL/Automation UDFs from VBA, Why does VBA Find loop fail when called from Evaluate?, Excel’s Application.Evaluate() does not consider all data types, How to use Evaluate to invoke an Excel UDF programmatically, Complex Excel Formula in terms of Final, Excel Solver AddIn, Using Solver in Excel VBA, Error Handling via an Error Class, VBA Excel Error HAndling, VBA Error Handling, Error Handling (Global), How To Write Errors to Log File, VBA Multithreading, Multithreaded VBA, VBA Unit Testing

8) Other Good Resources in general –

a) Pro Dynamic .NET 4.0 Applications

b) Windows Powershell in Action

N.B. -> Why Powershell? and MS Script Centre

c) Manning – Continuous Integration in .NET

N.B. -> Continuous Integration in .NET – From Theory to Practice, 2nd Ed.

e) AppFabric for Windows Server

N.B. -> Microsoft Windows Server AppFabric Cookbook and  Pro Windows Server AppFabric

f) Art of Unit Testing

N.B. – Introducing BDDMoq, Fluent AssertionsPex and Moles – Isolation and White box Unit Testing for .NET , Testing Strategies for WCF Services , Microsoft.Activities.UnitTesting , Fake DbConnection for Unit Testing EF Code and Testeroids Unit Testing Framework(can test asynchronous Rx and TPL)

g) Instrumentation and Monitoring – Embracing Semantic Logging, Instrumentation with Semantic Logging Application, Semantic LoggingHangFire, File System Watcher, System Center Monitoring, AVIcode .NET Application Monitoring, Creating a System Monitoring Service in .NET , Monitor and Manage Services on Remote Machines, Monitoring MSMQ Message Queues, AppInsight Performance Analytics, Microsoft Research AppInsight, AppInsight: Mobile App Performance Monitoring in the Wild, The Top 10 Best Web Analytic Tools and Top 30 Web Analytics Tools | Google Analytics Alternative

h) Open Source Projects from Clarius Consulting Labs

N.B. -> MSDN Magazine Issues and Downloads and Microsoft Reference Source

i) XSDToCode – Awesome xsd to code generation plugin for Visual Studio

j) Configuration Transformation Tool and Microsoft Xml Document Transformation

k) NP .NET Profiler

l) Scott Hanselman’s 2014 Ultimate Developer and Power Users Tool List for Windows

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s