Is there a .NET library available that lays on top of BOI COM implementation?

I recently took the BOI course on SageU and have been educating myself in how to use the BOI COM interface. I'm finding that there seems to be a real need for a .NET (or CLR) library that abstracts away the COM implementation so that we can just work with real .NET objects in our code. This is different from the DispatchObject which is just a generic wrapper around COM objects. I'm looking for first class .NET objects that represent the underlying COM objects and have Intellisense and manage references and memory under the hood. Does anyone know if there is such a library available?

  • Hi twc, I agree and have just started working on just what you are asking for... a library of wrapper classes and useful functions to make working with BOI in .NET a little easier. I will keep this forum posted with the progress. Open to suggestions too!

    Thanks
    Bret

  • in reply to Bret

    Bret, that's fantastic! I've contemplated it as well if there wasn't already one out there, but don't want to duplicate efforts if I don't have to. Are you planning on making it open source?

    Joel

  • in reply to twc

    I have one I could make open source. I have no interest in managing the project though so if one of you has an interest let me know and I will give you what I have and write up a document making it open source. The library doesn't have a complete encapsulation of all business objects but it can encapsulate any object as written. What this means is that functions like SetKey and Write are in the objects and I can open a header object and detail and work with any header and detail using my encapsulation. If there is a function specific to an object I can invoke the method by name and any errors are returned as .Net exceptions. It has been used on multiple projects and I own 100% of the code.

    Here is an example of logging in to Sage using the objects:

  • in reply to Scott Travis

    , thank you for offering your code to be used as open source! I understand your desire to not manage an open source project. Would you be willing make your code available to us so we could look it over to evaluate whether we'd want to manage it through an open source project?

    I guess there's a few ways that could be done. You could post the code on Github with an open source license and if we are going to take it you could transfer the project to us. Another method may be to post it on Bitbucket as a private repo and then add us as a collaborator on it. That would keep it private at least for the initial review. If we're going to maintain it as an open source project, however, I would rather it be on Github. You could also put it on a Google Drive or Dropbox folder, but that may be less desirable for you. If you put it on Github or Bitbucket, you'll want to make sure none of Sage's COM DLLs are included in the project--at least until we could verify licensing on those.

    As for timing, we probably wouldn't be able to get any sort of answer back for a month after we obtain access as we have some other higher priority things on our plate right now.

  • in reply to Bret

    , I was wondering if you have any updates on how your library is coming? We're transitioning back to our project that could really benefit from a library like that. In our case, we'd be interested in incorporating it into a web service hosted in IIS that would act as an endpoint for our online store to hook back into Sage (ie. to replace our SData usage).

  • in reply to twc

    Hi twc,

    Its still in progress. The plan is to make the library available as a nuget package, either on nuget.org itself, or something we host ourselves, it hasn’t been decided yet.

    And I’m sorry that I don’t have an eta for this yet, but I will start pushing to get one and will keep you updated.

    Thanks!
    Bret

  • in reply to Bret

    ,

    Thanks for the update. I'd be happy to help wherever I can.

    Joel

  • in reply to twc

    Hi, sorry for the late reply. You can reach me at [email protected] and I would be happy to share.

  • in reply to Bret

    Hey Bret, been a few years. How has your progress gone for the library? I see there is a nuget package out there now, have you contributed to that or used it? 

  • in reply to wishingforsql

    Yes, if you are referring to the Sage100.ObjectManagement package. I have used it in a couple projects. It contains our latest version of the PvxDynamic class which is a dynamic wrapper for ProvideX based COM objects as well as various other wrappers for some of the more commonly used Sage 100 classes.