Your current filters are…
by Bill Wagner
Traditional async programming models produce convoluted and hard to follow code. They rely on callbacks, developer created state machines, thread marshalling and other jargon we’d rather not look at every day. That led developers to prefer synchronous APIs whenever they were available. No more. C# 5 contains new features that enable you to write async programs that are much more clear and easy to comprehend.You’ll learn how to move up the abstraction layer and spend more of your valuable time expressing what you want done, rather than concentrating on the mechanics of asynchronous programming techniques. You’’ll also learn several techniques to maximaze the responsiveness of programs that use async APIs. WIth C# 5,the compiler sprinkles pixie dust on your code and it just works asynchronously. Once you’ve learned what Async features offer for you, you should learn how the pixie dust is implemented by attending Jon Skeet’s talk “Async from the inside”
by Jon Skeet
This talk will assume you’ve either been to part 1, Bill Wagner’s talk “Async from the outside” - or that you’ve used the preview builds available with async. Using async and await in C# 5 can feel like magic - much as LINQ probably did when you first saw it years ago. Does that make you nervous? Is your immediate response to a new feature always, “I must know how this works”? Do you reach for the spec or ildasm before trusting the compiler? If so, this is the talk for you. The pixie dust can all be explained away though, and in this talk I’ll do exactly that. No more Santa Clause; good-bye Easter Bunny - they’ll be replaced by state machines, continuations, pattern-based awaiting and task builders. Having moved up in abstractions when using async, we’ll have to move down to the generated code to see how it’s all implemented. Be prepared to be somewhat frazzled by the intricate dance performed by the C# 5 compiler on your behalf - and then be very grateful that the end result is that you don’t need to write such code yourself any more!
by Mark Rendle
C# 3.0 and LINQ gave us anonymous delegates, lambdas and closures, and C# 4.0 improved on them. But these “functional” features have applications beyond messing about with IEnumerable<T>. In this session I’ll present 10 simple and not-so-simple uses of first-class functions to help cut down on repeated code and improve maintainability, and hopefully leave the audience with a new and exciting way of approaching coding problems.
by Hadi Hariri
C# 4.0 introduces the Dynamic keyword. The team said it was to add better support for COM, yet we’ve already seen its usage extend to ASP.NET MVC 3 and other scenarios. The truth of the matter is, when it comes to working with things such as XML and JSON, dynamic types can really enhance productivity. If you’re a fan of static typed languages and whether or not you like dynamic languages, come to this session and learn to love the new dynamic keyword. We’ll see how you can really gain productivity and flexibility when using it appropriately. Used in quite a few OSS projects already, dynamic really has changed the scenery when it comes to writing applications in C#.
The cat’s out of the bag! Not only is Project Codename “Roslyn” delivering the next generation C# and Visual Basic compilers and language services, it also provides a powerful set of APIs for building "code aware" tools and extensions. In this information-packed session, we'll explore six major Roslyn APIs in depth, covering parsing, retrieving semantic information, analyzing data and control flow, and scripting. Armed with this knowledge, we'll see how easy it is to leverage the APIs to analyze and generate C# and VB source code, add C# scripting support to an application, or even extend the existing C# and VB language service features in Visual Studio.
by Jon Skeet
C# is a fabulous language. A lot of care has been paid to its design, and the specification is precise and well-written. It’s pragmatic and powerful, giving some of the features which make scripting languages terse while maintaining the benefits of static typing. So what’s not to like? Well... nothing’s perfect. In this session I’ll explore some aspects of C# which perhaps took too much legacy from C++ and Java, some “gotchas” from newer features which can cause pain if you’re not aware of them, and some aspects which are simply not quite as smooth as they might be.
by Bill Wagner
Do you want to write code that adapts to code that calls it? Write C# libraries that perform actions you never thought possible in a statically typed language? This session will show you coding techniques based on Expression Trees that enable you to write meta-code that examines the code that calls it and adapts its behavior based on the caller. You’ll learn to write general purpose algorithms you never dreamed were available in C# or .NET. If your mind has been blown enough yet, we'll go into the Roslyn API set and build code that builds more code to do even more interesting and crazy things. All in the name of good, never evil.
With multi-core processors in all desktop computers and nearly every mobile device, developers must use asynchronous operations and concurrency to create responsive applications. The Actor programming model is an increasingly popular method of achieving the scalability benefits of concurrent computation without the impact to productivity that is inherent using traditional concurrency approaches. Stact is a library that enables C# developers to leverage the power of Actors, bringing the simplified concurrent programming model used by languages such as Erlang and Scala to .NET applications.
by Bryan Hunter
Would you like to build massively parallel, distributed, fault-tolerant, cross-platform, easily maintainable systems with less code and look cool doing it? If so, the opensource programming language Erlang has some real sweet spots for you. If you're unfamiliar with Erlang you may be surprised to learn how battle tested it is: Facebook's chat backend, CouchDB, RabbitMQ, GitHub's backend and Amazon's SimpleDB are all written in Erlang, and every phone call you make is likely helped along by some Erlang somewhere. So how does a functional programming language with Prolog and telecom roots solve so many of the big problems that Enterprisey languages famously stink at? What's so darn special about Erlang? What are the pieces and the tools? What does it look like? How do I (as a C# developer) even get started with Erlang?
by William Wallace
By day, you are a master of the TPS report creation and all things virtual that make your bosses look good. By night, you create all sorts of marvelous electronic gadgets to aid you in your secret life of fighting crime. Or at least you would, if you could just get past all the hassle of correctly connecting up all the hardware and just focus on the programming. Well now you can, thanks to Microsoft .NET Gadgeteer, an open-source toolkit for building small electronic devices using the .NET Micro Framework and Visual C#. I’ll show you how to build and program your first device so you can finally begin your career as a crime fighter. Costume, faithful sidekick and cool superhero name not included.
11th–13th January 2012