Forum Discussion
As I understand it, there's a couple of options. However, all code customized or otherwise is maintained in the Aras database, with full version history - major rev, generations, etc. I think this is important because, on the server it's Aras that compiles the server code into executable libraries for IIS. I don't think deploying code or builds from another server is possible. I may be wrong.
I've used the Visual Studio add in with success for maintaining code outside of the database, the drawback being it only supports c# - which I prefer, but we have old code in VB, and other methods using JavaScript.
I think what makes this a good solution is that it brings in references for all the Aras libraries (IOM, etc.), which give you intellisense in Visual Studio.
Another option is, if you open the Aras database SSMS, look at the innovator.Method table - this seems to contain all code for server and client methods, along with their history - you can see which is the most recent up to date record by checking the Is_Current field:
SELECT id,
KEYED_NAME,
METHOD_TYPE,
MAJOR_REV,
GENERATION,
METHOD_CODE FROM innovator.METHOD WHERE IS_CURRENT = 1
This will show you all the code for methods, omitting the Is_Current will include each methods history.
- christopher_gillis6 years agoCommunity Manager
These are great points, David. Thank you.
I wanted to add on to this answer with some suggestions for testing code while it's in development. What our users typically do is run multiple instances (at least 3) of Aras Innovator for the express purpose of developing new functionality.
- One of these instances serves as the development server. This is a server with limited access that is used for the development of new features. This could include things like adding a new property to an ItemType, writing a new Method and server event, creating a new Form, etc. As these new features are written, they are packaged and exported.
- Next, there's typically a QA server which is used to test the packages from the development server. This is also a limited access server that is just used to test the new features to ensure that there is no loss of functionality or unexpected bugs introduced.
- Lastly, we have the production server. This is the actual server that your end users will use to interact with your business data. Once a package has been approved on the QA server, it is then imported into production typically during some down, so that it can be tested and validated one last time.
This is just a general guideline for one possible way to manage your development. There's typically also some practice of regularly backing up the production database and syncing the new data with the development and QA servers.
Chris
Christopher Gillis
Aras Labs Software Engineer
- Sacha_Bertschi6 years agoIdeator III
Thank you David and Christopher.
I come from a technical background as I was a developer (C#) previously.
I have been reading the "Aras Development Process Student Guide Version 11".If I resume the development process:
- GIT for version control
- Visual Studio as the IDE
- NUnit as the testing framework
Is this an option? Could I use the test framework from Microsoft? I have been using it with then opensource framework Moq (https://github.com/moq/moq) in the past- I don't understand the conversion also, why converting method from C# to AML from the Method project, and then back from AML to C# into the test project? Why the extra step?
- For conversion also, is it possible to create C# object and use a library to convert them to AML when whe need to provide AML?
- For debugging using breakpoint, I saw this: //System.Diagnostics.Debugger.Break();
Is it possible to use the debugger built in Visual Studio? By just clicking on the side of the line wanted?I'm trying to understand how to develop with Aras Innovator, thank you for your understanding if some question are really basic.
And also, is all this different with V12?
Best Regards,
Sacha Bertschi
- christopher_gillis6 years agoCommunity Manager
Hi Sacha,
I'll try address the points that I can below. To begin with, would you be able to provide a link to the "Aras Development Process Student Guide Version 11"? I'm unfamiliar with this document myself and I'd be interested to see what advice it offers.
I don't understand the conversion also, why converting method from C# to AML from the Method project, and then back from AML to C# into the test project? Why the extra step?
Everything inside of Aras Innovator is an Item. This is true of things like Parts and Documents just as it's true with Methods. For most methods of querying Innovator (the REST API being an exception), the data that we get is returned as AML. Once the Method item is retrieved, the AML then needs to be parsed to extract the specific method code associated with that item.
For conversion also, is it possible to create C# object and use a library to convert them to AML when whe need to provide AML?
If you're using the Item class inside of the IOM.dll, it is possible to get the AML that represents that item. However, if you're trying to convert a generic C# object to AML, there's no Aras-specific code to support this. That being said, AML is just a flavor of XML, and there's a number of C# libraries that handle serializing data to XML. (an example)
For debugging using breakpoint, I saw this: //System.Diagnostics.Debugger.Break();
Is it possible to use the debugger built in Visual Studio? By just clicking on the side of the line wanted?I'm not very familiar with the Visual Studio add-in, so it may be possible to just manually add a breakpoint outside of the code as you're suggesting. However, adding the System.Diagnostics.Debugger.Break(); line is a more full-proof way to ensure that you can debug into your code. Using this line is also supported with Aras OOTB, and you can read more about it in our blog post on debugging.
And also, is all this different with V12?
The same development process you use for v11 should be fine when used with v12.
Chris