By the end of this session, you will have:
| Time | Segment | Type | Duration |
|---|---|---|---|
| 0:00 | Install & verify .NET SDK | Lab | 20 min |
| 0:20 | IDE setup (VS Code or Rider) | Lab | 15 min |
| 0:35 | Postman setup & first request | Demo | 15 min |
| 0:50 | Git essentials recap | Theory | 15 min |
| 1:05 | .NET-specific Git practices | Theory + Demo | 20 min |
| 1:25 | Create repo, first commit, push | Lab | 25 min |
| 1:50 | Wrap-up | Discussion | 10 min |
dotnet-ef global tooldot.net — choose .NET 8 (LTS)dotnet --version
dotnet --list-sdks
Expected: 8.x.x or higher. If the command is not found after install, restart the terminal — the PATH is updated on launch.
dotnet tool install --global dotnet-ef
You will use this in Session 09 when Entity Framework Core migrations are introduced.
%USERPROFILE%\.dotnet\tools | macOS / Linux: ~/.dotnet/tools
.http files directly in the editor; lightweight alternative to Postman for quick endpoint testsCtrl+Shift+X → search each name → Install. Takes under two minutes.
postman.com or use the web version — both work for this courseGET https://httpbin.org/get — inspect the status code, headers, and JSON bodybaseUrl to switch between local and deployed without editing every requestFrom your frontend course — quick recap:
git init / git clonegit add / git commitgit push / git pullgit checkout -b feature/name# typical session workflow
git checkout -b feature/session-03
# ... make changes ...
git add .
git commit -m "feat: add task list endpoint"
git push origin feature/session-03
# open PR on GitHub → merge
maindotnet new gitignoredotnet build generates bin/ and obj/ output folders.gitignore, running git add . stages all of themdotnet new gitignore creates the correct ignore rules for the current project typedotnet new gitignore before your first git add . — never after.
dotnet new gitignore
Key entries generated for .NET projects:
bin/ — compiled output; changes on every buildobj/ — intermediate build artifacts; never needed in version control*.user — per-developer IDE preference files.vs/ — Visual Studio workspace state (Rider uses .idea/ instead)appsettings.Development.json is where connection strings and API keys typically live in .NET projects.gitignore does not include it — you must add it manuallygit filter-repodotnet user-secrets is the proper local-secret store — covered in Session 19# append to your .gitignore
appsettings.Development.json
# emergency: remove from tracking
# (still need to rotate the secret)
git rm --cached \
appsettings.Development.json
main — always working and deployable; never commit directly herefeature/session-XX — one branch per session's work; merged via PR when completefeat: fix: docs: chore:feature/session-XX branch into main via a PR. This is exactly how professional teams operate.
A TaskManagerApi .NET solution with a Web API project, a .gitignore, an initial commit, and a remote on GitHub — ready to build upon from Session 03 onward.
mkdir TaskManagerApi
cd TaskManagerApi
dotnet new sln
dotnet new webapi -n TaskManagerApi.Api
dotnet sln add TaskManagerApi.Api
git init
dotnet new gitignore
git add .
git commit -m "feat: initial project scaffold"
git remote add origin https://github.com/<username>/task-manager-api.git
git push -u origin main
1–2: create the directory · 3–5: scaffold the .NET solution · 6–8: initialise Git · 9–11: first commit and push
%USERPROFILE%\.dotnet\tools (Windows) or ~/.dotnet/tools (macOS/Linux) to your PATH, then restart the terminal.
git rm --cached appsettings.Development.json, add it to .gitignore, commit the fix — and rotate any secrets that were exposed.
dotnet --version confirms itdotnet new gitignore before the first commit to exclude bin/, obj/, and secretsTaskManagerApi repository is live on GitHub and ready for Session 03Session 03 — First .NET Web API & Project Architecture
/tasks endpoint and return data from itBefore next session:
.gitignore file and understand each entrySet Up Your Course Repository — complete independently after this session. You are done when all five criteria below are met.
task-manager-api GitHub repository exists and is publicly accessible (or shared with the instructor)dotnet new gitignore-generated .gitignore is committed to the repositorybin/ and obj/ are not tracked — run dotnet build then git status to verifyfeat: initial project scaffoldmain branch is pushed and visible on GitHubfeature/session-02 branch, add a README.md with the project name and a one-sentence description, commit with docs: add project readme, and open a pull request to main.