QESTNET Internal:QESTNET Projects Quick Reference Guide casino: Difference between revisions
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. | ||
== | |||
<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.