<!DOCTYPE html>
<html lang="en-us">
<head>
	<meta name="generator" content="Hugo 0.56.0-DEV" />
    <script>
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
    
        ga('create', 'UA-103133689-1', 'auto');
        ga('send', 'pageview');
    
    </script>
          
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Jack Histon&#39;s Blog  | Jack Histon&#39;s Blog</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css" />
    <link rel="stylesheet" href="https://jackhiston.com/css/blog.css" />
    <link rel="stylesheet" href="https://jackhiston.com/css/main.css" />
    
  <link href="https://jackhiston.com/index.xml" rel="alternate" type="application/rss+xml" title="Jack Histon&#39;s Blog" />
  <link href="https://jackhiston.com/index.xml" rel="feed" type="application/rss+xml" title="Jack Histon&#39;s Blog" />

</head>
<body>

    
    <nav class="navbar is-fixed-top" role="navigation" aria-label="main navigation">
        <div class="navbar-brand">
            <a class="navbar-item" href="https://jackhiston.com/">Home</a>

            <a id="buuuurga" role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false" data-target="shareLinks"  onclick="document.querySelector('#shareLinks').classList.toggle('is-active'); document.querySelector('#buuuurga').classList.toggle('is-active');">
                <span aria-hidden="true"></span>
                <span aria-hidden="true"></span> 
                <span aria-hidden="true"></span>
            </a>
        </div>
        <div id="shareLinks" class="navbar-menu">
            <div class="navbar-start">
                <a class="navbar-item" href="https://jackhiston.com/about">About</a>
            </div>

            <div class="navbar-end">
                <a class="navbar-item" href="http://twitter.com/jackhiston" target="_blank">
                    <img src="https://jackhiston.com/images/twitter.png" title="Twitter" alt="Jack Histon's Twitter">
                </a>
                <a class="navbar-item" data-site="linkedin" href="https://www.linkedin.com/in/jack-histon-4b277141/" target="_blank">
                    <img src="https://jackhiston.com/images/linkedin.png" title="LinkedIn" alt="Share on LinkedIn">
                </a>
                <a class="navbar-item" data-site="" href="http://feeds.feedburner.com/JackHistonsBlog" target="_blank">
                    <img src="https://jackhiston.com/images/rss-icon.png" title="RSS" alt="RSS Feed">
                </a>
            </div>
        </div>
    </nav>
    

    
    <section class="hero is-info is-medium">
        <div class="hero-body" style="background-image: url(https://jackhiston.com/img/bg-blog.jpg);">
            <div class="container has-text-centered">
                <br>
                <h1 class="title is-size-1">
                    
                        Jack Histon&#39;s Blog
                    
                </h1>
                
            </div>
        </div>
    </section>


<div class="container">
    <div class="section">
    


<div class="columns">
    <div class="column is-9">
        <div class="tile is-child box">
            <div class="content">
                <h3>Welcome to my blog !</h3>
                <hr>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/11/14/ideas-of-an-imposter/">Ideas of an Imposter</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at November 14, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;0 min read
                                </p>
                                <p>...</p>
                            </div>
                        </div>
                    </article>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/11/02/automating-the-arrange-phase-with-autofixture/">Automating The Arrange Phase With AutoFixture</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at November 2, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;3 min read
                                </p>
                                <p>In a previous article, we refactored a unit test in two ways. The builder and fixture patterns encapsulated an object&rsquo;s creation, which simplified the arrange phase of a unit test.
These two patterns produced a lot of boiler-plate code. It would be nice to never have to create an arrange phase in the first place.
AutoFixture tries to produce unit tests with no arrange phase. As the AutoFixture GitHub page describes:...</p>
                            </div>
                        </div>
                    </article>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/10/24/extending-the-razor-view-engine-with-view-location-expanders/">Extending The Razor View Engine With View Location Expanders</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at October 24, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;3 min read
                                </p>
                                <p>In a previous post, I dived into view results, and how the razor view engine executes a razor view. Part of the post discussed a feature called view location expanders.
An expander does what its name describes. It expands on locating a view within your application, that is, a way to change how your .cshtml files are located.
View Localisation A good example of a view location expander, is the built-in LanguageViewLocationExpander....</p>
                            </div>
                        </div>
                    </article>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/10/12/msbuild-maintenance-made-easy-with-shared-properties/">MSBuild Maintenance Made Easy With Shared Properties</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at October 12, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;3 min read
                                </p>
                                <p>The New MSBuild MSBuild is the build engine for .NET and Visual Studio. It is written in such a way to be composable, allowing you to combine project files. If you have ever used Visual Studio, then you have indirectly used MSBuild. When you open Visual Studio, it is using MSBuild to restore, build, and manage your projects.
Recently, a new version of MSBuild has hit the streets. This came out along with Visual Studio 2017, and has changed design....</p>
                            </div>
                        </div>
                    </article>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/10/08/aspnet-core-20-repository-overview-action-results/">ASP.NET Core 2.0 - Repository Overview: Action Results</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at October 8, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;9 min read
                                </p>
                                <p>In This Series  ASP.NET Core MVC - Repository Overview: Model Binding ASP.NET MVC Core - Repository Overview: Value Providers  ASP.NET Core 2.0 - Repository Overview: Action Discovery  ASP.NET Core 2.0 - Repository Overview: Action Selection  ASP.NET Core 2.0 - Repository Overview: Razor Pages  ASP.NET Core 2.0 - Repository Overview: Action Results  Contents  Introduction What is the View Result Returning a view result Executing a view result The Executor Finding and Compiling your View  View Location Expanders View Locator Cache Generating an IRazorView Cache Invalidation Rendering the Razor Page Creating a Custom Action Result  Summary  Introduction This series tries to explain the underlying mechanisms of ASP....</p>
                            </div>
                        </div>
                    </article>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/10/3/2-simple-ways-to-improve-your-unit-tests/">2 Simple Ways To Improve Your Unit Tests</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at October 3, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;6 min read
                                </p>
                                <p>Over the past 20 years, testing has become a cornerstone of software development. To turn software development into a true profession, we need to create robust, secure, safe, and efficient systems. The simplest tool in our toolbox starts us on this road: the unit test.
Like an accountant, the unit test is a fantastic way for us to perform double-entry bookkeeping. The unit test double checks our work is correct, and makes sure we keep it from morphing into something we did not want....</p>
                            </div>
                        </div>
                    </article>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/10/1/how-to-create-bogus-data-in-c/">How to Create Bogus Data in C#</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at October 1, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;6 min read
                                </p>
                                <p>Programmers are lazy. We love tools that automate our lives. Why not automate data?
A time-consuming but necessary part of a programmers job is seeding data into a database. Demonstrations, load performance, styling, testing, all need a way to generate data. A rudimentary way of doing this is by hand. Spending days, sometimes weeks, inputting data into a system until it represents a realistic go-live scenario.
Once you begin to realise doing it by hand is inefficient, you decide to create a seeding application that does it for you....</p>
                            </div>
                        </div>
                    </article>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/9/27/trust-your-data-not-your-mind/">Trust Your Data, Not Your Mind</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at September 27, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;7 min read
                                </p>
                                <p>When you add decor to your home, previous decor can look worse. You paint one wall a bright blue, but at the same time, the shine of the wall next to it dulls a little.
Your codebase is a never-ending cycle of refactoring. Small improvements to one part, makes you see small improvements for another part. Shining a light on a piece of your code, shines problems on code around it....</p>
                            </div>
                        </div>
                    </article>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/9/24/aspnet-core-20-repository-overview-razor-pages/">ASP.NET Core 2.0 - Repository Overview: Razor Pages</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at September 24, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;17 min read
                                </p>
                                <p>Previously in this Series  ASP.NET Core MVC - Repository Overview: Model Binding ASP.NET MVC Core - Repository Overview: Value Providers  ASP.NET Core 2.0 - Repository Overview: Action Discovery  ASP.NET Core 2.0 - Repository Overview: Action Selection   Contents  Introduction What is Razor Pages? How to setup Razor Pages Creating your first Razor Page  The RazorProjectPageRouteModelProvider Class  Razor Pages and Forms  The code-behind file The Razor Page Application Model  Dealing with Multiple Handlers  Getting rid of the handler query parameter  Summary  Introduction This article is the fifth in a series I&rsquo;m dedicating to reviewing the code and design of the ASP....</p>
                            </div>
                        </div>
                    </article>
                
                    <article class="media">
                        <div class="media-content">
                            <div class="content">
                                <p class="title is-4"><a href="https://jackhiston.com/2017/9/13/making-a-master-puppeteer/">Making a Master Puppeteer</a></p>
                                <p class="subtitle is-size-6 has-text-grey-light">
                                    Published at September 13, 2017 &middot;
                                    <i class="far fa-clock"></i>&nbsp;4 min read
                                </p>
                                <p>There are many ways to test a program. From starting miniscule with unit testing, to more grandiose UI testing. Puppeteer falls firmly in the latter category.
Puppeteer advertises itself as
 a Node library which provides a high-level API to control headless Chrome over the DevTools Protocol
 That is a lot of words. Puppeteer is a walking advertisement of the true potential the Chrome DevTools Protocol has to offer....</p>
                            </div>
                        </div>
                    </article>
                
            </div>
        </div>
    </div>
    <div class="column is-3">
        <div class="card">
    <div class="card-content">
        <h1 class="title is-5">Tags</h1>
        <div class="tags">
        
            <span class="tag"><a href="https://jackhiston.com/tags/asp.net-core">asp.net-core</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/configuration">configuration</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/csharp">csharp</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/data-mining">data-mining</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/devops">devops</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/docker">docker</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/javascript">javascript</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/misc">misc</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/model-binding">model-binding</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/msbuild">msbuild</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/mvc">mvc</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/nodejs">nodejs</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/object-orientation">object-orientation</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/puppeteer">puppeteer</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/razor-pages">razor-pages</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/refactoring">refactoring</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/refit">refit</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/rest">rest</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/software-design">software-design</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/solid">solid</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/testing">testing</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/value-providers">value-providers</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/webpack">webpack</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/webpack-loaders">webpack-loaders</a></span>
        
            <span class="tag"><a href="https://jackhiston.com/tags/webpack-plugins">webpack-plugins</a></span>
        
        </div>          
    </div>
</div><br>
        <div class="card">
    <div class="card-content">
        <h1 class="title is-5">Recent posts</h1>
        
            <h1><a href="https://jackhiston.com/2017/11/14/ideas-of-an-imposter/">Ideas of an Imposter</a></h1>
            <time class="has-text-grey-light is-size-7">14 November 2017</time>
        
            <h1><a href="https://jackhiston.com/2017/11/02/automating-the-arrange-phase-with-autofixture/">Automating The Arrange Phase With AutoFixture</a></h1>
            <time class="has-text-grey-light is-size-7">2 November 2017</time>
        
            <h1><a href="https://jackhiston.com/2017/10/24/extending-the-razor-view-engine-with-view-location-expanders/">Extending The Razor View Engine With View Location Expanders</a></h1>
            <time class="has-text-grey-light is-size-7">24 October 2017</time>
        
            <h1><a href="https://jackhiston.com/2017/10/12/msbuild-maintenance-made-easy-with-shared-properties/">MSBuild Maintenance Made Easy With Shared Properties</a></h1>
            <time class="has-text-grey-light is-size-7">12 October 2017</time>
        
            <h1><a href="https://jackhiston.com/2017/10/08/aspnet-core-20-repository-overview-action-results/">ASP.NET Core 2.0 - Repository Overview: Action Results</a></h1>
            <time class="has-text-grey-light is-size-7">8 October 2017</time>
        
    </div>
</div>
    <br>
        <div class="card">
    <div class="card-content">
        <h1 class="title is-5">Archives</h1>
        
            <a href="https://jackhiston.com/archives/2017">2017</a> (21)<br>
        
    </div>
</div>

    </div>
</div>
<div class="columns">
    <div class="column is-9">
        <nav class="pagination is-centered is-rounded" role="navigation" aria-label="pagination">
            
            <a class="pagination-next" href="https://jackhiston.com/page/2/">Next</a>
            <ul class="pagination-list">
                
                <li class="pagination__item">
                    <a class="pagination-link is-current" aria-label="Goto page 1" href="https://jackhiston.com/">1</a>
                </li>
                
                <li class="pagination__item">
                    <a class="pagination-link" aria-label="Goto page 2" href="https://jackhiston.com/page/2/">2</a>
                </li>
                
                <li class="pagination__item">
                    <a class="pagination-link" aria-label="Goto page 3" href="https://jackhiston.com/page/3/">3</a>
                </li>
                
            </ul>
        </nav>
    </div>
</div>


    </div>
</div>

<footer class="footer has-background-grey-darker has-text-white">
    <div class="content has-text-centered">
        <p>
            <span class="icon is-large"><a href="https://twitter.com/" class="mysocial" rel="me"><i class="fab fa-twitter fa-3x"></i></a></span>&nbsp;&nbsp;
            <span class="icon is-large"><a href="https://www.youtube.com/" class="mysocial" rel="me"><i class="fab fa-youtube fa-3x"></i></a></span>&nbsp;&nbsp;
            <span class="icon is-large"><a href="https://github.com/" class="mysocial" rel="me"><i class="fab fa-github fa-3x"></i></a></span>&nbsp;&nbsp;
            <br><br>
            Copyright &copy; Jack Histon&#39;s Blog 2019 - Theme by <a href="https://jeffprod.com" class="mysocial">JeffProd.com</a>
            - <a class="mysocial" href="https://jackhiston.com/about">About</a>
        </p>
    </div>
</footer>

<script defer src="https://use.fontawesome.com/releases/v5.1.0/js/all.js"></script>
</body>
</html>
