How-to guides
Own types and a shared library
Your own type belongs in your Komod package
Kofa.Abstractions* is the framework: the KOFA application and the clients carry it compiled in, so a new type added there would need a new application. A Komod's own types (for example the data of an output) belong in the Komod's package. If both the server and the UI part use the same type, put it into a shared library and reference it from both projects. The build copies it into both the server/ and the client/ folder; in KomodClientAssemblies write it before the UI dll.
To use your own type as a port, mark it with [KofaType("acme.vendor.thing", 1)] (name, major version). The name should be in your own namespace so that it does not collide with others.
Important
If you can, use an existing common type (Data types): it can be linked with Komods by other authors. An own type is justified only exceptionally, because it can be linked only with Komods that use the same type.
Versions and compatibility
Two ports can be linked if the type id and the major version match. Extending a type (a new, optional field) can stay compatible; renaming or deleting needs a major version bump (…/2).
If a view asks for a newer framework than the client's
If a view requires a newer SDK than the client has, the client shows an "update the app" message in place of the view; the other views keep working.