This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

DEVELOPERS FORUM - Aras Method Development and Visual Studio

Eric Domke - Friday, February 20, 2015 12:36 PM:

Developing non-trivial server method code in the Aras Innovator client is painful.  For quite some time, the idea of building some sort of integration between Aras and Visual Studio to make method development easier has been discussed, but no work has been done to make this a reality.  It is my goal to start a conversation regarding how we should move forward on these ideas so they may become a reality.  Questions which I believe need to be answered include:

 

  • What should server method development look like at companies who only wish to tweak Aras in a few basic ways?  How about at companies like mine which have 660+ custom methods totaling tens of thousands of lines of code?
  • Does extra tooling need to be developed to integrate Aras with source control systems, IDEs, or something else?
  • If IDE integrations are desired, which ones (e.g. Visual Studio or SharpDevelop) should be supported?  Which versions?  How do updates get made when multiple versions will likely need to be supported simultaneously?  How do we ensure new IDE versions are supported in a timely manner?

 

To start the conversation, I have documented the history of server method development at my company at https://amlstudio.codeplex.com/wikipage?title=Aras%20Method%20Development%20with%20Visual%20Studio.  Please take a gander and let us know how your approaches are similar to or different from the various approaches we have tried along with your thoughts to the question above.



aponceot - Monday, February 23, 2015 3:24 PM:

Hi Eric,

Good initiative to initiate such a topic. We have more and more the need to develop from within Visual Studio, also because it makes it simpler to architecture a solution, create classes, use caching, static methods ... On large solutions, it is really a must have.

Today, I'm basically creating a Visual Studio solution and in this solution, I have a static class containing static members that we are calling from within the Aras methods.

I never had the same use case than you where it was causing performances problems, because, for most of our projects, the go-live on the production server is probably not as agile than you have and is very often planned in time and the application is taken down during the upgrade of the solution.

However, it is interesting to have a look at this issue. Having used "Managed Extensibility Framework (MEF)" on some project, I would be interested on seeing how it behaves in an IIS environment.

On the deployment side, my first idea with a Visual Studio integration was have a UI to bind a C# method directly to server events, the integration would create the Aras method needed and attach the method to the server event. Of course, the deployment of the dll also have to be considered so it is automatically built and deployed to the server code tree.

 

 



torkil - Tuesday, February 24, 2015 3:57 AM:

 

Dear Eric

Good iniative. There is a needs for enhansing the development environment in Aras

We use Visual Studio;VS when we develop:

  • DOJO UI applications in order to provide UI according to business requirements. For debugging Javascript VS is absolutely needed
  • Develop clients using IOM.dll. Here we lack that IOM is missing XML documentation for Intellisense.
  • Debug solutions made in Aras. Here we import Aras into a Web Site project and debug within the whole system
  • We are not using remote debugger facilities

Aras do not provide showcases fo VS so it is not obvious for many users how to use VS efficiently.

I think it could be nice if Aras Corp with their developers in combinations with more advanced users could work out a solution for how VS can be used for debugging and enhansing the development experience in Aras.

BR

Torkil



Eric Domke - Wednesday, February 25, 2015 2:08 PM:

Anthony,

Your current strategy makes a lot of sense and sounds very similar to the spirit of ours.  I haven't looked very hard at Managed Extensibility Framework (MEF).  My initial discovery of the immense abstraction with 7 layers of classes was enough to scare me off for the time being.  However, my hunch is that it would still cause the same issues as any change which would trigger an IIS reset (changing a dll, modifying the method_config.xml, ...) seems to cause the performance issues.

Expanding on your idea, any specific ideas on how an integration would know how to bind C# classes/methods to Aras events?  For example, would it be a special C# attribute referencing the name of the ItemType and event?  What would happen if C# did something unsupported (e.g. have two "pre" life cycle transition events)?  How would you call out workflow activity methods?  In my mind, I am imagining something like the following (but I haven't thought it through too hard)

    [Method("My Awesome Method"),
    ItemTypeEvent("Part", "onBeforeUpdate", 30),
    ItemTypeEvent("Part", "onBeforeAdd", 60),
    LifeCycleTransition("Part", "Preliminary", "In Review", "Pre")]
    public class MyAwesomeMethod : IServerMethod {
        public Item Method(CallContext CCO, Item arg) {
            // Your code here
        }
    }

Torkil,

Your strategy (although slightly different) also makes a lot of sense.  I hadn't thought about creating an Aras web project in Visual Studio.  That is a really clever idea.  Could you provide details on how you set this up?  If nothing else, developing a solid "Test Bed" project for each of us to start using could be a great first step.