Monday, May 2, 2022

Build 2022 announced

Build 2022 will be held May 24th to the 26th. Once again it will be a virtual event. I like the virtual format and it seems that each iteration is getting better. If you're interested in registering check it out here. Build 2022

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.

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. 

Monday, December 13, 2010

What a difference a release makes

It's been pretty hectic the last couple of months for me. I'm now involved in a one man enterprise project (yes they exist) and between vetting requirements, architecting and coding there really hasn't been a lot of writing time.

One of the things that is at the top my priority list for this project is to provide a high quality and consistent user experience. To that end I had planned to use the DevExpress Silverlight toolset. This looked like a good choice as they're support had been good and the control set looked to be expanding in areas that I would certainly need, such as Charting. But the DevExpress 10.2 release fell flat for me in more areas than it should of. From lack of documentation for new controls (in mean no documentation) to bugs that had not existed in DevExpress 10.1 and where now closed as "Microsoft's problem" (really it worked fine in the last release) to Themes not working with prisim modules, I decided I needed to rethink my choice.

I decided to take another look at Telerik. To be honest, I really didn't want to change, as it's always hard to say "hey maybe I was wrong", but sometimes you just have to rethink your approach. I was pleasantly surprised by the depth of the documentation and ease of use of the toolset. The Telerik controls provided a consistent data binding experience, so no longer did I have to ask "ItemsSource or DataSource or is it something more obscure?" or dig through reams of docs to find examples, it worked flawlessly with prisim and provides great support for commanding. The GridView also supports Hierarchical data, which is something that I will need. Overall I've been very impressed with the toolset and in the future will also make use of the MVC extensions as well.