Creating Epicor class libraries?

I am playing with the idea of creating a class library to reference and call methods from in multiple customization to help clean up and maintain for the form code.
In this, it’d like to be able to call the UserCodes adapter from within. I referenced the Ice.Adapters.UserCodes and Ice.Contracts.BO.UserCodes assemblies, but it seems that the methods I am looking for are not available on those assemblies (like BOConnect).
Is it possible to do this from a custom library and if so, any tips on what part I am missing? I’m relatively new to doing this sort of thing, so any help would be appreciated. Thanks!

Generally I would say that creating an external class that you will call from a customization is not a very good idea. One issue you are going to quickly run into is the need to re-deploy / re-compile that DLL every time there is a change in the version of Epicor. .NET Classes that reference epicor DLL’s will be version dependent and that can be quite a pain in the rear
You can reference adapters though in your external classes if you’d like but you are going to have to pass in your Session in and possibly your oTrans reference.
Feel free to create external classes for NON Epicor related functions, if you have some custom function to validate Data, or send emails or integrate with an internal API that’s all great and good and it should work version independent from Epicor.
But if your DLL is going to reference Epicor specific DLL’s is it much simpler to invoke the adapters and bo’s directly from within the customizations. This also ensures that everything will upgrade smoothly (or at least as smoothly as possible)

Makes sense!
Thank you!