Subscribe

ASP.NET Core can understand what "environment" it's running under. For me, that's "development," "test," "staging," "production," but for you it can be whatever makes you happy. By default, ASP.NET understand Development, Staging, and Production. You can the change how your app behaves by asking "Is...

Back in 2017 I said "URLs are UI" and I stand by it. At the time, however, I was running this 18 year old blog using ASP.NET WebForms and the URL was, ahem, https://www.hanselman.com/blog/URLsAreUI.aspx The blog post got on Hacker News and folks were not impressed with my PascalCasing but were part...

I recently moved my home NAS over from a Synology DS1511 that I got in May of 2011 to a DS1520 that just came out. I have blogged about the joy of having a home server over these last nearly 10 years in a number of posts. I setup a home backup strategy without the cloud I later added CrashPlan Cl...

An important step in moving my blog to Azure was to consider getting this .NET app, now a .NET Core app, to run on Linux AND Windows. Being able to run on Linux and Windows would give me and others a wider choice of hosting, allow hosting in Linux Containers, and for me, save me money as Linux Hosti...

I have been running this https://hanselman.com/blog for almost 20 years. Like coming up on 19 I believe. Recently it moved from being: a 13(?) year old .NET Framework app called DasBlog running on ASP.NET and a Windows Server on real metal hardware to a fresh and new .NET Core app app forked and...

Hayden Barnes from Canonical, the folks that work on Ubuntu (lovely blog, check out it) had a great tweet where he recommended using the Windows Task Scheduler (think of it as a graphical cron job manager) to keep your WSL Linux instances up to date. There's a few things to unpack here to get into t...

Many years ago .NET Core added Command line "tab" completion for .NET Core CLI in PowerShell or bash but few folks have taken the moment it takes to set up. I enjoy setting up and making my prompt/command line/shell/terminal experience as useful (and pretty) as possible. You have lots of command li...

My love and appreciate for the new open-source Windows Terminal is well-documented. I enjoy customizing the Windows Terminal with a nice prompt. The Terminal of course has Tabs so you can open many different shells at once within a terminal instance, often I want to do things like Split Screen/Spli...

I talked about Cross-platform diagnostic tools for .NET Core and dotnet-trace for .NET Core tracing but I would be remiss if I didn't show and mention "dotnet monitor." dotnet monitor is an experimental tool that makes it easier to get access to diagnostics information in a dotnet process. If you're...

Many apps today are just static files on the front end - HTML and JavaScript - with something powerful on the server side. They aren't "static apps" as they have very dynamic front end experiences, but they are static in that their HTML isn't dynamically generated. As such, you don't need to spend t...

At our house, we use home automation for a lot of different things. One of them is the ability to get a quick overview of the state of our appliances such as the washer, dryer and dishwasher. That way we don’t accidentally forget to turn over the laundry or empty the dishwasher. A red tile on our ...

After showing some pictures of our smart home dashboard, questions started coming in about the cables going in behind the books. Where is the modem and what else is going on? Spoiler alert, the books are fake. Here you see a couple of cables going in behind the books on the top shelve. Removing...

I’ve had some questions lately about how we keep track of all the home automation devices spread across the house. So, I thought I’d share how our dashboard is set up. The dashboard is the web-based SharpTools that runs in Fully Kiosk Browser on an Amazon Fire Tablet HD 10 which is magnetically atta...

Hey! It’s been a few years since I last blogged here! Let’s get this blog thing back in action, starting with something non-technical that I’ve had a few requests for – my story of two years of daily exercise. Happy New Year! Today’s a day where half the world contempla...

Motion, contact, and light sensors are the most commonly used sensors for home automations in my house. With these sensors, you can make a wide variety of automations. But there are so many different manufacturers, protocols, and price points that it can be hard to choose which devices to buy and us...

Here are a bunch of home automation ideas for your inspiration. These are examples of automation rules that have worked well for my family. They might work well for yours too. The ideas are technology agnostic and describe the concept rather than the exact implementation. They should work with just...

After having spent a lot of time and effort installing smart devices throughout my entire house and automating them, I’ve learned a lot of do’s and don’ts. It’s been a long process of trial and error to come up with the right automations that work for all scenarios. Along the...

Recently, I’ve updated over 30 of my extensions to support Visual Studio 2019 (16.0). To make sure they work, I got my hands on a very early internal build of VS 2019 to test with (working on the Visual Studio team has its benefits). I’ve learned that the upgrade process is probably the easiest I’v...

I’m often asked how to best learn to build Visual Studio extensions, so here is what I wished someone told me before I got started. Don’t skip the introduction It’s easy to create a new extensibility project in Visual Studio, but unless you understand the basics of how the extensibility system wor...

Having great samples to help you learn about any programming language or paradigm can be very valuable. In my opinion, a good sample can be characterized by: Being easy to replicate Having clear steps that guide the reader to replicating the behavior of the sample into their own code base is param...

< Older