Wednesday, April 12, 2017

Switching Back to Windows

About a year and a half ago I bought into the whole Mac ecosystem. It started when I needed to replace my Windows Phone and my carrier no longer had any Windows devices. I was impressed my the number of apps that were available, especially apps for my financial institutions and insurance company and number of utility company apps that made life a bit nicer. These apps did not exist on the Windows Phone and for obvious reasons they still don't.

I decided to take the plunge and purchase a MacBook Pro. The first thing that I noticed was that the hardware was very nice and it operated well. I then noticed that there were way fewer apps for the Mac as compared to iOS, but Office was available and this made it semi productive as the Apple apps that come installed are horrible compared to office.

I purchased a copy of parallels and installed Windows 10 and my development tools so that I could work in both worlds. I dabbled in Objective C and Swift as well as learned Xcode. I was not impressed at all with developer experience in Xcode. It feels to me like a late 90's experience where we would sprinkle message boxes around an app to improve the debugging experience and while Swift was modern hip language it still carries a lot of Objective C baggage due to it's apple heritage.

Slowly over time my interest in Mac and iOS development waned and I found myself in the Windows VM more that the Mac. At this point I realized that I am a PC and not a Mac and never will be. I began my search for a replacement looking at all the usual suspects, HP, Dell etc. I also looked at the Surface and Surface Book. I had previously used The Surface and I just didn't like the keyboards, to me it felt like typing on a cardboard box top. I eventually decided on the Surface Book. While it is certainly more expensive, I ended up with the 16GB 512SSD I7, it is absolutely leaps and bound ahead of the MacBook Pro in versatility and performance.

I have happily settled back in with my new Widows device and the best development tools hands down and enjoying very much. Off to sell a MacBook Pro...

Sunday, February 28, 2016

Nuget - the new dll hell

Back in the early 2000's, when I first started programming on the Microsoft stack, COM objects were all the rage. This of course had a side effect of something known as dll hell, where an application could change a version of a dll your application depended on, thus breaking your application in the process or causing subtle bugs that where hard to debug. .Net was supposed to change all of that with side-by- assemblies and versioning and for the most part that has worked well. Enter Nuget, nuget was intended to centralize project dependencies and libraries. So for example if you needed to parse JSON files in your application, you could locate a package that contained a JSON parsing library and add it. The reference to the nuget package could be easily shared across teams and build systems. The problem is that many of these libraries come with a proliferation of their own dependencies and in some cases those dependencies are older versions. A case in point, on a an application that I'm currently working on, I have a dependency on JSON.Net, I upgraded to the latest version 8.0.2 only to find out that another package that was referenced had a dependency on 6.0.0 so upgrading broke functionality in the other library (the other library BTW is a Microsoft Library). The eventual work around was a binding redirect in the app config. But this still points to a bigger problem that of library maintenance and vetting libraries that are available on nuget. No one to my knowledge vets these packages and updating certainly isn't enforced. So now we have come full circle in the dll hell story, we are essentially right back were we started in the COM days.

Sunday, February 14, 2016

Making a change

I have been a windows programmer for over 15 years and in that time I have worked with a number of development platforms from MFC to .Net. The Microsoft ecosystem is definitely a rich and evolving system, but this year I decided to branch out. I purchased a MacBook Pro and switched from windows to OS X. The hardware is incredible compared to the numerous Windows boxes I have had over the years. But more importantly is the ecosystem and how apps and hardware just work together. I have since purchased an iPhone and iPad and that is were the ecosystem shines. The sheer number of apps available on the Apple platform as opposed to the windows platform is incredible to a me as a long time Windows enthusiast. I have since started to learn iOS programming in both Objective C and Swift. Swift of course is my current favorite for learning and programming in iOS, it's power and elegance are defiantly a plus for anyone moving to the platform. Another thing that stands out and maybe it's my perception, but the development stack seems more uniform and unlike Microsoft, there is no conflicting messages regarding technologies. Honestly one of the things I've always hated about the Microsoft stack was the "Here today, gone tomorrow" uncertainty when it came to technologies and if you've developed in the Microsoft space for any amount of time you know what I mean. Right now I continue to learn and explore the Apple platforms and everyday is a new learning opportunity.

Saturday, January 19, 2013

Restore missing Item templates in Visual Studio 2012

I’m working on a large Silverlight to WPF project migration and came across a issue where item templates where not being displayed from the Add new Items dialog. After a bit of searching it became apparent that this was a fairly common problem and there are a number of ways to fix the issue. Of the the various suggestions I found one seemed to work the best, although it was originally for Visual Studio 2010. So here is how you can get those missing templates back.

  • Navigate to C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
  • Delete the ItemTemplatesCache folder
  • In the ItemsTemplate folder navigate to the templates you want to display and for each template open the vstemplate file in a text editor and set ShowByDefault from false to true
  • run devenv /installvstemplates

You may need to run this as an administrator. Once this is done open your project in Visual Studio and right click “Add New Item” your templates should now appear.

Monday, January 14, 2013

The Problem with Windows 8 Apps

I have to admit I was skeptical of Windows 8 when it was announced. Since it was released I’ve migrated my laptop and desktop as well as purchasing a Surface and HTC 8X windows phone. While I’ve been happy with the phone apps I’ve downloaded from the store, the Windows 8 apps are another story.

First let me set the bar, I look for apps where the developer took some time to develop an icon. If I see an app in the store with the default Visual Studio App Store app template you’ve lost me. Even if it is the greatest app since the internet the fact that you could not take a few moments to build even a basic icon tells me you really don’t care about your work. There are literally dozens of these app icons in the store.

I expect the app to be responsive. If the data is stale or not updated or the app just plain says it updated and I can go somewhere and see this in not the case you’ve lost me. A case in point are twitter apps, I can look at twitter on the web and compare what is displayed in the app and I can tell you’ve lied. Both Rowi and Metro Twit done this. Facebook apps have similar issues. If you have an app in the store that uses social networking it better update consistently.

I expect apps to provide the advertised functionality, if your app won’t even provide the advertised functionality you’ve lost me.

I have taken the stand of not paying for a single app until I can be reasonably sure that what I pay for will work. The biggest hurdle that Microsoft needs to overcome is not the number of apps in the store, but the quality. you can have a million garbage apps (ask google) but when you have quality apps that work as advertised and provide value then you only need a few to be profitable and build user loyalty.

Maybe the message to developers should change from “Build apps for the store quick and easy” to “Make quality apps and create revenue”. I’m still skeptical about the future but all it will take is quality in the store.

Monday, July 23, 2012

Some thoughts on the Metro UI in Visual Studio 2012

The Metro UI in the Visual Studio 2012 is horrible  The icons and graphics make navigating a solution nearly impossible. The Light Theme and Dark Theme are equally unreadable. The geniuses that came up with this UI concept should be tarred and feathered. Even with the improvements in search and the solution explorer I still find myself being less productive because I have to study each file to make sure that’s what I want to work with. Lets not even start on the ALL CAPS MENU, really?

I appreciate the IDE improvements but how about a choice? Dear Microsoft, Metro doesn’t work for everything. 

Saturday, July 21, 2012

Resurrecting the Blog

It’s been about two years since I lasted posted anything to this blog. A lot of life changes have occurred during the time both professionally and personally. I have time once again to devote to content and .Net articles.

This is an exciting time in the .Net community, Azure and the cloud are gaining momentum. Azure is head and shoulders above any other cloud offering in terms of functionality and ease of entry.

Windows 8 is just around the corner and whether you are a fan of Metro or not (to me it feels bolted on as an after thought), there a ton of new features that developers can leverage to bring their customers.

So keep an eye on this space over the next few weeks I’ll begin to ramp up the articles and commentary.