A newer version of the Ed-Fi ODS / API is now available. See the Ed-Fi Technology Version Index for a link to the latest version.
Platform Dev Guide - Coding Patterns
- Ian Christopher (Deactivated)
- Vinaya Mayya
This section outlines code and database patterns used throughout the Ed-Fi 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.
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 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, makes 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 to in order to be considered aligned to Ed-Fi technology standards. The Ed-Fi ODS / API v3.4 follows those guidelines. The guidelines are described in the 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.