Category: Uncategorized

  • Handling Passwords in Visual Studio / TFS Releases & Builds

    Handling Passwords in Visual Studio / TFS Releases & Builds

    Team Foundation Server (TFS) and Visual Studio Team Services (VSTS) have these really handy features that let you define DevOps release pipelines for your applications.  To get to it, go to the web portal for your Team Project and click the Releases tab. Whether you use Releases (aka. “Release Management”) in TFS/VSTS or whether you use…

  • VSLive Austin 2016: Real World Scrum with TFS2015 Slides

    VSLive Austin 2016: Real World Scrum with TFS2015 Slides

    I spoke at VSLive Austin 2016 last week.  As promised, here are my slides and code for my Scrum + TFS2015 talk. Real World Scrum with Team Foundation Server 2015 & Visual Studio Team Services You’ve got Team Foundation Server 2015 and you’re looking to do Scrum. Ok. Great. Now what does that mean? What…

  • VSLive Austin 2016: ASP.NET MVC / Core Security Slides & Code

    VSLive Austin 2016: ASP.NET MVC / Core Security Slides & Code

    I spoke at VSLive Austin 2016 last week.  As promised, here are the slides & code samples from my ASP.NET MVC / ASP.NET Core Security Authorization Talk.   Role-Based Security Stinks: How to Implement Better Authorization in ASP.NET & WebAPI In .NET, if your user permissions are simple, you’re in luck. Access the IPrincipal for the…

  • VSLive Austin 2016: DevOps / Feature Flags Slides & Code

    VSLive Austin 2016: DevOps / Feature Flags Slides & Code

    I spoke at VSLive Austin 2016 last week.  As promised, here are the slides & code samples from my DevOps / Feature Flags talk. Get Good at DevOps: Feature Flag Deployments with ASP.NET, WebAPI, & JavaScript Want to get good at DevOps but deployments are getting you down? Is the code integration process just plain driving…

  • Powershell Script for Hyper-V to Wi-Fi NAT

    Powershell Script for Hyper-V to Wi-Fi NAT

    One of the big hassles when you’re working with Hyper-V on a laptop is networking.  Specifically, getting your Hyper-V guest machines to get network access through your laptop’s wifi connection. Well, Ben Armstrong blogged a new feature in Hyper-V that allows you to do NAT over wifi.  In his post, he pointed to the documentation on Microsoft’s…

  • VSLive Vegas 2016: Unit Testing for Mere Mortals Slides & Code

    VSLive Vegas 2016: Unit Testing for Mere Mortals Slides & Code

    I just wrapped up my first talk at VSLive Las Vegas 2016 — “Unit Testing & Test-Driven Development (TDD) for Mere Mortals”.  Thanks to all the attendees for the great questions — especially the discussion we got in to about unit testing private methods. As promised, here are my slides and code samples. Unit Testing…

  • 5 Reasons to Care About Scrum Now That Waterfall’s Dead

    5 Reasons to Care About Scrum Now That Waterfall’s Dead

    How do you lead change in your software organization?  How do you get your teams to care about doing a good job?  How do you get them motivated to try new things and/or improve? It’s been 14 years since the Agile Manifesto and Scrum’s not so young anymore.  The idea that Agile and Scrum are…

  • Learn to Customize TFS2015 Build with Environment Variables

    Learn to Customize TFS2015 Build with Environment Variables

    You’ve probably noticed that Team Foundation Server 2015 introduces a new automated build system.  One of the great things about this new system is that it’s based on PowerShell.  At this point, you’re probably thinking “Ok.  PowerShell.  Fantastic.  Why do I care?”  Well, that PowerShell-centric approach allows you to much more easily customize your builds.…

  • Walkthrough: Create a new TFS2015 build server

    Walkthrough: Create a new TFS2015 build server

    [UPDATE 2/28/2017 — If case you need it, here’s the TFS2017 version of this guide.] With Team Foundation Server 2015, there’s a whole new build system with new build scripts and new build agents (aka. build servers).  It’s 100% different from the old XAML-style builds but it’s also about 100% easier to use and set…