Building an ePortal solution consists of performing a build of the data source project, followed by a build of each associated presentation project. Each project build consists of a series of build steps. Each build step takes one or more inputs and generates an associated output. In order to improve build performance, the build processing has been optimized wherever possible to perform a build step only when one of the following is true:
Any of the input(s) are newer than the output.
The output does not exist.
To build the solution, select Build Solution from the Build menu.
Building the Data Source Project
A C# file (with the extension .cs) is generated for each ePortal client and server message. The generated C# file is referred to as the message class source file.
In order to allow message class source files to be regenerated only when necessary, these files are not added as members of the data source project.
A data source Dynamic Link Library (DLL) is created by compiling all of the C# files in the data source project and producing a single DLL file. The C# files consist of files generated for your orchestration and the message class source files.
There are non-incremental and incremental build options for producing a DLL file.
Non-incremental DLL Build
The traditional way to create a .Net DLL is to compile all input C# files with one call to the compiler and produce a single output DLL file. This is referred to as a non-incremental DLL build.
This approach has the following advantages:
It is the fastest approach when all files need to be compiled (e.g., on the first build or a full rebuild).
One single file (the DLL) is all that needs to be deployed.
However, this approach has the following significant disadvantage:
Whenever any C# file changes, all files must be recompiled.
The non-incremental DLL build is the preferred and default approach when performing a Release build. Refer to Build Configurations for more information.
Incremental DLL Build
An alternative way of creating the .Net DLL is to compile each C# file into a netmodule (with extension .netmodule) and link the resulting netmodules into a DLL. This is referred to as the incremental DLL build.
In particular, ePortal compiles each message class source file into a corresponding netmodule file. Then, the orchestration C# files are compiled and linked with all of the netmodule files, to create the data source DLL.
This approach has the following advantage:
Only a small number of C# files need to be recompiled on most builds. This results in significantly faster builds for projects with a large number of messages, where few messages have changed.
However, this approach has the following disadvantages:
Performing all of the individual compiles takes somewhat longer than performing the single large compile of a non-incremental DLL build.
At runtime, the DLL and all of the netmodules must be deployed.
The incremental DLL build is the preferred and default approach when performing a Debug build. Refer to Build Configurations for more information.
Building Netmodules in Parallel
When using the incremental DLL build, ePortal can build the netmodule files in parallel. Building in parallel has the potential to reduce the overall build time, especially on systems with multiple processors.
Configuring Build Options
You can control the options used to build the data source DLL. Refer to Data Source Project Property Pages Dialog for more information.
Building a Web Forms Application or Web Forms Mobile Application Presentation Project
The following step is no longer performed on a Build Solution operation, however, this step is still performed on a Rebuild Solution operation. For more information, refer to Rebuilding the Solution.
In the earlier versions of ePortal Developer, on every build, each client message was validated against the corresponding .aspx file, and warnings were generated for any discrepancies found. For example, if a client message field existed with no corresponding control found on the .aspx page, a warning was produced. This proved to be extremely time consuming for cases with many client messages.
Building a WCF Web Service Application Presentation Project
The following C# files are generated during a WCF web service presentation project build:
App_Code\IService.cs – the interface for the web service.
App_Code\Service.cs – the implementation of the web service methods.
In order to allow the C# files to be regenerated only when necessary, these files are not added as members of the presentation project.