Steeltoe Initializr
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!

Using Initializr

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.

Hosted Service

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"

Browser UI

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!

About Dependencies

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 Consol 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.

Creating private dependencies

Running Initializr in-house isn’t just about limited network connections. The Steeltoe Initializr is meant to be extended. While having the ability to generate Steeltoe projects automatically is super awesome, what if you could also add in your own dependencies? What if your organization could offer a starting place for all developers, that (safely) includes your best practices and secret sauce?

Creating for public use on start.steeltoe.io

If you would like for your Initializr dependency to be a part of the publicly hosted service, please review the guidelines. Once you have everything in place, open an enhancement issue in GitHub.

Getting listed in the incubator

Sometimes you have a great idea for a very useful dependency but don't have the time to maintain it. If that's the case, follow the guidelines as closely as possible, and request a new repo in Steeltoe's incubator org. This is a place to share Steeltoe based ideas with the community, giving them the option to use.

Ready to get started?

An error has occurred. This application may no longer respond until reloaded. Reload 🗙