mv.NET Solution Objects Developer Guide  - Overview 
Page 4 
Solution Objects - Basic Concepts 
Before diving into too much detail, it would perhaps be useful to set the scene in 
terms of the basic concepts that Solution Objects brings to the table.  The sections 
below cover the main ideas that you'll need to grasp before starting to use 
Solution Objects. 
First of all, we have the concept of "Entities".  An entity is a 'thing' that your 
application deals with and, as such, can be a representation of pretty much 
anything - something physical or something abstract - it all depends on the 
"domain" that your application deals with. 
If your application is a stock control system chances are that your entities will be 
things like Products, Suppliers, Purchase Orders etc.  If you are creating a banking 
application your entities will be things like Bank Accounts, Customers, etc. 
The modern object-oriented programming paradigm fits pretty well with the 
concept of entities because, very often, many of the "Objects" inside your 
application are a representation of the entities within your "application domain". 
If you have an existing application, your database structure will probably be the 
first representation that you can turn to in order to identify the entities that exist 
within your application domain.  Sometimes there will be a strikingly close match 
between files and entities - sometimes not.  It all depends, of course, on the 
mindset of the person/people who designed the file structure originally. 
Anyway, the first thing that you need to establish is a good understanding of what 
entities it makes sense for your application to use and then combine this with a 
good understanding of where the data that these entities use is held within your 
You also need to understand how entities relate to one another.  This, again, may 
well be represented to a certain extent by the dictionary definitions within your 
Pdf image to text - software application dll:C# PDF Convert to Text SDK: Convert PDF to txt files in, ASP.NET MVC, WinForms, WPF application
C# PDF to Text (TXT) Converting Library to Convert PDF to Text
Pdf image to text - software application dll:VB.NET PDF Convert to Text SDK: Convert PDF to txt files in, ASP.NET MVC, WinForms, WPF application
VB.NET Guide and Sample Codes to Convert PDF to Text in .NET Project
mv.NET Solution Objects Developer Guide  - Overview 
Page 5 
Entity Models 
An Entity Model is a formal definition of all the entities that exist within your 
application domain.  It also contains information describing how entities relate to 
each other.  Solution Objects also uses the Entity Model to contain the following 
additional pieces of important definition information, including: 
how entities map onto the underlying data store (MultiValue database) 
how entities can be selected 
how back-end database resident routines are to be accessed 
You are able to create any number of different entity models as required. 
Data and Business Access Layers 
.NET developers live and breathe classes; after all, the .NET framework is the 
mother of all class collections!  Thus, it is natural for this community of 
developers, when dealing with the matter of application data, to view their 
application data as being made up of a series of classes. 
Therefore, the basic idea behind Solution Objects is to assist you in the task of 
producing a series of class definitions that represent your application's main data 
environment.  These classes being able to read and write data from/to a 
MultiValue database as required by the logic of your application. 
A Data Access Layer (DAL) is a series of classes - each referred to as a Data Access 
Class (DAC) - which provides the "first line" of class-based abstraction of your 
database.  Each DAC knows exactly where to go within the associated database in 
order to retrieve the persisted data that it needs/represents.  
A Business Access Layer (BAL) is also a series of classes - each referred to as a 
Business Access Class (BAC) - with which your application code interacts.  Some 
people use the term Business Logic Layer (BLL) as the name of such a concept.  
The BAL has no knowledge of where persisted data comes from - it lets the DAL 
handle that.  The classes within the BAL, of course, have a very strong association 
with the classes in the DAL, but these classes may have different names and a 
single DAC may be represented by multiple BACs. 
The BAL is more concerned with providing a series of classes that are useful for 
the application developer.  These classes, for example, know how to interact with 
data binding mechanisms; they can also present a subset of the classes (and 
software application dll:C# PDF Image Extract Library: Select, copy, paste PDF images in C#
PDF ›› C# PDF: Extract PDF Image. How to C#: Extract Image from PDF Document. Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document.
software application dll:VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Home ›› XDoc.PDF ›› VB.NET PDF: Extract PDF Image. Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document in VB.NET Project.
mv.NET Solution Objects Developer Guide  - Overview 
Page 6 
properties within the DAL classes) in order to simplify the class interface or to 
prevent the application developer from accessing sensitive, special or volumous 
The end application developer does not interact directly with the DAL.  The DAL is 
there to service the needs of the BAL. 
The following diagram illustrates these concepts: 
Solution Objects - Process Summary 
There are a number of distinct tasks that you will need to perform in order to 
produce a functional class-based access layer using Solution Objects: 
Install the mv.NET Client Interface Developer SDK.  The mv.NET Data 
Manager utility is installed as part of this SDK and is used to perform 
tasks 2 through 6 below. 
Download the Entity Models Repository files into a designated account on 
your MultiValue database. 
Create an empty Entity Model. 
Use the entity generator to create your initial entity definitions based on 
existing database dictionary/schema definitions. 
Flesh out your entity definitions as required, including the definition of 
one or more Business Access Layers. 
.NET Databinding Interfaces 
Data Access Layer 
Data Access Class 
OrganizationLookup  OrganizationReport 
Business Access Layer 
software application dll:C# PDF insert image Library: insert images into PDF in, ASP
Free PDF image processing SDK library for Visual Studio .NET program. Powerful .NET PDF image edit control, enable users to insert vector images to PDF file.
software application dll:VB.NET PDF insert image library: insert images into PDF in
VB.NET code to add an image to the inputFilePath As String = Program.RootPath + "\\" 1.pdf" Dim doc New PDFDocument(inputFilePath) ' Get a text manager from
mv.NET Solution Objects Developer Guide  - Overview 
Page 7 
Use the code generator to generate your Data Access Layer (DAL) and 
Business Access Layer (BAL) code modules. 
Include these code modules inside a Visual Studio project and build your 
access layer assembly.  You can have the code modules in separate Visual 
Studio projects if you prefer to produce separate DAL and BAL 
Reference your BAL assembly from within your end application Visual 
Studio solution. 
The following sections cover each of the above steps in turn. 
Initial Installation 
Solution Objects is supplied as part of the mv.NET Client Interface Developer (CID) 
SDK package.  Therefore, the first step is to load this onto your development 
workstation.  If you already have a pre-4.1 version of the mv.NET CID installed on 
your system you may upgrade it using the latest CID service pack.  Please refer to 
the Core Objects developer guide and the current release notes for more 
information on upgrading an existing CID installation. 
Entity Models Repository Download 
The Data Manager stores all entity model definitions in a series of files within a 
MultiValue database account.  Collectively, these files are referred to as the "Entity 
Models Repository" (EMR).  The decision as to which account is to host the EMR is 
ultimately your decision, but we recommend that you create an account 
specifically for this purpose and call it "MV.EMR".    Please do not use the MV.NET 
account that has been created to host the mv.NET server-side components as the 
EMR host account. 
Once you have created the EMR account or identified an existing account that you 
are going to use for this purpose, you need to make sure that this account has 
been "enabled" for mv.NET usage.  Please refer to the Core Objects Developer 
Guide for further details on this topic. 
Once the EMR account has been enabled, you need to create a server and account 
profile within the Data Manager (if ones do not already exist) to connect into this 
account.  Note, if you have created a dedicated account for your EMR you can turn 
software application dll:VB.NET PDF Text Extract Library: extract text content from PDF
Extract highlighted text out of PDF document. Image text extraction control provides text extraction from PDF images and image files.
software application dll:C# PDF Text Extract Library: extract text content from PDF file in
Image text extraction control provides text extraction from PDF images and image files. Enable extracting PDF text to another PDF file, TXT and SVG formats.
mv.NET Solution Objects Developer Guide  - Overview 
Page 8 
'File schema caching' on within the account profile ('Other' tab) in order to improve 
performance of the entity definition aspects of the Data Manager. 
Once you have your server and account profiles in place, you then need to create a 
Login profile within the Data Manager to reference this server/account profile 
pairing.  Again, please refer to the Core Objects Developer Guide for an in-depth 
explanation of this process. 
Next, you need to use the Data Manager's Server Console window to create the 
EMR files and schema details.  You will have already used the Server Console 
window to enable the EMR account - this time, once you are at command level 
within the EMR account within the Server Console window, you need to select the 
"Download Entity Models Repository" option from its top "Action" menu. 
This option takes about 2 or 3 minutes to complete.  When it is finished, 12 files 
will have been created within your database account all with a name starting with 
"SO_".  The dictionary items for these files will also have been downloaded. 
The final step in this phase is to tell the Data Manager which login profile it is to 
use to access the EMR.  This is defined by right-clicking the "Entity Models" node 
at the bottom of the Data Manager's treeview area and selecting the "Set Entity 
Models Repository Location" option from the resulting popup context menu.  The 
resulting dialog window then allows you to select the relevant login profile name. 
Once these steps have been performed, you will be ready to start creating entity 
model definitions. 
Creating a New Entity Model 
The first thing that you need to do after establishing the EMR is to create the first 
entity model.  You can do this by right-clicking the "Entity Models" node within the 
Data Manager's treeview area and selecting the "Set Entity Models Repository 
Location" option from the resulting popup context menu.  Please refer to the 
Maintaining Entity Model Definitions chapter for more details on this process. 
Generating Initial Entity Definitions 
After creating your first entity model entry, you will need to start creating entity 
definitions.  This can be done one at a time manually or it can be done using the 
entity definition generator.  The generator scans the schema of the database files 
software application dll:C# Create PDF from images Library to convert Jpeg, png images to
If you want to turn PDF file into image file format in C# application, then RasterEdge XDoc.PDF for .NET can also help with this.
software application dll:C# PDF insert text Library: insert text into PDF content in
|. Home ›› XDoc.PDF ›› C# PDF: Insert Text to PDF. Powerful .NET PDF edit control allows modify existing scanned PDF text.
mv.NET Solution Objects Developer Guide  - Overview 
Page 9 
that you specify and infers from this information the entities (and properties 
within these entities) that should be created.  Please refer to the Creating Entity 
Definitions chapter for more details on this topic. 
Extending Entity Definitions 
Once the initial details of an entity have been created either manually or via the 
entity generator, you will need to spend some time fine tuning and extending 
these details.  You will first need to make sure that the Data Access Class (DAC) 
definition contains all of the required member details (properties, selection 
methods and subroutine methods).  Then you can start creating one or more 
Business Access Class (BAC) definitions as required by the end-application 
developers.  Finally, you will need to create one or more Business Access Layers 
(BAL) to gather together the required BACs into a single access layer.  Please refer 
to the Maintaining Data Access Class DefinitionsMaintaining Business Access 
Class Definitions and Maintaining Business Access Layer Definitions chapters for 
more information on these topics. 
Generating DAL and BAL Code 
One you have created the definitions of your DACs, BACs and BALs you are ready 
to generate some code.  Please refer to the Generating Code Modules chapter for 
details on how you can do this. 
Using Generated Code 
All of the previous actions are performed using mv.NET's Data Manager utility.  
The next step involves firing up Visual Studio and creating a new Class Library 
project to host your generated code.  Please refer to the Using Generated Code 
chapter for details on how to do this. 
mv.NET Solution Objects Developer Guide  - Overview 
Page 10 
Referencing and Using Your Business Access 
Finally, in order to utilize the fruits of all your hard labors, within your end 
application project you simply need to reference the BAL assembly that you have 
produced using Visual Studio in the previous step.  Please refer to the Utilizing a 
Business Access Layer chapter for further details on this topic. 
Sample Projects 
Some sample projects illustrating the use of a generated BAL are installed as part 
of the CID installation.  These samples can be found in the following folder: 
C:\Documents and Settings\All Users\Application 
Data\BlueFinity\mv.NET\Version4.0\Examples\Solution Objects 
Note, on Vista/Server 2008 systems C:\Documents and Settings\All 
Users\Application Data is represented as C:\ProgramData 
mv.NET Solution Objects Developer Guide  - Maintaining Entity Model Definitions 
Page 11 
Maintaining Entity 
Model Definitions 
This chapter describes how you are able to create and maintain entity model definitions. 
An entity model definition contains everything that Solution Objects requires in 
order to generate the code to support a class-based representation of an 
application's data domain. 
As such, it contains a range of detailed information.  This information and the 
creation and maintenance of such information are described in the following 
chapters of this guide.  However, there are a number of pieces of information that 
describe the very top-level characteristics of an entity model and it is this 
information that you associate directly with the entity name itself. 
The Entity Models Node 
The second to last main treeview node within the Data Manager contains all of the 
entity modeling functionality.  When expanded, this node will contain either a list 
of entity model repository locations or the entity models within a single repository. 
By default, only a single entity model repository at a time is displayed within the 
Data Manager.  This can be changed to allow multiple repositories to be accessible 
at the same time by selecting the "Use Multiple Repository Locations" option from 
mv.NET Solution Objects Developer Guide  - Maintaining Entity Model Definitions 
Page 12 
the right-click menu of the "Entity Models" node.  On selecting this option, the 
node caption changes to "Entity Model Repositories" and the content of the right-
click menu changes to reflect the shift in functionality.  To return back to a single 
repository at a time behavior select the "Use a Single Repository Location" menu 
When the multiple repository location option is active you may create many 
"location entries" within the "Entity Model Repositories" node.  Each location entry 
is simply a logical name associated with a login profile name – the login profile 
name being the one that connects into the relevant EMR. 
Creating an Entity Model Definition 
You can create a new entity model definition by right-clicking the "Entity Models" 
node within the Data Manager's treeview area and selecting the "Create New Entity 
Model" option from the resulting popup context menu.  If the multiple repository 
locations option is active the "Create New Entity Model" option is available from 
the right-click context menu of each repository location node.  On selecting the 
create option, the following dialog window is displayed: 
mv.NET Solution Objects Developer Guide  - Maintaining Entity Model Definitions 
Page 13 
The above window allows you to enter the initial pieces of information about this 
entity model.  The sections below describe each input field/area. 
Model name:  The name of the model which will be used as the entry within the 
Data Manager's treeview area and also within program code.  It therefore only 
allows certain characters to be used in the name. 
Description:  A description of the entity model's purpose or content. 
Root namespace:  The namespace to be used within all generated code.  All 
namespaces typically start with the relevant owning organization's name, followed 
by an indication of the purpose of the namespace area.  For example: 
If you are unsure, please refer to .NET programming documentation for an 
explanation of the purpose and format of namespaces. 
DAL namespace suffix:  The characters to be appended to the end of the root 
namespace in order to identify/group together the classes comprising the DAL. 
First version details:  The next section of the input window then allows you to 
enter a name and description for the first version of the entity model which will be 
created as an implicit part of the creation of this new entity model. 
Datasources:  The final section of the input window allows you to enter the details 
of the place where application data is to be found.  The current version of Solution 
Objects only supports a single datasource, which must be a MultiValue database.  
Therefore, this screen allows you to amend 2 pieces of datasource information: 
Datasource name:  The name/identifier of the datasource to be used in program 
Datasource connection string:  The connection string to be used by the Data 
Manager to connect into the datasource.  The connection string must be of the 
Server={login profile} 
Where {login profile} represents the name of a login profile defined within the 
Data Manager. 
Clicking the Accept button will store the initial definition details for the new entity 
model and the first version within the EMR. 
Documents you may be interested
Documents you may be interested