Creating Solutions and Projects in VS Code

In this post we are going to create a new Solution containing an F# console project and a test project using the dotnet CLI in Visual Studio Code.

Open VS Code in a new folder.
Open a new Terminal window. The shortcut for this is CTRL+SHIFT+'.
Create a new file in the folder. It doesn't matter what it is called, so use 'setup.txt'.
Copy the following script into the file:

dotnet new sln -o MySolution cd MySolution mkdir src dotnet new console -lang F# -o src/MyProject dotnet sln add src/MyProject/MyProject.fsproj mkdir tests dotnet new xunit -lang F# -o tests/MyProjectTests dotnet sln add tests/MyProjectTests/MyProjectTests.fsproj cd tests/MyProjectTests dotnet add reference ../../src/MyProject/MyProject.fsproj dotnet add package FsUnit dotnet add package FsUnit.XUnit dotnet build dotnet test

This script will create a new solution called MySolution, two folders called src and tests, a console app called MyProject in the src folder, and a test project called MyProjectTests in the tests folder. Change the names to suit. In VS Code, CTRL+F2 will allow you to edit all of the instances of a selected word at the same time.
If you want C# projects, omit the '-lang F#' from both project lines, change the file extensions to '.csproj' from '.fsproj', and remove the lines that add the FsUnit and FsUnit.XUnit NuGet packages.
Select all of the script text.
To run the script in the Terminal, you can do either of the following:

  • Choose the Terminal menu item and then select 'Run Selected Text'.

  • Press CTRL+SHIFT+P to open the Command Palette and then type 'TRSTAT'. Select the 'Terminal: Run Selected Text in Active Terminal' item.

The script will now execute in the Terminal.
You can delete the file with the script in if you want as you no longer need it.

Summary

It's slightly more complicated than doing this in Visual Studio or Rider but once you have the scripts, it's easy to reuse them. I highly recommend getting to know VS Code better.

 

Blog 7/21/20

Understanding F# applicatives and custom operators

In this post, Jonathan Channon, a newcomer to F#, discusses how he learnt about a slightly more advanced functional concept — Applicatives.

Landqart AG, Headbild, Grüne Noten
Success Story

Landqart: Creating the Modern Workplace with M365

Using Microsoft strategically to create a modern workplace: from M365 migration and change and adoption measures to Teams governance and Power Platform automation.

Referenz

Data protection management system with Jira and Confluence

catworkx took a collaborative approach to GDPR implementation, using Jira & Confluence as a living DSMS to create transparent documentation structures.

Blog

Using GCP Cloud Functions with F#

Learn how to build and test Google Cloud Functions in F#, using dependency injection, configuration, and pub/sub messaging for real-world cloud apps.

Blog 8/7/20

Understanding F# Type Aliases

In this post, we discuss the difference between F# types and aliases that from a glance may appear to be the same thing.

View of the PUMA Headquarters in Herzogenaurach
Success Story

PUMA: A platform for low-code/no-code solutions

Thanks to the Microsoft Power Platform, PUMA relies on flexible, scalable business processes that can be created, expanded and managed centrally via the Centre of Excellence with minimal effort.

Referenz

Integrated Project and User Portal (IPUP)

For an automotive client, catworkx developed a tool for Jira Service Management that enables automated setup of projects and transparent user assignment – flexible and scalable.

Referenz

Portfolio management and project budget planning/control

Diebold Nixdorf optimizes portfolio and budget planning with Jira. Jira replaces Excel and ensures better forecasts and more efficient controlling processes in global banking and retail.

novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Asset

novaCapta solutions: Products, Apps, and Assets

Discover novaCapta's apps, assets, and products: Whether it's a small app or a product with custom features – with our in-house solutions, you'll be well-equipped.

Referenz

Managing projects with Confluence and Jira at ASI

In 2016, the IT department of Austrian Standards was given the task of converting 160 systems to a decentralised system in 2 years. catworkx accompanied the successful change in the corporate culture

Referenz

Jira Integration of Demand and Project Portfolio Management

In the area of demand and project portfolio management, catworkx was also able to demonstrate the great flexibility of Jira in a customer project and show that relevant business data and influencing..

Partner

Tenfold IAM solutions for access rights and compliance

Tenfold provides transparency regarding users, roles and permissions. IPG provides support with IAM consultancy, integration, compliance and operations.

Lösung 9/21/22

Portfolio Project Management (PPM)

How Project Portfolio Management with Atlassian Tools supports global project and QM tasks including Cross-Project Knowledge Management.

Kollaboration mit dem modernen Helpdesk
Produkt 4/5/23

Backup and recovery solutions for the cloud - HYCU in focus

Experience the ultimate cloud experience with the strong partnership of CLOUDPILOTS and HYCU. Our pioneering solutions are designed to meet all your cloud needs.

Blog

Creating connections: Stephen between catworkx & Atlassian

Creating connections, shaping added value: Stephen on his role as a bridge builder between catworkx and Atlassian

Blog 12/19/22

Creating a Cross-Domain Capable ML Pipeline

As classifying images into categories is a ubiquitous task occurring in various domains, a need for a machine learning pipeline which can accommodate for new categories is easy to justify.

Beladenes Containerschiff auf dem Meer
Success Story

dteq: Web-based project management

Off-the-shelf software does not always meet all requirements, whilst bespoke development can cause costs to skyrocket. With the Business Productivity Framework, the dteq group has found the solution.

Pretty designer in casualwear sitting on staircase with laptop on her knees
Service

Custom AI Solution

We specialise in developing customised AI solutions. We would be happy to advise you on use cases, as well as on the design and development of your bespoke AI agent or GPT model.

Blog 5/1/21

Ways of Creating Single Case Discriminated Unions in F#

There are quite a few ways of creating single case discriminated unions in F# and this makes them popular for wrapping primitives.

News 7/17/25

Creating a truly global full-service Atlassian champion

Herzum joins forces with TIMETOACT GROUP to further bolster catworkx’ Atlassian capabilities in the Americas, DACH, and Europe.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!