Materials From My SDP 2014 Sessions and Workshops

July 6, 2014

one comment

This year’s first SDP has been a huge success, with over 1,200 developers signed up for a huge variety of workshops and talks. The snow didn’t keep me from getting to Tel-Aviv this time, and I enjoyed the conference atmosphere, the talks, and some great conversations.

View from one of the SDP rooms. Really hard to stay focused on developer stuff :)

View from one of the SDP rooms. Really hard to stay focused on developer stuff ๐Ÿ™‚

I’m also VERY MUCH behind on emails and everything else that isn’t directly related to the conference — so it’s going to take me a while to recuperate. In the meantime, here are the materials from my two talks and two workshops at the SDP:

Improving .NET Performance

[Slides and demos]

I lost count of just exactly how many times I have delivered this workshop already. I keep tuning and adjusting it ever so slightly, but this time (with 85 people signed up for the workshop!) I decided to change the workshop’s focus considerably. Instead of focusing on development-time performance measurement with tools like the Visual Studio profiler, I spent more time on ETW (Event Tracing for Windows) and how it can help diagnose a variety of performance problems. Almost half of the day was dedicated to ETW, xperf, WPA, and PerfView — and we saw how to chase high-CPU issues, memory leaks, excessive allocations, and premature thread creation with tools that work just as well in the production environment.

I think this version of the workshop went really well, and people seemed to be very happy realizing that a small set of free tools can diagnose a variety of performance issues — in production. If you haven’t given PerfView a spin yet, I recommend you do so: there’s a bunch of really nice videos on Channel 9 and built-in help when you run the tool.

Introduction to RavenDB


RavenDB is a .NET NoSQL document database, and I’m really enjoying it whenever I get a chance to use it or show it to people. In this short talk I tried to explain the basics of setting up Raven, performing simple CRUD operations, using indexes, and doing full-text search with query suggestions. There were many great conversations around NoSQL at this year’s SDP — and we included a full NoSQL track with many additional talks covering Couchbase, ElasticSearch, Solr, Hadoop, Spark, and Storm.

State of the Platforms


This is my bi-annual talk for decision makers covering the highlights of what’s new with the Microsoft platforms. I chose to focus on four core areas this time — Azure, .NET, Mobile, and C++. I gave a brief overview of new Azure features such as File Service, Remote App, API Management, and Automation; discussed core CLR improvements including RyuJIT and .NET Native; talked about some of the upcoming new features in C# 6.0; explained the different approaches to mobile development with Xamarin, Cordova, and Windows 8/Phone Universal Apps; and concluded with a few words about the state of C++, Visual Studio “14”, and the direction the C++ standards committee is currently taking.

Making The Most Of C++ 11/14

[Slides and demos]

Although there’s always some hesitation in adding a C++ workshop to a conference mostly dominated by .NET developers, I figured it might be worthwhile to repeat the experiment from our 2012 C++ conference. And it totally paid off — the workshop has sold out 2 months before the conference, and we had to duplicate it — with a total of over 75 C++ developers in attendance.

I spent a lot of time building this workshop, even though we already have a successfulย C++ 11 course and lots of supporting materials. Unlike other times I talked about C++, in this workshop I wanted to highlight the most useful and important C++ 11/14 features AND illustrate how to modernize existing C++ code step-by-step without forcing a complete rewrite. This proved extremely challenging and I had to cherry-pick examples and features to make the workshop as effective as possible.

For example, when discussing C++ 11 smart pointers (unique_ptr, shared_ptr, weak_ptr) I thought it was very important to explain that raw references and pointers aren’t going anywhere, and are perfectly fine to use in most situations — except when you own memory through a pointer and are responsible for deleting it. Similarly, when talking about lambda functions, I wanted to provide lots of motivation by showing how STL algorithms such as transform, count_if, and adjacent_find can be leveraged more effectively by using lambdas.

In Closing…

The next SDP is just around the corner — stay tuned for the final dates announcement and the schedule at the SDP website. We are committed to further improving the conference, attracting an even larger audience, and targeting more topics. See you soon!

I am posting short links and updates on Twitter as well as on this blog. You can follow me:ย @goldshtn

Add comment
facebook linkedin twitter email

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


one comment

  1. Pingback: The .NET Daily #1