I gave the Project Spartan browser a run over the last few days. While I am impressed with how nicely it renders the pages I visit, it definitely has some room for improvement. In terms of what it’s missing from a rendering perspective, it seems to already out perform Internet Explorer in a few areas when it comes to CSS and lag just behind with JavaScript. Most of the issues I’ve found with the browser are actually entirely with the experience and shell side of the application.

I never had an issue trying to use a web page I frequently visit on a day to day basis, which was completely surprising to me. I guess if they simply just refactored the existing Internet Explorer codebase to remove any of the IE specific, legacy bits, then it explains the maturity in what is so alpha it doesn’t even have a marketable name yet.Continue reading

Ever needed to enumerate certificates installed on a remote machine using just C# and .NET without having to use an agent? It was a problem I’ve had a couple of times now and was able to figure out without the help of MSDN or StackOverflow. I discovered the X509Store class has the power to solve this problem for us as it utilizes the C++ CertOpenStore functionality underneath, but it’s not documented anywhere. As a result, you can use some of the same functionality as the underlying library at the C# level, just by simply doing this…

[gist https://gist.github.com/wholroyd/b7026197c485c6085c60]

It’s evidently the second time I’ve had to do this type of lookup. Luckily I remembered to post the answer back to my own StackOverflow question years ago.

It appears the new mindset and process to release updated Windows 10 bits is already working. We’ve gone about two weeks since the last release and we have our next build already. Let’s hope the speed is steady from here out.

This build isn’t too big in the number of changes given the amount of time that has elapsed, but this build is one of the more important ones so far. In this release, was the inclusion of the new Project Spartan bits that is the all new ground-up web browser for modern web experiences. Unlike previously reported on, this browser has no IE 11 or lower back-compatibility at all. Originally the idea was to switch between the modern and legacy engines based on some data the browser had detected. This browser is modern-only, to put it entirely on par with Google Chrome.

If you are a developer using Visual Studio 2015 on the Windows 10 Technical Preview where you are using XAML you will want to skip this build.

If you have any reason to want to enable Hyper-V, do so prior to taking this build as you won’t be able to enable it afterwards. At least not until a future build.

As for what is in the update:

  • Project Spartan web browser is now included (details here)
  • Icon changes

Issues fixed in this build:

  • The Photos app on your PC crashes when you tap on the circular icon (your camera roll) at the top left to view the photo you just took.
  • You might end up in a state where windows open on your desktop are accidentally visible behind the Start Screen, Task View, Snap Assist, and when rearranging windows in Tablet Mode.
  • You will no longer get stuck when you manually lock your PC (Windows Key + L) during the initial out-of-box experience.

Issues introduced in this build:

  • After logging in, you may see a blue screen instead of your desktop. To work around this issue, lock your PC (with the hardware button or by pressing the Windows Key + L) and try logging in again. You can also try Ctrl + Shift + Esc to open Task Manager.
  • Indexing of new email in Outlook is not working, so search results will be limited to when the last index was built.
  • You cannot enable Hyper-V on this build. If you have Hyper-V already enabled and you upgrade to this build, Hyper-V will continue to work.
  • There are 2 issues using Visual Studio 2015 preview on this build:
    • The emulators will not boot and you won’t be able to deploy a Windows Universal app to the Mobile emulator.
    • The XAML designer in VS and Blend will crash when opened.
    • If you are a developer using these tools today to develop Windows Universal apps and need this functionality to work – we recommend switching to the Slow ring until we release a patch to fix these issues.

One of the projects I’ve spent the past month working on is a system called Foundation that will eventually become the company’s one stop shop for automation and workflow management. It’ll keep track of everything from services to environments, and the resources they are using underneath in our private cloud and public cloud provider.

In the process of learning Code First Entity Framework for the first time (all previous provides were Data First), I came across an interesting event that you could use to prepare entities before they are committed to the database. For example, you have some entity properties that need to be checked at last minute and possibly changed. You could do the following without having to layer in an abstract DbContextBase between your own context implementation and DbContext that overrides SaveChanges() to perform the same work before calling the same method off the base class…Continue reading

It’s been about 50 days since Microsoft released it’s latest Windows 10 Technical Preview build to the public, which is now up to build 10041. Along with the release was news that the Windows team has decided to change the way they pick builds for future releases and the addition of another update speed.

In the past, they picked a date in the future and tried to have everything ready by that date. As a result of a known upcoming date where everything had to be perfect, work usually slowed to ensure they produced a good build with the newest updates. Between the last release and the newer release they eventually gave to the public, there would be at times several good builds that were perfectly fine, other than lacking some of the newest features and fixes. They were tired of losing productivity as they neared the date and instead moved to an escrow based build release system where they take the latest good stable build they encounter and put it into escrow. Each time they come across one of these builds in the future, it too would be put into escrow. By the given date each month that they have roughly penned on the calendar comes around, they simply just release the last build that is in escrow.Continue reading

We still haven’t seen the Windows 10 Technical Preview for phones as we were promised from the January event. I don’t remember the Seahawks winning the Super Bowl being a stipulation to it’s release. However, Microsoft has gone ahead and released a preview of Office 2016 Touch which is a universal app version of the popular software. The idea behind a ‘universal app’ is that a developer can write a program once and publish it to multiple platforms on the Windows (and soon Xbox) stores.

At this point, the software is only available to those already running the Windows 10 Technical Preview and is currently limited to only the more popular parts of the suite: Word, Excel, and PowerPoint. There has been some teasing that a OneNote version would also be available in this preview, but it seems to be missing from all of the marketing materials so far outside of just images of the software. The release of the whole suite is expected at the end of the year.

Office 2016 Touch Word Preview

Office 2016 Touch Excel Preview

Office 2016 Touch PowerPoint Preview

Yeah, it was kind of a shock to me when I read it, but it makes sense. I mean, the Windows 8 RT targeted the ARM chipset, which is the same platform that the original Raspberry Pi models utilized. The limiting factor was that the revision of the ARM chipset that the original models employed didn’t meet the requirements for the Windows 8 kernel.

It appears the Raspberry Pi 2 has resolved this issue by utilizing the newer chipset, and given that IoT devices can get Windows 10 for free, this is good news for Raspberry Pi because it can now employ one of the largest operating system distributions on the planet. Yes, I know it’s not the same type of Windows since I can’t utilize the full .NET stack, but it’s still a great step forward.

I haven’t invested in the Raspberry Pi platform just yet, but if I can find a way to communicate with ZigBee and ZWave networks, I think I’ll give making my own home automation controller solution a shot. With it only costing $35, why not?

It appears this morning I got a reboot prompt from Windows saying that some updates were ready to be applied and just needed to reboot to finish the job. I thought it was odd given it’s not Tuesday, but let the machine perform the reboot. On startup, a notification popped onto the screen saying the update was successful.

Looking into what had been applied, I found the update was caused by KB3035129 which lists the following fixes…Continue reading

This is my first post of the year after a good two month hiatus with holidays and tinkering. I have a few more posts that have been in the works that will be coming up later this week and next.

The first big news of the year happened last week on Tuesday when Microsoft finally came clean on what to expect for the consumer side of the Windows ecosystem, for desktop, tablet, and phone form factors. There is evidently supposed to have been the first update for Windows 10 Technical Preview users coming up later this week, but maybe the press got it confused since I found my laptop rebooting around 11pm yesterday which brought the laptop up from build 9879 to 9926.Continue reading

I want to start off by saying that having a monolithic application isn’t always a bad thing, and this article may not necessarily be for you. Yet. It just comes down to the correct timing of using microservices when it make sense and then diving into that work at the moment it’s needed, and not a moment later. Utilizing a microservices architecture too soon will hold you back and slow the development process back, whereas waiting too long to perform the migration makes the refactoring effort very painful.

  • If you have a single product that was designed well, is easily maintainable, and carries minimal technical debt, you may not have a lot of reasons to invest into a microservices architecture. Or certain areas are becoming areas of concern for performance and scalability, then you may slowly split those areas out.
  • If you’re like the rest of us dealing with multiple products through acquisitions, mergers, or reorganizations that were originally built in a time long ago before best practices existed for online services, there is little hope that it is maintainable or carrying minimal technical debt.

Continue reading