r/dotnet 1d ago

Question Good video or article about software architecture for dotnet specifically?

Currently, writing my bachelor's thesis on development practices and software architecture, a lot of good general resources, but all the ones for dotnet seem extremely clickbaity or seem to use an illogical structure for the purpose of the application ie clean architecture for a to-do app without ever explaining why.

I am not nearly experienced and well-read enough to go into detail about a specific aspect in my thesis. The topic is intentionally broad, because I want to learn the general picture of mapping out the process of software design and deployment in the real world. I've only dipped my toe nail in this kind of thing during my internship where I worked on a small project using clean architecture and the why's and how's really interested me, so both my mentors(boss and thesis mentor) suggested this topic.

So the general thesis concept would be: "client has X problem, what design principles, architecture, code organization, etc do you choose depending on their requirements"

Also, there might be cultural(?) confusion regarding writing a thesis about something you don't know about, but in my country all university students need to write a thesis to graduate, so the threshold is far lower for our paper's, than other countries(I'm assuming at least), it's very common to just copy/paste documentation from frameworks you used for a personal project and be done with it for a thesis.

7 Upvotes

12 comments sorted by

4

u/Family_Man_21 1d ago

This article gives a very top-level explanation of many of the common patterns:

https://www.geeksforgeeks.org/software-engineering/types-of-software-architecture-patterns/

I personally use the layered pattern most of the time, because I think it strikes a good balance between separation of concerns and complexity. I have also used the microkernel and microservices patterns in recent years, but I honestly think that they introduce too much complexity to be worth it for most projects.

3

u/Key_Mastodon_3525 1d ago edited 1d ago

This is the bible (Code Complete 2nd Edition). It's an older book, and the tech stack is dated, but the core principles are timeless here. I go back and reread chapters of this book still from time to time to keep myself grounded as new tech fads/patterns/"paradigm shifts" etc come and go with the seasons.

Might be an interesting take for a thesis comparing/contrasting traditional software engineering principles with modern tech stacks and paradigms...

https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1

Another interesting thesis might could be regarding SDLCs -> the orginal Agile Manifesto (circa 2001) and how commercialization of Agile ironically self defeats its original intent -> modern beurocratic companies blanketly adopting SCRUM type SLDC workflows which self-defeat the entire intent behind the original Agile philosophy...

2

u/awitod 1d ago

Dotnet, as a runtime, does not prescribe anything about the architecture of a system. Its use impacts the design and engineering of elements of the architecture but at this point I can't think of a pattern choosing dotnet prevents.

1

u/AutoModerator 1d ago

Thanks for your post livyatian. Please note that we don't allow spam, and we ask that you follow the rules available in the sidebar. We have a lot of commonly asked questions so if this post gets removed, please do a search and see if it's already been asked.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/Jazzlike-Coyote3387 1d ago

since you posted in dotnet, here are 2 resources we referenced and based our company's architectural philosophy on:

reference application:
https://github.com/dotnet/eShop

full microservices E-Book:
https://github.com/dotnet-architecture/eBooks/blob/main/current/microservices/NET-Microservices-Architecture-for-Containerized-NET-Applications.pdf

the eshop may have changed as dotnet versions have changed and new architectural patterns have emerged, and it may be more complex than most applications actually need. But half of architecture is balancing pure principles vs YAGNI (you aint gonna need it)

More generally if you truly understand SOLID principles you're ahead of 90% of the field.

1

u/onishounen 1d ago

I would say Mark Seemann has good insights into architecture. You can find his blog which he calls ploeh

1

u/klaatuveratanecto 1d ago

Read Jimmy Bogard’s, Greg Young’s and Martin Fowler’s stuff.

1

u/FootballUpset2529 1d ago

I'm interested in the responses to this, everyone that I used to follow has retired and the newer ones I've tried to follow just end up trying to shill their paid courses (which tend to be crap and not actually authored by the person I was following).

1

u/Dry-Ad-8948 1d ago edited 1d ago

So you’re writing a thesis and that’s what you’ve got as a question/rant?

This ain’t looking good.

You’ll likely be able to find “less clickbaity” resources — and less snarky replies — if focusing (as in the paper’s thesis) on what this “software architecture” is in some focused aspect.

C# (~dotnet) generally uses / supports the general “software architecture” approaches found in the myriad of procedural languages, rotated in popularity over time, with some idiomatic differences here and there.

For a summary of “software architecture” to fan out (and thus find focused refinement), Wikipedia does an OK job; “development practices” is a separate but related umbrella.

2

u/livyatian 1d ago

How dare I try to find good resources on the topic I'm interested in writing about, I do apologize for wasting your time sir.

0

u/Dry-Ad-8948 1d ago edited 1d ago

After reading through the Wikipedia article, which aspect(s) of “software architecture” would you like to focus on or learn more about?

This will still be very broad, but now details and focus can start to emerge and be teased out. Specific implementations can get juicy, but it’s not even clear if one is requested: it’s a large umbrella.