Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

What's New for Developers in XNAT 1.7?

XNAT 1.7 is very much a codebase in transition, as we are actively stepping toward an "XNAT 2.0" destination on the development roadmap. As such, there is a combination of old and new under the hood. For example, there are still Velocity templates for common report pages, but the new Admin UI is built in JSP using a YAML spec and a new-fangled widget spawner. 

As such, expect to find a lot of new content and controls in this section

...

Column
width80%
Panel

Developing for XNAT

This is the stub for XNAT 1.7 developer documentation home page.

Column
width20%
Panel

This provides shortcuts to many of the most commonly performed tasks when developing XNAT code:

 

 

Building a Dev Instance

XNAT build instructions for developers is much the same as the Vagrant Quick-install instructions for users, but with more customization options available. 

Create from template
templateName29425665
templateId29425665
titleSetting Up An XNAT Development Instance
buttonLabelCreate from template: Setting Up An XNAT Development Instance

 

XNAT Under The Hood

Create from template
templateName29425665
templateId29425665
titleXNAT Code Structure
buttonLabelCreate from template: XNAT Code Structure

Create from template
templateName29425665
templateId29425665
titleUsing the Javascript Library API (JLAPI)
buttonLabelCreate from template: Using the Javascript Library API (JLAPI)

Create from template
templateName29425665
templateId29425665
titleUsing the Form Element Spawner
buttonLabelCreate from template: Using the Form Element Spawner

Create from template
templateName29425665
templateId29425665
titleShould I Use JSP Or Velocity For New Development?
buttonLabelCreate from template: Should I Use JSP Or Velocity For New Development?

External XNAT Development 

With the advent of a mature XNAT REST API, it is easier for external developers to create a free-standing UI using whatever technology they choose, and connect all functions of that front end to an XNAT backend using REST. It is even possible, using CORS, to connect that front end to a remote XNAT. 

Create from template
templateName29425665
templateId29425665
titleResources for External XNAT Developers
buttonLabelCreate from template: Resources for External XNAT Developers

Create from template
templateName29425665
templateId29425665
titleDeveloping XNAT Plugins
buttonLabelCreate from template: Developing XNAT Plugins

Create from template
templateName29425665
templateId29425665
titleUploading Plugins And Tools To The XNAT Marketplace
buttonLabelCreate from template: Uploading Plugins And Tools To The XNAT Marketplace

Best Practices for Development

Create from template
templateName29425665
templateId29425665
titleVersion Control
buttonLabelCreate from template: Version Control

Create from template
templateName29425665
templateId29425665
titleXNAT Developer Tools
buttonLabelCreate from template: XNAT Developer Tools