Versions Compared

Key

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

...

From a top level perspective we need create a registry to embed our classes into the di-container, antony provides. To do so we need to write a custom registry for it. To do so, we need to register as a module developer and define our module.

We provide an example project here: https://bitbucket.org/diegroupware/antony.demo.trainee.desktop/src/master/?search_id=ceb40d4f-44b2-41a7-b340-c7ae4c46727a

Tl;Dr;

  • Add the nuget package https://www.nuget.org/packages/antony.Groupware.ExtensionInterfaces/ and https://www.nuget.org/packages/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0-preview.3.23174.8 (Version 3.1.32) to your project.

  • Be sure your project is on NET Framework 462

  • Write a RegistryClass, decorate your assembly with AntonyModuleAttribute and add your ModuleKey

    • Code Block
      [assembly: AntonyModule(typeof(MyClassRegistry), ModuleKey = "de.die_groupware.mymodule")]
  • Decorate your method within you RegistryClass with the AntonyServiceRegistryAttribute,

    • Code Block
      [AntonyServiceRegistry()]
      public void Register(IServiceCollection services)
  • Add the file-link for your uri to the registry under.

    • Computer\HKEY_CURRENT_USER\SOFTWARE\SCOM\antony\modules\AntonyGroupware\<moduleKey>\Path = ““

      • or

    • Computer\HKEY_CURRENT_USER\SOFTWARE\SCOM\antony\modules\AntonyHubClient\<moduleKey>\Path = ““

ExtensionInterfaces

Antony provides interfaces which are used to detect and load your registry. This interfaces comes within an easy to handle nuget package. This package doesnt have any other dependencies but .netstandard 2.0. Therefore you should be able to use this in nearly every project. You find this Project on http://nuget.org : https://www.nuget.org/packages/antony.Groupware.ExtensionInterfaces/

...

Code Block
breakoutModewide
languagec#
[assembly: AntonyModule(typeof(ZoomModuleAntonyRegistry), ModuleKey = "de.die_groupware.zoom")]
namespace antony.Groupware.AddinX.Zoom
{
    public class ZoomModuleAntonyRegistry
    {
        [AntonyServiceRegistry()]
        public void Register(IServiceCollection services)
        {
           // ...
        }
    }
}

Let antony search

As After we defined the registry we also need to tell antony where to find your assembly. We’ll do this by using the windows registry. You need to add a value into the following key

...

  • AntonyGroupware: To integrate within Antonys Administator or GroupwareclientGroupware-Client

  • AntonyHubClient: To integrate within the antonyHub to provide add configuraton dialogs and logic for a custom server. You need to to so, if you want to deploy a service via the antonyHub.

...

You need to provide the path to the file of your assembly. antony will check checks all available modules at startup, compares with the available licences and call the calls your registry. You Congratulations, you are in (wink)

Conclusion

As you saw it It is quite simple to provide a module which is loaded by antony. You only need to specify a registry and let antony know where to search for it. You should be able to use the classes within nearly every project.

So open up a VisualStudio, Create your favorite IDE, create a Project and go for it. You can do it right 🇳 🅾 🇼