<?xml version="1.0" encoding="utf-8"?>
<ManualTopic ID="/baanerp/ff/tools/tools_ff_application_development" xml:lang="en">
   <Header>
      <Title>Application development</Title>
      <Keyword type="header" order="d1e441114">
         <Level1>Functions and features</Level1>
         <Level2>application_development</Level2>
      </Keyword>
      <Keyword type="header" order="d1e441119">
         <Level1>Application_development</Level1>
         <Level2>functions and features</Level2>
      </Keyword>
   </Header>
   <GeneralSection>
      <List>
         <ListIntro>The ERP Enterprise development environment enables you to develop ERP Enterprise software.
		  You can create package VRCs in which you can perform, for example, these
		  actions:</ListIntro>
         <ListItem>Set up a data model, consisting of domains and tables, for an
		  application. To use this functionality, a development license is
		  required.</ListItem>
         <ListItem>Create various types of software components, such as: <List>
               <ListItem>Sessions</ListItem>
               <ListItem>Forms</ListItem>
               <ListItem>Reports</ListItem>
               <ListItem>Report scripts</ListItem>
               <ListItem>Multi-language data field labels</ListItem>
               <ListItem>Questions and messages</ListItem>
            </List>
         </ListItem>
         <ListItem>Create, edit, and compile UI scripts, DLLs, and DALs. To use
		  this functionality, a development license is required.</ListItem>
      </List>
   </GeneralSection>
   <GeneralSection>
      <List>
         <ListItemHead>
            <Link href="/baanerp/tt/EnterpriseStudio/onlinemanual/domains" role="manual"
                  Update="No">Domains</Link>
         </ListItemHead>
         <ListItem>Domains define common information about data such as data type,
		  length, alignment, valid ranges, display format, and capitalization
		  rules.</ListItem>
         <ListItemHead>
            <Link href="/baanerp/tt/EnterpriseStudio/onlinemanual/table_definitions"
                  role="manual"
                  Update="No">Table definitions</Link>
         </ListItemHead>
         <ListItem>A table definition defines the structure of a <Link href="/baanerp/tt/glossary/glossary#table_tt" role="glossary">table</Link>. A table definition
		  contains fields and indices. Table fields are linked to domains that define the
		  data type and several characteristics of the fields.</ListItem>
         <ListItemHead>
            <Link href="/baanerp/tt/EnterpriseStudio/onlinemanual/dal" role="manual" Update="No">DAL</Link>
         </ListItemHead>
         <ListItem>The Data Access Layer (DAL) allows developers to describe rules
		  about data. A DAL is linked to a table, as opposed to a session. Therefore,
		  anytime the table is accessed, the DAL is used. In this way, different sessions
		  can update a table and the same rules apply in the same way. In addition,
		  integration capabilities use the DAL to insure updates will occur in the same
		  way.</ListItem>
         <ListItemHead>
            <Link href="/baanerp/tt/EnterpriseStudio/onlinemanual/sessions" role="manual"
                  Update="No">Sessions</Link>
         </ListItemHead>
         <ListItem>A session performs an activity. Sessions are used to present
		  data, edit data, and process data. Each session has a code. The session code is
		  displayed in the status bar of the session window. A session consists of
		  multiple components that work together, such as a form and an object. A session
		  object is a compiled UI script.</ListItem>
         <ListItemHead>
            <Link href="/baanerp/tt/EnterpriseStudio/onlinemanual/ui_scripts" role="manual"
                  Update="No">UI scripts</Link>
         </ListItemHead>
         <ListItem>The default behavior of a session is handled by the <Link href="/baanerp/tt/glossary/glossary#100092" role="glossary">4GL engine</Link>. If additional functionality is required or
		  default functionality must be by-passed, this should be programmed in the
		  session's UI script (Program script). The UI script is compiled in the session
		  object. The object contains only the exceptions to the normal operating
		  procedures of the system. The 4GL Engine executes the normal operating
		  procedures of the system, and you write the exceptions.</ListItem>
         <ListItemHead>
            <Link href="/baanerp/tt/EnterpriseStudio/onlinemanual/functions" role="manual"
                  Update="No">Functions</Link>
         </ListItemHead>
         <ListItem>Functions allow you to perform a programming task many times
		  with different values. A function is declared in the functions section of a
		  script, or in a library, or in a separate function script (include).</ListItem>
         <ListItemHead>
            <Link href="/baanerp/tt/EnterpriseStudio/onlinemanual/libraries" role="manual"
                  Update="No">Libraries</Link>
         </ListItemHead>
         <ListItem>A library, also called Dynamic Link Library (DLL), provides
		  application-specific functions that can be used throughout the system, by many
		  sessions. A library is a script that is stored in a separate component. The
		  library is compiled independently of the program scripts that use it. Libraries
		  are loaded at runtime by sessions that use them: when a session needs to access
		  a library, the library is loaded and the relevant routine is
		  executed.</ListItem>
      </List>
      <Paragraph>See also <Link href="/baanerp/ff/tools/tools_ff_application_customization" role="manual"
               Update="No">Application customization</Link>.</Paragraph>
   </GeneralSection>
</ManualTopic>