Bill Blogs in C# -- Roslyn

Bill Blogs in C# -- Roslyn

Created: 4/8/2014 12:21:12 PM

Let’s start with the biggest story:

A public Roslyn Preview that’s Open Source.

The next versions of C# and VB.NET have progressed far enough that you now have a new public preview. The Roslyn Compilers now support all the existing features (C# 5, VB.NET 12). In fact, they have even added some new prototype features for the proposed C# 6 and VB.NET vNext releases. (VB.NET would be at version 13, but I haven’t seen a published version number)

Best of all, you can see the development and you can participate in the ongoing language design discussions. The Roslyn compilers are Open Source. You can view them here. I’ll blog more about the compilers and the new and proposed language features in the coming months. 

And TypeScript, don’t forget TypeScript.

In more language news, TypeScript 1.0 has been released. It’s development has been public and Open Source for some time.  It’s integrated into Visual Studio 2013 Update 2, which is available in Release Candidate form.I’ve been working with TypeScript for a while, and I’ll be covering it more here. In particular, this discussion on the null propagating operator is very lively.

In addition, there’s now the new .NET Foundation, which is the curator of several .NET related Open Source projects. You can see a number of .NET libraries and components in the foundation already, and I only expect that trend to continue. The .NET Foundation is a great example of how Microsoft is changing. Look at the current board members of the .NET Foundation. The board already includes prominent community members that do not work for Microsoft. I expect that to continue and grow as time goes on.

Both Roslyn compilers, and TypeScript are already part of the .NET Foundation assets.

Visual Studio Online

The Humanitarian Toolbox has been using the preview versions of Visual Studio. It’s a tremendous step forward for team collaboration in the cloud. The tools help you can more information about your application, and Applications Insights provides a nice extra. Quick edits in the cloud, automatic deployments, insights, and more. Oh, and it’s integrated with your local Visual Studio experience.

Azure Updates

This probably deserves several blog posts on its own. It’s a full time job just to keep up with all the new tools released by the Azure team. There’s a new management portal. New mobile services, new resource management,  Java VMs in Anzure, and more.

I need to dive in more, because it’s hard to keep up with what Guthrie’s team produces.


Windows 8.1 update

Most of these news features are for end users, not developers. They do represent a lot of feedback and represent a good direction. For Enterprise developers there are a couple great features. The enterprise side loading story is much better. Modern apps are much more economical for enterprises to deploy than with previous 8.x platforms. The IE Enterprise mode will also help enterprise deal with legacy web-based applications. However, I would still recommend that most enterprises consider any application that needs enterprise mode to be a technology risk.

Universal Apps, and all it comes with

Microsoft has been talking about unifying the Windows Phone, Windows 8 and Windows Server platforms for some time. That’s now gotten even more ambitious. Universal apps also can include iOS and Android devices, using the Xamarin tools. The idea that a common API set could be available across Windows 8, Windows Phone, iPhone, iPad, Android phones and Android Tablets is really innovative.  Also, these projects work across different IDEs: Visual Studio, Xamarin Studio, and (where someone has written the plug ins) Eclipse.

It means C# is, along with JavaScript, the one language you can use to develop applications across all the popular computing platforms today. .NET and C# is truly a cross-platform development environment.

There’s more changes that make this cross-device story compelling. There are changes in the Microsoft Store that make it easier and more advantageous to produce apps for both Windows 8 and Windows Phone. You’ll get more visibility across the stores, and you’ll get more touch points with your potential customers.

Windows Phone and Cortana

I’m impressed with the potential of Cortana. You’ll see lots of people saying that Cortana is “Siri for WIndows Phone”. That’s an oversimplification. Yes, you can talk to Cortana and it will answer you. But what’s really interesting over time is how Cortana integrates with you through your applications on your phone. Voice recognition and voice interaction is a great step. More interesting is how those capabilities will work across applications when integrated with Cortana. Can my scrum app alert me if I’m too aggressive on deadlines because of other commitments? Could a nutrition app integrate across a fitness app to change calorie allocations because of upcoming events, or days off? There’s a lot of potential. There’s also risk. Can those cross-application capabilities be added while respecting users’ privacy?  There’s a lot of potential hear, and I can’t wait to learn more and dive in to create new, useful applications.

Conclusion: Microsoft is reaching out to developers in a big way

I know this post had less detailed technical content than my typical post. There’s a lot of information that came from //build. I’ll drill into many of the areas for some time.

The big picture of all the announcements and the reveals at //build is this: Microsoft is reaching out to developers again. And not just the developers that have traditionally worked within the Microsoft space. They are reaching out to Open Source developers, mobile developers that concentrate on non-Microsoft platforms, and more. It’s a smart move. They brought out lots of technology that makes lots of sense.

The platform, the languages, and the tools, are first rate. I’m glad to see Microsoft reaching out to developers and changing their direction to match today’s developer community.

Created: 3/3/2014 3:21:46 PM

I’m excited to be speaking at DevIntersection in Orlando next month. I’ve got three different talks at this conference.

One for the current wave of tools you already have:

Navigating large codebases using Visual Studio 2013

Visual Studio 2013 adds many new features that can help you learn and explore large codebases. That's important now because more of our time is spent integrating open source libraries and working on long-lived and large codebases. In this session, we'll explore a popular Open Source library using these new features. You'll learn techniques that will take you from confused n00b to experienced ninja in less time than ever before.

There’s one for the wave of technology that’s being released:

Getting Started with Visual Studio Online

The Visual Studio Online services provides a single point for managing source, project data, team collaboration, and deployment information about your project. This session provides an overview of how you can use these tools to manage personal projects with the same tools and processes you use for your professional work. Best of all, it's at a much lower price than many competitive tools.

And, there’s one that’s more forward looking:

An Introduction to the Roslyn APIs

The next version of C# and VB will be built on Roslyn, a new set of APIs that you can use to explore and modify the code in your applications. In this session, you'll learn about the Roslyn architecture and what you can do with Roslyn extensions. You'll learn the basics of a new world where you can explore and modify your code programmatically.

Overall, there are more than 200 great sessions from the industry leaders and experts you’ve come to rely on.

In addition to the regular sessions, there are pre-conference and post-conference workshops you can attend.  And, if you include at least one workshop in your registration, you get your choice of a free Surface 2, or XBOX ONE.


Created: 2/26/2014 4:12:27 PM

And, it’s really an improvement.

If you spend much time working with the .NET Framework, and you really want to know how the framework libraries do what they do, you probably spent some time with the reference source browser. The more time went on, the more you hated that experience. The site was quite dated, the source was out of date, and the experience was so last decade.

Most of us spent our time with some decompiler disassembling the libraries that were delivered to your machine.

Well, there’s now a much better experience again. The .NET Framework team has a released a new look for the reference source browser. It’s a *huge* improvement over the previous version. It’s easier to navigate. The browsing, searching, and navigation features are all improved. Since getting access to this tool, I’ve spent much less time in decompiler tools. This experience is just great.

You can learn more about the new reference source browser from this blog post, and this Channel 9 video.

To get the most out of this new experience, you should also install Ref12, an extension that redirects the F12 key to the reference source for symbols defined in the .NET Framework. Hat tip to Schabse Laks for this extension.

Addendum:  There is still some controversy over the license of the reference source for the .NET framework. I’m not a lawyer, and I don’t understand all the issues involved. However, I have read the updated license, and it is getting more open. That’s not to say perfect, but it is more open.

Current Projects

I create content for .NET Core. My work appears in the .NET Core documentation site. I'm primarily responsible for the section that will help you learn C#.

All of these projects are Open Source (using the Creative Commons license for content, and the MIT license for code). If you would like to contribute, visit our GitHub Repository. Or, if you have questions, comments, or ideas for improvement, please create an issue for us.

I'm also the president of Humanitarian Toolbox. We build Open Source software that supports Humanitarian Disaster Relief efforts. We'd appreciate any help you can give to our projects. Look at our GitHub home page to see a list of our current projects. See what interests you, and dive in.

Or, if you have a group of volunteers, talk to us about hosting a codeathon event.