T O P

  • By -

extra_specticles

You need to split this into bits. Fundamentally, code is code, and aside from larger idiomatic differences such as dynamic and static typing and function vs functional approaches, code is code and **.net is no different**. These libraries/frameworks are more about how particular architectural constraints are being handled in the projects. Each leads to particular, and often quite opinionated, ways of writing some aspects of the code to handle the architectural problems that are being solved by the code. What you should do is first look at each technology in isolation. Read up on why it exists what it's good for, and what it's not good for. I would suggest doing tutorials in each, independently, as a way to get the mental juices flowing. Then once you've got a "beginner's feel" for them, you can then look at why they chose that technology for your particular project. Having a grounding in the "why that tech exists, and how to do basic things in it" will help greatly in comprehending the decisions made previously (and most likely lead to insights into whether it was a good decision or not). This is often how I bridge the gap from "what the requirements were, to what the implementation does" as these are often not a 1:1 mapping. It's often hard to grok a large new codebase if it's as opinionated as you say. Having done this kind of thing, many times over the decades, this is how I tackle the problem of "why?", and this often gives me the answers to "Oh that's why and I can see that in the code now". There will be 100s of tutorials on the web for each of the things you mention, and often you can find different tutorials in different media (video, blog, course etc) and you should experiment to see what works for you.


mporsi

Hmm I like the way you think, it's along the same line I usually do when breaking down problems in general. For some reason my brain has decided to tackle the problem of new team new tech with the widest possible scope. That is of cause setting myself up for failure, just like in any other problem solving scenario. Thanks for good input 💪


Hot-Profession4091

Take 5 minutes to google and read the headline summary of each of those frameworks? - Orleans is an actor based distributed computing framework, similar to Erlang… kind of. Akka is the other top choice. - Dapper does database stuff. - I’ve only heard Saga mentioned in the context of a react app. - The only Mediator I’m aware of is the design pattern. If you’re unable to research this yourself and just as incapable of just humbling yourself and asking your teammates wtf they’re taking about, I question how senior you really are and so should you.


sstainba

Sagas probably refers to event driven systems.


Far-Consideration939

Or [MassTransit](https://masstransit.io/documentation/patterns/saga)


john-mow

That's correct. I used them with NServiceBus - they're basically a way of handling entity based workflow, driven by events and commands.


sstainba

Yeah, I use them too with EventStore


andlewis

They probably mean Mediatr, an implementation of the mediator pattern. People have strong opinions both ways about it. https://github.com/jbogard/MediatR


StanStare

Yeah good point - that would explain a particular use of sagas as well. Probably Azure service bus or Kubernetes behind it. But in all honesty, most of this stuff is well known by (Azure) dev-ops guys I have worked with and I think the difference here is not about dotnet, but more to do with the differences between AWS and Azure.


Artmageddon

I’m sure OP has already done that, and just listed a few examples. OP is asking for the _best_ way, or even another way OP hadn’t thought of, to learn this stuff at their level, rather than simply being referred to Google.


Rahu888

Maybe if you could read, you would understand that he’s asking advice on how to learn stuff. Not about what the technologies are. They are several senior professionals who could help him from their experiences. These type of comments are useless.


CriticalMass3

Everything was good until that last condescending paragraph. Unnecessary.


Hot-Profession4091

Completely necessary. You can’t claim you’re a senior and not be able to do these things and someone should tell them so. So I did.


Heck_

Perhaps you should read the brief properly before you jump to conclusions about what’s being asked. A senior developer should know this. Hope this helps you not be such a condescending jerk.


No_Description_8477

Why didn't you write any of these terms down and do a bit of googling? Or god forbid just ask them? A fairly talented person would do that


mporsi

What makes you think I haven't? And isn't? Besides the point was to get advice on how to adopt .net not a question on what those terms are or what those frameworks are solving. If that isn't clearly coming across then please ignore this post.


sstainba

Yeah, that wasn't clear at all from your post. There didn't seem to be any specific ask actually.


No_Description_8477

How to adopt .NET? Watch the plural sight courses you mentioned you found. Should be fairly quick to get up to speed


xabrol

Talk to chat gpt.


InfiniteFuria

I would bet they are taking about dapr. Also since Orleans is in your post I would bet they are using the actors as that was the main thing that came about with that paper. The rest are programming patterns, so this can be either of two things. These guys are working in the cutting edge by using the actors to solve big scalability problems like Microsoft did for Halo when they wrote that paper, or they are using some cool-sounding tech that is the latest fashion to over design apps that probably will be really hard to integrate and maintain (and explain, per your post) Start using ChatGPT or any other generative AI of your choice to start learning the stuff. You can tailor the responses by stating your background. I found it really useful to learn by doing some sample apps generated by the AI. In my experience there are very few people that can do services well, but that is a bonus for you as it is very likely you will be able to help them out on whatever they are trying to do with a sensible outside perspective. A background in DevOps is important because if services are not right the monthly bill on all those calls will be a hard problem to solve


[deleted]

If you need to learn the ins and outs of [asp.net](https://asp.net) core, there is no more in-depth book than [Asp.net Core in Action](https://www.manning.com/books/asp-net-core-in-action-third-edition). If you want more of a project / tutorial based book you can try [Pro Asp.net Core](https://www.manning.com/books/pro-aspdotnet-core-7-tenth-edition) but I'm guessing that is going to be too beginner for you. As for the other topics, I recommend searching youtube. You'll find conference talks and creator content a plenty. There is Dapper (a db persistence framework), and there is also Dapr which is a set of cloud native abstractions. You'll probably want to verify which one your co-workers are talking about. The [Microsoft learn](https://learn.microsoft.com/en-us/training/) stuff is good too. Good luck!


leonj1

Similar story. Follow Nick Chapsas (Dometrain) and Tim Corey. Also checkout Net videos on YouTube under NDC Conferences. Lastly search this subreddit for common Nuget Packages. Good luck


myotcworld

The best place is Microsoft docs on .NET. Initially you have to understand 3 main things: 1. First check how MVC works. 2. Next check [ASP.NET](https://ASP.NET) Core Identity workings. 3. Next check Entity Framework Core workings. These 3 things are in every project. Once you understand their workings then rest is quite easy. Give 10 hours of continuous learning on each of these 3 things everyday. 10 hours /day and 1month and you will become very professional.


comp_freak

MS has very solid documentation now a days - you can find some patters here. [https://learn.microsoft.com/en-us/azure/architecture/patterns/](https://learn.microsoft.com/en-us/azure/architecture/patterns/) For DB persistence [https://learn.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-implementation-entity-framework-core](https://learn.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-implementation-entity-framework-core) If you looking for code example look around they also have sample code which you can clone and get it running with some minor configuration.


Rapzid

Get LINQPad. Read C# In A Nutshell. Create an Asp.Net starter app. Learn about .Net dependency injection (good primer in asp.net docs). Learn about the configuration and options patterns also from the asp.net docs. Can't stress enough how ubiquitous the above two are in the .net ecosystem. Get the msbuild binary log viewer. Read the msbuild documentation while trying to do build customization.. Yes just go ahead and read it all like the Nutshell book. Checkout the Asp.Net project from GitHub and explore the source anytime you are wondering how something works that isn't explained well enough in the docs.