Jump to content

QESTNET Internal:QESTNET Projects Quick Reference Guide

From QESTonline
Revision as of 05:42, 13 July 2015 by Benny.thomas (talk | contribs)
(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)

Projects

QESTNET.Service

QEST.Core

General helper and extension classes for .NET, that are not specific to QESTLab functionality.

QEST.Core.Units

Defines all the units. If you need a unit which does not exist this is where you add it (e.g., you may need to add Becquerel for radioactivity).

QESTNET

The QESTNET service. The app.config file in this project is where the majority of configuration properties are set. If you need to edit any configuration for qestnet it is probably in here. Also this project has pre/post build events to stop/start the qestnet service which can be handy.

QESTNET.Configuration

Defines app.config configuration properties.

QESTNET.Sessions

The base session service code. The LabSession, IntegrationSession and DataBackboneSession all extend this class.


QESTNET.Sessions.Lab

QEST.QMapper

A mapping engine, customised predominantly to be used to map QESTLab.Data to QESTLab.Entities.

QESTLab.Containers

Containers hold data and processes hold actions. These are the predominant form of communication between the LabSession and the QESTField web server.

QESTLab.Core

General helper and extension classes that are specific to qestlab functionality.

QESTLab.Data

Entity Framework (EF) implementation for the QESTLab database. EF is an object-relational mapper (ORM). It loads and saves data to and from the QESTLab database.

QESTLab.Data.Rules

Low level QESTLab rules run on the data before it is loaded/saved from/to the database. Things like counters, status flags, defaults, audit trails.

QESTLab.Entities

Data objects which better match what we would like the data in the database to resemble.

QESTLab.Entities.Rules

The "Business Rules" to run on entities. Mostly these rules are related to specific test entities and include all the calculations for the given test. The rules are run often and should be designed with performance in mind.

QESTLab.Models

Serializable data objects which represent data to be sent to a client (e.g., QESTField).

QESTLab.Models.Rules

The "Business Rules" to run on models. This has been removed in 4.1 as it is more appropriate that this logic is avoided or handled by the mapping between entities and models.

QESTLab.Repository

An ORM of QESTLab.Entities which allows loading and saving to the QESTLab database using QESTLab.Entities objects. Includes the mapping of QESTLab.Data and QESTLab.Entities. The QestEntityContext class in this project is how all higher level projects such as Entities.Rules and Workflow access the database. It is the equivalent of the QLO.Connection in QESTLab.

QESTLab.Workflow

The presentation layer to be sent to a client (e.g., QESTField). This includes everything related to creating workflows, containers, processes and mapping models and entities.

QESTNET.Sessions.Lab

The lab session service contract and implementation.

QESTNET.Tester

A simple console application which you can use to call any other parts of QESTNET for testing purposes. Can be run by selecting “Set as StartUp project” and then pressing Start Debugging (F5).


QESTNET.Sessions.Integration

QESTNET.Integration

Base code for standard integrators which access the QESTLab database.

QESTNET.Integration.Console

A windows application (GUI) for configuring and running integrators for the IntegrationSession. Can be run by selecting “Set as StartUp project” and then pressing Start Debugging (F5).

QESTNET.Sessions.Integration

The integration session service contract and implementation.


QESTNET.Integration.Portal

QESTNET.Integration.Portal

Import/Export integrators for Hive. These can be called using the IntegrationSession. They are currently used only for the Fugro system and are called by Hive, QESTLab and the QESTNET LabSession.


QESTNET.Custom

QESTNET.Custom.*

Customer specific extensions. Mostly integrations to specific configurations of third party software.

QESTNET.Custom.Fugro.DataBackbone

The databackbone session service contract. Used for the integration of Hive, QESTLab and QESTNET with Fugro’s databackbone product.


QESTField

QESTField

A website client for the QESTNET LabSession service.

  • Service References - A service reference of the QESTNET LabSession.
  • Content - The css and any images for the website.
  • Controllers - Determines what happens for any given action on a page
  • Helpers - Functions used throughout the rest of the code.
  • Models - Any extra models. The majority of models used are QESTLab.Models accessed via the service reference.
  • Scripts - A bunch of javascript which in general is used anytime QESTField does something cool.
  • Views - Bits of html which are added together to create web pages. Majority of it has one to one mappings with QESTLab.Models.
QESTField.DynamicForms

A swathe of code used to dynamically create html for the DisplayElementView model. This model is generated from Kitsune data. In general QESTField is moving away from this dynamically created html to the specific html found in the Views folder for individual QESTLab.Models.