Xamarin Forms gets Mac Desktop and more!

I was just watching the latest Xamarin Show with James Montemagno and was pleasantly surprised to see that Xamarin.Forms 2.4.0 Service Release 2 (September, 2017) added support for Mac Desktop apps. Of course, you have to use Visual Studio for the Mac, but that's completely understandable. In this episode, David Ortinau showed the gallery sample app running as a Mac desktop app. Very very cool.


They also made performance improvements by tightening up the number of UI layers required for basic controls. These improvements are especially noticeable with lists.

On top of that, they announced support for .NET Standard 2.0 (and therefore lower)

These features are new. Think of them as alpha. 

Ancient Code

I'm an old developer, but I talk about the latest and greatest technologies three times a week on my podcast, .NET Rocks! I also speak at software development conferences around the world. Needless to say, my brain is focused on the new and shiny. However, I have lived through the same history of .NET that you have.

More and more, I'm realizing that my experience of having come through this history is a valuable thing to those developers struggling with maintaining an early .NET code base and/or those trying to move a code base forward with a new set of technologies.

If I am describing your situation, I'm not surprised. There are several factors that are NOT helping you in your day-to-day activities.

Information on the web tends to favor the most popular languages and tools. If you're looking for a sample of how to do reflection in .NET 2.0, for example, it will take you time to wade through all of the more recent content.

This theme extends to places like StackOverflow and Pluralsight where content for older technologies tends to go away after a while - or at least can be very hard to find.

Another way this built-in bias for the new and shiny manifests itself is in the conference circuit. You won't be able to find people speaking about older technologies because of the limited audience. 

If you are lucky enough to find people who remember the "old stuff" there's a good chance that they will either have an attitude about your clinging to the past, or worse, they are constantly trying to get you to rewrite it from scratch.

Let's face it, it's very hard to care and feed for ancient code unless you can find those special people who carry the knowledge and won't berate you or constantly try to sell you something.

That's why I'm writing this post. I'm that guy. Talk to me. carl@appvnext.com

Free Xamarin Technology Changes Everything

I went to Build 2016 and all I got was a free, open-source platform that can write apps for Android, iOS, Mac, Linux (server), and all flavors of Windows.

At their Build 2016 conference in San Francisco last week, Microsoft announced that they would be putting Xamarin's cross-platform mobile technology into every version of Visual Studio for free. Prior to this announcement, Xamarin cost $1000 per developer per year per platform (iOS and Android). Microsoft recently acquired Xamarin, and Scott Guthrie dropped this bomb at Build only 10 days after the acquisition was finalized.

We need to consider what a game-changer this really is.

Ever since Satya Nadella took the helm of Microsoft in February, 2014, the firm has changed it's fundamental profit policy. No longer would sales of the Windows OS be a profit center. Prior to Satya's arrival, the Windows team led by Steven Sinofsky had control of the development stack, pushing everyone to develop apps for Windows 8.x, a Frankenstein of an OS that turned your desktop into a giant Windows phone. Needless to say, .NET developers were a bit put off.

My theory here is that .NET was seen as a bit of a threat to Windows by Sinofsky. Why would anyone upgrade Windows while they could just get the latest .NET Framework and keep running that old version of Windows XP? Sales of Windows was key if they were going to make inroads in the mobile market, where all the innovation is happening.

Nevermore. Microsoft ceded the mobile war to Android and iOS. At Build 2016 there was barely a mention of Windows Mobile. They hinted at some goodness to come, but there was nothing concrete. Instead, they now fully embrace Android, iOS, and Mac for client development.

Along with the shift away from sales of Windows, Microsoft is betting the farm on their cloud platform, Azure. If services are now their main profit center, they have a big incentive to make it easy to develop apps for Azure on every platform imaginable.

Why didn't they buy Xamarin last year? Great question. I, for one, thought they would. There were technological hurdles, for sure. Integrating and combining the Xamarin and .NET code took some time. But that wouldn't have stopped them if they really wanted it to happen. Rather than looking at Microsoft's actions, check out what Xamarin did in the last year that may have forced Microsoft's hand.

In July, 2015, Xamarin announced a new partnership with Oracle that may have flipped a switch. Microsoft doesn't consider many companies unfriendly. Oracle is one of them. Oracle has had financial dominance in the Enterprise Database space for a while. More relevantly, though, they have a cloud. That move must have hurt ("Hey Xamarin, I thought we were friends!")

Microsoft also announced at Build 2016 that the Mono project, the underpinnings of Xamarin technology, would now be re-licensed under the more permissive MIT license, and be contributed to the .NET Foundation, an organization that curates many Microsoft (and related) OSS projects. Oh yeah, Xamarin is also OSS under the MIT license and curated by the .NET Foundation. Boom!

There were several other announcements at Build, some of which we'll go into in upcoming posts, but the Xamarin announcement has everyone's head spinning.

You may have heard of my podcast, .NET Rocks! I have always promoted it as an "Internet audio talk show for .NET developers." I never wanted to focus just on .NET, but anything and everything that a .NET developer might care about. We have done shows on languages like JavaScript, Erlang, Ruby, Swift, and Python. We have devoted many shows to full stack web development. It seems as though we had the right idea all along. .NET is truly an open source solution that goes everywhere. 

I started .NET Rocks!  in 2002. Today, we publish 3 shows per week, and have nearly 1300 shows in our archive.

Hats off to Satya, Scott Guthrie, and the entire cast and crew of Microsoft who gave .NET back to us (and then some). The world will never be the same again.

Carl Franklin

carl at AppVNext dot com


Hack for a Good Cause: My Humanitarian Toolbox Hackathon Experience

The Humanitarian Toolbox is a nonprofit organization that was formed to develop open source software for humanitarian organizations. Joel covers a bit about his experience in working on the allReady web application built upon the pre-release version of ASP.NET 5, and the three day hackathon he and other App vNext guys participated in, and how you can get get involved today!

Polly is Repetitive, and I Love It!

Learn more about the Polly library featured on .NET Rocks! Better Know a Framework segment. Polly helps developers express transient exception handling policies in a fluent manner, using a host of retry and circuit breaker options in a clear and concise way. If you're looking for a way to intelligently retry failing blocks of code in your application, read on!