ardalis (Steve Smith)
Software Architect and Force Multiplier of dev teams. Husband. Dad to 4 kids: 3 ADHD sons, 2 twins, 1 daughter.
💡NimblePros.com
🔥devBetter.com
🎥YouTube.com/ardalis
Pluralsight | Dometrain author
Microsoft Dev MVP
💥Combat Engineer veteran
- Good. That was obviously dumb.
- [Not loaded yet]
- [Not loaded yet]
- Slacker…
- I saw this in the Halflife opening scenes...
- Visual Studio options: - Build (seems straightforward) - Clean (I assume calls dotnet clean) - Rebuild (I assume calls clean, then build) But no. If I "Rebuild" then I have weird NuGet errors because things ref different versions. But if I *manually* Clean, and *then* Build, it works. #dotnet
- [Not loaded yet]
- Also this
- 😢
- This is odd. Visual Studio knows there are 3 errors and a bunch of warnings/messages, but it won't show any of them regardless of how I toggle the filters. Anyone else seeing this? #dotnet v17.13.6 Rebuild didn't help; restarting VS now...
- [Not loaded yet]
- Interesting. This was in a client's solution unrelated to that template.
- Restarting VS did at least fix it.
- I think of ChatGPT as a productivity tool like Google Search but as I talk to non-tech users, I find their usage patterns both fascinating and disturbing. I talked to someone who had a negative interaction with their neighbor then asked ChatGPT who was out of line, them or their neighbor.
- [Not loaded yet]
- “Summarize Reddit “AITA” and apply it to this scenario…”
- NEW: The U.S. Postal Service posted a net loss of $3.3 billion in this fiscal year’s second quarter mainly due to “significant challenges out of our control,” including workers’ compensation costs, Luke Grossmann, USPS chief financial officer, said at the open session of the governing board meeting
- How big a loss did the Department of Defense have last quarter?
- unless I can buy "guaranteed won't get detained and sent to a concentration camp" vouchers for me and a few million other people that's a no for me dog
- [Not loaded yet]
- There could be a *process* for showing the voucher to prove - oh wait never mind.
- President Trump has been involved in talks over potentially suspending habeas corpus, which allows people to challenge their detention, sources say.
- [Not loaded yet]
- Right all these folks claiming he doesn’t have the authority or power or that he can’t do that remind me of the joke about someone calling 911: “help someone is trying to kill me!” Operator: “They can’t do that! That’s illegal!” 🤣😢🙄😡
- [Not loaded yet]
- [Not loaded yet]
- A VP did it - it was ViPre’d
- BREAKING: Google Earth updated their images of Gaza. Compare. Being against this is not “antisemitic” or “pro-terrorist”. It’s pro-human. Sincerely, A Jewish American.
- [Not loaded yet]
- Israel has been on offense, not defense, for quite some time. If someone sucker punches me, and I fight back, that's self defense. If I then, over years, blow up their whole neighborhood, surround it with my friends and blockade the area, starving them, I don't think it's still "self defense".
- [Not loaded yet]
- What do you mean “if that really goes on”? Have you not been paying attention? It’s not like Israel is denying the fact that they’ve blocked all aid for quite some time now. Quick Google shows it’s been since 2 March 2025. Did you have two months of food stored up 2 months ago?
- [Not loaded yet]
- Agreed. And food? Surely you don't think starving the civilian population is acceptable given those same humanitarian rules you were citing?
- [Not loaded yet]
- That same international law says that it's a war crime to target civilians or destroy civilian infrastructure like hospitals or to refuse aid and supplies such as food and water. All of which have been well-documented as having occurred.
- A hill I’ll keep dying on: Whatever your politics, the fact that so many U.S. leaders do not understand basic constitutional law—or willfully distort it—reflects extremely poorly on our country.
- I think Byron Donalds is here illegally - ship him off. Oh wait, he disagrees? Too bad, as an illegal he doesn't get a say. Oh but he says he's *not* an illegal, so he *should* get a say? If only there were some *process* through which he could present his side of things. Oh well, too bad, so sad
- How can you model multi-tenancy in #Azure (a topic today in my devBetter.com coaching). There's a continuum or spectrum of options here with trade-offs as you go. Let's look at them real quick, starting with the simplest. 🧵
-
View full threadUnless you know up front that you're going to have multi-region tenants, in which case you may need to start out at Option 4 or higher so that you can put their hardware in their region. But even then you might be able to get away with a "3.5" option of RG per region and 1 app/db per RG.
- At that point you'd only need a total of 2+(2*regions supported) Azure things, which is probably less than 10 and thus still manageable without going straight to IaC. Anyway, what did I miss? How are you doing multi-tenancy in Azure?
- Option 6: Sub-per-tenant 1 RG per sub (probably) 1 App per RG (or more if needed) 1 DB per RG (or more if needed) Pros: Extreme flexibility; can pass on real costs to tenants if wanted Cons: Managing 1000 subs for 1000 tenants can be a lot, including for the business not just ops.
- There are a few additional variations within these of course but broadly this is the spectrum. If you're a startup, you probably want to start at the low-end options and validate that there's demand for your product, and only start moving up the options as your tenants demand things.
- Option 4: 1 Sub 1 RG App-per-tenant Db-per-tenant Pros: A failure in one tenant app doesn't take down others. Apps can be deployed to separate regions. Cons: More cost, more things to manage. For 1000 tenants there are now 2002 Azure things to manage. IaC becomes necessary.
- Option 5: 1 Sub RG per tenant (or perhaps region) App-per-tenant (or perhaps region) DB-per-tenant Pros: Can manage and easily view costs associated with each region via resource groups or tenants. Creating or removing a tenant may be just a single RG+children operation.
- Option 2: 1 Sub 1 RG 1 App 1 Db with Schema per Tenant Pros: Same as above but simpler schema (no discriminator columns) Cons: EF Core doesn't support this out of the box, so you'll need to write some code if you're using EF Core. See also: learn.microsoft.com/en-us/ef/cor...
- Option 3: 1 Sub 1 RG 1 App Db-per-tenant Pros: Data is no longer comingled between tenants. Less risk of data crossover. More compliance with security/privacy standards. Cons: With only one app (in only one region) still can't really support custom regions per tenant. EF Core supports this, too.
- Option 1: 1 Sub 1 Resource Group 1 App 1 Db Add a TenantId column to all tenant-specific tables. Ideally use EF Core with a global query filter. Pros: Fewest moving parts in Azure. Simple to set up and deploy. Cons: Everything is in one place. Harder to scale. No geo options for tenants.
- [Not loaded yet]
- [Not loaded yet]
- Some orgs definitely have worthless shit that the devs (or really any employees in some cases) don’t need to be bothered with, and who are generally grateful for umbrellas that might protect them from some of it.
- [Not loaded yet]
- Until it’s chainsaw time which is even worse. My neighbor currently has 5-10 people over there replacing the roof. Also not quiet…
- Add another 5 million big arms and you’re probably starting to get close to guys from Chicago who hate JDV
- Vatican papal gender reveal once more not pink.
- MURRAY: It was due last week. By law. PATEL: I understand. MURRAY: You're not gonna follow the law? ... And you have no timeline? PATEL: No MURRAY: Hmm. We're not having a budget hearing without a budget request. So where is it?
- If there are no consequences for breaking the laws, then...
- New podcast on #DotNetRocks with @carlfranklin.bsky.social and @richcampbell.bsky.social dropped today, where we talked about architecture, code, and open source in #dotnet: www.dotnetrocks.com/details/1949
- [Not loaded yet]
- Start by adding tests for a single endpoint and then migrating it. Maybe use yarp in front of the existing api so you can add a new yarp rule to map an endpoint to the new implementation as each one comes online
- I think we've overused, misused and diluted the term "architecture", especially in the .NET world. #dotnet
-
View full thread.NET projects/assemblies give you another level isolation at the language level. I can make things `internal` to an assembly that other assemblies cannot access automatically. So, I can have an assembly with public interfaces and private interface implementations, truly hiding implementation details
- A nice language feature for dotnet might be / might have been namespace internal. Perhaps with hierarchical rules similar to private vs protected. namespace internal: Accessible within this namespace only namespace protected: Accessible within this namespace and any child namespace
- [Not loaded yet]
- [Not loaded yet]
- Is this for you or some paid commission work?
- Probably… but go on. How do you define architecture (of the software kind let’s say) and how does the #dotnet community use differ? I can think of at least one: Organization of files into folders isn’t typically considered as “architecture” but we often treat it like it is.
- Good news: fossil fuels provided less than half of US electric power in March for the first time ever oilprice.com/Energy/Energ...
- Tipping point coming.
- who up there writing their blog? i want to see yalls blogs! criteria: - you wrote at least a post in 2025 - it doesn't force a paywall so we can actually read it
- Ardalis.com/blog still going
- Note that the bsky.app offers a RSS feed for every account. Just add /rss at the end of the profile page E.g. your account has this RSS feed -> bsky.app/profile/did:... (deer.social does not support this feature currently)
- This feature makes it easy to display recent skeets in your blog or web page using existing RSS consuming widgets/controls!
- Do not fly in and out of Newark without watching @maddow.msnbc.com's segment tonight. Air traffic controllers say it's not safe and even THEY are traumatized.
- Every time a plane falls, they should take Elon & the cheeto to the site and make them count the bodies.
- That would work if either of them were capable of empathy.
- The ineptitude… it burns
- Despite misleading marketing, Israeli company TeleMessage, used by Trump officials, can access plaintext chat logs. My findings are based on TM SGNL's source code, and they are corroborated by hacked data micahflee.com/despite-misl...
- Crafting a thoughtful reply to a really good point someone made. Giving up after three tries and just responding 🔥
- 💪🫡
- Your School House Rock moment......
- A lot of it isn’t even deportation, it’s rendition. But yeah kidnapping says it.
- Trump's Truth Social just launched a streaming service, Truth+, for MAGAs and pro-family Christians. Current Top Ten offerings include a "documentary" about how alien lizard people secretly rule the earth and another abt how Jesus and Buddha were aliens. talkingpointsmemo.com/news/truth-p...
- Truth+ is a good name for it, at least. It's like, start with (maybe only a tiny bit of) the Truth, and then add a whole bunch of crazy bullshit on top of it...
- Saw Sinners tonight. Good stuff. See it with minimal prior knowledge if possible.
- I think it’s brilliant that airlines can avoid tariffs on their new planes by just accepting delivery in, say, Japan, and then once they own the plane they can just fly it into USA as a regular flight…
- [Not loaded yet]
- Well it is May the Fifth Be With You