Rick Strahl

weblog.west-wind.com · Personal blog · on HN since 2014

Rick Strahl writes about Windows and .NET web development, covering ASP.NET Core, IIS, .NET Standard and web client issues.

What HN saysHN links it for practical .NET and IIS guidance, such as using Let's Encrypt with IIS and moving code to .NET Standard.
27HN people shared it
9linked it in comments
24stories submitted
156story points
4 months agolast shared
2014people per year2026

Most-shared posts

  1. 1
  2. 2
    NET Core 2.0 and ASP.NET Core 2.0 Are Here
    2 people · 4 points · first shared 2017 · discussion on HN
  3. 3
    NET Standard 2.0 – Making Sense of .NET Again
    2 people · 1 points · first shared 2016 · discussion on HN
  4. 4
    Using Let's Encrypt with IIS on Windows
    2 people · 1 points · first shared 2017 · discussion on HN
  5. 5
    ASP.NET Framework Performance
    1 people · 5 points · first shared 2014 · 2 comments on HN
  6. 6
    The Broken Promise of the Mobile Web
    1 people · 4 points · first shared 2014 · discussion on HN
  7. 7
    Async and Async Void Event Handling in WPF
    1 people · 2 points · first shared 2022 · discussion on HN
  8. 8
    The Rise of JavaScript Frameworks – Part 2: Tomorrow
    1 people · 2 points · first shared 2015 · discussion on HN
  9. 9
    Using Let's Encrypt with IIS on Windows
    1 people · 2 points · first shared 2017 · 1 comments on HN
  10. 10
    Comparing Raw Asp.net Request Throughput Across Versions
    1 people · 2 points · first shared 2024 · discussion on HN
  11. 11
  12. 12
    The Broken Promise of the Mobile Web
    1 people · 2 points · first shared 2014 · discussion on HN
  13. 13
    Turn Off HTML Input Auto Fixups for Mobile Devices
    1 people · 2 points · first shared 2015 · discussion on HN
  14. 14
    C# NumberFormat Sections
    1 people · 2 points · first shared 2016 · discussion on HN
  15. 15
    Moving to Lets Encrypt SSL Certificates
    1 people · 2 points · first shared 2016 · discussion on HN

What HN people wrote when they linked it

uk_programmer · 2020-04-07
If you try to do it in one big hit it will be hard but you don't have to do that. You can move it over piecemeal. You can use multi-targeting to move parts of your code over to .NET Standard. So if you start with your base projects and move your way up, gradually your code will become compatible between .NET core and .NET Framework. This will help you remove any .NET Full Framework / Windows specific bits. Where you have to have things that are specific to each OS you can then just configure your DI so it will inject the Windows specific / Linux specific implementation. For those that are not aware of multi-targeting here is a great article on it: https://weblog.west-wind.com/posts/2017/Jun/22/MultiTargeting-and-Port…
alexisread · 2018-06-04
Nice article, though it doesn't cover CORS with NTLM/Kerberos auth (ie. .NET on windows). To my mind this is the most baffling aspect here, as preflight requests shouldn't carry an auth token (according to the spec), however IIS is an all-or-nothing auth which will thus reject the preflight request, unless it is specifically handled. Additionally, there are different ways to handle preflighting for owin and aspnetcore vs .NET framework (IIS hosting), and these methods also change depending on the technology - MVC, WebAPI, OData. [edit] Hit return early: MVC (pure) requests can be handled in the web.config to set custom headers. WebAPI uses annotations on the controllers. See https://stackoverflow.com/questions/29970793/enabling-cors-through-web… OData follows a different path through, so the above won't work. You would need to modify Application_BeginRequest() See https://stackoverflow.com/questions/31459416/how-to-enable-cors-via-at… The above is all for .NET framework (IIS host). For OWIN you need to modify HttpListener as per https://stackoverflow.com/questions/42104716/owin-preflight-requests-a… For aspnetcore the pipeline again changes: https://weblog.west-wind.com/posts/2016/Sep/26/ASPNET-Core-and-CORS-Go… Lastly, all of the above should be using xhr.withCredentials = true; on the client (javascript) side. Note that this is not present for…
llagerlof · 2022-07-19
Although I believe this software (dpScreenOCR-1.1.0-win32-2.exe) is fully safe, virustotal is giving 2 false positives (Avast and AVG). I mean, probably part of your users will not install the program because of this. Maybe you want to track the reason and kill these false positives. This guy documented his process: https://weblog.west-wind.com/posts/2016/oct/05/dealing-with-antivirus-…
ozten · 2021-12-31
This is an interesting data point for folks designing demo pages. The API was discovered by playing with the demo page [1] according to a link from a link in the article [1] https://weblog.west-wind.com/posts/2011/aug/06/translating-with-google…
orand · 2014-03-03
Looks like he posted Owin/Helios results back in December. http://weblog.west-wind.com/posts/2013/Dec/09/Reexamining-ASPNET-and-H… Not sure why someone posted this old 2012 article to HN when something much more current was available.
maccard · 2025-02-04
> Just hitting the windows key and typing "notepad" and hitting enter has gone from something that was near instant in windows XP to something that takes 30 seconds and only sometimes might be successful Agreed. It's also surprisingly easy to fix - disable web search in the start menu. [0] > Because as horrible as defender is, have you experienced commercial AV products? yes, and they're a disgrace. I don't normally engage in baiting on here, but honestly a lot of them are worse than the viruses they protect you from. McAfee and Norton are _literally_ spyware. At $PREV_JOB carbon black was installed over the weekend, and I was working on some performance related tasks. All my results were invalidated because of the slowdown it imparted on _everything_. That doesn't give defender a free pass for falling from grace though. [0] https://weblog.west-wind.com/posts/2024/May/03/Speed-up-your-Start-Men…
captainmuon · 2022-08-29
I've encountered the problem he describes in WinUI, too. It can happen in any toolkit where you bind to change events of "observables". In my case I had a list view and a details view, and when you pressed down in the list view, it would get janky and struggle to update the detail view in time. To make it worse, sometimes selecting a different row would hit off a HTTP request in the background to update some cached data. I ended up implementing a similar rate limiter, I think based on this here: https://weblog.west-wind.com/posts/2017/Jul/02/Debouncing-and-Throttli… (I've never shipped it though.) The art is to get the behavior just right. You want the first request to go through immediately, so on a single click the user sees low latency. But afterwards you need to throttle it so that it only updates every, say, 500 ms. And you must not forget to display the very latest state, if there is no new event after e.g. 50 ms. This seems like one of those things that are really hard to get right and the toolkit developer should have solved for you. I've struggled with it a couple of times now.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close