# Practical Session 4: Programming

This session will introduce the concepts and techniques required to create plugins for XNAT 1.7. It presumes some understanding of XNAT and basic programming concepts, but doesn't delve into deep technical aspects of coding or the XNAT plugin framework.

Tip

If you want to follow along with the programming practical to learn the capabilities of XNAT 1.7 plugins but don't want to actually write code, you can download the completed XNAT workshop plugin. This is available as a git repository:

git clone git@github.com:XnatWorkshop/xnat-workshop-plugin.git 

You can also download the project directly if you'd rather not bother with the source control tools.

XNAT 1.7 differs from earlier versions of XNAT in that it supports a true plugin framework. That is, you can add functionality to an XNAT installation in the form of a fully compiled, self-contained package that is separate from your XNAT server but that, once enabled, runs in the same process space with XNAT as a fully integrated extension to your core XNAT server.

In this practical, you'll learn about the many features of the XNAT plugin framework, including:

A note on XNAT versions

The code samples throughout this section reference versions for XNAT libraries. The version given in these samples is the current development version, which is 1.7.0-SNAPSHOT. Soon, as XNAT 1.7 is released, the current version will become 1.7.0. Be aware that the latest version can and will change as libraries are fixed, upgraded, and updated. For any given dependency from NRG or XNAT, you can find the latest version by looking on our public artifact repository.

### Resources

Name Version Published