erdomke / InnovatorAdmin

A tool for managing Aras Innovator installations focusing on improving the import/export experience.
http://erdomke.github.io/InnovatorAdmin/
MIT License
58 stars 42 forks source link

Selecting the IOM.dll #68

Closed rneuber1 closed 8 years ago

rneuber1 commented 8 years ago

Why is the option to select the version of the IOM.dll gone? We are sometimes getting patched versions from Aras (in fact, we are using an inofficial IOM.DLL 9.4.0 Build 9553). How do we intergrate (if necessary) such custom DLLs?

erdomke commented 8 years ago

A couple reasons for the change:

  1. At work, I am developing a proxy server that will sit in front of Aras in order to provide a more secure authentication mechanism. I need a way for the admin tool to talk to Aras via the proxy which requires an entirely new "IOM". This "IOM" is contained within the Innovator.Client dll in the lib folder. Because I am actively working on it internally, I haven't published the source code, although I plan to.
  2. The entire reason for allowing the selection of the IOM version was because the IOM dll is not backwards compatible. In particular, the 11.0 dll (which is what I was going to use initially) cannot talk with a 9.3 vault (what we currently have in production). My initial plan for the admin tool was merely to use the latest IOM dll and not require the additional complexity and overhead of using different IOM versions. This overhead included loading the IOM in its own AppDomain and isolating its usage from the rest of the code.
  3. In order to support some of your requested features like being able to set the locale and time zone headers, I cannot use the public API of the IOM as written. The Innovator.Client also drives new features such as allowing for parameterized queries. Try running a query such as the one below to see what I mean.
  4. In general, the IOM API is cumbersome to use, so I took the opportunity to develop an API I found easier to use (and hopefully other people prefer as well).
<AML>
  <Item type='User' action='get'>
    <last_name>@last_name</last_name>
  </Item>
</AML>

If it is absolutely necessary to use a specific version of the official IOM, that could be supported in a pinch. However, for most simple AML calls, the version of the IOM should not make a difference (in theory). Therefore, I was hoping that the custom "IOM" should suffice.