C
C#•2y ago
Thinker

When to use services [Answered]

This might sounds like a weird question, is it worth using services in a small-ish non-server console app? I haven't really ever used services (nor DI) to any extent since I've never done anything with ASP.NET or server-side, but I'm just wondering since a lot of people seem to talk about services quite often. How do you know when you should use services as an integral part of your architecture?
39 Replies
sibber
sibber•2y ago
ive only used services (with a DI container) with MVVM never used asp.net
Mayor McCheese
Mayor McCheese•2y ago
so let's say you have entity called Order, you might create a class called an OrderService, that service class provides for services for the Order. IMHO services are a fast way to create god classes.
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
like background services?
Thinker
Thinker•2y ago
Honestly I don't really know, but I think the kind used with ASP.NET and whatnot Where you have an ISomethingService you inject into stuff using DI
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
there's not a thing called a service container
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
show an example?
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
soooo
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
services.AddSingleton<ITokenProvider, TokenProvider>();
Thinker
Thinker•2y ago
yes that
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
calling it a service is a disservice in my opinion
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
There is a thing called a service in MS di
Thinker
Thinker•2y ago
Whatever it's called, is it worth using
sibber
sibber•2y ago
isnt that called a DI container?
Mayor McCheese
Mayor McCheese•2y ago
DI can be useful, but it tends to get overblown
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
sibber
sibber•2y ago
depends how complex your app is imho
Becquerel
Becquerel•2y ago
A service is just a name for a class with a focus on functionality and I think abstracting parts of your app's functionality into smaller classes is almost always a good idea
Mayor McCheese
Mayor McCheese•2y ago
there is the concept of a hosted service
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
you need some form of dependency inversion or at least it helps a lot you don't expressly need DI to unit test
Becquerel
Becquerel•2y ago
is there any form of dependency inversion outside of DI that is actually used/not bad? the only one i can think of off the top of my head is service location, which is... not great in my opinion
sibber
sibber•2y ago
like mediatr?
Mayor McCheese
Mayor McCheese•2y ago
mediatr is common and has some di aspects but far less
Becquerel
Becquerel•2y ago
that counts? 🤔 hm, i guess
Mayor McCheese
Mayor McCheese•2y ago
but yeah, DI is pretty simple, and works well for asp.net it's a fast road to god classes too
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
unity is a di framework
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
tinyioc, ninject, etc all the same autofac MEF is an alternative to DI
Unknown User
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
Mayor McCheese
Mayor McCheese•2y ago
but MEF is pretty outdated and shouldn't be used some of this really comes down to opinion anyone who really used MEF eventually wrote a bunch of extensions to turn it into a modern DI framework
Accord
Accord•2y ago
✅ This post has been marked as answered!
Want results from more Discord servers?
Add your server
More Posts