{"id":102,"date":"2016-01-06T12:28:53","date_gmt":"2016-01-06T11:28:53","guid":{"rendered":"http:\/\/all-in-for-erp.com\/en\/?p=102"},"modified":"2016-01-15T08:22:34","modified_gmt":"2016-01-15T07:22:34","slug":"development-infor-ln-studio","status":"publish","type":"post","link":"http:\/\/all-in-for-erp.com\/en\/2016\/01\/06\/development-infor-ln-studio\/","title":{"rendered":"Development with Infor LN Studio"},"content":{"rendered":"<p>Already since some years now there is <strong>Infor LN Studio<\/strong> available as a development environment for Infor LN. It&#8217;s an Eclipse installation, that has been enriched by Infor with some plugins. This development environment basically sits in front of the LN Tools environment. Instead of using the sessions <em>Sessions<\/em>, <em>Table Definitions<\/em> and so on, you are developing completely within Eclipse. The plugin provides forms for creating and modifying sessions, tables, scripts, messages. All you&#8217;re usually needing when doing LN development. Only for the form editor Eclipse is starting that &#8220;classic&#8221; <em>DFE<\/em> Windows application.<\/p>\n<p>Three years ago I gave it a try and aborted that experiment rather quickly, because it was terribly unstable. However, I am currently the project manager of a rather large LN implementation and it looks like we&#8217;re going to handle large parts of the necessary development activities with LN Studio. So, it was time again to install it and check for it&#8217;s usability.<\/p>\n<p><strong>And I have to say, it&#8217;s pretty cool.<\/strong> (Did anyone claim that I would only rant on Infor?) There are a few features missing that I&#8217;d like to see implemented, but for regular development it&#8217;s looking really good:<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-126\" src=\"http:\/\/all-in-for-erp.com\/en\/wp-content\/uploads\/sites\/3\/2016\/01\/ApplicationStudio.png\" alt=\"ApplicationStudio\" width=\"1236\" height=\"989\" srcset=\"http:\/\/all-in-for-erp.com\/en\/wp-content\/uploads\/sites\/3\/2016\/01\/ApplicationStudio.png 1236w, http:\/\/all-in-for-erp.com\/en\/wp-content\/uploads\/sites\/3\/2016\/01\/ApplicationStudio-300x240.png 300w, http:\/\/all-in-for-erp.com\/en\/wp-content\/uploads\/sites\/3\/2016\/01\/ApplicationStudio-768x615.png 768w, http:\/\/all-in-for-erp.com\/en\/wp-content\/uploads\/sites\/3\/2016\/01\/ApplicationStudio-1024x819.png 1024w\" sizes=\"(max-width: 1236px) 100vw, 1236px\" \/><\/p>\n<p><strong>Let&#8217;s start with the positive:<\/strong><\/p>\n<ul>\n<li>There is <strong>syntax highlighting<\/strong>. One that works.<\/li>\n<li>There is <strong>code completion<\/strong>. You&#8217;re typing &#8220;tcibd001.&#8221;, CRTL+Space, and you get a dropdown list of all fields of the item master including the description. Pretty nice.<\/li>\n<li>A <strong>changed source is automatically compiled<\/strong> by the Studio upon saving it. The errors are immediately marked in the source code. You don&#8217;t have to close the editor, click compile, check the results, repoen the editor and jump to the erroneous source code line. This saves a lot of time.<\/li>\n<li>From a function that is used somewhere in a source you can <strong>easily jump to that source<\/strong>, where this funktion is defined. No more IT-per-hand-fumbling, that you usually have to do (remember the function, start a new <em>Maintain Program Scripts<\/em>, find the DLL, open the editor, start a find dialog, enter the function name.)<\/li>\n<li>The studio integrates nicely in the configuration management (an option to keep old versions of changed program objects, unfortunately used rather sparsely)<\/li>\n<li>and even more nicely into PMC.<\/li>\n<li>This means: Within LN Studio I am able to define a development activity, I can create all necessary software objects\u00a0 &#8211; sources, tables, sessions, domains and so on, I can test, debug, change, and do all my development work. When I&#8217;m done, and when everything&#8217;s working, I am able to check in all objects within the activity with a single action and create a solution to deploy the stuff to the live system. I enter a commit comment only once and not for every single object. Did work stable and reliable in my tests. When doing development the &#8220;classical way&#8221;, there is the need to either write down changed objects, or to immediately linkt them to a solution, or to fumble around with development projects and project parts. This is removed now, the solution with LN studio is exactly what is needed.<\/li>\n<li><strong>The debugger<\/strong> works much more elegantly then the classic one. You&#8217;re seeing the stack, the contents of variables is already displayed when rolling over the variable with the mouse, local variables are also displayed in a list view.<\/li>\n<li>Really cute: Sources you need during debugging are <strong>automatically compiled into debug mode<\/strong> by studio in the background. (Need to have a source code license, of course). You don&#8217;t have to manually tear each DLL you want to analyse into the development VRC and compile it with the debugger on.<\/li>\n<\/ul>\n<p><strong>On the negative:<\/strong><\/p>\n<ul>\n<li><strong>The debugger is too slow<\/strong>. It might be some configuration issue at my side, I still have to check that. But as it&#8217;s behaving now, it&#8217;s too slow. From time to time it needs like 15 seconds between pressing &#8220;step&#8221; and the instruction pointer moving one line down. Something is not right there, like that, you can&#8217;t work in any productive way.<\/li>\n<li>I extremly dislike the design concept <strong>to hide the session scripts and DALs behind the session and the tables<\/strong>. In the hierarchical structure of the existing software components there is no access to &#8220;Scripts&#8221;, only to &#8220;Sessions&#8221;, &#8220;Tables&#8221; and &#8220;Libraries.&#8221; The session skript is but one tab amongst others defining the session. The DAL consequently one tab in the table editor. That&#8217;s simply not the way like LN is (partially) programmed, scripts can have a life of their own.<\/li>\n<li>What&#8217;s not hurting when you&#8217;re developing new software, but what makes the Studio partially useless when custumizing standard components, is the fact that that<strong> you can only access one version of a software object<\/strong>. So, for a changed standard script, you can only access the modified version, not the original (standard) one, which might be changed in the meantime eg by installing a solution. That makes merging customizations with a changed standard pretty impossible. My classical development based on JEdit is much more productive in that usage scenario.<\/li>\n<\/ul>\n<p>These laste two issues are really critical if Infor LN Studio is used not only for new developmen, but also for maintainance. One is missing the oversight, you don&#8217;t really get a grasp on which scripts linger around in which environments, which ones are customized etc. This is much more easy to understand using the classical tools sessions. I&#8217;d really wish that Infor invests some more development bucks into these two issues &#8211; <strong>then the Infor LN Studio becomes a really nice piece of work<\/strong>.<\/p>\n<p><strong>What do you think?<\/strong> Have you worked with Infor LN Studio already? Do you want to use it or do you think it&#8217;s unnecessary clicky-dicky (since <em>vi<\/em> is all you really need!) I would be very happy to hear your comments! Right below there is enough space left!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Already since some years now there is Infor LN Studio available as a development environment for Infor LN. It&#8217;s an Eclipse installation, that has been enriched by Infor with some plugins. This development environment&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":127,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/posts\/102"}],"collection":[{"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":22,"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/posts\/102\/revisions"}],"predecessor-version":[{"id":147,"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/posts\/102\/revisions\/147"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/media\/127"}],"wp:attachment":[{"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/media?parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/categories?post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/all-in-for-erp.com\/en\/wp-json\/wp\/v2\/tags?post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}