Reputation: 142
I have a solution with multiple projects inside. One of them are for a dashboard web application and one of them is for an API project. Is it possible to run these two application in the same assembly?
For example the web app would run on the "localhost:5001" and the API project would run on the "localhost:5001/api/". If that is possible would they share the same memory cache manager?
Upvotes: 3
Views: 826
Reputation: 2598
Yes, you are absolutely able to run both an API and Web App on the same Assembly even if they are from different projects. Not only can you do it but it is very quick and easy to do and can do it for many projects.
Since we are using .NET5
in this example we are going to assume you have two console applications. One for your WebApp and one for your API.
Choose the project you want to Luanch from. In this case lets choose the WebApp. For all the other projects convert them from console application
to class library
and delete all program.cs
files.
Self explanitory.
Startup.cs
files in the class library from both the ConfigureServices
and Configure
functions.See code below:
Add a variable to your WebApp's Startup.cs
folder for the other Startup.cs
files and Initialize:
private MyWebApi.Startup ApiStartUp { get; }
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
ApiStartUp = new MyWebApi.Startup(Configuration);
}
Now call the registration functions from their counterpart functions.
public void ConfigureServices(IServiceCollection services)
{
ApiStartUp.ConfigureServices(services);
// ... Rest of code
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
ApiStartUp.Configure(app, env);
// ... Rest of code
}
Upvotes: 5