, 10 tweets, 3 min read Read on Twitter
Alrighty, we haven't chatted about Stack Overflow's move to .NET Core in a while. A quick update:

We've been working on moving a ton of code out of the #AspNetMvc project and into our StackOverflow.Common project. But it's been a lot of discovery and decoupling prep work so far.
Things like cookie access in the code (anywhere, but especially in helpers, which may be used by models) needed to be abstracted away. We're not creating new types for everything, just a few helpers we can #if define across in a few places. Not lots of new interfaces.
All the System.Web usages are out of our Models, and most of our helpers (but still done to go there). We have an analyzer that breaks the build if System.Web is used in any code moved to StackOverflow.Common. This keeps everyone honest and aware - no surprises for later.
Things like eliminating FormCollection and moving to NameValueCollection which work across old and new help. We found a few more non-netstandard libs that creeped in over time. Those have builds got netstandard love and all our non-MVC refs moved to StackOverflow.Common today.
Tomorrow, we hope to merge a huge move of all our extension methods, which unblocks moving a lot of helpers. We're almost to payoff phase where we're moving huge chunks of code over to a net472/netcoreapp2.2 dual-compile world. So much prep - many months. It's finally go time.
The hard part for me, at the moment in time, is scheduling. A .NET Core port of anything comes at a huge cost with respect to accumulating debt. This cliff happens when you branch, fork, duplicate, or whatever to port an #AspNetMvc project that a team is actively working on.
From the moment the duplication happens (in whatever specific form that takes), so many changes have to be done twice. The longer that duplicate is active, the more the cost racks up. This is a bad place to be, and you want to be there for as little time as possible.
If we branch (the most likely), we have to absorb all changes coming from other teams on the codebase as we go. Instead of progressing port work on what's where. It's a rough at-odds use of time to keep up and progress.

That's why we're moving all the code we can ahead of time.
Here's a quick view at the meta issue we're tracking work in - it's a very fluid issue and list we're adding to and tweaking daily. For example, 5 of those PRs went from review to deployed today. It's moving pretty fast now, and a fun time to be working on this:
If the StackOverflow.Common thing doesn't make a lot of sense...sorry about that. I provided a lot more context about why we're doing that last month, a quick rundown is here:
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Nick Craver
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!