Visual Studio 2017 is our best IDE yet. To help you write great code, it’s packed with new Refactorings and Quick Actions, and offers unit testing, debugging, navigation, and code style improvements. It loads solutions faster than ever, and ships with C# 7.3 and the MSVC compiler toolset that conforms to the latest C++ standards.
Having just completed Connect(); // 2015, we thought to take a moment to review everything that’s happened with .NET over the last year, between last year’s and this year’s Connect();. And what a year it’s been! We’ve seen significant developments in the .NET Framework,
Today we’re releasing Visual Studio 2015 Update 1. Let me be the first to thank everyone who installed these earlier releases, provided feedback, and helped us iron out the kinks. [The final release of Team Foundation Server Update 1 is also available today,
Hello everyone! Every month we share some top stories from the previous month, and here’s our round-up for September.
Open-source, cross-platform MSBuild: Continuing the open-source, cross-platform .NET story that is already well underway with .NET Core and the .NET Compiler Platform (“Roslyn”),
Writing a suit of unit tests that exhaustively exercise and validate the logic of the code under test is not easy. It can even be considered too expensive to do at all. Fortunately, the IntelliTest feature shipping in the Visual Studio 2015 Enterprise Edition addresses both concerns: it helps you achieve high code coverage at a fraction of the cost.
In this post I’ll try to answer the most common questions I find on forums and in documentation feedback about C# covariance and contravariance. It’s a big topic for a single blog post, so expect to see a lot of “more information”
Starting with C# 3.0 and Visual Studio 2008, you can use expression trees to get information about objects, types, and members. In this post I’m going to show some examples and explain what benefits you can get by using this technique.
First of all, let’s take a look at the example from one of my previous posts. It creates an expression tree for calculating the factorial of a number.
ParameterExpression value =
ParameterExpression result =
LabelTarget label = Expression.Label(typeof(int));
In the previous post I showed how you can use the new dynamic feature and the ExpandoObject class to add and remove properties at run time, and how this can make your code more readable and flexible than code written with LINQ to XML syntax.
You have probably already heard about the new dynamic feature in C# 4.0 and how it is used to support COM interop. If you haven’t, I strongly recommend reading the following MSDN articles: Using Type dynamic and How to: Access Office Interop Objects by Using Visual C# 2010 Features.