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?
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 WilliamsSolution ConsultantBentley Systems, IncorporatedPortland, OR, USA (Pacific Time UTC-08:00)
Answer Verified By: Olivier Doucet
Thanks for your answer Dan.Good to know that PWPS_DAB is built on top of MostOfDavesClasses!It would be great to see a MostOfDavesClasses official Nuget package to facilitate distribution. Of course, I can roll my own unofficial one.
Olivier Doucet said:It would be great to see a MostOfDavesClasses official Nuget package to facilitate distribution
Good idea! Then we could use it directly from Viz Studio.
Regards, Jon Summers LA Solutions
Well, that's just one more thing for me to have to worry about...truthfully, I got tired of including PWWrapper (my assembly version of MostOfDavesClasses) in my setups. Just including MostOfDavesClasses.cs in my projects fixed that and it means I never have a version issue.
Dave Brumbaugh said: Just including MostOfDavesClasses.cs in my projects
That's what I chose to do: the source code is currently ~750kByte, modest in comparison with its peers.
Thanks for providing such a useful set of classes! I'm using them in a .NET AddIn and did not relish the thought of writing those wrappers from scratch.