Skyline.DataMiner.CICD.DMApp.Automation 2.0.6

Prefix Reserved
dotnet add package Skyline.DataMiner.CICD.DMApp.Automation --version 2.0.6                
NuGet\Install-Package Skyline.DataMiner.CICD.DMApp.Automation -Version 2.0.6                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Skyline.DataMiner.CICD.DMApp.Automation" Version="2.0.6" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Skyline.DataMiner.CICD.DMApp.Automation --version 2.0.6                
#r "nuget: Skyline.DataMiner.CICD.DMApp.Automation, 2.0.6"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Skyline.DataMiner.CICD.DMApp.Automation as a Cake Addin
#addin nuget:?package=Skyline.DataMiner.CICD.DMApp.Automation&version=2.0.6

// Install Skyline.DataMiner.CICD.DMApp.Automation as a Cake Tool
#tool nuget:?package=Skyline.DataMiner.CICD.DMApp.Automation&version=2.0.6                

Skyline.DataMiner.CICD.Packages

About

About Skyline.DataMiner.CICD.Packages packages

Skyline.DataMiner.CICD.Packages packages are NuGet packages available in the public nuget store that contain assemblies that enhance the CICD experience.

The following packages are available:

  • Skyline.DataMiner.CICD.DMApp.Automation
  • Skyline.DataMiner.CICD.DMApp.Common
  • Skyline.DataMiner.CICD.DMApp.Dashboard
  • Skyline.DataMiner.CICD.DMApp.Visio
  • Skyline.DataMiner.CICD.DMProtocol

Depending on the chosen NuGet, these libraries will provide the ability to easily convert from a DIS-provided Visual Studio Solution of your chosen type into either a .dmapp or .dmprotocol file. These files can then be installed on a DataMiner system.

About DataMiner

DataMiner is a transformational platform that provides vendor-independent control and monitoring of devices and services. Out of the box and by design, it addresses key challenges such as security, complexity, multi-cloud, and much more. It has a pronounced open architecture and powerful capabilities enabling users to evolve easily and continuously.

The foundation of DataMiner is its powerful and versatile data acquisition and control layer. With DataMiner, there are no restrictions to what data users can access. Data sources may reside on premises, in the cloud, or in a hybrid setup.

A unique catalog of 7000+ connectors already exist. In addition, you can leverage DataMiner Development Packages to build you own connectors (also known as "protocols" or "drivers").

Note See also: About DataMiner

About Skyline Communications

At Skyline Communications, we deal in world-class solutions that are deployed by leading companies around the globe. Check out our proven track record and see how we make our customers' lives easier by empowering them to take their operations to the next level.

Getting Started

The code is loosely based on the Builder design pattern. You can create a builder object using one of the provided static Factory classes:

var builder = await ProtocolPackageCreator.Factory.FromRepositoryAsync(logCollector, repositoryPath);
var builder = AppPackageCreatorForVisio.Factory.FromRepository(logCollector, repositoryPath, packageName, packageVersion);
var builder = AppPackageCreatorForDashboard.Factory.FromRepository(logCollector, repositoryPath, packageName, packageVersion);
var builder = AppPackageCreatorForAutomation.Factory.FromRepository(logCollector, repositoryPath, packageName, packageVersion);

In most cases you don't need to add or configure additional things to the builders, they will contain all necessary information. To actually create the .dmapp or .dmprotocol on your system you can call:

await builder.CreateAsync(destinationFolder, packageFileName);

There is also an option to create the package in memory and return the byte array.

byte[] package = builder.CreateAsync():

And lastly there is also an option to return an IAppPackage object that represents the package, allowing validation of all assemblies, scripts, ... before creating the .dmapp file.

var package = await creator.BuildPackageAsync();
package.CreatePackage(destinationFilePath);

Complete Example:

ILogCollector logCollector = new LogCollector();
string repositoryPath = @"C:\GITHUB\SLC-AS-EmpowerDemo1Room0";
string packageName = "EmpowerDemo1Room0";
var packageVersion = DMAppVersion.FromProtocolVersion("1.0.0.1");
string destinationFolder = @"C:\MyPackages\"
string packageFileName = "EmpowerDemo1Room0.dmapp";

var builder = AppPackageCreatorForAutomation.Factory.FromRepository(logCollector, repositoryPath, packageName, packageVersion);
await builder.CreateAsync(destinationFolder, packageFileName);

Advanced Usage

You can also use these libraries, combined with the Skyline.DataMiner.Core.AppPackageCreator NuGet to create advanced packages containing multiple scripts, connectors, visio's, dashboards or other files.

Start by creating a new AppPackageBuilder

var appPackageBuilder = new AppPackage.AppPackageBuilder(PackageName, PackageVersion.ToString(), GlobalDefaults.MinimumSupportDataMinerVersionForDMApp);

You can now create one or more of the builders as shown in Getting Started(### Getting Started)

Those builders can then be asked to add their contents to your appPackageBuilder like so:

builder.AddItemsAsync(appPackageBuilder);

You can also add other things to the appPackageBuilder itself at this point. Like additional files or other artifacts.

Once you've added all items from the individual builders to the appPackageBuilder you can create an object representing your complete package. This allows for final validation if needed.

var appPackage = appPackageBuilder.Build();

You can now create the .dmapp file.

package.CreatePackage(destinationFilePath);

Complete Example:

string packageName = "EmpowerDemoRoom0";
string destinationFilePath = @"C:\MyPackages\EmpowerDemoRoom0.dmapp";
var packageVersion = DMAppVersion.FromProtocolVersion("1.0.0.1");
ILogCollector logCollector = new LogCollector();

string repositoryPath1 = @"C:\GITHUB\SLC-AS-EmpowerDemo1Room0";
string childPackageName1 = "EmpowerDemo1Room0.dmapp";
string repositoryPath2 = @"C:\GITHUB\SLC-AS-EmpowerDemo2Room0";
string childPackageName2 = "EmpowerDemo2Room0.dmapp";

var appPackageBuilder = new AppPackage.AppPackageBuilder(packageName, packageVersion.ToString(), GlobalDefaults.MinimumSupportDataMinerVersionForDMApp);
var builder1 = AppPackageCreatorForAutomation.Factory.FromRepository(logCollector, repositoryPath1, childPackageName1, packageVersion);
var builder2 = AppPackageCreatorForAutomation.Factory.FromRepository(logCollector, repositoryPath2, childPackageName2, packageVersion);
builder1.AddItemsAsync(appPackageBuilder);
builder2.AddItemsAsync(appPackageBuilder);

var appPackage = appPackageBuilder.Build();
package.CreatePackage(destinationFilePath);
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.6 76 11/15/2024
2.0.5 63 11/14/2024
2.0.4 63 11/14/2024
2.0.3 379 9/3/2024
2.0.2 97 8/26/2024
2.0.1 116 8/19/2024
2.0.1-alpha2 105 8/19/2024
2.0.1-Alpha1 85 8/19/2024
1.1.7 351 4/5/2024
1.1.6 196 3/15/2024
1.1.5 192 3/13/2024
1.1.4 461 2/9/2024
1.1.3 372 2/5/2024
1.1.2 426 1/22/2024
1.1.1 437 1/17/2024
1.1.0 570 12/22/2023
1.0.10 552 12/13/2023
1.0.9 569 11/30/2023
1.0.8 586 11/29/2023
1.0.7 624 11/27/2023
1.0.6 590 11/20/2023
1.0.5 573 11/15/2023
1.0.4 603 10/31/2023
1.0.3 589 10/24/2023
1.0.2.4 582 10/20/2023
1.0.2.3 590 10/18/2023
1.0.2.2 732 10/5/2023
1.0.2.1 606 9/26/2023
1.0.1.10 785 9/13/2023
1.0.1.9 742 8/1/2023
1.0.1.8 629 7/31/2023
1.0.1.7 627 7/31/2023
1.0.1.6 648 7/28/2023
1.0.1.5 648 7/28/2023
1.0.1.4 620 7/14/2023
1.0.1.2 639 7/4/2023
1.0.1.1 694 7/3/2023
1.0.0.20 660 6/26/2023
1.0.0.19 678 6/21/2023
1.0.0.18 771 6/6/2023
1.0.0.17 718 4/27/2023
1.0.0.16 693 4/25/2023
1.0.0.15 718 4/24/2023
1.0.0.14 659 4/6/2023
1.0.0.13 684 4/5/2023
1.0.0.12 732 4/4/2023
1.0.0.11 777 3/17/2023
1.0.0.10 710 3/13/2023
1.0.0.9 772 2/10/2023
1.0.0.8 864 2/8/2023
1.0.0.7 756 2/8/2023
1.0.0.6 733 2/6/2023
1.0.0.5 771 2/1/2023
1.0.0.4 808 1/4/2023
1.0.0.3 791 12/19/2022
1.0.0.2 811 12/14/2022
1.0.0.1 890 12/8/2022