diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bad5d1..98f43dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,28 @@ # Changelog +## v0.3.0.0 + +### Project +* Upgraded project from .NET Framework to **.NET 10** (`net10.0-windows`), Windows-only +* Converted the project file to SDK-style (`Microsoft.NET.Sdk`) +* Replaced `packages.config` with `PackageReference` items + +### Program +* Replaced the obsolete `ServicePointManager` SSL trust with an `HttpClientHandler.ServerCertificateCustomValidationCallback` applied per client +* Updated the About dialog links to open with `UseShellExecute` + +### Dependencies +* Updated InfluxData.Net to 8.0.1 +* Replaced `jacobslusser.ScintillaNET` with `Scintilla5.NET` 7.0.0 +* Updated log4net to 3.3.2 +* Updated Newtonsoft.Json to 13.0.4 +* Added System.Configuration.ConfigurationManager 10.0.11 + +### Configuration +* Removed the legacy ``/`` sections from `App.config` + + ## v0.2.2 ### Program diff --git a/LICENSE b/LICENSE index 43b12a8..73420ba 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2016 CymaticLabs +Copyright (c) 2026 CymaticLabs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index f00cb42..68c6451 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,10 @@ and [Robomongo](https://robomongo.org/). Under the hood it's powered by [InfluxD which is a portable InfluxDB client library for .NET (plus some [Kapacitor](https://www.influxdata.com/time-series-platform/kapacitor/) support). InfluxDB Studio presently implements interfaces and workflows for most of the InfluxData.Net API. +**Current build:** version **0.3.0** — upgraded to target **.NET 10** (`net10.0-windows`). + +> **v0.3.0.0** — This release upgrades InfluxDB Studio from .NET Framework to **.NET 10** (`net10.0-windows`): SDK-style project, `PackageReference` dependencies, Scintilla5.NET, and per-client SSL handling. See [CHANGELOG.md](CHANGELOG.md) for the full list of changes. + The following are planned features that are not yet implemented in the current version: * _~~Retention Policy management~~ implemented, but not documented_ @@ -80,9 +84,29 @@ The following are planned features that are not yet implemented in the current v Binary releases can be found [here](https://github.com/mr-manuel/InfluxDBStudio/releases). -You can build locally by downloading the source or cloning the repository. Eventually some binary releases might be included with the repository going forward. To build, you will need [Visual Studio](https://visualstudio.microsoft.com/downloads/) (2015, 2017, 2019 or 2022). Building with Mono might be possible with additional steps but it's not clear how usable it will be. +You can build locally by downloading the source or cloning the repository. To build, you will need the [.NET 10 SDK](https://dotnet.microsoft.com/download) and [Visual Studio 2022 or newer](https://visualstudio.microsoft.com/downloads/) with the "Desktop development with .NET" workload (the Windows Forms designer). This is a Windows-only application because it targets `net10.0-windows` with Windows Forms, so Windows is the required platform to build and run. + +### Build from source + +From a command prompt at the repository root: + +```powershell +dotnet build CymaticLabs.InfluxDB.sln -c Debug +``` + +Or open the solution file `CymaticLabs.InfluxDB.sln` in Visual Studio and press F5 to build and run. + +### Run + +After building, launch the compiled executable: + +``` +src\CymaticLabs.InfluxDB.Studio\bin\Debug\net10.0-windows\InfluxDBStudio.exe +``` + +The app opens to the **Manage Connections** dialog, where you can create an InfluxDB server connection (host, port, database, credentials, and SSL options) and connect. -Open the solution file `CymaticLabs.InfluxDB.sln` to get started. +> **Note:** InfluxDB Studio is Windows-only. `App.config` is copied to `InfluxDBStudio.dll.config` next to the executable, so keep them together. Saved connections are stored in `user.config` under `%LocalAppData%`. ## Managing Connections @@ -439,4 +463,4 @@ To import application settings, including all configured InfluxDB server connect ## License -Code and documentation are available according to the *MIT* License (see [LICENSE](https://github.com/CymaticLabs/InfluxDBStudio/blob/master/LICENSE)). +Code and documentation are available according to the *MIT* License (see [LICENSE](https://github.com/mr-manuel/InfluxDBStudio/blob/master/LICENSE)). diff --git a/src/CymaticLabs.InfluxDB.Studio/App.config b/src/CymaticLabs.InfluxDB.Studio/App.config index 1e1c9c0..0341446 100644 --- a/src/CymaticLabs.InfluxDB.Studio/App.config +++ b/src/CymaticLabs.InfluxDB.Studio/App.config @@ -1,26 +1,11 @@ - -
+ +
- - - - - - - - - - - - - - - diff --git a/src/CymaticLabs.InfluxDB.Studio/Controls/ContinuousQueryControl.Designer.cs b/src/CymaticLabs.InfluxDB.Studio/Controls/ContinuousQueryControl.Designer.cs index e1327b3..03f3bfd 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Controls/ContinuousQueryControl.Designer.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Controls/ContinuousQueryControl.Designer.cs @@ -171,7 +171,7 @@ private void InitializeComponent() // queryEditor // this.queryEditor.Dock = System.Windows.Forms.DockStyle.Fill; - this.queryEditor.Lexer = ScintillaNET.Lexer.Sql; + this.queryEditor.LexerName = "sql"; this.queryEditor.Location = new System.Drawing.Point(0, 0); this.queryEditor.Name = "queryEditor"; this.queryEditor.Size = new System.Drawing.Size(776, 271); diff --git a/src/CymaticLabs.InfluxDB.Studio/Controls/QueryControl.Designer.cs b/src/CymaticLabs.InfluxDB.Studio/Controls/QueryControl.Designer.cs index d2c7996..0a5cbd6 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Controls/QueryControl.Designer.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Controls/QueryControl.Designer.cs @@ -62,7 +62,7 @@ private void InitializeComponent() // queryEditor // this.queryEditor.Dock = System.Windows.Forms.DockStyle.Fill; - this.queryEditor.Lexer = ScintillaNET.Lexer.Sql; + this.queryEditor.LexerName = "sql"; this.queryEditor.Location = new System.Drawing.Point(0, 0); this.queryEditor.Name = "queryEditor"; this.queryEditor.Size = new System.Drawing.Size(916, 128); diff --git a/src/CymaticLabs.InfluxDB.Studio/Controls/RunningQueriesControl.Designer.cs b/src/CymaticLabs.InfluxDB.Studio/Controls/RunningQueriesControl.Designer.cs index 87b9ead..3a64e8c 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Controls/RunningQueriesControl.Designer.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Controls/RunningQueriesControl.Designer.cs @@ -85,7 +85,7 @@ private void InitializeComponent() // queryEditor // this.queryEditor.Dock = System.Windows.Forms.DockStyle.Fill; - this.queryEditor.Lexer = ScintillaNET.Lexer.Sql; + this.queryEditor.LexerName = "sql"; this.queryEditor.Location = new System.Drawing.Point(0, 0); this.queryEditor.Name = "queryEditor"; this.queryEditor.ReadOnly = true; diff --git a/src/CymaticLabs.InfluxDB.Studio/CymaticLabs.InfluxDB.Studio.csproj b/src/CymaticLabs.InfluxDB.Studio/CymaticLabs.InfluxDB.Studio.csproj index 0705fe2..0f562bf 100644 --- a/src/CymaticLabs.InfluxDB.Studio/CymaticLabs.InfluxDB.Studio.csproj +++ b/src/CymaticLabs.InfluxDB.Studio/CymaticLabs.InfluxDB.Studio.csproj @@ -1,612 +1,25 @@ - - - + - Debug - AnyCPU - {0578E050-27C9-4345-A6C9-EBAA887611D2} WinExe - Properties + net10.0-windows + true + $(NoWarn);WFO1000;NU1510 CymaticLabs.InfluxDB.Studio InfluxDBStudio - v4.6.2 - 512 - true - - - - 0.1.2.0 - false - - - AnyCPU - true - full - false - ..\..\Release\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - AnyCPU - pdbonly - true - ..\..\Release\Release\ - TRACE - prompt - 4 - false - - Resources\AppIcon.ico + false + Properties\app.manifest + disable + disable + AnyCPU + 7.0 + - - ..\..\packages\InfluxData.Net.8.0.1\lib\net461\InfluxData.Net.dll - True - - - ..\..\packages\InfluxData.Net.8.0.1\lib\net461\InfluxData.Net.Common.dll - True - - - ..\..\packages\InfluxData.Net.8.0.1\lib\net461\InfluxData.Net.InfluxDb.dll - True - - - ..\..\packages\InfluxData.Net.8.0.1\lib\net461\InfluxData.Net.Kapacitor.dll - True - - - ..\..\packages\log4net.2.0.15\lib\net45\log4net.dll - True - - - ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll - True - - - ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll - True - - - ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - True - - - ..\..\packages\Newtonsoft.Json.13.0.2\lib\net45\Newtonsoft.Json.dll - True - - - ..\..\packages\jacobslusser.ScintillaNET.3.6.3\lib\net40\ScintillaNET.dll - True - - - - - - - ..\..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll - True - - - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll - True - - - ..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll - True - - - - ..\..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll - True - - - ..\..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll - True - - - ..\..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll - True - - - ..\..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll - True - - - - - - - - - - - - - - Form - - - AppForm.cs - - - Component - - - ExtendedTabControl.cs - - - Component - - - UserControl - - - RetentionPolicyControl.cs - - - UserControl - - - RunningQueriesControl.cs - - - UserControl - - - StatsControl.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - Form - - - AboutDialog.cs - - - Form - - - BackfillDialog.cs - - - Form - - - ConnectionDialog.cs - - - UserControl - - - ContinuousQueryControl.cs - - - Form - - - CreateContinuousQueryDialog.cs - - - Form - - - CreateDatabaseDialog.cs - - - UserControl - - - DiagnosticsControl.cs - - - Form - - - RetentionPolicyDialog.cs - - - Form - - - EditPrivilegeDialog.cs - - - Form - - - EditUserDialog.cs - - - UserControl - - - FieldKeysControl.cs - - - Form - - - CreateUserDialog.cs - - - Form - - - GrantPrivilegeDialog.cs - - - UserControl - - - InfluxDbUsersControl.cs - - - Form - - - ManageConnectionsDialog.cs - - - - - - UserControl - - - QueryControl.cs - - - UserControl - - - QueryResultsControl.cs - - - UserControl - - - RequestControl.cs - - - UserControl - - - MeasurementControl.cs - - - UserControl - - - SeriesControl.cs - - - UserControl - - - TagKeysControl.cs - - - UserControl - - - TagValuesControl.cs - - - Form - - - UserPasswordDialog.cs - - - AppForm.cs - - - ExtendedTabControl.cs - - - RetentionPolicyControl.cs - - - RunningQueriesControl.cs - - - SeriesControl.cs - - - StatsControl.cs - - - AboutDialog.cs - - - BackfillDialog.cs - - - ConnectionDialog.cs - - - ContinuousQueryControl.cs - - - CreateContinuousQueryDialog.cs - - - CreateDatabaseDialog.cs - - - DiagnosticsControl.cs - - - RetentionPolicyDialog.cs - - - CreateUserDialog.cs - - - EditPrivilegeDialog.cs - - - EditUserDialog.cs - - - GrantPrivilegeDialog.cs - - - InfluxDbUsersControl.cs - - - ManageConnectionsDialog.cs - - - ResXFileCodeGenerator - Designer - Resources.Designer.cs - - - QueryControl.cs - - - QueryResultsControl.cs - - - MeasurementControl.cs - - - TagValuesControl.cs - - - UserPasswordDialog.cs - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - \ No newline at end of file diff --git a/src/CymaticLabs.InfluxDB.Studio/Data/InfluxDataNetClient.cs b/src/CymaticLabs.InfluxDB.Studio/Data/InfluxDataNetClient.cs index 2308b31..6b378f5 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Data/InfluxDataNetClient.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Data/InfluxDataNetClient.cs @@ -1,12 +1,11 @@ -using InfluxData.Net.Common.Enums; -using InfluxData.Net.InfluxDb.Enums; -using InfluxData.Net.InfluxDb.Models; -using InfluxData.Net.InfluxDb.Models.Responses; -using System; +using System; using System.Collections.Generic; using System.Linq; -using System.Net; using System.Threading.Tasks; +using InfluxData.Net.InfluxDb.Enums; +using InfluxData.Net.Common.Enums; +using InfluxData.Net.InfluxDb.Models; +using InfluxData.Net.InfluxDb.Models.Responses; namespace CymaticLabs.InfluxDB.Data { @@ -38,13 +37,14 @@ public InfluxDataNetClient(InfluxDbConnection connection) : // Create the underlying concrete client var c = connection; - // trust any certificate - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; - ServicePointManager.ServerCertificateValidationCallback += - (sender, cert, chain, sslPolicyErrors) => { return true; }; - - influx = new InfluxData.Net.InfluxDb.InfluxDbClient(c.HttpConnectionString, - c.Username, c.Password, InfluxDbVersion.Latest); + influx = new InfluxData.Net.InfluxDb.InfluxDbClient( + c.HttpConnectionString, + c.Username, + c.Password, + InfluxDbVersion.Latest, + InfluxData.Net.Common.Enums.QueryLocation.FormData, + SslIgnoreValidator.CreateHttpClient(), + false); } #endregion Constructors @@ -310,7 +310,7 @@ public async override Task DropSeriesAsync(string database, /// A list of the currently running queries. public async override Task> GetRunningQueriesAsync() { - var response = await influx.Client.QueryAsync("SHOW QUERIES", "_internal").ConfigureAwait(false); + var response = await influx.Client.QueryAsync( "SHOW QUERIES", "_internal").ConfigureAwait(false); if (response.Count() == 0 || response.First().Values == null) return new InfluxDbRunningQuery[0]; var results = response.First().Values; var queries = new List(results.Count); @@ -397,7 +397,7 @@ public async override Task CreateContinuousQueryAsync(Influ if (!InfluxDbHelper.IsTimeIntervalValid(cqParams.Interval)) throw new ArgumentException("cqParams.Interval is invalid: " + cqParams.Interval); - if (!string.IsNullOrWhiteSpace(cqParams.ResampleEveryInterval) + if (!string.IsNullOrWhiteSpace(cqParams.ResampleEveryInterval) && !InfluxDbHelper.IsTimeIntervalValid(cqParams.ResampleEveryInterval)) { throw new ArgumentException("cqParams.ResampleEveryInterval is invalid: " + cqParams.ResampleEveryInterval); @@ -525,7 +525,7 @@ public async override Task WriteAsync(string database, Infl { if (string.IsNullOrWhiteSpace(database)) throw new ArgumentNullException("database"); var p = new Point() { Name = point.Measurement, Fields = point.Fields, Tags = point.Tags, Timestamp = point.TimeStamp }; - var response = await influx.Client.WriteAsync(p, database, retentionPolicy).ConfigureAwait(false); + var response = await influx.Client.WriteAsync(p, database, retentionPolicy).ConfigureAwait(false); return new InfluxDbApiResponse(response.Body, response.StatusCode, response.Success); } @@ -548,8 +548,8 @@ public async override Task WriteAsync(string database, IEnu var p = new Point() { Name = point.Measurement, Fields = point.Fields, Tags = point.Tags, Timestamp = point.TimeStamp }; list.Add(p); } - - var response = await influx.Client.WriteAsync(list, database, retentionPolicy).ConfigureAwait(false); + + var response = await influx.Client.WriteAsync( list, database, retentionPolicy).ConfigureAwait(false); return new InfluxDbApiResponse(response.Body, response.StatusCode, response.Success); } @@ -709,7 +709,7 @@ public async override Task RevokeAdministratorAsync(string /// The privilege to grant. /// The name of the database the privilege is for. /// The query response. - public async override Task GrantPrivilegeAsync(string username, + public async override Task GrantPrivilegeAsync(string username, InfluxDbPrivileges privilege, string database) { if (string.IsNullOrWhiteSpace(username)) throw new ArgumentNullException("username"); @@ -726,7 +726,7 @@ public async override Task GrantPrivilegeAsync(string usern /// The privilege to revoke. /// The name of the database the privilege should be revoked from. /// The query response. - public async override Task RevokePrivilegeAsync(string username, + public async override Task RevokePrivilegeAsync(string username, InfluxDbPrivileges privilege, string database) { if (string.IsNullOrWhiteSpace(username)) throw new ArgumentNullException("username"); diff --git a/src/CymaticLabs.InfluxDB.Studio/Data/SslIgnoreValidator.cs b/src/CymaticLabs.InfluxDB.Studio/Data/SslIgnoreValidator.cs index 14993f8..d66cd9d 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Data/SslIgnoreValidator.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Data/SslIgnoreValidator.cs @@ -1,59 +1,46 @@ -using System.Net; -using System.Net.Security; +using System; +using System.Net.Http; using System.Security.Cryptography.X509Certificates; namespace CymaticLabs.InfluxDB.Data { /// - /// Utility class used to ignore verifying SSL/TLS certificates. + /// Utility class used to configure SSL/TLS certificate validation for InfluxDB + /// connections when untrusted SSL is allowed by the user. /// + /// + /// On .NET the settings no longer + /// affect , so the certificate validation callback must be + /// supplied on the used by each client instead. + /// public static class SslIgnoreValidator { - // Whether or not the SSL validator override has been enabled or not - private static bool enabled = false; - // Whether or not to allow untrusted SSL/TLS certificates. private static bool allowUntrusted = false; /// - /// Gets whether or not to allow untrusted SSL/TLS certificates. + /// Gets or sets whether or not to allow untrusted SSL/TLS certificates. /// public static bool AllowUntrusted { get { return allowUntrusted; } - - set - { - allowUntrusted = value; - - // Configure untrusted allowances as needed - if (allowUntrusted && !enabled) - { - OverrideValidation(); - enabled = true; - } - } + set { allowUntrusted = value; } } - // Custom validation method - private static bool OnValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) + /// + /// Creates an whose handler consults the current + /// value on each certificate validation, so + /// runtime toggles of the setting take effect on existing clients. + /// + /// An configured for the current setting. + public static HttpClient CreateHttpClient() { - if (sslPolicyErrors != SslPolicyErrors.None) - { - if (!allowUntrusted && sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors) - { - return false; - } - } - - return true; - } + var handler = new HttpClientHandler(); + handler.ServerCertificateCustomValidationCallback = + (HttpRequestMessage message, X509Certificate2 certificate, + X509Chain chain, System.Net.Security.SslPolicyErrors errors) => allowUntrusted; - // Overrides SSL/TLS certificate validation. - static void OverrideValidation() - { - ServicePointManager.ServerCertificateValidationCallback = OnValidateCertificate; - ServicePointManager.Expect100Continue = true; + return new HttpClient(handler); } } } diff --git a/src/CymaticLabs.InfluxDB.Studio/Dialogs/AboutDialog.Designer.cs b/src/CymaticLabs.InfluxDB.Studio/Dialogs/AboutDialog.Designer.cs index cd949d1..3a637ca 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Dialogs/AboutDialog.Designer.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Dialogs/AboutDialog.Designer.cs @@ -109,7 +109,7 @@ private void InitializeComponent() this.copyrightLabel.Name = "copyrightLabel"; this.copyrightLabel.Size = new System.Drawing.Size(247, 13); this.copyrightLabel.TabIndex = 3; - this.copyrightLabel.Text = "Copyright 2017 Michael Everett. All rights reserved."; + this.copyrightLabel.Text = "Copyright © ndavat"; // // warranyLabel // @@ -158,7 +158,7 @@ private void InitializeComponent() this.updatedLabel.Name = "updatedLabel"; this.updatedLabel.Size = new System.Drawing.Size(161, 13); this.updatedLabel.TabIndex = 5; - this.updatedLabel.Text = "Last updated 2023 by mr-manuel"; + this.updatedLabel.Text = "Last updated 2026"; // // AboutDialog // diff --git a/src/CymaticLabs.InfluxDB.Studio/Dialogs/AboutDialog.cs b/src/CymaticLabs.InfluxDB.Studio/Dialogs/AboutDialog.cs index 600963e..0ed433c 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Dialogs/AboutDialog.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Dialogs/AboutDialog.cs @@ -32,18 +32,30 @@ private void AboutDialog_Load(object sender, EventArgs e) { // Apply the current version number versionLabel.Text = AppForm.Settings.Version; + + // Position the version right after the title so there is no gap + // regardless of the title's rendered width. + versionLabel.Left = titleLabel.Right + 6; } // Launch project link private void projectLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - System.Diagnostics.Process.Start("https://github.com/mr-manuel/InfluxDBStudio"); + System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo + { + FileName = "https://github.com/mr-manuel/InfluxDBStudio", + UseShellExecute = true + }); } // Launch InfluxData.Net link private void influxDataNetLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - System.Diagnostics.Process.Start("https://github.com/pootzko/InfluxData.Net"); + System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo + { + FileName = "https://github.com/pootzko/InfluxData.Net", + UseShellExecute = true + }); } #endregion Event Handlers diff --git a/src/CymaticLabs.InfluxDB.Studio/Dialogs/BackFillDialog.Designer.cs b/src/CymaticLabs.InfluxDB.Studio/Dialogs/BackFillDialog.Designer.cs index 18823b6..1cb7d71 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Dialogs/BackFillDialog.Designer.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Dialogs/BackFillDialog.Designer.cs @@ -78,7 +78,7 @@ private void InitializeComponent() this.queryEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.queryEditor.Lexer = ScintillaNET.Lexer.Sql; + this.queryEditor.LexerName = "sql"; this.queryEditor.Location = new System.Drawing.Point(12, 280); this.queryEditor.Name = "queryEditor"; this.queryEditor.Size = new System.Drawing.Size(595, 145); diff --git a/src/CymaticLabs.InfluxDB.Studio/Dialogs/CreateContinuousQueryDialog.Designer.cs b/src/CymaticLabs.InfluxDB.Studio/Dialogs/CreateContinuousQueryDialog.Designer.cs index 5fd1a5a..093fe4f 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Dialogs/CreateContinuousQueryDialog.Designer.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Dialogs/CreateContinuousQueryDialog.Designer.cs @@ -424,7 +424,7 @@ private void InitializeComponent() this.queryEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.queryEditor.Lexer = ScintillaNET.Lexer.Sql; + this.queryEditor.LexerName = "sql"; this.queryEditor.Location = new System.Drawing.Point(12, 229); this.queryEditor.Name = "queryEditor"; this.queryEditor.Size = new System.Drawing.Size(595, 186); diff --git a/src/CymaticLabs.InfluxDB.Studio/Properties/AssemblyInfo.cs b/src/CymaticLabs.InfluxDB.Studio/Properties/AssemblyInfo.cs index 2357d58..6638683 100644 --- a/src/CymaticLabs.InfluxDB.Studio/Properties/AssemblyInfo.cs +++ b/src/CymaticLabs.InfluxDB.Studio/Properties/AssemblyInfo.cs @@ -1,16 +1,18 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Runtime.Versioning; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. +[assembly: SupportedOSPlatform("Windows")] [assembly: AssemblyTitle("CymaticLabs.InfluxDB.Studio")] [assembly: AssemblyDescription("Visual IDE for managing InfluxDB")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("CymaticLabs.InfluxDB.Studio")] -[assembly: AssemblyCopyright("Copyright © Michael Everett/Cymatic Labs 2025")] +[assembly: AssemblyCopyright("Copyright © Michael Everett/Cymatic Labs 2026")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,8 +34,8 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.2.2.0")] -[assembly: AssemblyFileVersion("0.2.2.0")] +[assembly: AssemblyVersion("0.3.0.0")] +[assembly: AssemblyFileVersion("0.3.0.0")] // Enable log4net using app.config [assembly: log4net.Config.XmlConfigurator(Watch = true)] diff --git a/src/CymaticLabs.InfluxDB.Studio/packages.config b/src/CymaticLabs.InfluxDB.Studio/packages.config deleted file mode 100644 index 1d57fe1..0000000 --- a/src/CymaticLabs.InfluxDB.Studio/packages.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file