Your first C#, read like TypeScript
You already know how to program. This course is not teaching you loops and functions from scratch; it's teaching you the specific dialect the Fusion team writes, by mapping each idea to the TypeScript you'd reach for by instinct. Start with the biggest shift: C# is compiled, and the compiler is strict.
In Node you edit a .ts file and ts-node runs it, and a type error might still let the program limp along. In C#, dotnet build turns every .cs file into IL (intermediate language) packaged as a DLL, and only then does it run. A type error is a build failure: the program never starts. That strictness is the whole personality of the language, and this module is about getting comfortable inside it.
Here's a whole C# program. Read it as TypeScript with heavier punctuation.
Nearly everything maps. using System; is an import. namespace Hello; groups the file (more in a later lesson). class Greeter is a class. $"Hello, {name}" is a template literal, where backticks become $"...". Console.WriteLine is console.log. The Main method is the entry point, like the top of an index.ts that runs on start.
Two differences jump out and they're worth naming now. First, types come before names: string name, not name: string. A method declares its return type first (public string Greet), the way TS would if it wrote the annotation on the left. Second, statements need semicolons and blocks use braces, always; there's no significant whitespace and no optional-semicolon debate.
The Fusion backend is not one Program.cs, it's a solution (.sln) of several projects (.csproj) that stack into layers. But every one of them is made of files exactly like the one above: namespaces, classes, methods. Get fluent reading this shape and the real codebase stops looking foreign.
Try it yourself
The three words for the shape
Anchor the mental model before any syntax.
A TS colleague asks how a C# project is shaped compared to a Node app. In one breath, what are the `.sln`, the `.csproj`, and the DLL?
Compiled, not interpreted
You change one line in a .cs file and want to see it run. What has to happen that doesn't happen in Node?