live:.cid.a1bad2a761c955d2 https://drive.google.com/file/d/1zUVWinnbLJqQ8Ft1Nkag19hjGPCbAlbk/view?usp=sharing(old) https://drive.google.com/file/d/1IpZfyY_kroY1Lhfr0_Kc9v7zaaaPz19Y/view?usp=sharing https://drive.google.com/file/d/1mGSuTQ_jAe5h-X3r2CZL-8FBAEtgD5aZ/view?usp=sharing(session server)
This project is a .NET Core starter for developers to use in Codespaces that includes basic system tools and extensions for .NET Core app development.
This is an unopinionated, basic environment that should be ready to expand upon to build a day-to-day development envrionment. It comes with the following software choices:
- curl/curl: the command line tool for transferring data over a metric boatload of protocols.
- git: the Git SCM tool.
- gnupg2: a complete and free implementatiuon of the OpenPGP standard.
- stedolan/jq: a command line JSON parser.
- sudo: the superuser authority delegation tool.
- zsh: interactive terminal (alternative to
bash
). - ohmyzsh/ohmyzsh: a delightful community driven framework for managing zsh config.
- .NET Core SDK 3.1 LTS: a free, cross-platform and open source developer platform for building all types of apps.
- Azure Functions Core Tools v3: lets you develop and test your functions on your local computer from the command prompt or terminal.
- Docker CE: runs Docker CLI inside Codespaces.
- PowerShell 7: a cross-platform task automation and configuration management framework, consisting of a command-line shell and scripting language.
NOTE: Docker daemon can't be running inside Codespaces. Instead, set
DOCKER_HOST
to access to a remote docker daemon.
The following extensions are installed for .NET Core development.
- Azure Functions: quickly create, debug, manage, and deploy serverless apps directly from VS Code.
- C#: Included for C# development.
- C# Extensions: Included to speed up development workflows.
- C# Sort Usings: Included for document formatting.
- C# XML Documentation Comments: Included for XML style C# code documentation.
- Docker: Included for .NET Core developers who work with Docker, but also to enable users to edit
.devcontainer/Dockerfile
with proper editing. - EditorConfig: Included for .NET Core code formatting found in
.editorconfig
. - Git Graph: View a Git Graph of your repository, and perform Git actions from the graph.
- Git History: View git log, file history, compare branches or commits
- GitHub Pull Requests and Issues: Integration with GitHub's Pull Requests and Issues features that significantly enhance the experience of working in a repo hosted on GitHub.
- GitLens: An extension that significantly enhances the experience using Git in a development environment.
- IntelliCode: AI-assisted development for multiple languages including JavaScript and TypeScript.
- Live Share: collaborative, multi-user remote editing from directly within the editor.
- Markdown All in One: All you need to write README.md in Markdown.
- PowerShell: This extension provides rich PowerShell language support.
The following extensions are intentionally disabled until they support remote server.
Bracket Pair Colorizer 2: An extension colors matching brackets appropriately to enhance code readability.vscode-icons: An enhancement to the editor UI that gives more visual indicators in the explorer.
Dotfiles are meant to be personalised configuration. But the following dotfiles are largely common for .NET Core application development.
- .gitignore: Sourced from gitignore.io configured for
VisualStudio
. - .editorconfig: Sourced from @RehanSaeedUK's .editorconfig
- Ubuntu 18.04: The 18.04 LTS version of Ubuntu.
For usage in VS Codespaces, you're going to want to head over to online.visualstudio.com and sign up for VS Codespaces (that process is outside the scope of these instructions). Once you've got an account and are signed in to online.visualstudio.com, you're going to take the following steps:
- Ensure you're on the
/environments
page at online.visualstudio.com/environments - In the top right corner, there'll be a "Create environment" button. Click this button, which will open up a panel from the right side of the screen. Fill in the details of this panel:
- Environment Name: This will be the visible name of your environment within Codespaces. The value here doesn't particularly matter * I'm going to use
tinycloud
. - Git Repository: This is going to be either the URL you'd
git clone
the repo from or the GitHub<org OR user>/<repo>
shorthand. For this repo, the easier value would becodespaces-examples/base
. - Instance Type: For this, you're going to choose your plan * in my case, I'm just going to go with the
Standard (Linux)
plan. For most use cases of this starter,Basic (Linux)
should suffice. You can also change your plan at any time, as your workload demands. - Suspend idle environment after: This is the period of time you want your environment to automatically suspend after you've stopped actively using it. I generally chose 5 minutes and have not had any problems to date.
- Dotfiles (optional): These are entirely optional, and are available for advanced users.
- Dotfiles Repository: Using the
git clone
URL or the GitHub<org OR user>/<repo>
syntax, you can define the repo to pull your dotfiles from. For examples, see jessfraz/dotfiles or fnichol/dotfiles. - Dotfiles Install Command: The name of the file or the command to run to install your dotfiles.
- Dotfiles Target Path: The path where your dotfiles should be installed.
- Dotfiles Repository: Using the
- Once you've filled out all of those (and resolved any errors in the form validation, if any occurred), you'll be able to click "Create" at the bottom of the panel and your environment will start creating.
- Environment Name: This will be the visible name of your environment within Codespaces. The value here doesn't particularly matter * I'm going to use
Once you've completed the Creation steps, your environment will be usable from Codespaces until you delete it. You can access it by going to online.visualstudio.com and selecting the vertical ellipsis menu to connect to it from the browser or launch it in VS Code / VS Code Insiders.
When inside of the environment you can change envrionments themselves from the command pallete with the Codespaces: Connect
.
Note: See the VS Online in the Browser quickstart for more information.
Additionally, if you've installed the Visual Studio Codespaces extension in VS Code locally, you'll be able to directly connect from VS Code itself.
Note: See the VS Online in VS Code quickstart for more information.
Now that you're set up and connected, you should be able to work within your Codespaces environment.
Contributions are welcome. Please refrain from opinionated additions like linters. However, adding package managers and other DX improvements that are additive like yarn
or EditorConfig
are welcome. Contributors must follow the Code of Conduct.