Shall I use pwps_dab or MostOfDavesClasses-CSharp-Wrappers-For-ProjectWise?

My understanding is that both are wrappers around the same underlying implementation and they seem to be from the same author.
I am confortable with both PS and C# (with a preference for C#) and am free to use one or the other.
Aside from the differences inherent to the languages, what are relevant considerations regarding this choice?

Are both libraries equivalent in terms of exposed features?

Are both libraries maintained equally? 

Thank you

Parents
  • FWIW, PWPS_DAB uses most of the classes and methods found in MostOfDavesClasses (C#), but not all of them.  And MostOfDavesClasses expose a subset of the features of the ProjectWise SDK (native code).  And the PW SDK (C++) doesn't support all "features" of ProjectWise, but close to it.

    My general recommendation is to use PWPS_DAB first as it is generally quicker to create and test your approach or solution in scripts than it is in C# or C++.  When your approach needs either things not available by using PWPS_DAB, or if (lack of) performance is too much of an issue, then C# using MostOfDavesClasses or C++ using the PW SDK is likely to be a "better" choice, but of course requires more time, effort, and a different skill set.

    As for "are both libraries maintained equally?" Well define "equally", because there aren't the same thing, so determining equality would be difficult.  As for the code used by PWPS_DAB that is in MostOfDaveClasses, well MostOfDavesClasses is updated as needed internally as PWPS_DAB evolves.  Then, usually fairly quickly, the publicly available version of MostOfDavesClasses is updated, which is really just publishing it to Dave's GitHub Repository found here:  https://github.com/DaveBrumbaugh/MostOfDavesClasses-CSharp-Wrappers-For-ProjectWise 

    And I like to quote a saying attributed to General Patton, "A good plan, violently executed now, is better than a perfect plan next week."  Not that I personally can claim to live up to that principle consistently! So, a good solution that you can implement quickly certainly has advantages over a "better" solution that may take a lot longer to implement.

    So, my "general advice" is basically go with what works for you, and improve the solution when you can, or "as needed"...

    Dan Williams
    Solution Consultant
    Bentley Systems, Incorporated
    Portland, OR, USA (Pacific Time UTC-08:00)

    Answer Verified By: Olivier Doucet 

Reply
  • FWIW, PWPS_DAB uses most of the classes and methods found in MostOfDavesClasses (C#), but not all of them.  And MostOfDavesClasses expose a subset of the features of the ProjectWise SDK (native code).  And the PW SDK (C++) doesn't support all "features" of ProjectWise, but close to it.

    My general recommendation is to use PWPS_DAB first as it is generally quicker to create and test your approach or solution in scripts than it is in C# or C++.  When your approach needs either things not available by using PWPS_DAB, or if (lack of) performance is too much of an issue, then C# using MostOfDavesClasses or C++ using the PW SDK is likely to be a "better" choice, but of course requires more time, effort, and a different skill set.

    As for "are both libraries maintained equally?" Well define "equally", because there aren't the same thing, so determining equality would be difficult.  As for the code used by PWPS_DAB that is in MostOfDaveClasses, well MostOfDavesClasses is updated as needed internally as PWPS_DAB evolves.  Then, usually fairly quickly, the publicly available version of MostOfDavesClasses is updated, which is really just publishing it to Dave's GitHub Repository found here:  https://github.com/DaveBrumbaugh/MostOfDavesClasses-CSharp-Wrappers-For-ProjectWise 

    And I like to quote a saying attributed to General Patton, "A good plan, violently executed now, is better than a perfect plan next week."  Not that I personally can claim to live up to that principle consistently! So, a good solution that you can implement quickly certainly has advantages over a "better" solution that may take a lot longer to implement.

    So, my "general advice" is basically go with what works for you, and improve the solution when you can, or "as needed"...

    Dan Williams
    Solution Consultant
    Bentley Systems, Incorporated
    Portland, OR, USA (Pacific Time UTC-08:00)

    Answer Verified By: Olivier Doucet 

Children