Open Source
@ Innovian
Fostering a culture of collaboration and innovation within and beyond Innovian.
Our Philosophy
At Innovian, our commitment to open source projects reflects our dedication to enhancing the tools we use and supporting the wider community. By addressing bugs and developing new features, we not only improve software reliability, but also gain valuable insights into the technologies we depend on. This active participation ensures we deliver top-notch solutions to our clients while promoting a culture of shared growth and continuous improvement.
Our Projects
We are proud to present a collection of projects that we have independently authored and continue to maintain for the benefit of the broader open-source community. Each of these projects reflects our commitment to innovation, quality and collaboration.
These projects are not just contributions to the community; they are integral components of Innovian's own software solutions. By leveraging these tools, we ensure that our products are built on a foundation of robust, reliable and cutting-edge technology.
Innovian.Telnyx.Storage
Persistence
Telnyx
Telnyx provides an S3-compatible storage solution that integrates high-redundancy blob storage capabilities with cost-effective pricing via an API layer built atop a file-based blockchain.
We have leveraged their service for storage extensive long-term data archives and developed this library to streamline management and data transfer operations.
Innovian.Contrib.Dapr.StateQueryBuilder
Query
Dapr
The Dapr framework offers a state management API with limited query support for certain providers. It requires constructing complex JSON schemas to define operations such as contains, equals, paging, sorting, and handling AND/OR queries.
This project introduces a fluent API for JSON construction, minimizing the risk of human error or illegal operations, and significantly enhancing developer productivity.
Innovian.Aspects.Logging
Aspects
PostSharp
PostSharp’s Metalama product facilitates aspect-oriented development in C# by utilizing the Roslyn compiler for code generation and validation.
This project automates logging for non-static classes and methods in projects using Microsoft.Extensions.Logging. It wraps methods in a try/catch block to log arguments, return values, and execution time. An instance of ILogger is injected and available in classes marked with the ‘partial’ keyword, ensuring comprehensive logging and performance measurement.
Innovian.Aspects.Dapr.WorkflowRegistration
Aspects
PostSharp
PostSharp’s Metalama product facilitates aspect-oriented development in C# by leveraging the Roslyn compiler for code generation and validation.
This project is designed for microservices using Dapr’s Workflow capabilities. It ensures developers register all Workflow and WorkflowActivity implementations with the dependency injection system. At compile time, it identifies each implementing class and dynamically constructs a static method for standard Dapr Workflow registration.
If you are interested in support, would like to request a feature or want to customize any of these projects to better suit your own needs, we are here to help. Innovian offers commercial engagements to provide the expertise and assistance you request.
Our Contributions
We are excited to showcase the projects to which we have made significant contributions. Our deep familiarity with these initiatives underscores our expertise and commitment to advancing open-source technology. These contributions are integral to Innovian’s software solutions, reflecting our proficiency and dedication. By partnering with us, you gain access to subject-matter experts who are well-versed in these frameworks and tools, ensuring robust and innovative solutions for your needs.
Microsoft
Feature
Testing
Added support for the missing EventHubBufferedProducerClient in addition to the existing EventHubProducerClient and EventHubConsumerClient in Aspire's Event Hub implementation.
Dapr
Documentation
Two environment variables I was recently working in another contribution were missing from the reference documentation, so this PR added them.
Dapr
Feature
Testing
Documentation
This PR adds an overload to the service invocation functionality in Dapr by explicitly allowing key/value pairs to be appended to the invocation URL
Dapr
Feature
Testing
This PR adds access to an instance of IServiceProvider in the registration method for the Dapr client enabling developers to access values from the configuration or other registered services during the Dapr client registration.
rudiv
Feature
This PR adds support for Azure Batch as a deployment target for the project.
Dapr
Documentation
The documentation described different workflow patterns, including a fan-out/fan-in pattern. But it ended with a note suggesting how to take the idea further, but without elaborating. This PR contributes a code sample providing precisely that elaboration.
Dapr
Feature
Documentation
Testing
When a certain well-known environment variable was being set with the expectation that it'd be used for tracing, the Dapr runtime wouldn't recognize it. In this PR, it not only recognizes, but prioritizes it over configured values when set.
Dapr
Feature
An issue was raised indicating that a method was returning a null value despite not being marked with the appropriate annotations. This provides those annotations to this method.
Dapr
Documentation
With the release of .NET 8, the best practice guidance shifted from use of the app.UseEndpoints method and instead to registration directly on the app instance. This PR updated such guidance in the Dapr documentation.
Fluxor
Feature
The introduction of the Auto rendermode in the .NET 8 version of Blazor broke any implementation of Fluxor that utilized it as the state would be lost during any transition from Server to WASM. This PR added a pluggable state persistence layer that restored project compatibility.
Microsoft
Bug Fix
When a resource was defined, it would produce an invalid value name for the template resource name argument. This PR corrected the issue here and across all dependencies of the value.
Dapr
Documentation
Feature
Testing
This PR added support for high-performance and bidirectional streaming of data for encryption and decryption of strings or streams compatible with .NET 6 and newer.
Dapr
Documentation
Seeking to complement the Cryptography support provided for the .NET Dapr client in another PR, this PR updates the documentation with descriptions and reference information regarding the functionality.
Dapr
Documentation
This PR added explicit samples demonstrating encryption and decryption operations with the .NET Dapr client
Dapr
Documentation
There have been many versions of C# released since the DataContract serialization library was originally introduced. As such, there's been some confusion around how serialization should behave using more modern C# functionality. This article performs a deep-dive analysis with examples into how newer C# capabilities can be readily used.
Dapr
Feature
Documentation
Testing
Prior to this PR, data retrieved via a call to GetBulkStateAsync would simply returned as a string. This PR instead deserializes the data to the generic type specified using the serialization engine configured with the Dapr client.
Dapr
Feature
A bug report was filed indicated something wasn't working as intended. I created a unit test to prove that the client was handling the operation as expected
Dapr
Documentation
The Dapr documentation cited a bad link in the Azure App Configuration documentation describing authentication with Azure. This PR corrected this link with an appropriate URL.
Updated remoting listener extension to support exception serialization
Azure Service FabricSeptember 9, 2023
Microsoft
Feature
Newer versions of Azure Service Fabric use new serialization settings. This PR adds overloads to a set of extensions that ship with the Service Fabric .NET SDK to support exception serialization using a custom IExceptionConverter for V2 remoting purposes.
PostSharp
Documentation
This PR comprised an example project demonstrating how to add aspects to multiple projects using Metalama Fabrics.
Microsoft
Bug Fix
Fixed an issue that prevented scaling in the web explorer interface due to a badly formed regular expression.
Microsoft
Bug Fix
In the web explorer interface, clicking the timestamp header to change the sort order didn't do anything, and this fixed PR this experience.
ChartsCSS
Bug Fix
If more than ten colors were placed in the legend, the remaining elements wouldn't have a fill color. This fix changed this behavior so the colors would just repeat.
If you are interested in support, would like to request a feature or want to customize any of these projects to better suit your own needs, we are here to help. Innovian offers commercial engagements to provide the expertise and assistance you request.