The wait is over, Mandarine 2.0.0 is here.
Tags: showdev, typescript, deno, framework
Published: 2020-08-31 13:05:09

[Mandarine](https://www.mandarinets.org/) is an open-source typescript framework that runs on [Deno](https://deno.land). Mandarine is used to develop any type of server-side application (Mostly MVC) with the use of strong design patterns such as Dependency Injection, or the SOLID principles.

From Mandarine's website:

> A minimalist, decorator-driven, MVC framework for Deno.

--------------

## Mandarine is by far the best server-side framework in Deno
If you have not read this article, I highly recommend you reading it in order to have a better ground on the things that will be discussed on this version 2.0.0 presentation post & the reason why's Mandarine is perhaps the most stable framework in Deno.
[Click here for the article](https://dev.to/andreespirela/why-mandarine-is-by-far-the-best-server-side-framework-in-deno-52dd)

-------------

## Rich in features
Mandarine **2.0.0** comes with a ton of built-in features that will make you life easier when it comes to back-end development. Not only these features were created to solve enterprise-level problems but also issues for small-level projects. 
**2.0.0** gives _Mandarine_ a better position in front of other great frameworks such as [NestJS](https://nestjs.com/) and makes it clear there is no doubt that Mandarine is production-ready.  
Without further ado, let's get to it:

- Built-in Authentication System
    - Mandarine provides a built-in authentication system. With this system you no more have to worry about creating endpoints such as login & logout. Or, creating the logic necessary to protect different endpoints in your application. Following Mandarine's built-in authentication guide will make your application more secure and it will all be handled by the framework, saving you not only time, but security concerns and lines of code. There is a complete guide on [Mandarine's documentation page](https://www.mandarinets.org/docs/master/mandarine/introduction) under "Mandarine Security" you will find the documentation of ["Authentication"](https://www.mandarinets.org/docs/master/mandarine/auth-introduction). [Click here to see a full example](https://www.mandarinets.org/docs/master/mandarine/auth-complete-guide) 
    - This system was mainly inspired by the great work of Spring Boot Framework in Java.
    - This feature puts Mandarine ahead of many other typescript/javascript frameworks out there.

- Pipes
    - Mandarine now provides the concept of `Pipes` for [HTTP Parameter Decorators](https://www.mandarinets.org/docs/master/mandarine/http-handlers). Pipes can process and return a new/processed value before it gets to the HTTP Handler, cleaning your data during request time without any boilerplate. [Read more about Pipes here](https://www.mandarinets.org/docs/master/mandarine/pipes)

- Custom Decorators
    - Mandarine now provides a decorator factory which lets you create your own _HTTP Parameter Decorators_. This is useful when wanting to avoid boilerplate of utility classes or helpers. The use cases of this are many, hopefully you will find one!. [Read more about Custom Decorators here](https://www.mandarinets.org/docs/master/mandarine/custom-decorators)

Those are the main 3 features Mandarine provides in its **2.0.0** version. Although, many were included in this release such as:
- Middleware targeting specific controllers or HTTP Handlers. [See here](https://www.mandarinets.org/docs/master/mandarine/use-middleware-decorator)
- Non-component middleware. [See here](https://www.mandarinets.org/docs/v2.0.0/mandarine/non-component-middleware)
- Exception filters. [See here](https://www.mandarinets.org/docs/v2.0.0/mandarine/catch)
- Security Expressions. [See here](https://www.mandarinets.org/docs/v2.0.0/mandarine/security-expressions)

And many more. If you are interested in finding out a complete overview on what is new in Mandarine **2.0.0**, [Click here on the official release page](https://github.com/mandarineorg/mandarinets/releases/tag/v2.0.0) and take a look.

 
<img src="https://raw.githubusercontent.com/mandarineorg/mandarineorg_web/master/app/mandarine-static/assets/images/headers/orange.png" width="300" height="300" />

## Simple Usage
[Click here](https://www.mandarinets.org/docs/master/mandarine/hello-world) to see a quick example on how to get started with Mandarine

## Mandarine on social media
- [Twitter](https://twitter.com/mandarinets)
- [Discord](https://discord.gg/qs72byB)

<img src="https://raw.githubusercontent.com/mandarineorg/mandarineorg_web/master/app/mandarine-static/assets/images/headers/black.png" width="300" height="300" />


---------

[Release Page Here](https://github.com/mandarineorg/mandarinets/releases/tag/v2.0.0)


----------

Comments, question? Below.