C# Smorgasbord is now Free

Posted by Filip Ekberg on 02 Apr 2018

C# Smorgasbord was first published on July 30, 2012 and was the start of something that I certainly could not have anticipated. At the time I had barely started doing any public speaking at all, nor had I been around the world to lots of interesting conferences.

What initially sparked the idea of writing a book, was when I applied for a job at Spotify, which I didn't get. Just like many others I've always had a hard time proving my skills during interviews, especially when having to code in notepad. As I felt sad having lost the opportunity to work for an extremely interesting company, something sparked inside me, I wanted to prove, not to others, but to myself that I was in fact pretty good at what I do. [...]

The State of C# - What Have I Missed?

Posted by Filip Ekberg on 21 Nov 2017

One of the most popular programming language on the market is getting even better. With every iteration of C# we get more and more features that are meant to make our lives as developers a lot easier. Support for writing (hopefully) better and more readable asynchronous code, being able to do pattern matching, tuples, deconstruction and much more. These are just a few of the many additions to C# that we’ve seen lately.

In this talk I go through how C# has changed, as well as focusing on what's coming in C# 7.1, 7.2, 8.0 and beyond!

The State of C# - What Have I Missed?

Code samples are available on Github.

If you have any questions, or feedback please feel free to leave a comment, send an e-mail or just ping me on twitter!


Play by Play: Xamarin Mobile Development

Posted by Filip Ekberg on 10 Apr 2017

During my visit to NDC London, where I talked about Asynchronous Programming, I also got a chance to record a Play by Play with Lars Klint! The course we recorded gives you an introduction to what it's like to build native mobile applications in .NET, using Xamarin! [...]

Async and Xamarin Talks from Øredev

Posted by Filip Ekberg on 11 Nov 2016

I was honored, to be invited to my first Øredev conference, to speak about two topics that I am very much passionate about. If you've never been to this conference, I can highly recommend checking it out next year. Lots of good talks, conversations and the atmosphere was awesome! [...]

Using OAuth to Secure Your ASP.NET API

Posted by Filip Ekberg on 12 Apr 2016

I'm very excited and proud to announce that my latest course is now live on Pluralsight! This course gives you an introduction to OAuth, OpenId Connect, IdentityServer, and ultimately, how to secure your ASP.NET APIs. I really hope you enjoy the course "Using OAuth to Secure Your ASP.NET API" [...]

Farewell Australia! Moving Back to Sweden

Posted by Filip Ekberg on 02 Mar 2016

After almost three years in Australia, we have decided to move back to Sweden. This has probably been one of the toughest decisions we've had to make, yet. Me and Sofie both have really good jobs, awesome co-workers, a life filled with diving and wonderful weather pretty much 70% of the year. Why would we leave this paradise? It's too far to pretty much anything, especially our family back in Sweden. It came to a point where we either decided to stay forever, and spend our 4 weeks vacation to stress through Europe each year to see our family, or move back and spend our vacation and weekends traveling new places.

What now? After Easter, we're back in Europe and I'm going to run my own business, as a consultant/contractor. I've wanted to run a full time consulting business for a long time, and I finally have the guts to do it. Hopefully it all works out!

We are certainly going to miss Australia, a lot. Anyone that's been here knows how friendly the people are and how welcome you feel everywhere. It will certainly be a culture shock moving back to Sweden, just as it was moving to Australia. This place will always have a special place in my heart, and I've made so many friends for life here so it's certainly not going to take long before we travel back (for a visit!).

Australia, thank you for these wonderful years, we've grown heaps and learnt so much. It's been an amazing journey, and the tech scene has been so inviting and friendly.

It's scary just letting go and pursue something unknown, but at the same time very exciting. Very much looking forward to catching up with friends all over Europe!


Mastering C#

Posted by Filip Ekberg on 05 Nov 2015

In 2013, I published my first Pluralsight course; MSIL for the C# Developer. The aim of this course was to teach you about how a compiler looks at your C# code, and translates that into something else. Understanding the internals of how C# is translated into IL is a good way to master C#. If you're building a car, knowing what an engine looks like on the inside will most certainly make you a better mechanic; although you'll get a long way without it as well. [...]

Getting Started with Asynchronous Programming in .NET

Posted by Filip Ekberg on 14 Aug 2015

I am very happy to announce that my Pluralsight course covering Asynchronous Programming in .NET is now available! In this course, we will cover the way to get started with asynchronous programming in .NET. You will learn how to apply these patterns in new and existing applications and you will see how to avoid the common mistakes. [...]

No More Deadlocks - SSW TV

Posted by Filip Ekberg on 21 Jul 2015

Asynchronous programming can be very difficult, and if done incorrectly it can cause devastating results in your applications!In this talk I introduce asynchronous programming in .NET and talk about a few gotchas that will be handy along the way. I'd also like to take this opportunity to announce that I'm working on my next Pluralsight course that will talk about Asynchronous Programming in .NET. It is definitely an important subject and I hope you'll enjoy both my coming course, and the below presentation. [...]

C# Is The Future - SSW TV

Posted by Filip Ekberg on 20 Jul 2015

Over the past year I've done a few talks on C# 6.0 and the changes that we can expect from the next version of C#. Interestingly enough, each time I've done this talk a bunch of things have changed. Features have been added, features have been put on-hold and most importantly more people have joined the discussions on Github.

I was invited to speak at the Sydney and Canberra .NET User Groups where I talked about how C# is truly a relevant programming language of the future. It's time to embrace it! [...]

Microsoft Azure Traffic Manager

Posted by Filip Ekberg on 10 Jul 2015

Yesterday I was notified on Twitter that the RSS feed for my blog included draft posts. Which is not really ideal since it will contain articles that aren't really ready. I have previously written about how I moved to Sandra.Snow from Wordpress and how much I really enjoy this transition. One of the biggest benefits is that it is open source, this means fixing this bug was rather easy and quick.

Albeit the fix might have been easy and quick, I did run in to some issues with my automatic deployment. Every time I check something in to the git repository, Azure will notice this and start deploying my website. Little did I know that there was another bug, unrelated to the RSS feed getting my drafts, in my deployment script. Luckily for me, I got Microsoft Azure Traffic Manager running on-top of my blog, which means that I load balance between different zones.

The load balancer is configured to run in performance mode so that visitors in US are transferred to the US West location. Meanwhile, EU visitors are transitioned to the EU location and Asia to the Southeast Asia location.

To avoid down-time, I had two options when fiddling around with the fix for the bug.

  1. Clone the Website in one of the locations and setup a staging like environment
  2. Disable one of the locations in the load balancer and use that as a staging environment

Obviously the second option would be cheaper, but it does come at a price: users from that location will experience longer load times. [...]

C# Is The Future

Posted by Filip Ekberg on 28 May 2015

C# is as relevant as always and is definitely something you want to learn! In this talk I did at ANZ Coders, I talk about how C# has changed through history, what it potentially could get in the future and why you want to embrace this lovely programming language.

The point is of course not to alienate any other programming languages, C#, Python, Ruby, JavaScript, F# and many others will be as relevant as they are today in the future. If you take one thing away from this session it should be that C# is living, and it is growing fast. Embrace the future!

Let me know if this was helpful!


Joining Invoice2go

Posted by Filip Ekberg on 20 Apr 2015

As of next week I'm joining Invoice2go as a Senior Software Engineer! For the past 1 year and 8 months I've worked with some of the best people in my career at Readify. I'm truly grateful for the opportunity to move to Australia and work with these amazing people!

For the past 10 years I've worked as a consultant in some way or another and it's been a great journey! I'm super excited to step into a product company and face some really exciting challenges.

Working for Readify has given me a lot of confidence and opportunities to work on myself, which I am eternally grateful for. When moving to Australia I had never done any public speaking in English and it's been exciting to get better and better at this over time. Joining Invoice2go means I will still be living and working in Australia, which is great, the development community here is so friendly and exciting!

I would really like to thank everyone that has attended my sessions, watched my courses, read my book or visited this blog; you are all the reason I love doing what I do. Without your support, I would never have moved to Australia and I would never have had the opportunity to work with these great companies!

My adventure at Invoice2Go starts next week and I am super excited!


Getting Started with Raygun in .NET now on Pluralsight

Posted by Filip Ekberg on 26 Mar 2015

I am very excited to announce that my latest course is now available on Pluralsight! This time I talk about the importance of tracking errors and how to easily track errors using Raygun!

Exactly two years ago, on this very day, I published an article on how to easily add error tracking to your applications using Raygun! Now I am very excited to announce this course on Pluralsight that covers the usage of Raygun in different types of .NET applications.

Watch this course to learn how to track unexpected errors in:

  • Xamarin applications
  • Desktop applications (WPF, Windows Forms, Windows Services)
  • ASP.NET applications

Watch the course on Pluralsight: Getting Started with Raygun in .NET

I hope you enjoy my work on this course, please leave me a comment if you end up watching the course and let me know if it helps you!


Asynchronous Programming in .NET

Posted by Filip Ekberg on 25 Mar 2015

Asynchronous programming have been around for quite some time. Even so it is becoming more and more important! It is surely not an easy topic to master, but in this 1.5 hour session I will do my best to explain the fundamentals to Asynchronous Programming.

After watching this session, I hope that you will have a good understanding how to use asynchronous operations in your code. Be it a WPF, Windows Forms, Xamarin.iOS, Xamarin.Android, ASP.NET or other .NET application! We will of course look at the most common reasons for locking and killing your application.

Slides available below on Slideshare

Let me know if this was helpful to you and if you have questions about asynchronous programming!


When is 1 Not Equal to 1?

Posted by Filip Ekberg on 24 Feb 2015

Not too long ago I noticed a rather interesting question on JabbR that caught my attention:

When is 1 not equal to 1? asked the developer. Loving to solve problems and help others, I started questioning my fellow developer about the details of the problem. The first thought that popped up in my head take us back to my university days when first hearing about NaN (Not a Number), by definition NaN != NaN.

To my surprise the data type was not of a type where NaN is applicable; [...]

C# 6.0 - Null Propagation

Posted by Filip Ekberg on 11 Jan 2015

The next version of C# brings a lot of sugar to the table, which we have looked at a few times already. Although, I think it will be interesting to look into a few of the features in more detail and of course look at what tools like reflector says about the code generated. To start this off I want to look at null propagation. This is one of my favourite language features in the upcoming version of C#. I think, and I hope, that this will change the amount of Null Reference Exceptions that we experience in our applications.

Let us start by just looking at the operator itself, it's simple and elegant. The null propagation operator looks like this: ?. [...]

Hello 2015, Goodbye 2014!

Posted by Filip Ekberg on 07 Jan 2015

It feels like it was just yesterday that we moved to Australia, even though it is almost 1.5 years ago. It does feel like time goes faster when you're having a lot of fun, and I sure have had in 2014! I'm truly humbled and honoured to be awarded with the Microsoft MVP Award for a third year in a row. I'm really proud to be a .NET MVP!

I have every single one of you to thank for it, without you reading this blog, watching my videos, attending my presentations it wouldn't have been possible. It truly re-fuels me standing in front of a crowd sharing my knowledge, writing about new(or old) things that excites me or recording courses that will help you advance in your career. Speaking of career progression, I'm very happy to have been promoted to Senior Consultant at Readify. Not a single day goes by that I don't learn something new and I truly love it! [...]

Using WebAPI with Azure Mobile Services

Posted by Filip Ekberg on 14 Dec 2014

When you thought Azure Mobile Services couldn't become more awesome the .NET backend was thrown into the mix. This gives us an extremely powerful, scalable and easy to work with backend – in the cloud!

In this session, I'll show you how to get hacking with the .NET Backend for Mobile Services, how to cater for different connectivity patterns by taking data offline and how to leverage other data sources such as Mongo!


C# 6.0 Overview

Posted by Filip Ekberg on 10 Dec 2014

Did you think C# was already the perfect programming language? Did you think there was no work left on refining the language? In this session I’ll walk through what’s new in C# 6.0, how the new open-source compiler helped and why we have an awesome time ahead!


Visual Studio 2015 Preview and Open Sourcing .NET Announced

Posted by Filip Ekberg on 12 Nov 2014

Having a look at Visual Studio 2015

The next version of Visual Studio is right around the corner, it has previously been referred to as Visual Studio 14 but has now gotten its name; Visual Studio 2015. This new version of Visual Studio does not only include a bunch of new features that will make developers happier and more productive, but it also includes a new version in the family that means that you as a community contributor can get completely free version of Visual Studio 2015! [...]

Introducing the Azure Mobile Services .NET Backend

Posted by Filip Ekberg on 05 Nov 2014

Azure Mobile Services As We Know It

If you, as many others, look for an easy way to create a scalable and reliable backend, Azure Mobile Services is a viable option. Up until today, we have had the capabilities of defining the backend in Mobile Services using NodeJS. Even if you have used Mobile Services though, you might not have had to bother with the NodeJS parts because out of the box you have a dynamic data schema that adapts with the models you define.

On-top of allowing you to easily define what the data looks like, you have been able to use NodeJS when inserting, updating or deleting data to for instance make sure that a user is authenticated. The word "mobile" comes nicely into play as developers of Mobile applications we do not want to focus too much on where we store data and how it is done; we want as low friction as possible! Thus having an extremely easy way to define, extend and scale a backend is highly valuable. [...]

Getting Started with Continuous Delivery

Posted by Filip Ekberg on 04 Nov 2014

Working in an agile environment

While working in a high paced and agile environment, building block by block to reach the ultimate minimal viable product, stakeholders will most definitely ask more than once if they can see what you have thus far.

Agile, Scrum, continuous delivery and testing are not new concepts or buzz-words. Although they have all been around for a while they are still something well worth talking about and working on improving in your team.

Over the years I have seen countless of products being worked on where there has been no real definition of, or well-thought through direction to get to, a minimal viable product. The main problem I see derives from the customer not being able to define a subset of features that are good enough for a first product release. If we put ourselves in the shoes of a customer, we might as well have been a customer or will be in the future, imagine having a vision of a great product and someone telling you to cut it in half and choose which side you like the most. It's difficult, right? [...]

Microsoft Compiler Platform aka Roslyn

Posted by Filip Ekberg on 31 Oct 2014

A bit over a year ago I wrote and talked about Roslyn a fair bit, a lot has happened in this last year both in terms of the progression of the C# language and the compiler platform itself. Most notably is probably the decision to make the compiler platform open source which happened earlier this year. With the decision to open source the compiler platform, it meant that the community could take part of what is the next version of the languages, what the compilers looks like under the hood and most interesting of them all: the decision making behind language features and directions of the project.

I will not go into detail on the language features of C# 6.0 as there is an article published by me in the DNC Magazine on this. Instead we will take a look at how we can use what is available to us today. [...]

What's New in C# 6.0

Posted by Filip Ekberg on 23 Sep 2014

I was again invited to write an article for DNC Magazine, this time on the changes that we will see in the upcoming language changes coming in C# 6.0.

We will not necessarily see new keywords in C# vNext, but we will see semantic differences that will make it easier for developers to avoid boilerplate code. Some of these introduced semantic differences are much awaited and some of them are solving thinner edge cases; they are all very welcomed by the community! As the next version of the compiler is still under development, some of the language features may be taken out, some may be added and some may be delayed to the version after vNext. The evolution of C# is a proof that the language lives, people are using it and it is here to stay.

Read the entire article in the DNC Magazine!


C# vNext (6.0) Overview

Posted by Filip Ekberg on 12 Sep 2014

In this presentation I'm covering features we can expect to see in the next version of C#. We're also looking at some of the features that we may see in the coming language update! [...]

Xamarin Introduction on SSW TV

Posted by Filip Ekberg on 31 Aug 2014

Cross-platform development and Xamarin is something that everyone is talking about right now and rightfully so! It makes development for iOS, Android and Windows Phone a delight! I was invited to give an Introduction to Xamarin (+ some more bonus content at the end!) at the Xamarin Hack Day in Sydney.

You can read more about upcoming Xamarin Hack Days around the world on xamarinhackday.com. [...]

What is Xamarin and Why Should I Care?

Posted by Filip Ekberg on 02 Jul 2014

I've had the honour to be invited by DNC Magazine to write a bunch of articles for them over the past two years and this time I got to write a piece for their 2 year anniversary issue about Xamarin! Below is an abstract from article and I hope you'll take the opportunity to subscribe to their free magazine! The team begin DNC Magazine are truly making an excellent job putting together good and interesting articles and I hope you find my latest contribution interesting enough to keep subscribing! [...]

Asynchronous programming

Posted by Filip Ekberg on 12 Jun 2014

I was invited again to the Brisbane C# Mobile Developers to celebrate Xamarin's 3rd Birthday by delivering a half an hour talk on asynchronous programming. Asynchronous programming is more important than ever and it's extremely important to understand what is going on when we're working with it. We really want to do whatever we can to avoid deadlocks! [...]

I Want To Learn Programming, Where Do I Start?

Posted by Filip Ekberg on 28 May 2014

Rather frequently I get questions from friends, family and strangers asking me about what it's like to work as a software engineer. We've got a good reputation that we are well paid and have fun at work. At least that is what I've noticed people thinking about this occupation. It's not like we're paid as much as movie stars, even though some of us pretend that we are stars, but it still attracts people because of the wages and its reputation. [...]