{"id":24480,"date":"2024-02-15T14:53:34","date_gmt":"2024-02-15T22:53:34","guid":{"rendered":"https:\/\/docs.extraview.com\/v25\/book\/development-guidelines-1\/"},"modified":"2025-02-17T17:42:35","modified_gmt":"2025-02-18T01:42:35","slug":"development-guidelines-1","status":"publish","type":"page","link":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/","title":{"rendered":"Development Guidelines"},"content":{"rendered":"<h3>\n\tDevelopment Instances<\/h3>\n<p>ExtraView recommends that customers install at least two, and preferably three instances of ExtraView, supporting web software and databases. These are typically known as the development instance, the staging instance and the production instance. The staging instance is optional. These instances should preferably be installed on separate machines, although it is common to use a single database server with multiple user accounts for the different instances.<\/p>\n<ol>\n<li>\n\t\t<b>The development instance<\/b> \u2013 all development happens on this instance. When development and testing is complete, the code is moved to the staging instance<\/li>\n<li>\n\t\t<b>The staging instance<\/b> \u2013 final testing and QA happens on this instance, after the development code is moved to this environment. Once the final testing is complete, the code is moved to the production instance<\/li>\n<li>\n\t\t<b>The production instance<\/b> \u2013 this is the instance of code that accesses the live database and is accessed by all end users.<\/li>\n<\/ol>\n<h3>\n\tThe Development Environment<\/h3>\n<ul>\n<li>\n\t\tExtraView recommends a Window platform for development, although all the essential tools are available under Unix, Linux and Solaris<\/li>\n<li>\n\t\tWeb Server \u2013 such as Apache<\/li>\n<li>\n\t\tApplication Server \u2013 such as Apache Tomcat<\/li>\n<li>\n\t\tExtraView \u2013 current version<\/li>\n<li>\n\t\tA supported database such as Oracle, MySQL or SQL Server<\/li>\n<li>\n\t\tSun J2SE JDK<\/li>\n<li>\n\t\tNote: The JDK that you use to compile your user custom code must be the same version used by ExtraView to build ExtraView<\/li>\n<li>\n\t\tExtraView and associated jars for developing user custom code.<\/li>\n<\/ul>\n<p>See the recommended versions of the various components on the <a href=\"v25\/server-requirements\/\">Server Requirements<\/a> page.<\/p>\n<h3>\n\tDevelopment tools<\/h3>\n<ul>\n<li>\n\t\tPreferably use an IDE such as Eclipse<\/li>\n<li>\n\t\tAny text editor can be used in place of the IDE<\/li>\n<li>\n\t\tThe ExtraView jar file &#8211; obtained from ExtraView Corporation<\/li>\n<li>\n\t\t<b>Do not develop code on your production ExtraView environment. At minimum, set up a separate development environment<\/b><\/li>\n<li>\n\t\tWithin ExtraView, set the behavior setting named USER_CUSTOM_CLASSNAME within the Behavior Settings Administration menu to be the name you will use for your UserCustom class, for example \u2013<\/p>\n<div class=\"fixedWidthFont\">\n\t\t\tcom.extraview.usercustom.myCompanyName<\/div>\n<\/li>\n<\/ul>\n<h3>\n\tBasic Development Steps<\/h3>\n<h3>\n\tJVM Memory<\/h3>\n<ol>\n<li>\n\t\tUse javac with the classpath for your system and include the jars<\/li>\n<li>\n\t\tDevelop your code in a class named myCompanyName.java as the source file This class should probably extend <span class=\"fixedWidthFont\">UserCustom.java<\/span> to inherit the capabilities that ExtraView ships in its best practices implementation. It is likely that you will extend the class file <span class=\"fixedWidthFont\">CustomCodeBase.java<\/span>. This file itself extends <span class=\"fixedWidthFont\">UserCustom.java<\/span><\/li>\n<li>\n\t\tCompile the new myCompanyName.java code<\/li>\n<li>\n\t\tThe myCompanyName.class is copied into the appropriate class directory. This is typically \u2013 <span class=\"fixedWidthFont\">&lt;tomcat-base&gt;\/webapps\/&lt;instance-name&gt;\/WEB-INF\/classes\/com\/extraview\/usercustom<\/span><\/li>\n<li>\n\t\tTest your code \u2013 the application server must be \u201cbounced\u201d, i.e., stopped and started, before you run the ExtraView application within your browser. Note that when bouncing the application server, all current interactive sessions are lost and all users are required to login into ExtraView again<\/li>\n<li>\n\t\tTest the new code by running through use case scenarios. For example, add a problem to invoke the ucAddPreInsert method. Inspect the output through ExtraView and by looking at the ExtraView system log which is typically located at: <span class=\"fixedWidthFont\">&lt;tomcat-base&gt;\/webapps\/&lt;instance-name&gt;\/WEB-INF\/logs\/EVJ.log<\/span><\/li>\n<li>\n\t\tYou should develop your code to output debug messages to the system log by invoking the system logging method<\/li>\n<li>\n\t\t<span class=\"fixedWidthFont\">System.err.println<\/span> messages are displayed on the application server console. This makes its use ineffective, and makes the system logging method much more preferable and convenient to use.<\/li>\n<li>\n\t\tIf ExtraView gets even just a single OUT OF MEMORY error, then the <span class=\"fixedWidthFont\">JVM \u2013Xms and \u2013Xmx<\/span> arguments should be increased at the startup time of the JVM. Note that the JVM_HEAP environment variable is used to set these parameters<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Development Instances ExtraView recommends that customers install at least two, and preferably three instances of ExtraView, supporting web software and databases. These are typically known as the development instance, the staging instance and the production instance. The staging instance is optional. These instances should preferably be installed on separate machines, although it is common to&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":24479,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_lmt_disableupdate":"no","_lmt_disable":"","_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-24480","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Development Guidelines - Product Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Development Guidelines - Product Documentation\" \/>\n<meta property=\"og:description\" content=\"Development Instances ExtraView recommends that customers install at least two, and preferably three instances of ExtraView, supporting web software and databases. These are typically known as the development instance, the staging instance and the production instance. The staging instance is optional. These instances should preferably be installed on separate machines, although it is common to...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Product Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-18T01:42:35+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/\",\"url\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/\",\"name\":\"Development Guidelines - Product Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#website\"},\"datePublished\":\"2024-02-15T22:53:34+00:00\",\"dateModified\":\"2025-02-18T01:42:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/docs.extraview.com\/v25\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ExtraView 25\",\"item\":\"https:\/\/docs.extraview.com\/v25\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"User Custom Guide\",\"item\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Development Guidelines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/#website\",\"url\":\"https:\/\/docs.extraview.com\/v25\/\",\"name\":\"ExtraView Product Documentation\",\"description\":\"ExtraView Documentation\",\"publisher\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/docs.extraview.com\/v25\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/#organization\",\"name\":\"ExtraView Corporation\",\"url\":\"https:\/\/docs.extraview.com\/v25\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png\",\"contentUrl\":\"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png\",\"width\":512,\"height\":512,\"caption\":\"ExtraView Corporation\"},\"image\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Development Guidelines - Product Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/","og_locale":"en_US","og_type":"article","og_title":"Development Guidelines - Product Documentation","og_description":"Development Instances ExtraView recommends that customers install at least two, and preferably three instances of ExtraView, supporting web software and databases. These are typically known as the development instance, the staging instance and the production instance. The staging instance is optional. These instances should preferably be installed on separate machines, although it is common to...","og_url":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/","og_site_name":"Product Documentation","article_modified_time":"2025-02-18T01:42:35+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/","url":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/","name":"Development Guidelines - Product Documentation","isPartOf":{"@id":"https:\/\/docs.extraview.com\/v25\/#website"},"datePublished":"2024-02-15T22:53:34+00:00","dateModified":"2025-02-18T01:42:35+00:00","breadcrumb":{"@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/development-guidelines-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/docs.extraview.com\/v25\/"},{"@type":"ListItem","position":2,"name":"ExtraView 25","item":"https:\/\/docs.extraview.com\/v25\/"},{"@type":"ListItem","position":3,"name":"User Custom Guide","item":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/"},{"@type":"ListItem","position":4,"name":"Development Guidelines"}]},{"@type":"WebSite","@id":"https:\/\/docs.extraview.com\/v25\/#website","url":"https:\/\/docs.extraview.com\/v25\/","name":"ExtraView Product Documentation","description":"ExtraView Documentation","publisher":{"@id":"https:\/\/docs.extraview.com\/v25\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/docs.extraview.com\/v25\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/docs.extraview.com\/v25\/#organization","name":"ExtraView Corporation","url":"https:\/\/docs.extraview.com\/v25\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/","url":"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png","contentUrl":"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png","width":512,"height":512,"caption":"ExtraView Corporation"},"image":{"@id":"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/"}}]}},"taxonomy_info":[],"featured_image_src_large":false,"author_info":{"display_name":"carl.koppel","author_link":"https:\/\/docs.extraview.com\/v25\/author\/carl-koppel\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/comments?post=24480"}],"version-history":[{"count":0,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24480\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24479"}],"wp:attachment":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/media?parent=24480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}