Morning! In our post today, we wanted to give a shout out to some of our favorite open source tools to save you time on your agile .NET core development. We also explore a few architecture projects that are cool.
NSubstitute: “NSubstitute is designed for Arrange-Act-Assert (AAA) testing, so you just need to arrange how it should work, then assert it received the calls you expected once you’re done. Because you’ve got more important code to write than whether you need a mock or a stub.” For .NET unit testing, I appreciate how pragmatic this framework feels.
FluentValidation: “A popular .NET library for building strongly-typed validation rules.” With the fluent rule syntax, it becomes easy for the team to understand the validation rules around entities.
NSwag Studio : With NSwag, you can save time writing a API client library by hand. You can use third-party APIs that incorporate Swagger and generate a client implementation. NSwag studio supports generation of TypeScript and C# clients. NSwag allows you to expedite the development cycle and easily adapt to API changes.
Learn more about NSwag for ASP.NET Core.
Coverlet and ReportGenerator: We emphasize the idea that agile teams create software that’s open to change. That’s how business works. If you’re open to rapid change of your software, it becomes more important to create easy buttons for testing your business logic quickly. If you’re looking for a way to visualize code coverage in a .NET core code base and focus attention, make sure to check out Coverlet and ReportGenerator. Learn more at this great post by Tony here:
The growing .NET Core Open Source Ecosystem
Out of the box, ASP.NET core has wonderful framework elements to support your rapid application development needs. As .NET solutions scale to the enterprise, I have enjoyed tracking open source “architecture” samples. These samples offer opinionated patterns for code organization, clean architecture and micro-service building. I wanted to give a shout out to a few projects that I’ll be reviewing in the next months.
ABP: “ABP Framework is a complete infrastructure to create modern web applications by following the software development best practices and conventions.” As you scan over the front-page of this project, you can observe that the framework aligns to domain driven design practices. This open source solution seems very well documented. The framework provides reference examples for Razor pages, MVC, Blazor, Angular, and React. The tool offers a CLI for common tasks. It’s a project worthy of study.
Elsa workflows: “Elsa Workflows is a set of workflows libraries that enable workflow execution in any .NET Standard application. Workflows can be defined using C# code or using JSON. A workflow designer is provided in the form of an HTML5 web component.” As a .NET dev checking out the Java ecosystem, I have often thought that it would be cool if we had something similar to Activiti.org for .NET. It’s nice to know that the .NET community may have a worthy open source solution with Elsa Workflows. How does it compare to the other major players? Check out the README for complete answers.
Hope you find these projects helpful. What’s a .NET library that’s saving you a lot of time? Please consider leaving a comment below!