
Develop a solid beginner’s foundation in C# by building a console calculator, learning data types, input, functions and properties, switch logic, debugging, refactoring, and exploring user interfaces and APIs.
Final source code is attached to this lecture.
Explore what a console app is and how the command line interacts with your C# program through a text-based interface, enabling basic input and output without a graphical user interface.
Learn to create a C# console app in Visual Studio 2019, set an entry point with static void main, print with Console.WriteLine, and explore IntelliSense and autocomplete.
Learn how variables store data in memory, with types like integers and strings, and why memory management and type safety matter for correct operations and avoiding errors.
Explore how methods in C# group code into reusable units, enabling calls in any order and returning results from operations like multiply and divide. Highlight do not repeat yourself.
Learn how namespaces organize related code, such as animals containing dog and cat, enabling import and access. Contrast that with classes, which define objects with properties and methods.
Explore C# basics by defining integer variables a and b, performing addition, subtraction, multiplication, and division, and printing results to the console. Recognize that integer division yields whole numbers.
Learn why integers yield whole numbers and how to use floats and doubles to obtain decimals in C#, converting between numeric types and the differences among integers, floats, and doubles.
Understand the difference between an integer, a float, and a double in C Sharp, including their ranges and use cases for counting, decimals, and financial accuracy.
Create a console calculator that reads two numbers via user input, converts them to integers, and uses a switch statement to perform add, subtract, multiply, and divide.
Learn type conversion in C# by converting integers to strings and strings to integers, and why runtime errors can occur. See why restructuring data is safer than overusing conversions.
Explore how switch case tests a string's length in C#, choosing actions when length is five, greater than five, or less than five. Learn switch syntax and a default case.
Explore building a C# calculator using a switch statement to perform addition, subtraction, and multiplication on two user numbers, with cases, break, and string interpolation.
Learn to use if else in C# to control program flow by comparing a name's length, using == and >, choosing first true branch, with optional else and multiple ifs.
A bug in C Sharp is a mistake that prevents your software from returning data. Read the documentation, understand architecture, and keep code focused with top of the code comments.
Fix a bug from integer division by using float or double types, and learn how number types interact in C# for accurate calculations on desktop and the Apple Watch.
Reorganize code through refactoring by splitting a mixed view and data-fetching block into separate classes to improve clarity. Maintain a clear interface between classes for easier future debugging.
Teach refactoring for junior devs by moving calculation logic into a dedicated calculator class, exposing a public static operation, and separating input/output from computation for clearer, modular code.
Refactor the main program to use a static calculator and streamline input cleansing. Implement a try-catch loop for calculations and keep the app running until the user ends.
Final source code is attached to this lecture.
Think of a project as a room and a solution as the house in Visual Studio. A solution groups projects, enabling reuse of code across solutions.
Refactor your application by moving the calculator class into a new class library within the solution. Add a project reference so the original project can use the library across projects.
Compare public vs private in C# with a party analogy; expose only public methods to protect class internals and prevent spaghetti code.
Learn how to move code into a separate library, make the class public, reference the library from your program, and resolve namespace conflicts to create modular, maintainable C# projects.
Grasp how classes act as blueprints to create objects in C# by defining properties like name and color for each instance and the methods it can perform.
Static in C# makes properties belong to the class, not individual objects, causing shared state across instances. Use the singleton pattern to ensure a single object like a server connection.
Remove static to attach methods to objects, and instantiate a calculator object with a constructor. Object oriented programming centers on objects from classes, while static entry points stay for startup.
Understand how constructors in C# initialize new objects, using the dog example to show how the new keyword passes data to the object, setting its fields during creation.
Use constructors to initialize a calculator and write every calculation to Calculator.log with a stream writer and file class, including date-time stamps for traceable logs.
Refactor the log method from a method stub, implement formatted string output with curly braces for the operator, and centralize log formatting to ease future changes.
Final source code is attached to this lecture.
Breakpoints pause code execution in Visual Studio to inspect variables and methods at a line, aiding you to diagnose bugs by analyzing actual runtime behavior and stepping through code.
Set breakpoints to pause execution and inspect variables in the locals window, and learn how scope modifiers (private and public) prevent global variables from leaking across methods.
Grasp how scope limits variable and method access from inside loops to a class. Store state where it's truly needed, using private access and exposing public properties only when necessary.
Explore debugging techniques by stepping through code, using breakpoints, step into and step over, and inspecting variables and the call stack to understand operations and outcomes.
Understand how memory leaks occur in C# and .NET, driven by event subscriptions and poor scope. See how the garbage collector frees unused memory.
Learn to use Visual Studio diagnostic tools to monitor memory usage and CPU, observe the garbage collector, and identify deliberate memory leaks from large integer lists.
Final source code is attached to this lecture.
Define a user interface as what you see and input, and separate UI from business logic, using XAML for UI and C# for logic, prioritizing UX.
Understand XAML, the Extensible Application Markup Language, to declare the user interface separately from C# business logic, enabling parallel work and using a view model to bridge UI and logic.
Create a Universal Windows Platform app from a C# blank template in Visual Studio, configure minimum and target versions, then build and launch a graphical UI to explore UWP features.
Design a user interface in uwp and xaml with the designer, add a button, adjust its properties, and explore themes and responsive layout for portrait and landscape.
Explore how mvvm structures an app by separating model, view model, and view, with one-way data flow, binding, and a lifecycle that preserves the view model for performance.
Learn how events trigger actions via subscribers or listeners, such as button clicks or server calls, and why unsubscribing prevents memory leaks.
Add a second button on the main page and, on click, set its background to pink with a new event handler and a solid color brush in Windows UI.
Learn how blocking code on the UI thread slows applications and how async/await, promises, and events let operations run in parallel without freezing the interface.
Explore how async await offloads long running tasks from the UI thread to keep apps responsive. Await data fetches and update the UI once results arrive.
Learn how to implement text-to-speech in C# using Windows built-in speech synthesizer with a media element, and use async await to play synthesized audio without blocking the UI.
Final source code is attached to this lecture.
Explore what a list view is in C#, a scrolling list that shows text, photos, or buttons while efficiently loading data to save memory and bandwidth.
Create a universal Windows app in Visual Studio, drop a list view on the main page, and bind it to a fruits list for display and future dynamic web loading.
Compare data classes and structures in C#. Start with a structure, switch to a class when it can do something.
Create a data class named Contact to hold first name, last name, and work, using public properties with get access and optional set to control writes.
Create a contact list view by defining a data template with a grid, binding first name and work to text blocks, using zero-based column and row definitions.
Explore how list views load, recycle, and prefetch cells using a coordinator and data source to keep memory usage low during fast scrolling.
Bind an observable collection of contacts to a list view using the navigated-to lifecycle. Set the ItemsSource to the contacts collection so updates refresh via the coordinator.
Starting AND final source code is attached to this lecture.
Create a master-detail layout with a fixed-width (360) list and a flexible detail pane, using grid column definitions and stack panels, then implement responsive behavior for different screen sizes.
Explore responsive design in c# development, delivering mobile friendly and desktop usable interfaces that adapt to portrait and landscape, stack inputs on small screens, and include a hamburger menu.
Learn to use the visual state manager in UWP apps to create an adaptive master-detail layout. Switch between default and narrow states with a 720-pixel threshold to resize columns.
Enable and handle item clicks in a cross-platform list by wiring the item click event, extracting the clicked contact from the event arguments, and printing the name to the console.
Create a self-contained detail page to display item details from a list. Bind to a contact's first name and last name using x:Bind, and explain one-way versus two-way binding.
Understand how navigation uses a navigation stack to push a details page on top of a list, and how the back button pops it off; a navigation graph defines routes.
Navigate from the contact list to a detail page using a frame, implement a back button with a click handler, and bind its enabled state to navigation.
Adopt a single source of truth by building a data source for a contacts list in MVVM, using a static list and an observable collection for UI updates.
Pass data between pages in a UWP app by sending a contact object through frame navigation and casting it in the detail page.
Listen to visual state changes on the main page to adapt navigation. Use the current state name, default or narrow, to decide navigation or showing details in the side pane.
Add code in the contact list item click that checks the visual state and opens the detail page only when the state is narrow, leaving navigation disabled in other states.
Learn to build a details stack panel with a grid and text blocks, binding the selected contact fields one-way and updating bindings to refresh the display after changes.
Diagnose and fix a bug in the app's click behavior, then enhance the user interface by exploring text block properties and applying better highlight colors and layouts.
Final source code is attached to this lecture.
Learn how application programming interfaces enable client–server communication between an email client and a server. Understand how the API handles requests and responses, authentication, and actions like deleting emails.
Fetch remote data with a get API request from the random test service People Pippo dot IRR, then validate JSON with Jason Lente dot com and display the person data.
Develop a random face app in Visual Studio, and streamline API requests by installing the Flow HTTP library via NuGet to fetch data and images with minimal setup.
Create a c# class to model the json root person and education data, with fields like certificate, university, children, and married to minimize parsing errors.
Use Flurl to fetch remote data from an API, implement a get person method returning root person data, await JSON, map to a root object, and display the work position.
Create a user interface with an image, a name and age text block, a details text block, and a bottom button that generates a new random person from remote data.
Learn how to perform an asynchronous api call in a button click by awaiting a remote data fetch via a get random person wrapper, returning a person, and updating bindings.
Master setting up data bindings for a person’s name, age, and other data using x bind with one-way binding, and run commands to concatenate text for a responsive app.
Display a contact image in a UWP app using an image API with a seed to generate a consistent face, including male or female options and optional fallbacks.
Wire an image view named image, implement insert random image to fetch an SVG via a eurail URL using gender and seed, then center and refine layout.
Learn how to improve C# app usability by hiding text on load, showing a progress bar while data loads, and toggling visibility with a button press using an indeterminate indicator.
--------------------------
- Welcome to the SIMPLEST and EASIEST to understand C# course.
- Designed for COMPLETE beginners who are confused by technical terms.
- Enjoy a stunning visual experience, all concepts are explained with iPad sketches using simple language.
- My job is to make C# EASY PEASY for you!
--------------------------
In this course you will learn the basics of coding in C# using the Dot Net (.Net) framework on Windows. This C# tutorial course is perfect for you if you are a beginner to C#, Visual Studio and .Net
--------------------------
You will be learning from myself, a professional developer with many apps to his name, including one of Europes most popular music streaming services - 100% written in C#!
--------------------------
Even if you know very little about code then this is the perfect course to get you started. I assume that you have ZERO knowledge and are looking to learn everything from scratch as a beginner programmer.
All modules are self contained so you can jump in or out at your pleasure. All source code is also included so you can compare yours to mine.
You will learn:
How to code your first C# console app
How to structure code
How to track down bugs
The principles of good architecture
How to fetch remote images
How to create infinite scrolling lists of data
How to use XAML events
How to use async and await
And a whole lot more!
Some of the technical areas you'll become proficient in are:
Variables
Methods
Classes vs Objects
Number Types
User Input
Logic
Bugs
Refactoring
Logging
Performance profiling
XAML
Universal windows platform (UWP)
Navigation
Responsive design
Data sources
Consuming APIs
By the end you'll have enough knowledge to begin coding your own applications! What's more you'll be able to "think like an engineer" when you want to create your own apps!