autofac / Examples

Example projects that consume and demonstrate Autofac IoC functionality and integration
MIT License
396 stars 355 forks source link

Service Fabric Autofac example for AspNet DotNetCore 3.1+ #23

Open diegosasw opened 4 years ago

diegosasw commented 4 years ago

No examples on how to use Autofac in AspNet Core (DotNet Core 3.1+) web applications that run in Service Fabric

The repo at https://github.com/autofac/Examples/tree/master/src/ServiceFabricDemo/AutofacServiceFabricDemo hasn't been updated in 3 years. A lot has changed since then.

For instance, Startup.cs must have a void ConfigureServices(IServiceCollection services) method. Returning IServiceProvider is not valid anymore after DotNetCore 3.1+

I have created the following branch with a web app running the latest DotNetCore, that uses service fabric and Microsoft Dependency Injection. See here

It fulfills all the requirements (DI, reading appsettings, clean change of environment for testing, TestServer with possibility to overwrite DI registrations for mocks, etc.). Please feel free to have a look and if there's any way to add Autofac to that sample I'll be happy to contribute.

There are unanswered questions in StackOverflow about the same: https://stackoverflow.com/questions/59980827/service-fabric-aspnet-core-3-1-autofac-webhostbuilder https://stackoverflow.com/questions/64260534/how-to-use-service-fabric-service-with-aspnet-core-webapi-and-autofac-and-run-te https://stackoverflow.com/questions/64278765/how-to-use-autofac-with-iwebhost

Desired Solution

A basic example on how to register Autofac with a WebHostBuilder (if possible), and where to register dependencies in a service fabric app would be enough.

Alternatives You've Considered

The alternative I've considered is not to use Autofac, but if I could help in any way to find out how to do it or to suggest something, I'll do that.

diegosasw commented 4 years ago

I have here a branch feature/Autofac following the existing documentation on the web and examples.

It does not work for netcoreapp3.1, the service gets deployed in Service Fabric but unhealthy, it throws Autofac exceptions. Any help or further clarification would be much appreciated.

alexmg commented 4 years ago

Thanks for the links and samples @diegosasw. You're right about a lot having changed. I was holding off the latest release to see if other changes are required to support .NET Core. I'll look at your sample but can't say exactly how soon that will be.

diegosasw commented 4 years ago

Thank you for your reply. It's all good with DotNetCore2.1 and AspNetCore2. In case you want those samples, please feel free to get them from my repo https://gitlab.com/sunnyatticsoftware/training/sasw-aspnetcore-testing/-/tree/master/aspnetcore2_1_autofac_servicefabric

Good luck! it doesn't look easy to me! :)

tillig commented 3 years ago

FWIW, I've updated the build for this repo to be cross-platform so whenever we get a .NET Core compatible Service Fabric demo working, we should update the build script to ensure it also builds cross-platform instead of only Windows.