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:
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! [...]
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!
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!
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! [...]
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.
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?
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. [...]
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!
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! [...]
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. [...]
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! [...]
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! [...]
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. [...]
Posted by Filip Ekberg on 21 May 2014
As per my previous post I've moved to Azure and this has been a really interesting experience so far. Not only did it force me to learn more about the offerings of Microsoft Azure, but I also came to the conclusion that moving away, as far as possible, from Wordpress was about time. [...]
Posted by Filip Ekberg on 20 May 2014
For a very long time this blog has been running on a Swedish ISP, Glesys. I've been extremely happy with their customer service, their reliability and their speed. However, it comes with a cost, thus I've decided to move to Microsoft Azure!. [...]
Posted by Filip Ekberg on 29 Apr 2014
As I'm down in Melbourne for a Readify Dev Breakfast Xamarin talk, why not visit the local .NET User Group and have a chat about Universal Apps for Windows and Windows Phone?
With the new possibilities of sharing code between our Windows and Windows Phone applications, there is no longer a reason not to target all the platforms! We are looking at what this new development model looks like, how to make our first universal app and or course, how to communicate with the cloud! [...]
Posted by Filip Ekberg on 11 Apr 2014
I was invited to the Brisbane C# Mobile Developers by Glenn, a tutor I met during my first Xamarin University course. He's a great tutor and the Xamarin University lectures are of really high quality, if you can I'd really advice you to join the program!
In this talk I go into, in short, what Xamarin is, how to use a REST API from your applications and what kind of code sharing strategies there are. Sit back, enjoy and don't forget to pop some popcorn! [...]
Posted by Filip Ekberg on 04 Apr 2014
Are you keen to learn more about Cross-platform development using C# and Xamarin Studio? I have had a lot of interest in my Xamarin Introduction video, which was released in March, and I am very happy to announce that I will be doing a Xamarin tour in Australia!
These events are organized and hosted by my employer Readify. [...]
Posted by Filip Ekberg on 04 Apr 2014
This is truly an extremely exciting time, Microsoft is Open Sourcing the C# Compiler (Roslyn). Even without being open source, the new C# (and VB) compiler have had some proven potential. We have seen some exciting things such as semantic merge and powerful plugins for Visual Studio.
Now that the source is out there and they are accepting contributions - where do you think this will end? Personally, I cannot even imagine what the community will come up with.
C# Compiler Source Code Available Here. [...]
Posted by Filip Ekberg on 26 Mar 2014
This talk was performed at the Sydney Mobile Development Meetup Group. [...]
Posted by Filip Ekberg on 04 Mar 2014
In this breakfast event that I spoke at which my employer Readify organizes, I talked about Parallel and Asynchronous applications. The idea here is to talk about what makes an application fast and reliable. Then we talk about different concepts and how to apply these in small isolated code snippets to make use of some really powerful stuff we have to our disposal.
This talk is aimed towards C# developers, but the parallel and asynchronous information applies to more than just the .NET family. [...]
Posted by Filip Ekberg on 24 Feb 2014
This is the third piece in the back to basics series that I've been doing and this time we're looking at one of the most fundamental algorithms out there. Arguably one of the first one you'd learn in school; sorting. There's a huge variety of sorting algorithms ranging from bubble sort, insertion sort, selection sort, merge sort, quick sort among many others. Most of them have their perfect use case, in the case of bubble sort, it's a great algorithm to get started with to understand how to re-position things in an array. However, bubble sort is a O(n^2) algorithm which means that it will grow quadratic as
n grows. If you want to win a free digital copy of my book C# Smorgasbord, continue reading and leave a comment with an optimized version of the merge and merge sort functions! [...]
Posted by Filip Ekberg on 17 Feb 2014
Previously we looked at the first part in my Back to Basics series where we understood and implemented Peak-Finding. This time we are going to talk about something slightly different; Calculating Document Distance. I really recommend you to take a look at the MIT course on Introduction to Algorithms, for this post I really recommend watching the part about document distance. [...]
Posted by Filip Ekberg on 10 Feb 2014
No matter how far we are in our careers as professional developers, it's great to freshen up on our fundamentals. Be it the importance of Memory Access Patterns or algorithms in general, it's really beneficial. I find it quiet interesting that it's been a pretty long time since I sat in the algorithms and data structures course on my technical institute and I tend to understand it completely different now. [...]
Posted by Filip Ekberg on 30 Jan 2014
If you're a web developer, I am sure you can relate to the feeling where you over and over again start up your web application, navigate to the local instance and try the same feature over and over again where you just thought you had fixed all the bugs. I'm sorry to tell you this, but you'll most likely be starting it up and navigating to that same page a couple of more times. Both in my book and countless times on this blog I've said: If you do something over and over again – automate it! [...]
Posted by Filip Ekberg on 29 Jan 2014
Since I first set my foot in the "Software Architecture" class back at the technical institute it feels like I've taken things for granted. Over the years I have seen myself as a pretty good software engineer, a programmer with many hats be it developing in C#, Java, Python, PHP, Objective-C, and I’ve tackled lots of different problems. It just hit me though developing good software is damn hard.
I've been working for a bunch of different companies now and been on lots of different projects all teaching me different things along the way. It wasn't until recently though when I got onto a project where everything was, sort of, by the book. As I mentioned, I've seen myself as a senior developer for a long time now and in many projects where I've been that has been the case. Starting on this project though has in a way opened my eyes again and I see that I still have so much to learn. [...]
Posted by Filip Ekberg on 01 Jan 2014
Another year has gone by and it's the third yearly summary that I'm writing, hopefully not the last one! I began the previous one that I wrote in the end of 2012 by stating that "Saying that a lot happened in 2012 is probably an understatement.", I'd like to start this summary similarly. However it hit me that each time I do look back at what I've done the previous year, it's always going to be packed with a lot of great stuff. I like challenging myself both professionally and personally, my friends and co-workers most likely see this in me regularly. [...]
Posted by Filip Ekberg on 19 Dec 2013
Have you had a chance to play with Nancy yet? Nancy is a way for us to experience the web in a lightweight way, without relying on ASP.NET or ASP.NET MVC. I'm not saying that Nancy is replacing any of those, but it is here as an alternative. Let's look at some examples of what a Nancy demo application might look like, to give you an idea of how easy it is. [...]
Posted by Filip Ekberg on 16 Dec 2013
Back in the mid-90s when I first was introduced to the concept of programming the only thing that I could really do that I found funny was to have the computer BEEP at me. At this time of course I didn't have anything as fancy as Visual Studio or C# to work with, it was just me and my QBasic editor. Basically an application back then looked something like this (syntax may or may not be correct) [...]