VideoOS.Platform Backward Compatibility

I am using the VideoOS Plateform dll Button Controls

<controls:VideoOSButtonTransparentSmall Content="About"/>

As i have complied it using VideoOS.Platform version 23.3.28.1. It works fines when i am using Smart Client 2023 R1 or later but when i am using Smart Client 2022 or earlier i am getting following error

Exception message:Could not load type ‘VideoOS.Platform.UI.Controls.VideoOSButtonTransparentSmall’ from assembly ‘VideoOS.Platform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bc60fba4a7969f89’.

I am adding the latest version of VideoOS.Platform.dll with the plugin but as Smart Client 2022 is also using its own older version of VideoOS.Platform.dll so it is already loaded before the plugins are loaded and It seems it was not included in the older version of VideoOS.Plateform.dll.

In simple words how can i reload or use the specific version of VideoOS.Platform.dll if smart client already have loaded the older version. How can i support older version of Xprotect with new dlls?

These buttons were introduced in 2023R3 and they are not available in older Smart Clients.

Ref. https://doc.developer.milestonesys.com/html/index.html?base=gettingstarted/mip2023r3_intro.html&tree=tree_home.html

-

https://doc.developer.milestonesys.com/html/index.html?base=reference/architecture/user_controls.html&tree=tree_1.html

https://productexperience.milestonesys.com/

If you need to do a plugin that works in older versions, you will have to refrain from using these controls, and you would need to develop a version of you plugin that does not use them.

You mention the VideoOS.Platform.dll version, and yes this is where the implementation is, and controls are missing in older versions, but also note that if you do not use thee controls but still build with the newest VideoOS.Platform.dll version it would still work in the older Smart Client versions.

-

If you need inspiration on how to do the plugin without using the new controls, perhaps replacing controls with older standard .Net Framework controls, you can find our older samples. Let me guide you on how to do that:

Thanks

@Bo Ellegård Andersen (Milestone Systems)​ If we have tested on Xprotect 2020 R1, will that plugin works on later release of Milestone Xprotect till like 2024 R1 or do we have to test on all xprotect releases to support all versions of Xprotect?

What we say is that a plugin that works in one version will work in future versions with the exception of breaking changes mentioned in the release notes.

That being said I would recommend that you test with newer versions occasionally.

I would think that if you test the oldest and the newest version you want to support, and they both work, then I would make the assumption that versions in between will also work.

The release notes which I refer to are listed in the left hand side here.. https://doc.developer.milestonesys.com/html/index.html?base=content_0.html&tree=tree_home.html

Thanks