- This line was added.
- This line was removed.
- Formatting was changed.
This section provides an overview of the new features in v3.2 of the Ed-Fi ODS / API. A comprehensive list of all changes is in the Release Notes section.
The changes include:
|Table of Contents|
Detail about each change follows.
Improvements & Enhancements
This section briefly describes new features and enhancements built into the ODS / API v3.2 and provides links to additional documentation. ODS / API v3.2 implements EFDS31, which means there are no breaking data standard changes accompanying this release. However, platform hosts should be aware that build and deployment pipeline changes will be required, and Ed-Fi Extensions will need to be rewritten (though with minimal changes).
Improved Extension Support via MetaEd v2.0
Implementing Extensions in ODS / API v3.2 requires implementers to update to MetaEd v2.0. This update includes some relatively minor breaking changes to the MetaEd language and will require updates to MetaEd source files from previous versions. See MetaEd v2.0 - What's New page for details. Changes of note include a required Namespace Reference, and the language element "With Context" has changed to "Role Name". You can also look at the sample extensions that ship with the Ed-Fi ODS / API to see how an Extension must be updated to accommodate the language changes in MetaEd v2.0.
Together with MetaEd v2.0, the ODS / API v3.2 adds the ability to reuse a core entity name in an Ed-Fi Extension.
Other important things to note:
- Ability to reuse a core entity name in an Ed-Fi Extension is not supported by bulk. MetaEd will not deploy bulk artifacts when using this feature. We recommend you turn off the bulk feature in the API via feature flag bulk:featureIsEnabled as described in Configuration Details.
- While reusing a core entity name in an Ed-Fi Extension, it is important to configure the ClaimName of the Extension resource to include the schema. See How To: Extend the Ed-Fi ODS / API - Student Transportation Example - Configure Security for more details.
Updates to the Enrollment API
The Ed-Fi Enrollment API describes a set of read-only REST API endpoints for transfer of basic demographic and enrollment data for K–12 students and teachers. ODS / API v3.2 implements the Ed-Fi RFC 19 specification, which is the most recent Enrollment API specification at the time of release. The specification and supporting documentation are detailed in ED-FI RFC 19 - Enrollment API for Suite 3.
Improved Code Generation
Code generation for the ODS / API source has historically been run during a Visual Studio Build or MSBuild process. Over the years, the build process has become longer.
With the ODS / API v3.2 update, the code generation process has moved to an external step prior to building the solution using Microsoft's .NET Core platform. This change provides a better developer experience as the developer can run code generation when necessary. This change adds a new dependency on Microsoft's .NET Core platform version 2.2.4, which can be download from https://dotnet.microsoft.com/download.
This change also removes all T4 templates that were left behind for backward-compatibility during the switch to mustache templates in prior v3.x work. If you have a custom Ed-Fi Extensions, Profiles, or Composite projects, it is advisable to recreate them using new project template installation. See Getting Started - Project Templates Installation to download and install the new project templates.
See the following documentation for details:
- The Code Generation Utility section in the Platform Developers' Guide contains details on how to use code generation for implementations.
- The Working with Code Generation technical article provides how-to information for extending the tool.
Startup Class Redesign
In preparation for a future release, we have updated the startup class to be more modular. We have introduced a new interface (IFeature) that allows for the abstraction of components of the system (e.g., composite, extensions etc.) to be more flexible by being enabled at run time instead of compile time. The original startup class is still available and is marked to be removed in a future release. With this change, now you can configure the features your API exposes via configuration settings. Some of these settings will allow you to:
- Enable/Disable Bulk end points
- Enable/Disable Identities end points
- Enable/Disable School Year Segmentation
- Enable/Disable support for exposing an Open API specification
You can also configure whether your API will expose Profile, Composite and Extension endpoints. Note that at this time, ODS / API will still build the sources and deploy related database artifacts for these even when the feature is configured to be disabled. See Configuration Details section for more details on these settings.
Visual Studio 2017 and SQL Server 2016 Support
ODS / API v3.2 will require Visual Studio 2017 for development environment and has been tested with Microsoft SQL Server 2016 database. The sample database that ships with ODS / API has been created with SQL Server 2016 Compatibility Mode. See Getting Started - Installation Steps for more details on the required software.
Sample Data Selection
The ODS / API ships with a sample dataset containing approximately 1000 1,000 students. For a variety of reasons, you may want to install a different sample database than the one that ships with ODS /API. You can now easily choose to use the sample Glendale database, which contains approximately 50,000 student records, as your sample database. See How To: Use the Glendale Populated Template for details.
You can also create your own dataset, for example, to populate sample data with values in extended data fields. See How To: Create a Custom Populated Template for details.