• When I put up a new website in Azure I tend to run into the same problems. Pointing DNS to the azure website nets a lot of urls. I'll have mydomain.com, www.mydomain.com, mydomain.azurewebsites.net, and http/https versions of all of them. When talking SEO, you generally don't want duplicate ways to get to the same content. Luckily, this can be solved relatively painlessly with url rewrites in the web.config. I put together a quick reference to handle some of the scenarios.
    approx. 2 minutes. Software    azure asp.net
  • I'm recently working with microservices in Asp.Net Core. With microservices, there tends to be a lot of network connectivity. One service potentially calls many other services to build a final response. It's difficult to see where a request started, all the subsequent requests that happened back to the final result. Concurrency keys are a way to track a single request through all its dependancies. The idea is when a request is made a concurrency key is generated.
    approx. 2 minutes. Software    asp.net csharp .net core microservices
  • A lot of the projects I work on use multiple database engines. SQL Server or Mongo for persistence, Redis for caching, Elastic for search, etc. Setting all of them up whenever I configure a development environment can be a hassle. Turns out Docker solves this problem very well. Docker not really explained If you don't know what Docker is I recommend checking out this intro article. Ideally, I'd convert my projects to all use Docker containers, but a lot of them aren't .
    approx. 4 minutes. Software    docker
  • You can publish to Azure websites a number of ways. They all have their strengths and weaknesses so I tend to change them up depending on the situation. If I'm trying to get something quickly up to Azure I'll go with the git deployment. If I want full continuous integration I'll generally go WebDeploy and automate with continuous integration. This article explains how to deploy a .Net Core application to Azure websites using git.
    approx. 3 minutes. Software    .net core azure git
  • I really like my Macbook Pro. I'm also a developer who uses .Net a lot. This creates a problem for me since the .Net ecosystem is primarily a Windows one. Luckily, with the addition of .Net Core this is changing. .Net Core is open source, cross-platform, and supports many of the things us .Net developers are used to. I was wanting to test the cross-platform part so I set out to build a simple Asp.
    approx. 5 minutes. Software    csharp .net core asp.net
  • Selenium is a great product for browser automation. It allows me to build great suites of interface tests. The only issue is the code to implement Selenium in the C# world isn't very clean. With a single page application, the developers end up with a lot of Thread sleeps, complex selection queries, etc. Enter Coypu. Coypu is a C# wrapper around Selenium with an API inspired by Capybara. This means coding to Coypu is very straightforward.
    approx. 3 minutes. Software    selenium csharp
  • I want to note this was my first stab at getting a workflow for cross-platform libraries using the new technologies. I don't consider any of these methods the correct way to do things, but they represent my experience with it so far. I've had a fairly unstable relationship with .Net recently. I support the push to make things cross-platform. I understand that change is tricky. However, I feel like there is a lack of the usual Microsoft prep-work when it comes to the new offerings.
    approx. 5 minutes. Software    asp.net .net core csharp
  • Re-Launch with Hugo

    The site has been transformed. It's now mattkruskamp.com instead of cyberkruz.com. But, there's more! I've moved from a website builder (Squarespace) to using a static website generator (Hugo) to create the site. Why? Content ownership I'm going to simplify here a bit. The internet was originally created to be a decentralized network. Any person or business can throw a server on the network and host a website or other resources. No one site is technically more important than the other.
    approx. 2 minutes. Software    hugo
  • I was doing my usual Azure publishes when all of a sudden Visual Studio would hang with the “Visual Studio is Busy.” error. After hours of messing with stuff I found that if you go to your server explorer in visual studio the Azure section said “Reenter credentials.” Once I did that everything was working fine. Hope it helps someone else.
    approx. 1 minutes. Software    azure
  • I develop on a MacBook Pro through Parallels 9. When I am working on web applications I use OS X Chrome for my debugging. The reason that I do this is that OS X renders fonts much closer to Photoshop. The problem is that every time I re-install my development tools I cannot remember how I got it working. Here are the steps so future Matt has an easier life.
    approx. 2 minutes. Software    asp.net