Spatacoli Blog

  1. Links of the Week

    I don’t have thousands of tabs open in my browser like some people do, but I do tend to save things I want to read for later. I then like to spend some time on Saturday going through the tabs and see what there is to learn.

    This week I thought I’d share the experience with you my dear readers.

    My first tab is a blog post titled, “Mastering the Arcane Art of JavaScript-mancy for C# Developers.” This particular post is the first chapter in what looks to be a very large series of posts. The post does a great job of introducing the series of posts that I have yet to read. I’m excited to read this series because I am a C# developer currently living in a JavaScript codebase. Expect to hear more about this in the future.

    The second tab is a blog post by a developer named Khalid Abuhakmeh titled “The ASP.NET Apocalypse is Coming.” In this post he makes a fair point about the future of ASP.NET. ASP.NET 5 will be a split personality of sorts. On the one side is the traditional close source .NET Framework that ASP.NET developers have come to know and love. On the other side is the shiny new open source .NET Core Framework. Khalid is worried that the current group of Open Source projects supporting ASP.NET won’t make the leap to the new open source ASP.NET 5 and the CoreCLR. It is an interesting problem, but I think that as we get closer to shipping (currently slated for January 2016) we’ll see these developers update their code for the new open source .NET platform.

    Speaking of ASP.NET 5, the third tab I have is a video of David Fowler showing off ASP.NET 5. Check it out, it is an hour and two minutes long though, but well worth the view. It is called, “David Fowler – ASP.NET 5 Deconstructed.”

    The fourth tab I have open this morning is a post on “The open/closed principle applied to CSS.” The Open/Closed Principle of software design states that software should be open for extension, but closed for modification. This post describes how to apply this principle to CSS. This post makes heavy use of previous blog posts on the Object Oriented CSS pattern. It seems pretty good, but honestly for me it is a little heavy. At work we are using the BEM pattern and it is nice and lightweight enough to be used for small and large projects. BEM stands for Block Element Modifier and is a fairly simple naming convention. I’m sure as I learn more about OOCSS I’ll find that it is just a simple naming convention too, but I think this article is a good place to start.

    The fifth tab is an article by Scott Hanselman titled “Integrating Visual Studio Code with dnx-watch to develop ASP.NET 5 applications.” Visual Studio Code is a light weight code editor from Microsoft that runs across the three major platforms. (Linux, Mac and Windows). These three platforms are also the major targets for ASP.NET 5. Integrating dnx-watch into Visual Studio Code will make developing apps that much simpler and make Visual Studio Code a little closer to a full IDE. Anyway, dnx-watch is a wrapper around dnx that will watch your source directory  for changes and will automatically restart dnx. This way all you have to do is press F5 in the browser to see your changes.

    Managing git in a large team with continuous integration processes can be a pain in the butt. My team at work has started using GitFlow to manage the process. GitFlow, as I understand it, is a naming convention for branches in git. The CI server doesn’t have to listen to all branches and start a build every time someone commits, but instead it listens to a single branch or set of branches and kicks off a built when people merge into that branch. Confused yet? Here is an overview of GitFlow. My sixth tab is, “Integrating GitVersion and GitFlow in your vNext Build.” It talks about setting up Visual Studio Online’s build to automatically publish a Nuget package. I’m not currently building any Nuget packages, but I’m interested in the topic and will adapt it to my own software.

    My seventh tab is “Windows 10 UWP app templates for Adobe Photoshop.” This post links to the design templates needed for Windows 10 UWP apps. Simple as that.

    The 8th and final tab is “Debugging Mocha Unit Tests in Visual Studio Code.” NPM has the ability to store scripts to be run at the command line. A default script is “test” and in this post it is used to run “mocha –debug-brk”. Then it is integrated into the writer’s Visual Studio Code workflow. It is a good read and with it you can start to see how Visual Studio Code can be used for more than traditional Microsoft stack tasks.

    Phew, all done with my open tabs. Like I said I’m not one to keep a thousand tabs open. You should see a little pattern in my open tabs. First is ASP.NET 5. I haven’t worked in the ASP.NET world in a couple years and I’m anxious to get back into it. I figure the coming ASP.NET 5 will be a good time to dive back into it. I might rewrite my blog engine that I wrote in the .NET Framework 2 time period. Other ideas are certainly welcome. The second pattern you should see here is the talk of Visual Studio Code. Code is an amazing tool that is currently in beta from Microsoft. As I get back into writing web sites I’ll be using this as my tool of choice.

    Let me know what you think of this post. I might do more of them in the near future.

  2. Surface Pro 4

    Yesterday at a Microsoft Store I got to play with a Surface Pro 4 for a little bit. It is exactly what I feared, a worthy replacement for my Surface Pro 3. It is fast, and although the screen is just a little bit bigger, the resolution on it is amazing. It feels solid and is just a little bit thinner than the Surface Pro 3. All in all I’d say it is an amazing computer. I still can’t justify paying for a new computer so soon after buying my Surface Pro 3, but one thing that I can justify is the keyboard.

    The new Surface Pro 4 Type Cover has an amazing keyboard on it. The chicklet style keys have just the right action and proves that Microsoft is using its vast knowledge of 25+ years in the keyboard industry to create a great keyboard. I got to play with it for just a little while, but I already like it a thousand times more than this old Type Cover on my Surface Pro 3. There is even a version that comes with a fingerprint reader to enable Windows Hello.

    October 26th is the date that the new Surface Pro 4 and the accessories are released. I will be one of the first in line to get the new keyboard.

  3. New Surface Computers

    Microsoft released some new Surface computers quietly this week. The new machines include a new Surface Pro 3 with 128GB storage on an Intel core i7 processor. Color me surprised when I was in a Microsoft store and saw the list of available machines include this. I personally have the 256GB core i7 model and it is a spectacular machine.

    Also released this week are the Surface 3’s with 4G capability. This will allow you to be connected to the Internet from virtually anywhere for a small price per month to your cellular carrier. This is the Surface 3 not to be confused with the Surface Pro 3 that gets the 4G connectivity.

  4. Build 2015

    This year marks the 4th year that I have gone to the Microsoft //build/ conference. I had to miss last year due to some mix-up at work, but that’s in the past.

    Every year seems to try and outdo the previous year and this was no different. This year some announcements were made that blew many people away. I was not one of them. I did find many of the sessions were very useful and made the whole conference great.

    What’s with iOS and Android?

    Ah, cutting straight to the heart of the matter. Microsoft announced a couple of projects that were aimed directly at developers of other platforms. The announcement is that Microsoft has crafted a couple of cross compilers that, with minimal code changes, would allow a developer to compile their Objective-C code (for iOS developers) or their Java/C++ Android code into fully functioning Windows 10 binaries. There seems to be some caveats, as one might expect, but the immediate response of course seems to be, “Who needs Windows developers anymore?”

    Who does need Windows Developers?

    Well, frankly, I hope a lot of people decide that they need Windows developers. Sure now you can just ask your iOS or Android developers to pull double duty and compile their code for Windows as well as the primary platform. Heck, a clever release engineer could automate the whole thing. It just came across to me as a big slap in the face from Microsoft. Am I even needed anymore?

    What about the fun stuff?

    hololens_5Okay, let me switch gears a little and talk about Windows Holographic and the HoloLens. In a stroke of luck, I managed to wiggle my way into the demo of HoloLens. This is the head mounted visor thingy from Microsoft. These things were kept pretty secure and out of the way. They were in a hotel next to the convention and you had to be invited to go see them. Before I got to put my hands on it I had to lock away all my belongings like my cell phone. Then they measured the distance between my pupils (66 mm in case you were wondering) and then they led me into another hotel room. To get to the room I had to squeeze past quite a few security guards. This was serious business.

    Finally I got into the room where they placed the HoloLens on my head and ratcheted it down to fit snug. Then they booted up the device and I got to see my first glimpse into the future. The future my friends has a very narrow field of view, but I had to remind myself that even video on the Internet was once postage stamp size and look at it now!

    The demo consisted of looking at a construction site as though I was the architect. I’m going to spare you all the details of the 30 minute demo. If you really want to know contact me on Twitter and I’ll spill it. In the end I was impressed and it was cool, but honestly it has a long way to go before it is as impressive as the example footage we saw in January would lead us to believe. “Meh,” I said and I meant it. Even though everyone else was jaw dropped.


    I went to 12 of a possible 13 sessions. I skipped Friday morning because I rode to the City with my wife. Because my work paid for the conference I thought it best to attend sessions that will help me with my work. This meant that I missed out on the great maker kit that was handed out at the Raspberry Pi 2 talk. Epic sadness there. I will watch the talk online though and get my RPi2 running Windows 10 very presently.

    Design Sessions

    Four of the sessions I attended had to do with design. I am not a designer by nature, but this is where my company seems most interested at the moment. Specifically, we have a Windows 8.1 app now what do we have to do to get it ready for Windows 10? The answer to this is a little complicated, but since nobody even mentioned the old swipe AppBars it is clear that we need to put the navigation on the screen somehow. Many of the apps I saw used the Hamburger menu system that is popular on mobile phone apps. Other apps just had their controls right on the app window. It is clear then that hiding the app controls is not the way to do things. I suppose this is another place where Microsoft was listening to the consumers complaints about Windows 8.1.

    In a talk on Navigation and Windowing in Universal Windows Apps, the speaker introduced us to multiple windows single application. Although this technique has been used in the past it hasn’t, until now, been used in Metro either on the phone or on Windows. This is interesting because it means that we could have the viewer open in one window and our library still present with navigation controls in another window.


    I went to a TypeScript and several JavaScript talks and the number one thing I got from them was that Microsoft is committed to standards based JavaScript and all the recommendations were around using ECMAScript 6 (A.K.A. ES6 and ES2015). This is handy since that is what we are using at work now. When asked how to handle down-level browsers the speaker recommended transpilation tools such as TypeScript or Babel. Babel is what we are using at work.

    It was interesting when the speaker at one of the sessions asked if anyone was currently using ES6 only a few hands went up. Listen to me, you may just be reading this blog and not paying attention, ES6 is good stuff. I recommend looking it up and taking a tour. Here’s a good resource to get you started.

    Why all the focus on ES6? Two reasons really: First Microsoft has a new browser out called Microsoft Edge. This browser is built on standards compliant JavaScript, HTML and CSS. It is fast and the way of the future for Internet browsing. Second, this Edge browser is the rendering engine that is used in apps built with JavaScript and HTML. ES6 will allow you to get the best possible performance out of both the web browser Edge and your HTML/JavaScript Windows 10 apps.


    This is just the beginning of what is in store for Windows 10 development. My trusty Surface Pro 3 and I will be taking a wild tour of application development. I hope to document it as best as I can and I hope you follow along. Build 2015 was a fairly emotional ride for me and I am glad I went. Windows 10 will be released soon-ish and I hope that everyone that went to //build/ will tell all of their developer friends how to make the best apps they can. Microsoft’s goal of a billion devices starts with one killer app. That app is different for everyone so I hope that you get out there and build apps.

  5. Windows 8.1 Update

    I’m a little late to the party of writing about Windows 8.1 Update, but I wanted to get a fair result. My initial thoughts on it were that I didn’t like any of the improvements they made for keyboard and mouse users. Until a couple days ago when I was forced to use Windows 8.1 long enough to install the Update. I have to concede that the keyboard and mouse improvements are wonderful. The added title bar for immersive apps is great and the addition of the power button on the start page is great. Also the addition of context menus to the start page is great. Overall I hope everyone out there in Windows 8 land updates to Windows 8.1 Update and does it soon. There are no more patches for Windows 8.1 without the Update. Also, if you are still using Windows 8 please find out how you can upgrade for free. It is very important that you are on the latest and greatest.