Practicing and exploring
Let’s now test your knowledge and understanding by trying to answer some questions, getting some hands-on practice, and going into the topics covered throughout this chapter in greater detail.
Exercise 1.1 – Online material
Online material can be extra content written by me for this book, or it can be references to content created by Microsoft or third parties.
Current versions of .NET
You can check what the latest version of .NET is for various platforms and what is officially supported at the following link: https://versionsof.net.
If you need to know more about support for the legacy .NET Framework, you can read about it at the following link: https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-framework.
Upgrade to a new .NET version
.NET releases new versions annually. Some developers begin upgrading as soon as a new version drops, while others prefer to wait until their current version reaches end-of-support. Upgrading involves several important considerations that you can read about at the following link:
https://learn.microsoft.com/en-us/dotnet/core/install/upgrade
freeCodeCamp and C# certification
For many years, Microsoft had an exam for C# 5, Exam 70-483: Programming in C#. I taught hundreds of developers the skills needed to get qualified and pass it. Sadly, that exam was retired a few years ago.
In August 2023, Microsoft announced a new foundational certification for C# alongside a free 35-hour online course. You can read more about how to qualify for the certification at the following link:
https://www.freecodecamp.org/learn/foundational-c-sharp-with-microsoft/
C# certification signup: https://aka.ms/learningseries/csharp/signup
Explore Polyglot Notebooks
Complete the following online-only section to explore how you can use Polyglot Notebooks with its .NET Interactive engine:
https://github.com/markjprice/cs13net9/blob/main/docs/ch01-polyglot-notebooks.md
Windows development
This book is about modern cross-platform development. But what about graphical user interface (GUI) development especially for Windows?
You can read an article discussing this at the following link:
https://visualstudiomagazine.com/articles/2024/02/13/desktop-dev.aspx
C# versus other languages
Even Microsoft does not use C# and .NET for all its own development needs. You can read an interesting discussion about C# and Rust at the following link:
https://www.reddit.com/r/dotnet/comments/1aezqmg/comment/ko8lnf2/
The key quote at the preceding Reddit link is this:
“There’s been a lot of hype around Rust, and for good reason. But it’s a system language. It’s not like Microsoft is about to go rewrite millions and millions of lines of code and toss out C# (for anyone getting nervous ). They’re just being pragmatic and using an effective tool for the job.”
Free computer science course
Harvard CS50: Introduction to Computer Science: https://pll.harvard.edu/course/cs50-introduction-computer-science
.NET newsletters
There are email newsletters that you can subscribe to get daily or weekly updates, hints, and tips. Some of the better ones include the following:
- Milan Jovanovic’s The .NET Weekly: https://www.milanjovanovic.tech/blog
- C# Digest: https://csharpdigest.net/
- Alvin Ashcraft’s The Morning Dew: https://www.alvinashcraft.com/
- Mukesh’s .NET Newsletter: https://newsletter.codewithmukesh.com/
- JetBrains’ dotInsights: https://www.jetbrains.com/lp/dotinsights-monthly/
Exercise 1.2 – Practice exercises
The following practice exercises will go deeper into the topics for this chapter.
Practice C# anywhere with a browser
You don’t need to download and install VS Code or even Visual Studio to write C#. You can start coding online at any of the following links:
- SharpLab: https://sharplab.io/
- C# Online Compiler | .NET Fiddle: https://dotnetfiddle.net/
- W3Schools C# Online Compiler: https://www.w3schools.com/cs/cs_compiler.php
Alpha versions of .NET
You can (but probably shouldn’t) download future versions of .NET, including alpha versions from the following link:
https://github.com/dotnet/sdk/blob/main/documentation/package-table.md
Warning! Alpha versions are designed to be used only internally by Microsoft employees. Beta versions (official previews) are designed to be used externally and become available from mid-February each year.
For more about using .NET 10 with this book, please see the following link: https://github.com/markjprice/cs13net9/blob/main/docs/dotnet10.md.
Exercise 1.3 – Test your knowledge
Try to answer the following questions, remembering that although most answers can be found in this chapter, you should do some online research or code writing to answer others:
- Is Visual Studio better than VS Code?
- Are .NET 5 and later versions better than .NET Framework?
- What is .NET Standard, and why is it still important?
- Why can a programmer use different languages (for example, C# and F#) to write applications that run on .NET?
- What is a top-level program, and how do you access any command-line arguments?
- What is the name of the entry point method of a .NET console app, and how should it be explicitly declared if you are not using the top-level program feature?
- What namespace is the
Program
class defined in with a top-level program? - Where would you look for help for a C# keyword?
- Where would you look first for solutions to common programming problems?
- What should you do after getting AI to write code for you?
Appendix, Answers to the Test Your Knowledge Questions, is available to download from a link in the README file in the GitHub repository: https://github.com/markjprice/cs13net9.
Exercise 1.4 – Explore topics
A printed book is a curated experience. I have tried to find the right balance of topics to include in this book. Other content that I have written can be found in the GitHub repository for this book.
I believe that this book covers all the fundamental knowledge and skills a C# and .NET developer should have or be aware of. Some longer examples are best included as links to Microsoft documentation or third-party article authors.
Use the links on the following page to learn more details about the topics covered in this chapter:
https://github.com/markjprice/cs13net9/blob/main/docs/book-links.md#chapter-1---hello-c-welcome-net