Missed .NET Day on Agentic Modernization? Watch the coding demos and agentic workflow sessions on demand.
.NET Blog
Free. Cross-platform. Open source. A developer platform for building all your apps.
Latest posts
New Task APIs in .NET 4.6
There are several nice API-level enhancements to the Task Parallel Library in .NET 4.6, which you can grab a preview of as part of the Visual Studio 2015 CTP. Task.From* .NET 4.5 had a Task.FromResult method. This method makes it quick and easy to manufacture a new Task for a known result value, and is particularly useful when implementing a Task-returning method to complete synchronously. However, Task didn't expose corresponding methods for creating canceled or faulted tasks; instead, developers needed to manually create such tasks, such as by using a TaskCompletionSource, e.g. public static Task<TResult...
.NET Core Open Source Update
Wow. Just wow. I don’t know of a better way to describe my feelings right now. Open source is probably one of the most energizing projects our team has been working on. It’s been a blast so far and the stream of enthusiastic contributors and interactions doesn’t seem to stop any time soon. In this post, I want to give you a long overdue update on where we are, interesting changes we made, and give an overview of what’s coming next. Read to the end, this is a post you don’t want to miss. A good problem to have: Too many forks to display In the first update on open source I hinted at the fact that we’ve severa...
Making It Better: Updates for ASP.NET 5 in Visual Studio 2015 CTP 5
It's been about two months since we released the first beta of ASP.NET 5, and today we happy to announce that ASP.NET 5 Beta2 is available. For developers using Visual Studio, you'll find great new tools to support and enhance your development process. All ASP.NET developers will be able to take advantage of a new runtime and many product quality improvements. You can download and install Visual Studio 2015 CTP5 by following the link at the top of the http://asp.net/vnext page. If you want to try ASP.NET 5 with an alternate editor or on Mac or Linux, just follow the instructions on our ASP.NET GitHub...
Running ASP.NET 5 applications in Linux Containers with Docker
As a part of our ASP.NET 5 cross-platform efforts, we are actively working on making applications written in ASP.NET 5 easy to deploy and ship on Linux and Mac OS X. A while ago, we have released the first official Docker image by Microsoft: the ASP.NET 5 Preview Docker Image. Docker is an open source project that makes it easier to run applications in sandboxed application containers on Linux. With the ASP.NET 5 Docker image, you can get a base image where the ASP.NET 5 bits are already installed to run on Linux for you. All you need to do is add your application to the image and ship it so it will run in ...
API review process for .NET Core
Happy new year! Three weeks ago we published a proposal for an API review process on GitHub and asked for your feedback. The process is now in-place and documented in our developer wiki. Review process Our primary goal with this review process is to provide a good balance between OSS agility and ensuring high quality APIs. This requires having a centralized body that can continue to review each and every API. Here is how we approached defining the process: GitHub is generally based around the pull-request model. The idea is that contributors perform their changes in their own fork and submit ...
GC ETW Events – 4
GC ETW series - GC ETW Events - Part 1 GC ETW Events - Part 2 GC ETW Events - Part 3 GC ETW Events - Part 4 (this post) Processing GC ETW Events Programmatically with the GLAD Library So you thought it was over, eh? But wait, there is more! My vacation is not over yet! 😀 In the last blog entry I explained the Suspend MSec and the Pause MSec columns in GCStats and how they are calculated. In this entry I’d like to talk about a few other columns. GenX MB, GenX Surival Rate % and GenX Frag % First of all, these are calculated at the end of a GC. The GenX MB column includes the fragmentation in that genera...
GC ETW Events – 3
GC ETW series - GC ETW Events - Part 1 GC ETW Events - Part 2 GC ETW Events - Part 3 (this post) GC ETW Events - Part 4 Processing GC ETW Events Programmatically with the GLAD Library In the last blog entry we looked at a particular GC trigger reason – InducedNotForced GCs. There are 2 other triggered reasons for induced GCs are: InducedLowMemory – GC subscribes to the low memory notification from the OS and when the OS notifies us that “the memory is low on the machine” a GC is induced; or if this is a hosted process and the host indicates we are low on memory, we also induce a GC. I...
GC ETW events – 2
GC ETW series - GC ETW Events - Part 1 GC ETW Events - Part 2 (this post) GC ETW Events - Part 3 GC ETW Events - Part 4 Processing GC ETW Events Programmatically with the GLAD Library Before we continue from where we left off in the last blog entry I wanted to give a performance tip on managed memory analysis. As some of you who have already tried out Perfview you probably noticed it has a Heap Snapshot feature (in the PerfView UI, if you click on Memory\Take Heap Snapshot) which displays you the snapshot of the managed heap, ie, types in the heap and how many instances there are of each type and ho...
GC ETW events – 1
GC ETW series - GC ETW Events - Part 1 (this post) GC ETW Events - Part 2 GC ETW Events - Part 3 GC ETW Events - Part 4 Processing GC ETW Events Programmatically with the GLAD Library A lot of people have mentioned to me that I have not posted anything for a long time. I do realize it and do appreciate being asked to write more. Well, it's end of year and I am starting vacation so I thought I'd write something light that perhaps makes good reading around Christmas time :) Perf counters vs ETW events Perf counters and ETW events, like anything else, each have their pros and cons. In my Defrag To...