Build 2014: a Watershed for Microsoft Developers?

The 2014 Build conference has been surprising. If you'd told me before the show started that the major product announcements would be updates to Windows 8 and Windows Phone 8 -- in other words, no new products at all -- I would've yawned and said that the only thing developers had to look forward to was the amazing swag Microsoft gives out at this show.

And I would have been wrong. Way, way wrong. This was perhaps the Build that made developers excited again -- and not just .NET developers, but all developers, whether or not they write software for Windows.

For the Windows-focused devs, though, the week could only be described as glorious. Universal Windows apps. At last. Building one app that works for Windows 8, Windows Phone 8, Xbox One(!) and eventually, Kinect. Apps that work the same way on the desktop as they do on any mobile device. Apps that will be easier to find than ever, thanks to new app discovery features built into Windows 8.  

Mobile devs know that discovery is maybe the second most-crucial aspect of their applications (after the quality of the app itself). Try making yourself stand out among the million or so on iOS and Android. Windows 8 almost guarantees your apps will be found more easily than apps on those platforms.

Driving all this integration innovation is Microsoft Azure; it's what really allows the magic to happen. The upgrades to Azure that Scott Guthrie announced Wednesday caused me to say this on Twitter (@VSM_Keith, BTW): "At this point, I can't think of a single reason why a VS dev would use Amazon instead of Azure."

And it's true. With all the free storage you get, if you're not using Azure for, at minimum, test and dev, shame on you: You're simply wasting one of the best resources in existence. No other IDE can compare; consider, for example, the new ability debug a cloud app's code within Visual Studio. This is huge. During the Day 2 keynote, Technical Fellow Mark Russinovich demonstrated debugging Azure-based virtual machines from within Visual Studio. "No more installing Visual Studio in the server," he said, to big cheers. Can you say productivity gains?

In terms of excitement, has there ever been a more electric moment at a developer conference than when Anders Hejlsberg pushed a button and proclaimed: "Roslyn is now open source!" I don't remember one, frankly. When he made the (now known as) .NET Compiler Platform live on CodePlex, it cemented Microsoft as possibly the most open source-friendly company in the industry (excepting those companies, like Red Hat, that make it their chief business). Think about that a moment: You now have the full set of APIs for C# and Visual Basic.

Added to that was the announcement of the .NET Foundation, and the 24 Microsoft projects it started with. It seems Microsoft has decided that intellectual property in the form of software code should no longer be a profit center: Code is simply a means to an end; the end of building software.

Microsoft took significant steps toward that end this week at Build. The new stuff (Start button!) in Windows 8 Update and Windows Phone 8.1 will be good for consumers; but it's the ways Microsoft made it easier and better for you, the developer, to make software for those devices (along with iPhones, iPads, Android phones, Android tablets, and so on) that was the highlight of this show.

That's a very high-level, superficial analysis of the major Build announcements. Much more is coming. The main takeaway is that, as others have said, there's no better time to be a software developer. And no matter the platform, device or language, no one delivers a better developer experience than Microsoft.

Posted by Keith Ward on 04/04/20140 comments

Microsoft Buying Xamarin?


Mary Jo Foley's reporting that Microsoft may be either buying tool-maker Xamarin outright, or making a big investment in the company. It's all speculative at this point, but this is an idea that just makes too much sense.

Xamarin makes it possible for .NET/C#-focused developers to create apps for the two most popular mobile platforms -- iOS and Android -- without leaving the comfort of their favorite language  and IDE (that would be Visual Studio, of course). Xamarin has been making these products for a number of years now; they used to be called MonoTouch and Mono for Android, and have morphed into Xamarin.iOS and Xamarin.Android. Xamarin has been churning out frequent updates, and further integrating the products with Visual Studio. I've felt for some time that Xamarin would be absorbed into Visual Studio, eventually becoming a transparent part of the IDE.

Note that these reports are only substantial rumors at this point. But the rumors have credibility, at least in part, based on the natural fit of these parts. It's not the type of head-scratcher that some other deals were. Xamarin and its founders, Miguel de Icaza and Nat Friedman, are serious software developers, and make a serious product that many developers think is the best way to write cross-platform code for the mobile platform (you may have noticed that we think it's serious enough to have a column dedicated to the topic).

It would also be a forward-looking move for Microsoft. It needs to get iOS and Android developers to use both Visual Studio and Windows Azure, and integrating Xamarin into its core IDE would do that. It would also encourage more development in C# among the non-C# crowd, who may like what the language offers, but are wary of any Microsoft-branded stuff.

It's hard to think of any downsides for developers of such a deal. One fear could be that the pace of innovation that Xamarin now shows could be slowed, once it's absorbed in the Redmond behemoth. But, at least in the dev area, Microsoft has truly adopted a speedy release cycle of upgrades and fixes. After all, Visual Studio 2013 came just a year after the previous major version, and is now approaching Update 2. It's hard to imagine that Xamarin wouldn't be similarly upgraded, especially since it'll be baked in.

Worth noting, too, is that new CEO Satya Nadella is a techie, so the potential acquisition might appeal to his geeky nature. He understands development in a way ex-CEO Steve Ballmer couldn't hope to, and may be quicker to understand the benefits involved.

This is all speculation, of course, but it's something I think should happen. What do you think?

Posted by Keith Ward on 03/18/20140 comments

The Top 10 Visual Studio Magazine Articles of 2013

In the spirit of "shameless Top-10 year-end articles that you know you'll click on because it has a number in it and you can't help yourself," I herewith present the 10 most popular Visual Studio Magazine articles from 2013. These are the ones you liked best.

10: Modeling Neuron Behavior in C#. This was the debut of Dr. James McCaffrey's "Neural Network Lab" column, a high-level yet accessible tour of complex software design.

9: Building a Chat Web App With Signal R, Part 2. This was the second part of a "C# Corner " column on creating a real-time Web data entry form with ASP.NET MVC, KnockOutJS and SignalR.

8: Handle Many-to-Many Relationships in Entity Framework and ASP.NET MVC. In his "Practical .NET " column, Peter Vogel took a single -- and common -- problem and found ways solve it, from getting the data design correct through handling updates and finishing with a UI built in ASP.NET MVC.

7: The Windows Runtime Media API. The first in a 3-part series in which Eric Vogel showed how to use the Windows Runtime media API to play music and video files in a Windows Store app.

6: Working with the HTML5 Data Attributes Using jQuery. jQuery support for the new HTML5 data attributes may not be everything a developer could want -- but it's very close. And, more important, it's the perfect solution for handling transactional data.

5: iOS Development with Xamarin.iOS and Visual Studio. iOS and Android development is of intense interest to .NET developers right now, and Wally McClure and Greg Shackles are giving it thorough coverage in their "Cross-Platform C#" column, which also debuted in 2013.

4: A Best Practice for Authenticating Users in ASP.NET MVC 4. Proof that developers really do care about security!

3: Building Web Apps with SignalR, Part 1. Gee, do you think .NET developers have an interest in communications? This is the only multi-part series to have both articles make the Top 10.

2: Why You Shouldn't Comment (or Document) Code. Oh my, did this article set off a firestorm. It's the most-commented item ever on It also spawned several sequels.

1: The Observer Pattern in .NET. Readers love the "Pattern" articles that Eric Vogel writes. This one, in which he uses the Observer Pattern to build an email application, topped the list as our most-read article of 2013.

So, those were the most popular articles of the past year. Was one of these your favorite, or did you have another? Let us know in the comments below.

Posted by Keith Ward on 12/24/20130 comments

Developers Pushing for CodeLens to be Available in Visual Studio 2013 Professional

Looks like the idea of making CodeLens, by all accounts a killer feature in Visual Studio 2013, available below the Ultimate level is picking up steam.

I wrote about this recently, pleading with Microsoft to make the feature available at the Professional level, since that's the version the vast majority of most developers use. It would appear that the idea of downstreaming CodeLens is gaining a lot steam in the dev community. Visual Studio UserVoice is a feedback site for Microsoft's army of software devs. What happens is that a developer makes a public suggestion on something he or she would like to see. Then the community votes on it. The more votes, the more the community throws its cyber-weight behind a proposal.

One developer, self-identified as "Harold_", suggested moving CodeLens into lower-tier versions, and so far, the idea is one of the most popular on the site, with 1,300 votes in favor.

I really like the UserVoice site. It's obvious Microsoft takes it seriously, too -- they're actively involved in responding to requests, and it's clear that they value the feedback. Whether they always take it is another story, but there aren't many companies out there that show this level of commitment in engaging with its community.

By the way, do you know what the top request on the site is? Allow the .NET Framework to be used to build Xbox One games. Oh, the irony...

Posted by Keith Ward on 12/10/20130 comments

Windows Phone: Coming Up Fast on the Outside

So, according to IDC's Worldwide Quarterly Mobile Phone Tracker, Android has more than 80 percent of the smartphone market for the first time ever -- 81 percent, to be exact.


I'm not surprised by that, as Android has been a runaway locomotive for years now in this space. And Apple has -- for now -- maintained its hold on second place, with iOS at 12.9 percent market share for the third quarter of 2013. Apple might be a bit uneasy; although it sold more phones than ever, its slice of the market is shrinking. That's not news, either.

Then we come to Microsoft, and things get interesting. Very interesting. Although still in third place, it saw a gigantic year-over-year increase in market share, going from 2 percent to 3.6 percent. Now, 3.6 percent of the market wouldn't normally be something worth trumpeting. But consider that it represents a 156 percent jump in share, and the number becomes a lot more significant. Compare that to a 51.3 percent gain for Android, and a 25.6 percent increase for iOS, and Windows Phone suddenly seems more important.

Of course, Microsoft had a lot, lot, lot (to infinity) of room for growth. But that doesn't mean those gains are trivial. I read it more as Windows Phone is starting to finally carve out a niche, and get on more consumers' radar. I agree with what IDC Research Manager Ramon Llamas said in a press release:

"Android and Windows Phone continued to make significant strides in the third quarter. Despite their differences in market share, they both have one important factor behind their success: price... Both platforms have a selection of devices available at prices low enough to be affordable to the mass market, and it is the mass market that is driving the entire market forward."

For .NET-focused developers, which is the vast majority of those reading this, I think this is fantastic news. Windows is a platform you know well, and has the best tooling in the industry (led, of course, by Visual Studio). If the Windows Phone market becomes viable, many more of you will consider building apps for it, as you'll have more confidence that you can make some money, and will be building for a device with a future. That will lead to the upward cycle of more apps-more buyers-even more apps.

Developers can, and will, still build for Android and iOS, even using Visual Studio to do it with the help of cross-platform tools like Xamarin. But if the gains IDC reported today continue throughout this and next year, Microsoft could even find itself eclipsing iPhone in time, which some have predicted (to derision from other quarters). But these figures show that Windows Phone is no longer a laughing matter.  

Posted by Keith Ward on 11/12/20130 comments

Hey, Microsoft: Make CodeLens Available in Visual Studio 2013 Professional

CodeLens is perhaps the best new feature of Visual Studio 2013.

Too bad you'll never get to use it.

That is, unless you have Visual Studio Ultimate. Those of you with Visual Studio Professional -- in other words, most of you -- or even Visual Studio Premium aren't eligible for the awesomeness that is CodeLens.

When we ran an article recently on using CodeLens, the author, Mickey Gousset, said that it's "going to be that "Oh, wow!" feature". Why is it so cool? Mickey explains:

"Before CodeLens, you had to dig through several different windows to retrieve information such as method references, tests associated with a method, the last time a line of code was changed or how many times the code has been changed. Researching and finding this information takes you away from the code editor, and away from writing code. CodeLens changes that by putting this information literally at your fingertips within the code editor."

Cool, indeed. But also a tease, because Visual Studio Ultimate is a very, very expensive product. If you're a fan of MSDN Subscriptions, rather than buying your software piecemeal, it's a the top of the ladder, out of reach of a large percentage of developers. The Visual Studio Ultimate MSDN subscription is $13,299. And the yearly renewal price is $4,249.

Ouch. How many of you have that much scratch lying around? Show of hands? Yeah, I thought so. Certainly, the big shops can afford that, but if you're a lone dev out there building mobile apps, fuggedaboutit. Or if you're a five-person dev shop, it's very likely out of your price range, too.

Here's how one developer, "Sam", responded after our story: "...99% of developers will never use this feature because MS has put it behind a $13,000 paywall."

"John Christman" agrees with him: "It is truly a great developer tool.. I have no clue why (other than greed) that it was bundled in Ultimate. I could see this, perhaps as being a reason to upgrade to Premium, but Ultimate is too much."

"Bob Marshall" says, "Sorry Microsoft, as cool as CodeLens is, it is not a reason for my company to upgrade our MSDN accounts from Premium to Ultimate."

I've asked Microsoft about the possibility of making CodeLens available at a lower tier. I'll let you know what they say (if anything). My take is that Microsoft is making a big mistake by keeping this out of so many developers' hands. The majority of developers I talk to use Visual Studio Professional, and most are still on Visual Studio 2010. That's pretty much the way the world works: developers, just like most admins, don't upgrade to the new version of a product right away (witness, as just one example, the way Windows XP has held on and on and on...). I'd bet that Microsoft could motivate a significant swath of its developer army to upgrade to Visual Studio 2013 right now if it moved CodeLens into the Professional version. Sure, Microsoft would give up the huge margin from Ultimate subscriptions, but it would gain a ton of new Visual Studio 2013 users.

Note that I didn't say it's wrong for Microsoft to keep CodeLens at the Ultimate level; it can do whatever it wants. It spent the time and resources building CodeLens, and it's perfectly justified in letting the market decide whether CodeLens is worth the price hike for enough devs. But Ultimate is more than double the price of Premium, its downstream neighbor. Absolutely, they get a lot more for their money with Ultimate, including more Windows Azure credits. But I do think it's short-sighted: since most developers can't afford it no matter what goodies it has, it's immaterial to them.

Visual Studio 2013 is the most mobile- and cloud-friendly version of the IDE Microsoft has ever released. There could be real benefits to getting developers onto that version so they can build Windows 8 and Windows Phone 8 apps, and build up those ecosystems more quickly. My gut instinct is that the majority of developers will stay with Visual Studio 2010 Professional (or even earlier versions) because they don't see enough compelling reasons to upgrade. CodeLens, at the Professional level, could provide that reason. Why deny them that, Microsoft?

Posted by Keith Ward on 10/29/20130 comments

New Visual Studio Magazine Column Debuts: Modern C++

I'm excited to announce the refresh of a previous column, which is under new management and a new name. Those of you who still work in the native code world will be delighted to know that today marks the debut of a new C++ column: Modern C++.

Modern C++ replaces the former "New Age C++" column, which ran for a little more than a year, and was written by former Microsoftie Diego Dagum. Diego moved on to new ventures, but he built up a readership that looked forward to his monthly installments on coding in the "old" language of C++.

For those who don't know (and as Diego pointed out often), C++ has been regularly updated and tuned to work better than ever, doing away with much that didn't work, and simplifying the language. The latest version is C++ 11, and it's quite different than than it was even five years ago. To give just one example: memory management has been greatly improved through the use of smart pointers.

When I went looking for a new writer to take over the column, I turned to a former columnist of mine, back in the days when I worked for MSDN Magazine: Kenny Kerr. Kenny's a veteran C++ developer, and a terrific writer. I've been working as an editor in the IT world for many years now, and let me tell you: it's exceptionally difficult to find developers who are also great writers. Writing about development isn't an easy thing, and few have mastered the art. Kenny is one of those few.

That's why I turned to him; I was hoping he'd have some recommendations for me. When he suggested that he might want to tackle the new column himself, I was ecstatic: it's not that often you get your first choice.

Kenny has a passion for using C++ to develop Windows apps, and that's what he'll be doing (for the most part) in this column. His initial offering, for example, covers Windows' native spell-checking API for C++ developers. What, you didn't know that Windows had a spell-checking API for C++? That's why you need to read this column.

Modern C++ will appear monthly, and I think you'll find it a fabulous resource for helping you develop in this new, "old" language. Please join me in wishing Kenny a warm hello.

Posted by Keith Ward on 08/06/20130 comments

TFS Power Tools Updated With Support for VS 2012 Update 2

Microsoft has updated its Power Tools, a suite of enhancements for Team Foundation Server (TFS) projects, to work with Visual Studio 2012 Update 2.

Now, those of you paying close attention to the Visual Studio team's constant stream of updates may wonder why Power Tools is now being updated to support Update 2, when Update 3 was just released as a go-live production Release Candidate (RC). Microsoft Technical Fellow Brian Harry, on his blog, chalks it up to taking "longer than we had hoped" to prep the Power Tools.

But Harry goes on to explain that new Power Tools update (officially called TFS 2012.2 Power Tools update) includes a change that should bring it fully in line with the new Visual Studio release method of frequent, incremental updates instead of infrequent, service-pack-level updates every year or two as in the past. Harry writes:

"Our Power Tools setup has traditionally had a block to prevent it from working with the next version of VS (which is why the Power Tools from Update 1 wouldn't work with Update 2).  This is a bit of a hold-over from before we started doing the regular update cadence.  At that time, it was pretty likely that we'd change something in the 2 years between updates that would break the Power Tools and we'd work hard to have new releases of Power Tools ready before the final release of VS/TFS."

The block has been removed, and Harry says "we fully expect" that this latest revision will work with Update 3. In fact, he's installed it on his version of VS 2012.3 (i.e. Visual Studio 2012, Update 3 -- the RC) and he says it's working well. Of course, your mileage may vary, so tread carefully.

Harry added that there are no significant changes in the new version of Power Tools; just some bug fixes and the removal of the "back/restore" Power Tool. The main reason for the release was because, Harry says, Microsoft heard from "a number" of its TFS customers that they uninstalled VS 2012 Update 2, rather than give up their Power Tools.

This is why it's good to bring your complaints to Microsoft. There remains a perception that large companies don't listen to their customers; or even if they do, that making changes to products in response to those complaints takes forever and a day. This Power Tools update shows that, at least for the Visual Studio/TFS teams, they are listening; also, that the new, agile release methodology is paying dividends.

Posted by Keith Ward on 05/08/20130 comments

Visual Studio 2012, Update 3 Ready for Production

The third update of Visual Studio 2012 has progressed to Release Candidate (RC) stage, and is now available as a "go-live" version, meaning you can put it on a production server.

The first Community Technology Preview (CTP) of VS 2012, Update 3 was released last month. That iteration wasn't for production. This RC version of Update 3 is for both Visual Studio and Team Foundation Server (TFS), Microsoft Technical Fellow Brian Harry wrote on his blog.

Microsoft, Harry said, has put the Update 3 RC into production, and its go-live process "found 8 or 10 TFS bugs for Update 2," and those have been fixed in the RC. Charles Sterling, on Microsoft's TFS blog, said that about 20 user issues and requests were addressed with Update 3.

Sterling added that two frequently-requested features were added: "continuous integration for Team Projects using Git, and the ability to pick the specific branch in the repo you wanted built." This functionality's available via a new source settings dialog in the build definition wizard.

Some of the issues that were fixed include problems with the debugger, the Visual Studio IDE itself, a number of C++ bugs, numerous TFS fixes and upgrades, and a crash issue when developing Web projects. A Knowledgebase article has a full listing of improvements.

Harry noted in his blog that Update 3 is a minor update compared to Updates 1 and 2. You can find it here.

(Note that there are different installation methods between Visual Studio and TFS: the Visual Studio version of Update 3 installs on top of a previous version, while the TFS update replaces whatever's currently installed. Because of that, make sure your databases are fully backed up; if the installation fails and you haven't backed up, you're cooked.)

Posted by Keith Ward on 05/08/20130 comments

LightSwitch HTML Client Runtime Updated

Microsoft has updated the HTML client runtime in LightSwitch, its lightweight Web development tool. "Runtime Update 1", as it's called, is a bug and compatibility fix for the latest versions of jQuery, jQueryMobile and datajs.

The update adds support for jQueryMobile 1.3 and jQuery 1.9, according to this blog posting from the LightSwitch team. "Embracing the mobile-first, instead of mobile-only, approach was the main focus of this release," the team states.

The key upgrade to the runtime, it appears from the blog, is the implementation of responsive design. Responsive design automatically resizes an interface according to the screen size of a particular device. (It's something we did on; we've been writing about some of the challenges.)

The update is available through NuGet. The first step is to update the "Microsoft.LightSwitch.Client.JavaScript.Runtime" package, which also grabs the latest supported dependencies. The next step is to increment the version numbers of the JavaScript and CSS files in the default.htm file (the blog specifies which files). Note that you'll need to do that for every LightSwitch project you have.

For more information on exactly what LightSwitch is and what it does, check out a video Q & A I did with expert Michael Washington at our VSLive! Las Vegas show.

Posted by Keith Ward on 05/07/20130 comments

New .NET Debugging API Released

Microsoft's released a new .NET Framework managed library to help with debugging and crash dump analysis.

It's a beta release, and is called Microsoft.Diagnostics.Runtime (abbreviated to ClrMD -- MD for "Memory Diagnostics"). It's available through the NuGet package manager. It works similarly to the SOS Debugging Extensions. With it, you can write automated crash analysis and automate common debugger tasks.

According to a blog entry by Lee Culver, a developer on Microsoft's .NET Runtime team, it wasn't the original plan to release the library publicly. It came about because the runtime team "has had so much success automating complex diagnostic tasks with this API" that they decided to make it available.

Culver also noted that the library is a wrapper around CLR internal-only debugging APIs. The internal APIs, he said, are "incredibly difficult to use and tightly coupled with other implementation details of the CLR." Since the CLR is a managed runtime, things like garbage collection and JIT compilation are done for you.

The most basic thing you'd probably to with ClrMD is print out heap stats to the console. But it gets much more granular than that, allowing you to, for example, "walk every managed thread in a process or crash dump and print out a managed callstack," Culver wrote.

The blog also contains a code sample to help you learn by doing.


Posted by Keith Ward on 05/03/20130 comments

Microsoft Releases WebMatrix 3

Microsoft has released WebMatrix 3, its lightweight development tool for quickly building Web sites. The key features of the new version are Windows Azure integration, source control with Git and Team Foundation Services (TFS), and remote editing.

Microsoft's Scott Guthrie made the announcement on his blog. There was apparently some confusion on the official release date of WebMatrix 3; a speaker at the VSLive! conference in March said it would debut on April 4, and ZDNet's Mary Jo Foley reported that it was available on April 3 (she had updated that post, listing the release date as April 4 as well). But whatever the cause of the delay, it's available now.

Windows Azure integration is getting the lion's share of the publicity. When logged in to WebMatrix 3 through a Microsoft account, the user gets an option to build up to 10 sites for free, or migrate existing sites to Azure (WebMatrix itself is free as well).

Sites can be built from templates like ASP.NET, Node.js, PHP or HTML5. Another option, provided through the WebMatrix UI, is to use third-party tools like WordPress, DotNetNuke, Drupal and Joomla. Once the Web site's up, it can be edited either on Azure or locally, and with third-party tools or Microsoft tools; for example, IntelliSense support is available for certain types of code.

WebMatrix also provides multiple types of version control. A Web site can be opened from the Git repository, Microsoft's own TFS (the Web-enabled version of Team Foundation Server) or CodePlex. Guthrie said that version control was "one of the most requested features" in WebMatrix 2, and it's been extended in version 3.

In an earlier story on the forthcoming release, Instructor and WebMatrix expert Mark Rosenberg explained the value he sees in the product:

"The idea is to get a Web site up and running as simply as possible ... One of the problems that I always have in Visual Studio is … 'I don't have the prerequisites: I need to install PHP to make it work, I need to do this or that and I install PHP, and then it doesn't work. WebMatrix takes care of all those problems for you. If you don't have PHP installed, and you've picked a PHP-based Web site, it installs PHP. It actually takes care of installing everything you need on your machine."

WebMatrix 3 is available here.

Posted by Keith Ward on 05/02/20130 comments

Subscribe on YouTube