Jump to content

QESTNET Internal:QESTNET Projects Quick Reference Guide casino: Difference between revisions

From QESTonline
Shane.rowley (talk | contribs)
No edit summary
Shane.rowley (talk | contribs)
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
<font color="blue" size="2">blue</font> represents a new project or the project has been repurposed.
<font color="blue" size="2">blue</font> represents a new project or the project has been repurposed.
===Projects===
===Projects===
====Lumpsucker====
<font color="blue" size="2">Available in 4.6 and onwards.</font>
Lumpsucker is the codename for a bunch of libraries which provide design tools for mapping QEST data into PDF and Excel documents, and the supporting libraries to import and export data to/from those files.
=====Lumpsucker.Core=====
Logging and schema.
=====Lumpsucker.Core.Contracts=====
Defined external facing interfaces; namely the exchange between the form and the pdf, and the form and qest entities.
=====Lumpsucker.Core.Repository=====
The Forms project provides classes which support the following concepts:
* templates: an exchange source which has mappings within it such that it can act as an IExchangeSource,
  but which doesn't actually contain data.
* forms: instances of templates i.e. which have had specific data merged into them, and likely pertain
  to a specific user, project, client etc.
Both templates and forms are assumed to have some streamable form, i.e. can be represented by a file
on disk or in memory.
This project provides some repository classes which allow basic management of templates and forms
through a common interface. There are also some cache classes (yet to be implemented) which will
probably be necessary to avoid heavy blob traffic to/from the database.
It will also be important to implement repositories / caches which can work across process boundaries
(and eventually, network boundaries), as forms will need to be accessed via both QESTField and QESTNET.
=====Lumpsucker.Design=====
Shares similarities to User Document mapping. Formwork for the design schema.
=====Lumpsucker.Design.OutlookBar=====
This code originated from http://www.codeproject.com/Articles/17586/Rich-OutlookBar-in-XP-and-Vista-style so any credit is due there. That code is licensed under the Code Project Open License (CPOL) as outlined at http://www.codeproject.com/info/cpol10.aspx. My interpretation of the license is that we are free to modify and commercially use the code freely.
=====Lumpsucker.Design.Pdf=====
Known incompatibilities between the FieldsControl here vs the Design.Excel control
1) The Design.Pdf control expects the icon binary in the XSD to be in PNG format, the Design.Excel control expects Icon format (or maybe bitmap?)
2) Different properties available in property grid control
=====Lumpsucker.QestEntity=====
Connects the form to qest entities
=====Lumpsucker.Pdf=====
Connects the form to the pdf
=====Lumpsucker.Tests=====
Unit tests for lumpsucker
=====PdfiumViewer=====
This is a submodule of the pdfiumviewer.qn repository. 3rd party library.
====QESTNET.Service====
====QESTNET.Service====
=====QEST.Core=====
=====QEST.Core=====
Line 34: Line 75:
=====QESTLab.Data=====
=====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.
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.
<font color="blue" size="2">Former project QESTLab.Data.Rules was consolidated into QESTLab.Data</font>
 
=====QESTLab.Entities=====
=====QESTLab.Entities=====
Data objects which better match what we would like the data in the database to resemble.
Data objects which better match what we would like the data in the database to resemble.
Line 88: Line 130:
*Scripts - A bunch of javascript which in general is used anytime QESTField does something cool.
*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.
*Views - Bits of html which are added together to create web pages. Majority of it has one to one mappings with QESTLab.Models.
=====QESTField.Common=====
<font color="blue" size="2">Contains components from QESTField project which are shared with other custom view projects.</font>
=====QESTField.DynamicForms=====
=====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.
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.

Latest revision as of 22:59, 16 October 2017

blue represents a new project or the project has been repurposed.

Projects

Lumpsucker

Available in 4.6 and onwards.

Lumpsucker is the codename for a bunch of libraries which provide design tools for mapping QEST data into PDF and Excel documents, and the supporting libraries to import and export data to/from those files.

Lumpsucker.Core

Logging and schema.

Lumpsucker.Core.Contracts

Defined external facing interfaces; namely the exchange between the form and the pdf, and the form and qest entities.

Lumpsucker.Core.Repository

The Forms project provides classes which support the following concepts:

* templates: an exchange source which has mappings within it such that it can act as an IExchangeSource,
  but which doesn't actually contain data.
* forms: instances of templates i.e. which have had specific data merged into them, and likely pertain
  to a specific user, project, client etc.

Both templates and forms are assumed to have some streamable form, i.e. can be represented by a file on disk or in memory.

This project provides some repository classes which allow basic management of templates and forms through a common interface. There are also some cache classes (yet to be implemented) which will probably be necessary to avoid heavy blob traffic to/from the database.

It will also be important to implement repositories / caches which can work across process boundaries (and eventually, network boundaries), as forms will need to be accessed via both QESTField and QESTNET.

Lumpsucker.Design

Shares similarities to User Document mapping. Formwork for the design schema.

Lumpsucker.Design.OutlookBar

This code originated from http://www.codeproject.com/Articles/17586/Rich-OutlookBar-in-XP-and-Vista-style so any credit is due there. That code is licensed under the Code Project Open License (CPOL) as outlined at http://www.codeproject.com/info/cpol10.aspx. My interpretation of the license is that we are free to modify and commercially use the code freely.

Lumpsucker.Design.Pdf

Known incompatibilities between the FieldsControl here vs the Design.Excel control 1) The Design.Pdf control expects the icon binary in the XSD to be in PNG format, the Design.Excel control expects Icon format (or maybe bitmap?) 2) Different properties available in property grid control

Lumpsucker.QestEntity

Connects the form to qest entities

Lumpsucker.Pdf

Connects the form to the pdf

Lumpsucker.Tests

Unit tests for lumpsucker

PdfiumViewer

This is a submodule of the pdfiumviewer.qn repository. 3rd party library.

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).

QEST.QMapper

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

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.Contracts

Contains the interfaces and data contracts required by any QESTNET client.

QESTNET.Core

Contains a small number of interfaces common to both the internal Engine and external Contracts.

QESTNET.Engine

Contains the internal management of QESTNET users, sessions and clients.

QESTNET.Sessions

Retains only the specific base implementations of components which QESTNET sessions types (Lab, Integration etc.) can use. The LabSession, IntegrationSession and DataBackboneSession all extend this class.


QESTNET.Sessions.Lab

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.Containers.Standard

Please add details

QESTLab.Contracts

Contains all the core interfaces and DataContract classes that a client connecting to QESTNET and using the Lab session needs. Referencing this DLL replaces the Service Reference in clients such as QESTField. The contents of QESTLab.Contracts have been collected moved there from QESTLab.Containers, QESTLab.Sessions.Lab.

QESTLab.Contracts.Models

QESTLab.Models was renamed to QESTLab.Contracts.Models and becomes the other core contract assembly which QESTNET Lab session clients need to reference.

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.

Former project QESTLab.Data.Rules was consolidated into QESTLab.Data

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.Publish

Please add details

QESTLab.Reports.Composition

Please add details

QESTLab.Reports.Layout

Please add details

QESTLab.Reports.Sources

Please add details

QESTLab.Reports.Sources.Builders

Please add details

QESTLab.Models

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

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.

  • 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.Common

Contains components from QESTField project which are shared with other custom view projects.

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.