Preface

C# is a wonderfully expressive and powerful language that lets you focus on your application rather than low-level boilerplate. Over the last decade, the C# compiler has evolved to include many features from dynamic and functional languages, all while remaining statically typed. Most recently, it has tackled the proliferation of concurrent hardware with new asynchronous programming features.

This book will help you get up to speed on the latest version of C#. After setting up your development environment, you will go on a tour of all the latest features of the language including the Task Parallel Framework, Dynamic Language Runtime, TPL Data Flow, and finally asynchronous programming with async and await.

Chapter 1, Getting Started with C#, gives a brief introduction to the birth of C#, and getting your development environment set up to compile C# 5. We will cover installation of the compiler and framework, along with all of the major editors such as Visual Studio and MonoDevelop.

Chapter 2, Evolution of C#, shows us how the C# language has grown and matured. With each release, new features were introduced that made programming in C# easier and more expressive.

Chapter 3, Asynchrony in Action, discusses asynchronous programming with a major focus on the 5.0 release. Starting with the Task Parallel Library (TPL), and culminating with the new async and await keywords that were newly introduced in this version of C#, you now have the ability to easily write responsive and scalable applications.

Chapter 4, Creating a Windows Store App, is about Windows 8 introducing a new application type, running on the WinRT framework, which lets you create applications that run on both x86 and ARM architectures. In this chapter, we explore the creation of a simple application that connects to the Internet to download and display images from Flickr.

Chapter 5, Mobile Web App, shows you how you have the ability to create very complex and compelling experiences for your users, with ASP.NET MVC and HTML 5. The world is going mobile and it is increasingly important that the Web supports mobile clients. You will learn how to build a mobile-optimized web application that uses HTML 5's geolocation APIs to connect users in real time.

Chapter 6, Cross-platform Development, shows you how, as a C# developer, you have the ability to target non-Microsoft platforms with the Mono Framework. In this chapter, you will learn how to create a utility application for Mac OS, using MonoMac and MonoDevelop. The ability to use C# could translate into a compelling opportunity, if you are able to share much of your code across platforms.