OpenRasta is an open-source .NET framework (MIT license) for building scalable, high-performance, reliable web services, from web sites to RESTful API’s.
Web Frameworks Software
XML, JSON and HTML via WebForms
Separation of the handling of resources and their rendering
Loose coupling and dependency injection
Lack of inheritance chain and support for IoC containers
Small (<50 employees), Medium (50 to 1000 employees), Enterprise (>1001 employees)
OpenRasta is an open-source .NET framework (MIT license) for building scalable, high-performance, reliable web services, from web sites to RESTful API’s. OpenRasta relies on three concepts: Resources, Handlers and Codecs.
A Resource is a type that has a URI. When the user configures their URI’s in OpenRasta, they associate a resource type with the URI to which it belongs. Then, when the HTTP request comes in, the URI is matched to a Resource Handler. In OpenRasta, Handlers are classes that implement a method matching the name of the related HTTP method. After it, the resource returned will be rendered by a codec.
The user can register many codecs on the same URI to render the same resource in XML, JSON and HTML via WebForms. Because of this very simple model, adding new URIs, new resources and new content types becomes much easier. Moreover, separation of concerns is enforced throughout the framework by separating the handling of resources and their rendering.
This means less breakage in the code, looser coupling and code, which is easy to navigate and read. Loose coupling and dependency injection are at the core of the framework, helping the user implement their architecture faster and more effectively. Also, the open-closed principle has been followed to allow you to extend and change the framework without having to rewrite its code or build from sources.
Thanks to OpenRasta’s innovative codec model, the user doesn’t have to use two different frameworks for the web pages and for the services. By using a unified API, the time and knowledge the team needs to acquire before becoming productive is reduced. And because of the use of interfaces, the lack of inheritance chain and the support for IoC containers out of the box, the code can be tested very easily.