One of the biggest secrets to highly productive .NET development teams is application generators. Enterprises have found that developers adopt platforms far quicker when everything they need to get started is right there, at their fingertips. Application generators help developers to get started quickly by providing useful guide rails that reduce toil and ease their burden. Application generators also encourage common approaches to common problems, which is particularly useful if you have lots of teams creating microservices at the same time.
What is Steeltoe Initializr?
The Steeltoe Initializr project is an application generator meant to get cloud-native .NET developers going very quickly. But it doesn’t stop there. Chances are your apps aren’t just using the typical .NET Core or Steeltoe libraries. It’s also using internal custom libraries specific to your business. Every business has libraries: tools they rely on to simplify tasks or take care of the plumbing. These libraries are quite important and often include proprietary business logic that’s both private and unique. Application generators can help developers to get easy access to these libraries without having to delve into docs, wade through wikis, or search in NuGet repositories.
Why use Steeltoe Initializr?
An application generator can help bond development teams and security teams to the same vision by making the right thing, the easy thing. Instead of developers using previous projects to start a new project they use the application generator. Now they can start with an up to date version of all required dependencies!
There are a few ways you can use Steeltoe Initializr. Every option gives you the same ready to go Visual Studio project. The typical use of Initializr is hosting the service in-house. Because it is a nuget distributed package included in an even simple'r .NET Core app, hosting and staying up to date doesn't come with a bunch of debt. Hosting in-house also gives teams the option to add their own private dependencies to the service, but stay up to date with the community.
As a hosted service, Initializr offers both API and browser interfaces. The service itself is distributed as a Nuget package which you include in a new .NET Core web project. From there you can run the project as a web-based service. Out of the box you'll get all the default dependencies along with endpoints for interaction. Try the below curl command that uses our hosted Initializr service to get started.
curl https://start.steeltoe.io/starter.zip -d "dependencies=Actuators,DynamicLogger,SQL Server" -d "projectName=MyCompany.MySample" -o "myProject.zip"
Along with adding the Initializr package, you can optionally add a UI in the same .NET Core project. This gives developers an additional interaction with the Initializr service. We have created a basic web project doing just that to help get started. If you'de like to see the UI in action head over to https://start.steeltoe.io and create your first Initializr project now!
No matter the way you choose to use Initializr, the value is in the distribution of pre-packaged dependencies. The default dependencies included in Initializr are mostly Steeltoe focused. Things like database connectors, a Spring config client, a Consul discovery client, and many others. But this is a community driven project, so it only makes sense to offer ways for the .NET community to contribute.