PDS WITSMLstudio Store and WITSMLstudio Desktop are written in C# using Visual Studio and .NET Framework 4.5.2. Currently the target platform is Windows 7 or higher.
PDS WITSMLstudio Store runs on IIS using MongoDB as the data store by default.
Prerequisites
Configure IIS
The following software and tools are required for running PDS WITSMLstudio Store.
Prerequisites
Visual Studio 2015
Be sure to run Visual Studio as Administrator to ensure adequate rights to generate the Witsml.Web virtual directory in IIS.
.NET Framework 3.5 and 4.5
Select all options for these two Windows features.
PDS WITSMLstudio Store and WITSMLstudio Desktop utilize the core WITSML libraries.
The "PDS.WITSMLstudio" solution provides reusable components referenced by all PDS WITSMLstudio applications containing the following projects:
Core
Contains common classes related to WITSML and are referenced by other projects, including but not limiting to the following:
ChannelDataReader - facilitates parsing and reading of log channel data
DataObjectNavigator - a framework for navigating a WITSML document
WitsmlParser - static helper methods to parse WITSML XML strings
Extension methods - commonly used methods for WITSML classes
Core.UnitTest
Contains unit tests for PDS WITSMLstudio.
Framework
Provides the composition container used to resolve dependencies.
Framework.Web
Configures the composition container to resolve dependencies for web projects and provides security.
Store.Core
Hosts WITSML store service implementation, including service interfaces and high level data provider implementation, including:
WitsmlDataAdapter - encapsulates basic CRUD functionality for WITSML data objects
WitsmlDataProvider - implements support for WITSML API functions
WitsmlQueryParser - handles parsing of WITSML input in a request
EtpDataProvider - implements support for ETP API functions
Store.IntegrationTest
Contains integration tests for PDS WITSMLstudio Store.
Store.Jobs
Implements scheduled and recurring jobs for PDS WITSMLstudio Store.
Store.Web
Implements configuration and security for WITSML and ETP endpoints.
Architecture - PDS WITSMLstudio Store
The “PDS.WITSMLstudio.Store” solution builds PDS WITSMLstudio Store with MongoDB for data storage and configures Witsml.Web as an IIS web application. It contains the following projects:
Store
Configures and hosts PDS WITSMLstudio Store on IIS.
Store.MongoDb
Contains the WitsmlDataAdapter implementation for MongoDB.
Store.MongoDb.IntegrationTest
Integration tests for Store.MongoDb.
Architecture - PDS WITSMLstudio Desktop
The “PDS.WITSMLstudio.Desktop” solution builds PDS WITSMLstudio Desktop, a Windows desktop application written in C# and WPF using plug-in technology that can connect to any WITSML server via SOAP or ETP.
It contains the following projects:
Desktop
Provides the main application user interface for PDS WITSMLstudio Desktop.
Desktop.Core
A collection of reusable components and plug-in framework.
Desktop.IntegrationTest
Contains integration tests for the WITSML Browser plug-in and core functionality.
Desktop.Plugins.DataReplay
Data Producer plug-in that simulates streaming data in and out of a WITSML server.
Desktop.Plugins.EtpBrowser
ETP Browser plug-in to communicate with a WITSML server via ETP protocol.
Desktop.Plugins.ObjectInspector
Object Inspector plug-in that displays WITSML data objects with corresponding Energistics schema information.
Desktop.Plugins.WitsmlBrowser
WITSML Browser plug-in to communicate with a WITSML server via SOAP.
Desktop.UnitTest
Unit tests for the WITSML Browser and core functionality.
This section provides an example of how to set up the Visual Studio development environment to debug PDS WITSMLstudio Store.
Start PDS WITSMLstudio Desktop, or another WITSML client of your choice, and establish a connection to PDS WITSMLstudio Store.
In Visual Studio, open the PDS.WITSMLstudio.Store solution and attach to the IIS worker process by selecting Debug > Attach to Process.
In the Attach to Process dialog, search for the process w3wp.exe and attach to it.
Open the WitsmlStore class under the Store.Core project within the PDS.WITSMLstudio submodule. Put a break point on the first line of the method WMLS_GetFromStore.
In PDS WITSMLstudio Desktop, issue a GetFromStore query as described in the User Guide for PDS WITSMLstudio Desktop.
In the PDS.WITSMLstudio.Store solution, the process will stop at the break point in the WMLS_GetFromStore method.
There are unit and integration test projects in the PDS.WITSMLstudio.Desktop and PDS.WITSMLstudio.Store solutions. The folder and class layout of the test projects mirrors the layout of the project and class that is being tested.
Integration tests for WITSML data objects in most cases are further subdivided by data object type (Well, Wellbore, etc.), WITSML version (1.3.1.1, 1.4.1.1, etc.) and WITSML function type (AddToStore, GetFromStore, etc.).
Unit Tests
PDS.WITSMLstudio
Core.UnitTest - tests included for data generation, data readers and extension classes
Desktop
Desktop.UnitTest - tests for the plug-in and MVVM architectures
Integration Tests
PDS.WITSMLstudio
Store.IntegrationTest - data adapter and validator tests by data object type, WITSML version and WITSML function type
Store
Store.MongoDb.IntegrationTest - MongoDB data adapter tests by data object type, WITSML version and WITSML function type
Desktop
Desktop.IntegrationTest - tests for plug-in view model testing
We use strictly necessary cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.