.NET Aspire
Introduction
One of the biggest challenges as a Software Developer lies in environment setup. It can be a daunting task, particularly for newcomers to the field. The process often involves configuring a myriad of components such as databases, web servers, and various dependencies, all of which need to work seamlessly together. Each development project can have its own unique set of requirements, making the setup process not only complex but also time-consuming.
New developers might find themselves wrestling with compatibility issues, dependency conflicts, and obscure configuration settings that are not always well-documented. Even for seasoned developers, maintaining consistency across different machines and development environments can be a significant challenge. These difficulties are compounded by the rapid pace of technological advancement, which means tools and frameworks are continually evolving, often necessitating frequent updates and adjustments to the development environment.
The complexity and resource-intensive nature of setting up local environments can lead to a prolonged onboarding process, reducing productivity and delaying project timelines. Developers must often divert their attention from writing code to troubleshooting setup issues, which can be frustrating and demoralizing, particularly for those new to the industry.
Ethisys Approach
At Ethisys, we are committed to not only producing excellence but also staying at the forefront of technological advancements. We understand the challenges associated with setting up local development environments, especially for newcomers. To address these issues and streamline our workflow, Ethisys is now embracing the new Microsoft technology – .NET ASPIRE.

.NET ASPIRE is designed to simplify and optimize the development environment setup, allowing teams to get up and running very quickly – often with a single click.
What is .NET ASPIRE?
Microsoft classifies .NET ASPIRE as: “.NET ASPIRE is an opinionated, cloud-ready stack for building observable, production-ready, distributed applications. .NET ASPIRE is delivered through a collection of NuGet packages that handle specific cloud-native concerns. Cloud-native apps often consist of small, interconnected pieces or microservices rather than a single, monolithic code base. Cloud-native apps generally consume a large number of services, such as databases, messaging, and caching.”
This means that all these dependencies are handled by the framework, frequently using Docker containers, resulting in a seamless setup for the developer experience.
What Can ASPIRE Do?
We won’t dive into the specifics of .NET ASPIRE setup and configuration, but it is important to know that it not only supports .NET but also virtually any other language/framework. For instance, consider the following case:
- API Development: .NET CORE API Project
- Front-End Development: NextJS
- Caching: Redis
- Database: SQL
Within .NET ASPIRE, we can build these dependencies with a few lines of code, and ASPIRE does the “gluing” for us.
var builder = DistributedApplication.CreateBuilder(args);
var db = builder.AddSqlServer("SQL SERVER NAME", "SQL SERVER PASSWORD", 12345)
.WithHealthCheck()
.WithDataVolume()
.AddDatabase(DATABASE_NAME);
var apis = builder.AddProject<MY_API_PROJECT>("MyProject-API")
.WithExternalHttpEndpoints()
.WithReference(db)
.WaitFor(db)
.WaitForCompletion(migrations);
builder.AddNpmApp("CoreConnect-Website", WEB_SITE_FULL_PATH, "dev")
.WithHttpEndpoint(env: "PORT", port: 3000)
.WithExternalHttpEndpoints()
.WaitFor(apis);
builder.Build().Run();
And that’s it. When you run the application, you’ll have a dashboard with all your resources in one place, where you can check logs, telemetry, and other neat features.



Conclusion
Setting up local development environments presents significant challenges, especially for new developers. At Ethisys, we recognize these challenges and are dedicated to adopting the latest technologies that benefit our development workflows. By embracing Microsoft’s .NET ASPIRE, we are taking a proactive step towards simplifying our environment setup, enhancing consistency, and reducing onboarding time for new team members.