What's New in SnapDevelop
Last Updated: December 2023
SnapDevelop 2022 R3 New Features
SnapDevelop 2022 R3 has the following new features or changes:
Supports Strict encryption for SQL Server
The "Strict" encryption type enables SQL Server 2022 to leverage TDS 8.0. You can select the "Strict" encryption type in the advanced properties when you configure the SQL Server database connection.
SnapDevelop 2022 New Features
SnapDevelop 2022 has the following new features or changes:
Framework and language support
Adds support for C# 10
Adds support for .NET 6
SnapDevelop 2022 supports creating .NET Core 3.1 and .NET 6.0 projects, and also supports building and running projects on .NET Core 3.1 or .NET 6.0.
System requirements
Windows support
SnapDevelop IDE and apps developed and deployed from SnapDevelop add support for the following new operation systems:
- Windows 11 21H2 or higher;
- Windows Server 2022 Standard or Datacenter edition
Database support
SnapDevelop adds support for the following new database versions:
- Oracle 21c;
- PostgreSQL 13, 14, and 15.
Web API Tester
API mocking service
Before an API is ready, you can start API mocking service, and define mock responses for the API, to get mocking results during the test.
- It is possible to define different mock responses for different response codes (200, 400, 404, etc.), and then set one mock response as the active one to use during the mocking test.
- The API Mocking Service window enables you to view and manage all the APIs with mock responses. You may start or stop the API mocking service with a single click.
Parameter mocking
The parameter mocking feature enables you to test APIs more easily.
- The Para Mocking window enables you to define default mocking values for specific data types and parameter names at the solution level.
- In the Params tab for an API, you may either specify the actual value, or a variable name (defined in the current environment), or a mocking value for a parameter. If no value is given, the default mocking value will apply.
Other enhancements
There are more enhancements on the Web API Tester besides the mocking feature:
Further enhances team collaboration by importing APIs from/to Swagger or another Web API Tester, instance, or exporting APIs to a JSON file.
Defines various environments (i.e. different values for the same set of variables) for use in Paras, Headers, Body, Pre Scripts and Post scripts. For example, an environment called "Development" might define the environment variables
API_URL
,USERNAME
, andPASSWORD
, while a different environment called "Production" defines them for the production server.Sets the pre scripts and/or post scripts to perform before and/or after sending the request.
Configures proxy for Web API requests.
Debugging
- There are currently five new debug launch options: Executable, Project, Docker, KubernetesCompose, and Kubernetes.
- When debugging an ASP.NET Core Web API project, it is now possible to select the debug browser to start the project.
- The Autos window (instead of the previous Watch window) will be open by default during a debugging session.
- In case of multiple-process debugging (for example, debugging in a docker container), the Process dropdown at the toolbar displays all the processes, and you can set the current process by selecting it from the dropdown.
- The IDE automatically remembers the layout of debug windows.
Docker support
- Provides Container Explorer (enhanced from Docker Explorer) that allows you to:
- Search and download Docker images from configurable registries, create/customize containers based on those images and manage the running container instances.
- Use the Run Interactive option to run an image/container with the default options, and immediately connect a terminal to the main process.
- Right click a running container and select the Open Terminal Window option. A shell opens for you to peek around and execute commands from inside the container's environment.
- Use one of the two possible ways to pull an image: registry pull, or command line pull.
- View the layers and metadata information of an image in the Details view of the image;
- View the following information in the Details view of a container: (1) the settings that were configured on creation of the container, along with the network information; (2) the container's main process' logs; (3) a list of the container's running processes; (4) the container's metadata.
- Supports debugging a project running on local or remote Docker.
Kubernetes support
- Provides Kubernetes Explorer. You can use it in conjunction with Container Explorer to deploy your projects into a Kubernetes Cluster without leaving SnapDevelop. In Kubernetes Explorer, you can:
- Connect to a Kubernetes cluster;
- View the Kubernetes cluster information;
- Manage the cluster's resources (Workloads, Ingresses, Secrets, Config Maps, etc.) from inside the IDE;
- Install Helm packages to consolidate all the source definitions needed to run applications, tools, or services in the Kubernetes cluster, and prepare a dedicated configuration file (for example, values.yaml) for the corresponding deployment;
- Apply YAML content to manipulate the cluster, such as creating or editing workloads, services, etc.;
- Use the Set as Current Context to quickly switch between different clusters;
- Create namespaces to group the resources of a cluster;
- Create, inspect, edit, restart, and delete workloads (Deployment workloads and StatefulSet workloads), and then view or delete pods in a workspace, or get a terminal into a pod.
- Select Expose Service to expose a workload or pod as a service, and then view/edit/delete services;
- Add, edit or delete Ingress resources for giving services externally-reachable URLs, load balance traffic, etc.;
- Use Kubernetes commands in a terminal window to publish and run a project;
- Configure Secrets or ConfigMaps to pass data to pods via environment variables, command line arguments, or volumes.
- Adds Kubernetes Support on the project. Then, there are a series of features to assist you to publish the project to Kubernetes:
- Customize the Kubernetes deployment by editing the files inside the charts folder of the project;
- Directly run the project on Kubernetes by clicking the Kubernetes toolbar item;
- Add Kubernetes container orchestration (select Container Orchestration Support > Kubernetes Compose) to the project;
- Publishes the application to a Kubernetes cluster using the Helm client.
- Supports debugging a project on local Kubernetes.
Global options
File trees
- Allows you to configure the parent file suffix and the corresponding child file suffixes in the Options > Projects and Solutions > File Trees. As the result, in Solution Explorer, if two files have the same file name, the file with the child file suffixes will be shown as a sub item of the file with the parent file suffix.
Text editor
- Allows you to configure the fonts and colors differently for different editors in the Options > Text Editor > Fonts and Colors.
- Allows you to configure the code style preferences to apply in the Options > Text Editor > C# > Code Style.
Container tools
- An option "The prompt dialog box no longer pops up when deleting" is available for you to specify whether to ask for confirmation before deleting a container.
Test
Two new options are available when you configure the settings for Web API Tester:
- Enable parameter mocking -- Enables/disables the mock function in the Params tab.
- Automatically mock parameter data when API is opened -- If you have enabled parameter mocking, this option enables the auto creation of mocking value for a parameter in the Params tab. The auto creation rules are the default mocking settings you have configured for the solution.
Git settings
- Specifies global settings for Git, such as username, email, default repository location, etc.
- If the current solution in the IDE is under Git source control:
- You can further configure the current active Git repositories in the Git Repository Settings > General. The settings in General will take precedence over the settings configured in Git Global Settings.
- The Git Repository Settings > Remotes shows the list of remote repositories for the current solution. You can add, edit or remove remote repositories, and select one as the default remote.
Debugging
- By default, the option "Automatically close the console when debugging stops" is unchecked, so that it is more convenient for you to check exceptions in the console.
File publishing options
- When you publish a project to a folder or a Web server, with the target runtime being win-x64, win-x86, or win-arm, there are two new file publishing options: Produce single file, and Enable ReadyToRun compilation.
Open in Terminal
- Provide Open in Terminal context menu item at the project level. Clicking the item opens a PowerShell terminal window directly to the project folder.
Manage User Secrets
- Provide Manage User Secrets context menu item at the project level. Clicking the item opens a file named "secrets.json" in the editor. You may specify one or more secrets (for example, database connection string) in the JSON file, and then access the secrets in the project script.
- The "secrets.json" file is protected in the local machine's user profile folder and is not checked into source control.
Miscellaneous changes to existing features
Default document settings
- The previous Environment > Documents settings are no longer available. The following are the values that would always apply:
- Yes - Detect when file is changed outside the environment
- Yes - Reload modified files unless there are unsaved changes
- Yes - Open file using directory of currently active document
- No - Show Miscellaneous files in Solution Explorer
Code Assist
- The previous Edit > Code Assist > Quick Info menu item is no longer available. The Quick Info feature is triggered automatically when you mouse over an identifier.
Project Dependencies
- The Project Dependencies configuration is temporarily not provided in the Solution Properties. It will be added back in the later versions.
Caches and dangling images
- Caches and dangling images are no longer shown in Container Explorer.
Source control
- The Git and Subversion source control capabilities are more comprehensive.
New Features in older versions
SnapDevelop 2021 New Features
SnapDevelop 2021 has the following new features or changes:
- Supports the Informix database (Windows 64-bit only)
- (Feature change) Downloads the database drivers for Oracle and MySQL from the NuGet website
- Adds a new option to the database advanced settings:
OuterJoinSyntax
. - (Feature change) Obtains the column data type according to the DataWindow SQLs when converting DataWindows to models
- Generates the
StringLength
attribute when converting DataWindows to models - Generates models with nullable property types when converting DataWindows to models
- (Feature change) Changes the default value of
DelimitIdentifier
in the database advanced settings
For new features in the following products:
SnapObjects (SnapObjects.Data and SnapObjects.Data.AspNetCore)
Refer to Release Bulletins for SnapObjects.
.NET DataStore (DWNet.Data and DWNet.Data.AspNetCore)
Refer to Release Bulletins for .NET DataStore.
PowerScript Migrator Framework (PowerScript.Bridge)