- Introduction
- Project Management
- Project Repositories
- Releases
- Release Types
- Getting Started
- Getting the Code
- Contributing
- Governance Model
- Licenses
Introduction
Steeltoe is an open source project aimed at developing cloud native .NET microservice applications. This project provides libraries that follow similar development patterns from well-known and proven microservice libraries like Netflix OSS, Spring Cloud and others.
Steeltoe libraries are built on top of .NET APIs. Steeltoe allows you work with .NET Core/.NET 5 with our Steeltoe 3.x release line and .NET Framework 4.x with our Steeltoe 2.x release line.
Today, most Steeltoe components work in a stand-alone environment as well other cloud platforms (Kubernetes and Cloud Foundry).
Steeltoe components are built for .NET developers to quickly leverage some of the basic patterns (for example: centralized configuration management, service discovery, etc.) typically found in highly scalable and resilient distributed applications.
Steeltoe provides services that broadly fall into two categories:
-
Services that simplify using .NET on cloud platforms like Cloud Foundry:
- Connectors (MySql, PostgreSQL, Microsoft SQL Server, RabbitMQ, Redis, OAuth, etc)
- Configuration
- Security (OAuth SSO, JWT, Redis Key Ring Storage, etc.)
- Dynamic Logging
-
Services that enable .NET and ASP.NET developers to leverage Netflix OSS, Spring Cloud and other industry leading services:
- Configuration providers (Spring Cloud, Placeholders, etc.)
- Service Discovery client (Netflix Eureka, Hashicorp Consul etc.)
- Management (Steeltoe Actuators, Prometheus)
Steeltoe is freely available for production application usage today. Be sure to visit the official Steeltoe site.
Project Management
The Steeltoe team uses ZenHub for our Project Management Board across our active repositories. This is the best way to see what state each issue is in, along with issue prioritization and release assignment.
Note: ZenHub is built on top of GitHub issues, so it reflects the updates on GitHub as well as providing a view of the project's progress.
Project Repositories
Steeltoe is fully open source and is found under the SteeltoeOSS organization on GitHub.
Steeltoe Core Components
These are located in the Steeltoe repository:
- Configuration - configuration providers which extend the reach of .NET Configuration services
- Common - Common packages to other Steeltoe components
- Connectors - simplify the process of configuring and using back-end services locally and in the cloud
- Discovery - provide the ability to register and discover services locally and in the cloud
- Logging - adds logging extensions
- Management - add monitoring and management to production based application
- Security - simplify integration of security services provided by the cloud platform
Other Repositories
- Samples - Our collection of Sample applications used as a reference for Steeltoe .NET Application development
- Documentation - Markdown versions of our documentation on the docs.steeltoe.io site
- MainSite - All of the Steeltoe.io website
- Initializr
- InitializrWeb - The Initializr Web UI source code
- InitializrApi - The Initializr Api source code
- InitializrConfig - The Initializr configuration and template data
- InitializrConfigServer - The Initializr Configuration Server
- Dockerfiles - Our collection of docker files we have on dockerhub
- Schema - The schema build for Steeltoe components
Releases
Check out the release milestones here
Release Types
- Milestone (i.e. M1, M2 ...) - A milestone is a release that contains a subset of the full features planned for a release. Milestone releases allow major features to be tested earlier in the release cycle. A milestone release is not meant for production environments.
- Release Candidate (i.e. RC1, RC2, ...) - Similar to a beta release. A release candidate contains a full feature set and is available to the community for finding any major issues before the GA version is released. There could still be source code changes to fix defects, changes to documentation, and test cases, but these releases are considered code complete. Typically, these are not meant for production environments.
- General Availability (i.e. GA) - This is the full featured and fully tested release that is available to the public for use in production environments.
Getting Started
- Follow any "Get Started" link on the Steeltoe site
- Review, run, and modify the extensive collection of Samples available on Github
- To get down into the details of any Steeltoe project, read the documentation
Contributing
The Steeltoe project welcomes contributions on GitHub both by filing issues and through PRs. You are also welcome to join our discussions on Slack
Check out the contributing guidelines page to see how you can get involved and contribute to Steeltoe.
Also its worth noting, the Steeltoe project has adopted the code of conduct defined by the Contributor Covenant. If you'd like more information, see the .NET Foundation Code of Conduct write-up.
Getting the Code
The development of the core components of Steeltoe is done out of the steeltoe repository on the main
branch.
Maintenance branches are created after each major release (i.e. 2.x) and minor branches (i.e. 2.2.x) are created as needed for regressions, and/or security issues.
All release and release candidate packages are listed under the tags section on GitHub (e.g. 2.2.0).
The released and release candidates can be found on NuGet.
The latest Steeltoe packages from each branch can be found in the .NET Foundation NuGet feed.
Using this nuget.config file will enable access to all Steeltoe packages:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="SteeltoeDev" value="https://pkgs.dev.azure.com/dotnet/Steeltoe/_packaging/dev/nuget/v3/index.json" />
<add key="NuGet" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
Building from Source
Steeltoe components can be built from source with a recent version of the .NET Core SDK on Windows, Linux or MacOS. Any IDE that supports .NET is expected to work - core contributors regularly use Visual Studio, Visual Studio Code and JetBrains Rider. Visual Studio Solution (.sln
) files are provided for each component, along with a single .sln
file that will load all components.
Running the tests
Running the integration tests requires Config Server to be running. See here for how to start them.
Governance Model
As a member of the .NET Foundation, the Steeltoe project has adopted a project governance model in line with that recommended by the Foundation.
Licenses
The Steeltoe project uses the Apache License Version 2.0 license for all of its code. See the contribution licensing document for more details.