This page captures a broad spread of reference material that is useful when developing declarative
applications on NetKernel.
Booting NetKernel
The quickest and easiest way to get started, no matter
how you intend to finally deploy you application is to
run NetKernel in Standalone Mode.
This allows you to take advantage of all of the development features of the
System Services Fulcrum.
Setting up your IDE
It is not necessary to have an Integrated Development Environment (IDE) to develop XML processes on NetKernel - you can easily work with a text editor
or your preferred XML editor. However a guide to creating a development project in your IDE is provided
here
Tools
The System Services Index contains a set of useful Developer Tools
including browse resources in your module, and debug
the execution of your services.
The Control Panel contains a set reports and management tools
which allow you to look at things such as the system log, execution timings and cache utilisation.
Detecting changes
This table lists the types of development changes and how they are detected by NetKernel.
| change | description |
| new module | A hot restart is needed. The
new module wizard will automatically prompt you to restart. |
| module definition file | A cold restart is needed. |
| module resource | NetKernel features a sophisticated resource cache which is usually transparent to the developer.
Module resources are automatically invalidated if they
change but are only polled for changes according to the defaultResourceExpiry value set
in the system configuration. This value should be kept
small, say 500ms, during development but can be very high in deployment if files are not changed
externally. |
| entrypoint | For more details on using entrypoints see the
Entrypoint Guide. You must perform an Entrypoint Reindex. |
| flush cache | A hot restart is needed. |
| reset statistics | The kernel keeps execution statistics which power the
Control Panel. If you wish to reset these statistics a hot restart is needed. |
Error handling
NetKernel provides support for nested exception handling. Exceptions are rendered as XML documents with
nested stack frames. Language runtimes such as DPML and XRL provide support for exception handling, many
standard XML technologies provide no support for exceptions and will simply fail, throwing an exception out to
the caller. Unhandled exception will propagate back to the initiating transport where they may be handled in
a transport specific manner- the HTTP transport returns a 503 Internal Server Error response code and places
the XML exception trace in the HTTP body.
More details of exceptions can be found in the Advanced Guide.
Non-XML Resources
Whilst an emphasis is placed on XML and XML processing, the NetKernel microkernel is entirely XML independent and is just as capable of processing CSV or binary images.
So to serve a non-xml resource from a module simply expose it's URI on the module interface or write a DPML process that issues it to this:response.
Developing Java Components
This book covers developing services and applications using the libraries of XML technologies and scripting
languages supplied
with NetKernel Standard Edition. It is entirely possible to build complex applications such as Bugxter, a complete bug tracking system
and Blogxter, a fully featured web blogging system, as pure XML applications. However if you wish to integrate new technologies into
NetKernel you will need to read the Advanced Developer Guide