This page is unmaintained. It may contain out-of-date data, broken links...
French FAQC# Language Specification
mono
IDEs: SharpDevelop, MonoDevelop, Project Rider
IoC Container Benchmark - Performance comparison
Libraries
- PostSharp
- AutoMapper
- FileHelpers: read/write fixed length/delimited records files
- EPPlus🚫: writes Excel files in Open Office XML format (xlsx)
- Polly: resilience strategies in a SOA architecture
personal notes
Articles and videos
- .NET Delegates: Making Asynchronous Method Calls in the .NET Environment by (19 August 2001) ► An introduction to delegates and how to call them asynchronously.
- A Perl Hacker's Foray into .NET by (19 March 2002) ► A presentation of .NET for Perl developers.
- Programmers Heaven: C# School by (5 December 2006) ► A book to learn C#.
- Implicit and Explicit Interface Implementations by (13 December 2006) ► The difference between implicit and explicit interface implementations.
- The Beauty of Closures by (2008) ► How to implement closure in C# and a comparison with Java.
- Le mot clé yield et les itérateurs en C# by (28 May 2008) ► A detailed description of
yield. - Inside .NET 4: Meet the BCL Team🗑️ by , , , , , , , , and (21 May 2009) ► Miscellaneous subjects: early access via CodePlex, how to support the multiple .NET languages, code contracts…
- Named and Optional Parameters in C# 4.0🚫 by (2010) ► A good presentation of the feature.
- How Do I: Use Covariance and Contravariance in VS 2010 Part I?🚫 by (2010) ► A description of the limitations of the previous C# versions.
- ↪How Do I: Use Covariance and Contravariance in VS 2010 Part II?🚫 by (2010) ► How to declare covariant and contravariant interfaces and delegates.
- C# 4.0 grammar🚫 by (2010) ► How to navigate the C# hyperlinked grammar.
- Understanding C#: Equality, IEquatable, and Equals()🚫 by (29 September 2010) ► The title says it all.
- How Attributes Can Help You Debug an App — Learn how attribute-driven programming can help debug and maintain your applications much more efficiently🚫 by (16 October 2010) ► Using attributes to define how the debugger displays data (
DebuggerDisplayAttribute,DebuggerBrowsableAttribute, andDebuggerTypeProxyAttribute) and how it steps into methods (DebuggerStepThroughAttributeandDebuggerHiddenAttribute). - Introduction to Tuples in .NET Framework 4.0 by (1 November 2010) ► A short presentation to
Tuple. - Introducing Code Access Security in .NET Framework↓ by (9 December 2010) ► A too short introduction to Code Access Security.
- Introduction to Memory Mapped Files by (16 December 2010) ► A short introduction to
MemoryMappedFile. - .NET Framework: Corrupted State Exceptions by (3 January 2011) ► With .NET 4, corrupted process state exceptions are delivered anymore to managed code.
- .NET Framework: Use Your Own Cache Wrapper to Help Performance↓ by (4 January 2011) ► A very simple code sample to keep cached data in the
HttpContext’s cache and some bad advice: using a static object makes the code difficult to be unit tested. - Demystifying C# Programming's ToString Method↓ by (13 January 2011) ► A little information about
ToString(). The argument on using it to get more readable information in Visual Studio is dubious,DebuggerDisplayAttributeshould be used instead. - C# Back to Basics: Static Constructors by (25 January 2011) ► The title says it all.
- Understanding the Dynamic Keyword in C# 4 by (February 2011) ► An overview of the
dynamickeyword with many pointers toward more detailed information. - Anders Hejlsberg: Questions and Answers🗑️ by and (3 May 2011) ► Miscellaneous questions to the C# creator.
- .NET Framework: Collections and Generics↓ by (23 June 2011) ► This presentation of generics is much too short, unclear, and contains some errors (e.g. the boxing/unboxing definition).
- Jon Mccoy - Hacking .Net Applications: The Black Arts↓ by (6 June 2012) ► The guy is probably good technically, but the demos are unprepared and unclear, the speech about hacking vs. defending yourself is non-understandable…
- The New Read-Only Collections in .NET 4.5 by (8 August 2012) ► A quick presentation of
IReadOnlyList,IReadOnlyDictionaryandIReadOnlyCollection. - Using NRefactory for analyzing C# code by (11 August 2012) ► A very technical introduction to NRefactory.
- Understanding .NET Using Read-Only Collections — Even if you're not working in the Microsoft .NET Framework 4.5, .NET provides you with a way to create a read-only collection or to convert an existing List into a read-only collection. by (24 April 2013) ► How to implement a read-only list in .NET 4.0.
- Microsoft Enterprise Library helps .NET developers be more productive — The Microsoft Enterprise Library offers reusable software components to assist with building .NET applications. Learn how to contribute to one or more of its projects. by (28 November 2013) ► A short presentation of Microsoft Enterprise Library.
- What's New In .NET 2015🗑️ by (12 November 2014) ► .NET Native, new ASP.NET and Roslyn.
- The IsNullOrWhiteSpace trap↑ by (18 November 2014) ►
string.IsNullOrWhiteSpaceandstring.IsNullOrEmptyare dangerous, they tend to make developers handle null and blank strings the same way, while, most often, this should not be the case. - Caching Regular Data Benefits Regular Programs, Too by (26 August 2015) ► A very simple example of using
System.Runtime.Caching. - Project Rider — C# IDE by (13 January 2016) ► JetBrains announces its own C# IDE.
- Project Rider by (13 January 2016) ► The Project Rider announcement during NDC London.
- Treating warnings as errors to help prevent technical debt🚫 by (3 February 2016) ► Configuring projects so warnings are treated as errors except for using a method flagged with the
Obsoleteattribute. - Technical Steering Group by (31 March 2016) ► Microsoft creates a C# Technical Steering Group and Red Hat, JetBrains and Unity are joining it.
- Constructor Injection with the Unity Container by (27 September 2016) ► A much too short and basic introduction to Unity.
- Replace a Running Application with a New Version by (15 December 2017) ► How a program can replace its own file.
- What's behind the hype about Blazor? by (26 February 2020) ► A short presentation of Blazor.
- Write Once, Run Everywhere with .NET and the Uno Platform — Right now, in Visual Studio, you can create a solution that takes a single UI with its code and shares it across Windows, Android, macOS, iOS and web browsers. It's not a perfect cross-platform solution (yet), but it's here now. by (30 June 2020) ► Some information (mostly details on creating a project in Visual Studio) about Uno.
- History
- 3.0
- Introduction to C# 3.0↑🚫 by (27 September 2007) ► Automatic properties, implicitly typed variables, object initialisers, collection initialisers, LINQ & anonymous types, lambda expressions, and extension methods.
- 5.0
- C# 5.0: More Than Just Async by (1 November 2012) ► The caller information attributes (
CallerMemberName,CallerFilePathandCallerLineNumber), fixingforeachand LINQ closures, and fixing the evaluation order of named and positional arguments.
- C# 5.0: More Than Just Async by (1 November 2012) ► The caller information attributes (
- 6.0
- The Future of C#🗑️ by and (29 May 2014) ► Roslyn and some new C# 5 features.
- What's New In C# 6.0🚫 by (12 November 2014) ► A quick presentation of the C# 6 features (only syntactic sugars), the same as than the next article.
- Top 10 C# 6.0 Language Features by (10 December 2014) ► The title says it all.
- 7.0
- The Future of C# – Mads Torgersen & Dustin Campbell by and (27 April 2016) ► A presentation of the features considered for C# 7 and Visual Studio 15.
- The .NET Language Strategy by (1 February 2017) ► The strategy for the future of C#, VB and F#.
- Understanding C# Tuples by (5 April 2017) ► The improvements of
Tuple. - Using C# 7 Pattern Matching↓ by (5 April 2017) ► A very short presentation of C# 7 pattern matching.
- Exploring C# 7
- Exploring C# 7 - Binary Literals by (4 February 2016) ► Binary literals (with the
0bprefix) and using underscore to group digits. - Exploring C# 7 - Local Functions by (5 February 2016) ► Local functions (i.e. functions in functions).
- Exploring C# 7 - Enabling C# 7 Features in Roslyn by (9 February 2016) ► Getting Roslyn from Github, changing its code to enable the new features and compiling it.
- Exploring C# 7 - Pattern Matching by (11 February 2016) ► Two possible syntaxes for doing class matching on an object.
- Exploring C# 7 - Binary Literals by (4 February 2016) ► Binary literals (with the
- 8.0
- 9.0
- Welcome to C# 9.0 by (20 May 2020) ► The features of the new release.
- 3.0
- LINQ
- Introducing C# 3 – Part 4🚫 by (5 August 2008) ► A good introduction to LINQ.
- Expert to Expert: Erik Meijer and Bart De Smet - LINQ-to-Anything🗑️ by , , and (15 October 2008) ► How to implement a LINQ-to-whatever interface.
- LINQ - Beyond Queries by Scott Allen↑🗑️ by (15 April 2010) ► The features that have been introduced with LINQ: extension methods, lambda expressions,
Func<>andAction<>types,Expression<>to create syntax trees, and implicit typing. - Deep Dive into Microsoft ADO.NET Entity Framework🗑️ by and (10 June 2010) ► Some EF4 use examples: class inheritance, mapping a single table to multiple entities, using stored procedures, the repository design pattern, writing unit tests, and improving performance.
- 10 Ways LINQ Can Improve Your C# Programming by (17 December 2010) ► Some common situations where LINQ can be used to get more readable code.
- Entity Framework
- Select N+1 Problem – How to Decrease Your ORM Performance by (18 August 2010) ► How to use eager loading to reduce the number of database queries.
- Entity Framework Enum Support - Code First (EF5 onwards)🚫 by (2012) ► The title says it all.
- Working with Object Context in the ADO.NET Entity Framework — Take advantage of the Object Context in Entity Framework to perform CRUD operations and attach or detach entities.🚫 by (20 January 2012) ► A very short introduction to Entity Framework.
- Entity Framework 7🗑️ by (12 November 2014) ► Support of Windows Phone, Windows Store, ASP.NET 5, .NET Core and non-relational databases.
- Entity Framework & Resolving Team Migration Conflicts🚫 by (18 September 2015) ► How to handle EF merge conflicts when updating the database.
- Practical Entity Framework for C#
- Practical Entity Framework for C#: Explore Entity Framework🚫 by (2010) ► An introduction to Entity Framework.
- Practical Entity Framework for C#: Compiled Queries in Entity Framework by (2010) ► Using
CompiledQueryto compile LINQ to SQL requests. - Practical Entity Framework for C#: Entity Framework for ASP.NET by (2010) ► An introduction to Entity Framework in an ASP.NET application.
- Practical Entity Framework for C#: Stored Procedures in Entity Framework by (2010) ► How to use Stored Procedures from Entity Framework.
- Practical Entity Framework for C#: Paging by (2010) ► Using eSQL’s
skipandlimitkeywords for implementing paging.
- Transactions
- using new TransactionScope() Considered Harmful🚫 by (3 June 2010) ► The title says it all.
- All About TransactionScope by (6 January 2014) ► A presentation of
TransactionScope, with a lot of English mistakes.
- Multithreading
- Inside Parallel Extensions for .NET 2008 CTP Part 1🗑️ by , , , , , and (5 June 2008) ► A presentation of the improvements done in CTP2 on the Task Parallel Library, Parallel LINQ, the new Coordination Data Structures, and the scheduler.
- ↪Inside Parallel Extensions for .NET 2008 CTP Part 2🚫 by , , , , , and (5 June 2008) ► The continuation of the previous video.
- How to Get Started with Multi-Core: Parallel Processing You Can Use🚫 by (24 October 2009) ► A short overview of
Task. - How to Parallelize Your Application - Part 1 Why Do It?🗑️ by (11 March 2010) ► The very familiar explanation of why applications now need to be multithreaded: CPUs cannot have a higher frequency, so they have an increasing number of cores instead.
- ↪How to Parallelize Your Application - Part 2 Threads v Tasks🗑️ by (11 March 2010) ► The explanation of the differences between threads and tasks.
- ↪How to Parallelize Your Application - Part 3 Using Tasks🗑️ by (11 March 2010) ► A presentation of the three ways to use tasks: imperative task parallelism (using
System.Threading.Tasks), imperative data parallelism (using parallelFor,ForEach,InvokefromSystem.Threading.Tasks.Parallel), and declarative data parallelism (using PLINQ). - Stephen Toub: Inside TPL Dataflow🗑️ by and (2 February 2011) ► The title says it all.
- Asynchronous Programming in .NET: I'll Call You Back by (24 March 2011) ► A too short presentation of three ways to implement multi-threading:
BackgroundWorker,Control.BeginInvoke, and implementing theIAsyncResultinterface. - Understanding Data Parallel in the .NET Task Parallel Library by (29 June 2011) ► An introduction to TPL Data Parallel.
async/await- Mads Torgersen: Inside C# Async🗑️ by and (28 October 2010) ► A description of the
async/awaitnew C# keywords and some of their use. - Stephen Toub: Task-Based Asynchrony with Async🗑️ by and (28 October 2010) ► Another presentation, more detailed, of the same subject.
- Rx Update: Async support, IAsyncEnumerable and more with Jeff and Wes🗑️ by , , and (15 November 2010) ► The relation between
async/awaitand Rx, and some other Rx news. - Mads Torgersen: Visual Studio Async CTP (SP1 Refresh) Overview🗑️ by and (13 April 2011) ► CTP2 running on Windows Phone, support of non-US and Express Visual Studio, the miscellaneous origins of
await… - Stephen Toub: Async Update - Technical Overview and Building Awaitable Types🗑️ by and (15 April 2011) ► A status of
asyncin CTP2: whereasynccannot be used, some implemented optimisations, how to create awaitable types… - Lucian Wischik: Async Compiler - Bug Fixes, Updates and Core Improvements🗑️ by and (19 April 2011) ► Description of some CTP1 bug fixes, safe and unsafe uses of
await, what will have to be changed from CTP to the next Visual Studio release, exceptions,unsafecode… - Understanding a Simple Async Program by (26 June 2012) ► The title says it all.
- Mads Torgersen: Inside C# Async🗑️ by and (28 October 2010) ► A description of the
- Code Contracts
- Better code with C# code contracts🚫 by ► A good short overview of Code Contracts.
- Thomas Ball - Advances in Code Contracts for .NET by (6 June 2012) ► A presentation of Code Contracts, how to use them with Pex, their improvements with Roslin…
- Code Contracts User Manual (14 August 2013) ► The title says it all.
- Code Contracts is the next coding practice you should learn and use🚫 by (18 December 2013) ► Some proselytism on Code Contracts, but ideas are not well structured.
- ASP.NET
- IIS and ASP.NET: The Application Pool by (6 August 2003) ► A presentation of IIS Application pool.
- Model View Presenter🚫 by (27 January 2008) ► A presentation of the MVP design pattern implementing in C# and the fact that it enables easy unit testing.
- ASP.NET MVC Music Store by (June 2010) ► An introduction to MVC using C# (the last part is botched).
- Creating Custom HTML Helpers (June 2010) ► Two ways to create an HTML helper: using a static method and importing its namespace, or adding an extension method to the
HtmlHelperclass. - Introducing IIS Express by (29 June 2010) ► A new Web Server trying to provide the power of IIS and the simplicity of the ASP.NET development server.
- Intro to ASP.NET MVC by (14 August 2010) ► Another introduction to MVC using C#.
- Controlling our ClientIDs in ASP.NET 4 (6 December 2010) ► Using the
ClientIDModeproperty to control how ASP.NET generates the HTML IDs. - Shave Time Off your Development with ASP.NET MVC Razor by (20 January 2011) ► An introduction to Razor, a new view engine.
- Pragmatic JavaScript, jQuery & AJAX with ASP.NET🗑️ by (12 April 2011) ► Some information about using jQuery in ASP.NET and a demo of using SQL Server Notification Services to implement a Comet application.
- Brad Wilson - Microsoft's Modern Web Stack, Starring ASP.NET Web API by (7 June 2012) ► A demo with Knockout (for MVVM on the Browser side), Web API (for generating and consuming the data on the Server side), and SignalR (for persistent connection).
- Posting Data to ASP.NET Sites with the ASP.NET Web API by (7 September 2012) ► How to handle a HTTP POST.
- Build an ASP.NET JavaScript Generator by (1 November 2012) ► How to generate JavaScript on the server: using
ClientScriptManagerto register a JavaScript file and to declare an array, adding an event handler, and using T4 for a parametrised JavaScript generation. - Displaying Real Time Data using HTML5 and ASP.NET by (7 February 2013) ► How to use HTML 5’s Server Sent Events in ASP.NET.
- Brock Allen - OWIN and Katana: What the Func? by (3 June 2014) ► An introductions of the OWIN standard, the Katana implementations, and coding some simple samples.
- ASP.NET 5🗑️ by (12 November 2014) ► No more compilation, .NET framework and libraries packaged with the application, performance improvements, better cloud support…
- ASP.NET 5 for .NET Framework & .NET Core🗑️ by (12 November 2014) ► Running ASP.NET on .NET Framework and/or .NET core.
- Web Forms 4.6🗑️ by (12 November 2014) ► Support HTTP 2, integration with Roslyn, and asynchronous model binding.
- Getting Started with ASP.NET MVC 5 by (28 May 2015) ► A tutorial of MVC5 with EF6.
- What is DNX? by (30 July 2015) ► A basic introduction to DNX finishing with an advertisement for Red Gate products.
- Azure
- Create an ASP.NET web app in Azure App Service🚫 by (10 August 2015) ► A step by step explanation on how to build and publish an ASP.NET application in Azure from Visual Studio.
- Office interoperability
- COM Interop and Office in C# 4.0🚫 by (2010) ► COM interface is simplified with named optional arguments,
dynamic, and indexed properties. - Convert Visual Basic for Applications Macro to C# 4.0 by (2010) ► How to translate a macro from VBA into C#.
- COM Interop and Office in C# 4.0🚫 by (2010) ► COM interface is simplified with named optional arguments,
- Roslyn
- The Roslyn Project - Meet the Design Team🗑️ by , , , , and (16 November 2011) ► A presentation of the Roslyn project: the new C# and Visual Basic compilers.
- 10 Questions, 10 Answers on Roslyn by (20 March 2012) ► Some information about Roslyn.
- .NET Compiler Platform ("Roslyn") for the Rest of Us by and (24 June 2014) ► Some information about Roslyn: some refactoring tools in VS 2014 CTP (these tools exist in some other IDEs for years…), better C#/VB integration…
- Roslyn Code Analysis in Easy Samples (Part 1) — Describe Roslyn code analysis functionality providing easy samples by (11 January 2015) ► A simple example demonstrating how to get information on a class, a member or an attribute.
- Yet Another Language Geek
- Continuation-Passing Style by (22 December 2007) ► The application of Continuation-Passing Style to C#.
- The Marvels of Monads by (10 January 2008) ► An introduction to Monads in C#.