An open API service indexing awesome lists of open source software.

https://github.com/r8vnhill/echo-app-csharp

A minimal and idiomatic C# CLI project to explore MSBuild, .NET CLI, and modular solution design. Created as part of the DIBS course on reusable software libraries.
https://github.com/r8vnhill/echo-app-csharp

console-app csharp dibs-course dotnet dotnet-cli educational example-project modular-design msbuild software-design teaching

Last synced: 2 months ago
JSON representation

A minimal and idiomatic C# CLI project to explore MSBuild, .NET CLI, and modular solution design. Created as part of the DIBS course on reusable software libraries.

Awesome Lists containing this project

README

          

# echo-app-csharp: A simple C# CLI to understand MSBuild and the .NET ecosystem

[![License: BSD-2-Clause](https://img.shields.io/badge/License-BSD%202--Clause-blue.svg)](./LICENSE)
[![C#](https://img.shields.io/badge/language-C%23-blue.svg)](https://learn.microsoft.com/dotnet/csharp/)
[![Educational](https://img.shields.io/badge/purpose-educational-yellow)](https://dibs.ravenhill.cl)
[![Status](https://img.shields.io/badge/status-stable-brightgreen)]()
[![DIBS Site](https://img.shields.io/badge/website-dibs.ravenhill.cl-purple)](https://dibs.ravenhill.cl)

A minimal command-line application written in **C#**, designed to introduce **MSBuild** and the **.NET CLI** through a
clean, idiomatic, and reproducible example. This project accompanies lessons from
the [DIBS course](https://dibs.ravenhill.cl), focused on building well-structured and maintainable software libraries.

> [!note]
> The course is taught in Spanish, but **all repository content is in English** to ensure accessibility and broader
> adoption.

## πŸ“– Table of Contents

- [echo-app-csharp: A simple C# CLI to understand MSBuild and the .NET ecosystem](#echo-app-csharp-a-simple-c-cli-to-understand-msbuild-and-the-net-ecosystem)
- [πŸ“– Table of Contents](#-table-of-contents)
- [πŸŽ“ Lessons](#-lessons)
- [πŸ” Overview](#-overview)
- [πŸ“ Getting Started](#-getting-started)
- [Prerequisites](#prerequisites)
- [Clone \& Compile](#clone--compile)
- [🀝 Contributing](#-contributing)
- [How to Contribute](#how-to-contribute)
- [πŸ›‘οΈ License](#️-license)
- [🌐 DIBS Website](#-dibs-website)

## πŸŽ“ Lessons

This repository is part of the following DIBS course lesson:

- πŸ“˜ **[Creating a Basic C# Project with MSBuild](https://dibs.ravenhill.cl/docs/build-systems/init/msbuild)**
Learn how to install .NET, create a console project using MSBuild and `dotnet`, understand the project layout,
customize the `.csproj`, and write your first C# program.
- πŸ“˜ **[Modularizing your C# Project with MSBuild](https://dibs.ravenhill.cl/docs/build-systems/modular-design/msbuild)**
Explore how to structure a C# solution with multiple projects, including a reusable library and a console application, using MSBuild for modular design and clean architecture.

## πŸ” Overview

This application is intentionally simple β€” its purpose is not to showcase complex logic, but to serve as an **educational scaffold** to explore:

- The role of MSBuild and the `.sln` and `.csproj` files
- The structure of a modern .NET project
- How the `dotnet` CLI facilitates creation, compilation, and execution
- Best practices for reproducible builds and configuration

The program simply echoes messages passed as arguments β€” but the lesson is in the setup, not the output.

## πŸ“ Getting Started

### Prerequisites

- [.NET SDK 9.0 or later](https://dotnet.microsoft.com/download)
- PowerShell (Windows) or a terminal with `bash`
- Git

> See the [lesson documentation](https://dibs.ravenhill.cl/docs/build-systems/init/msbuild) for OS-specific install
> scripts.

### Clone & Compile

```bash
git clone https://github.com/r8vnhill/echo-app-csharp.git
cd echo-app-csharp
dotnet run --project EchoApp -- `
"Is this the end of the beginning", `
"or the beginning of the end?"
```

You should see:

```
Is this the end of the beginning
or the beginning of the end?
```

## 🀝 Contributing

This repository is part of a teaching resource and is not meant for production. That said, issues and improvements are
welcome!

### How to Contribute

1. [Open an issue](https://github.com/r8vnhill/echo-app-csharp/issues) to suggest improvements or report errors.
2. Follow the [Code of Conduct](./CONTRIBUTING.md).
3. Fork this repo and submit a pull request.

## πŸ›‘οΈ License

Released under the **[BSD 2-Clause License](./LICENSE)**.

You are free to use, adapt, and share this code in personal or educational contexts, as long as attribution is provided.

## 🌐 DIBS Website

The full course β€” *DiseΓ±o e ImplementaciΓ³n de Bibliotecas de Software* β€” is available at:

πŸ‘‰ [https://dibs.ravenhill.cl](https://dibs.ravenhill.cl)

There you'll find complete lessons, slides, exercises, and complementary resources (in Spanish).