Calculator Application with Library 2.1.2
A simple library for performing basic arithmetic operations with application
Loading...
Searching...
No Matches
.NET Core Project Template

A C# / .NET solution template for course term projects: a class library, a thin console app, xUnit tests, code and documentation coverage generated with both ReportGenerator and the native lcov/genhtml tooling side by side, Doxygen and DocFX API docs — per platform (Windows and Linux/WSL) — a MkDocs Material site, and local + CI/CD release packaging, all driven by a handful of numbered scripts.

Live site: https://ucoruh.github.io/vs-net-core-template/ (English) · https://ucoruh.github.io/vs-net-core-template/tr/ (Türkçe) — one bilingual MkDocs Material site (mkdocs-static-i18n, language switcher in the header; the DocFX API reference lives under /native/).

1. Start your own PRIVATE repository from this template

  1. Click Use this template → Create a new repository (green button, top right). Do not fork: a fork of a public repository cannot be made private.
  2. Choose your account, name the repository after your project, select Private, click Create repository.
  3. In your new repository: Settings → Collaborators → Add people → add the instructor (ucoruh) and your team mates.
  4. Clone it and build (below).

A private repository on GitHub Free has no GitHub Pages: show your project locally instead (7-build-all + 9-open-site, plus the release/ folder) — see Showing your project without GitHub Pages · Türkçe. Releases work on private repositories.

Status

CI GitHub release badge [License: MIT](LICENSE)

*(Regenerated by 7-build-all; see Which report is which?.)*

Quick start

:: Windows
4-install-tools-windows.bat
6-build-and-test-windows.bat
7-build-all-windows.bat
9-open-site-windows.bat
# Linux / WSL
chmod +x *.sh scripts/*.sh
./4-install-tools-linux.sh
./6-build-and-test-linux.sh
./7-build-all-linux.sh
./9-open-site-linux.sh

9-open-site serves the built site at http://localhost:8080/; open that URL rather than double-clicking site/index.html, so the embedded report frames load. Everything is documented in the guides below.

Project identity: <tt>project.env</tt>

PROJECT_NAME=calculator, VERSION=2.1.2 (plus the solution/project paths). Every script and the CI workflow read this one file; rename your project there. Release assets are named <project>-<version>[-<platform>[-<arch>]]-<content>[-<tool>].<ext> (platform windows | linux | macos; WSL is linux).

Scripts: same number = same job, platform as suffix

Script Job
1-configure-git-hooks-<platform> install the pre-commit hook
2-create-gitignore-<platform> regenerate .gitignore (keeps the project section)
3-install-package-manager-windows.bat Chocolatey + Scoop (Windows only)
4-install-tools-<platform> .NET SDK, Doxygen, lcov, astyle, dotnet tools, MkDocs Material, coverxygen
5-format-code-<platform> astyle
6-build-and-test-<platform> fast: build + unit tests
7-build-all-<platform> + coverage (both families), doc coverage (both), Doxygen + DocFX, app, site, release/
8-run-app-<platform> run the sample app
9-open-site-<platform> serve the site on localhost and open it
10-release-<platform> [--dry-run] publish release/ as a GitHub Release with gh
11-clean-<platform> delete every generated folder

<platform> is windows (.bat) or linux (.sh; native Linux and WSL). Helpers live in scripts/.

Old name → new name

Old New
1-pre-commit scripts/hooks/pre-commit
2-create-git-ignore.bat/.sh 2-create-gitignore-windows.bat / -linux.sh
3-install-package-manager.bat (.sh) 3-install-package-manager-windows.bat (.sh folded into 4-install-tools-linux.sh)
4-install-dotnet-sdk, 4-install-astyle, 4-install-coverxygen, 4-install-lcov, 6-install-docfx-and-report-tools 4-install-tools-windows.bat / -linux.sh
5-format-code.bat/.sh 5-format-code-windows.bat / -linux.sh
7-build-app.bat/.sh 7-build-all-windows.bat / -linux.sh (new fast loop: 6-build-and-test-*)
8-run-app.bat/.sh 8-run-app-windows.bat / -linux.sh
9-open-site.bat/.sh 9-open-site-windows.bat / -linux.sh
10-release.bat/.sh 10-release-windows.bat / -linux.sh
dotnet-env.bat/.sh scripts/dotnet-env-windows.bat / -linux.sh
VERSION project.env

Where outputs go (all gitignored)

build/<platform>-<config>/ · publish/<platform>-<arch>/ · reports/<platform>/<kind>-<tool>/ (tests-trx, coverage-reportgenerator, coverage-lcov, doccoverage-reportgenerator, doccoverage-lcov, api-doxygen, api-docfx) · site/ (MkDocs) · site-native/ (DocFX) · release/ (every release asset, same names as on GitHub).

Guide

Written for a student who has never used this toolchain, in English and Turkish:

Guide EN TR
Install everything install.en.md install.tr.md
Use this template (private repo) use-the-template.en.md use-the-template.tr.md
From a project topic to your own project from-topic-to-project.en.md from-topic-to-project.tr.md
Daily workflow (+ old→new names) daily-workflow.en.md daily-workflow.tr.md
Which report is which? reports-explained.en.md reports-explained.tr.md
Showing an HTML report inside your site embed-html-in-site.en.md embed-html-in-site.tr.md
Showing your project without GitHub Pages showing-without-pages.en.md showing-without-pages.tr.md
Releases & private repositories releases-and-private-repos.en.md releases-and-private-repos.tr.md
Troubleshooting troubleshooting.en.md troubleshooting.tr.md