This sections outlines code and database patterns used throughout the ODS / API.

ASP.NET MVC

The Ed-Fi ODS / API is built on Microsoft ASP.NET MVC Web API. As a mature and robust platform for building a Web API, this framework is familiar to tens of thousands of software developers and fully supported by one of the most recognized software companies in the world. The Ed-Fi ODS / API takes advantage of well-known extensions to this framework such as route mapping, authorization filters, and Dependency Injection extension points to provide its advanced features. For more information on ASP.NET, see http://asp.net.

Inversion of Control via Castle Windsor

Inversion of Control and Dependency Injection (DI) are a technique and set of practices for creating testable, modular software systems. Castle Windsor, a mature and stable, best-of-breed dependency inversion container was selected as the DI Container for the Ed-Fi ODS / API.

In a nutshell, the a set of software components representing desired functionality are registered and linked together in the DI Container. When the top-level application components are retrieved, the components run agnostically using whatever components were included in the configuration. This approach to software development tends to decouple components, make testing easier, and allows for easier modification and customization.

Ed-Fi REST API Design & Implementation Guidelines

The Ed-Fi Data Standard includes guidelines for the design and implementation of APIs. Those guidelines describe the properties to which an API specification and related implementation must adhere in order to be considered aligned to Ed-Fi technology standards. The Ed-Fi ODS / API v2.0 generally follows those guidelines. The guidelines are described in the Ed-Fi API Design & Implementation Guidelines documentation.

Ed-Fi Data Model Extension Patterns

The Ed-Fi Data Standard has a set of conventions collectively known as the Ed-Fi Extensions Framework. This framework defines the patterns to use in concrete technology components like the ODS and the XSD where extensions to the Ed-Fi Data Model are required by implementers.

See the documentation for the Ed-Fi Data Standard for an overview of the Ed-Fi Extensions Framework and detailed information on how to extend the XSD used for bulk loading in the ODS. See the Extensibility & Customization section in this documentation for information on extending the ODS / API data model and the associated technical artifacts.