{"id":37046537,"url":"https://github.com/interappconnectorproject/interappconnector","last_synced_at":"2026-01-14T05:29:54.219Z","repository":{"id":207747440,"uuid":"719987448","full_name":"interappconnectorproject/interappconnector","owner":"interappconnectorproject","description":"Library that helps to create modules that can be easily integrated in different project types","archived":false,"fork":false,"pushed_at":"2024-12-14T10:56:11.000Z","size":184,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-30T19:29:59.820Z","etag":null,"topics":["dotnet","library","modular-programming","module","module-pattern"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/interappconnectorproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-17T10:33:29.000Z","updated_at":"2024-12-14T10:56:11.000Z","dependencies_parsed_at":"2023-12-26T11:22:48.855Z","dependency_job_id":"516357ef-f156-439d-8c17-fb5379925356","html_url":"https://github.com/interappconnectorproject/interappconnector","commit_stats":null,"previous_names":["interappconnectorproject/interappconnector"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/interappconnectorproject/interappconnector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interappconnectorproject%2Finterappconnector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interappconnectorproject%2Finterappconnector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interappconnectorproject%2Finterappconnector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interappconnectorproject%2Finterappconnector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/interappconnectorproject","download_url":"https://codeload.github.com/interappconnectorproject/interappconnector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/interappconnectorproject%2Finterappconnector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28410503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet","library","modular-programming","module","module-pattern"],"created_at":"2026-01-14T05:29:53.617Z","updated_at":"2026-01-14T05:29:54.212Z","avatar_url":"https://github.com/interappconnectorproject.png","language":"C#","readme":"[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=interappconnectorproject_interappconnector\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=interappconnectorproject_interappconnector)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=interappconnectorproject_interappconnector\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=interappconnectorproject_interappconnector)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=interappconnectorproject_interappconnector\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=interappconnectorproject_interappconnector)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=interappconnectorproject_interappconnector\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=interappconnectorproject_interappconnector)\n\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=interappconnectorproject_interappconnector\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=interappconnectorproject_interappconnector)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=interappconnectorproject_interappconnector\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=interappconnectorproject_interappconnector)\n\n# InterAppConnector\n\nInterAppConnector is a library that helps to create modules that can be easily integrated in different applications and project types by using a common message format.\n\nIt is very useful for software or applications that are developed using the modular programming and in particular the module pattern.\n\nYou can create one or more modules (called commands) and call them in the same mode without worrying about the project type\n\n# Features\n\n- Easy integration and out-of-box experience with console applications\n- Integration with web applications, automated and non-interactive procedures (such as batch, jobs, automated tasks, ...) and other project types\n- Argument definition in classes. You can define mandatory and optional arguments that are checked before the command starts\n- Extensible\n- Support for obfuscated code (in preview)\n\n# Quick example\n\n1. Create a class for parameters and name it `SampleArgument`. Add a string property called `Name`\n\n\t```csharp\n\tpublic class SampleArgument\n\t{\n\t\tpublic string Name {get; set;} = string.Empty;\n\t}\n\t```\n\n2. Create a class for command and name it `SampleCommand`\n\t1. Add a `Command` attribute and implement `ICommand\u003cSampleArgument\u003e` interface \n\t2. In `Main` method write your business logic code\n\n\t\t```csharp\n\t\t[Command(\"hello\", Description = \"A simple hello command\")]\n\t\tpublic class SampleCommand : ICommand\u003cSampleArgument\u003e\n\t\t{\n\t\t\tpublic string Main(SampleArgument command)\n\t\t\t{\n\t\t\t\treturn CommandOutput.Ok(\"Hello, \" + command.Name);\n\t\t\t}\n\t\t}\n\t\t```\n\n3. Depending on your project type:\n\t- In a console application, add in your `Program.cs` file in `Main(string[] args)` this code\n\n\t\t```csharp\n\t\tCommandManager command = new CommandManager();\n\t\tcommand.AddCommand\u003cSampleCommand, SampleArgument\u003e();\n\n\t\tInterAppCommunication connector = new InterAppCommunication(command);\n\t\tconnector.ExecuteAsInteractiveCLI(args);\n\t\t``` \n\n\t-  In other applications:\n\t\t- Parameters must be defined in a `dynamic` object where the name of the properties are the name of the arguments\n\t\t- Replace `ExecuteAsInteractiveCLI(string[])` method of the example above with `ExecuteAsBatch(string, dynamic)` method\n\n\t\t\t```csharp\n\t\t\tdynamic arguments = new ExpandoObject();\n\t\t\targuments.Name = \"John\";\n\t\t\t\n\t\t\tCommandManager command = new CommandManager();\n\t\t\tcommand.AddCommand\u003cSampleCommand, SampleArgument\u003e();\n\n\t\t\tInterAppCommunication connector = new InterAppCommunication(command);\n\t\t\tCommandResult\u003cSampleArgument\u003e result = connector.ExecuteAsBatch\u003cSampleArgument\u003e(\"hello\", arguments);\n\t\t\t```\n\n4. Build the project if you have created a console application, otherwise go to step 5\n\n5. In order to get the result\n\t- If you are creating a console application, open the Command Prompt in Windows or Bash in Linux and type the command below (it is assumed that the project name is called SampleProgram)\n\n\t\t```batch\n\t\tSampleProgram.exe hello -name John\n\t\t```\n\n\t\tYou will see a green message with the date and time in current datetime format, the message status followed by the success code and the message `Hello, John`. A typical execution of the program generate the following output:\n\t\t\n\t\t`[11/10/2023 23:50:34] SUCCESS (0): Hello, John`\n\n\t- In other applications, use the object returned by the `ExecuteAsBatch\u003cArgumentType\u003e` method.\n\t\t\n# Documentation and code examples\n\nFor advanced scenarios and in order to learn how to use the library efficiently, see the documentation provided with the library. Below you will find informations about how to find this documentation\n\n## General documentation\n\nThe general documentation is available in the [GitHub Wiki](https://github.com/interappconnectorproject/interappconnector/wiki) section.\n\n## Code examples\n\nThe [InterAppConnector sample code repository](https://github.com/interappconnectorproject/interappconnector-samples) contains code examples that shows how to use the library","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finterappconnectorproject%2Finterappconnector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finterappconnectorproject%2Finterappconnector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finterappconnectorproject%2Finterappconnector/lists"}