
Learn C# to build cross-platform apps, websites, and games, covering basics like variables, functions, and loops and advancing to databases and APIs.
Join the complete C sharp master class led by a senior software engineer with cross-platform expertise, teaching how to build apps and websites that run on all devices.
Welcome to the Complete C# Masterclass: Go from Zero To Coding Hero! This comprehensive course is designed to take you on a journey from setting up your coding environment to mastering advanced concepts in C# programming. Whether you're a beginner or have some programming experience, this masterclass is your gateway to becoming a proficient C# developer.
Get ready to kick off your journey into software development! In this section, we guide you through setting up your development environment, an essential step before diving into coding. Learn about the tools you'll be using throughout the course, ensuring you're well-prepared for the hands-on experience ahead.
Time to say "Hello World!" Discover the evolution of the classic "Hello World" program in C#. We'll explore both the traditional and modern approaches, providing a glimpse into the language's progression. This foundational exercise sets the stage for the coding adventures that lie ahead.
Source Code:
Details will be provided in the slides with instructions on how to get the latest source code
Navigate the landscape of two powerful development environments: Visual Studio and Visual Studio Code. We'll guide you through a comprehensive walkthrough, covering essential features and functionalities. Understanding these tools is crucial as we embark on a learning journey that spans various technical topics in software development.
Exploring the Fundamentals of Variables in C#
Welcome to the illuminating world of variables in C#! In this session, we will delve into the basics, uncovering what variables are, their functions, and how their diverse types play essential roles in programming.
Introduction to Variables:
Get ready to grasp the essence of variables. Understand their purpose and the pivotal role they play in storing and manipulating data. We'll explore how different variable types come together to create robust and dynamic programs.
Variable Types:
1. Integer (int):
- Example: `int age = 25;`
- Purpose: Storing whole numbers without fractional parts.
- Use Case: Representing ages, quantities, or any discrete numerical data.
2. String:
- Example: `string name = "John";`
- Purpose: Holding sequences of characters (text).
- Use Case: Storing names, addresses, or any textual information.
3. Double:
- Example: `double salary = 50000.50;`
- Purpose: Storing floating-point numbers with double precision.
- Use Case: Representing monetary values, measurements, or any data requiring decimal accuracy.
4. Decimal:
- Example: `decimal salaryIncrease = 1.15m;`
- Purpose: Precise representation of decimal numbers.
- Use Case: Calculating financial values, percentages, or any situation demanding high precision.
5. Boolean (bool):
- Example: `bool isStudent = true;`
- Purpose: Holding true or false values.
- Use Case: Storing binary information like whether a person is a student or not.
Additional Concepts:
6. Constants:
- Understanding how constants provide a way to define unchangeable values.
7. Enumerations:
- Working with enumerations to create named constant values for a set of related items.
8. String Manipulation:
- Exploring techniques to manipulate and work with strings effectively.
9. Nullable Types:
- Understanding nullable types for scenarios where variables need to represent the absence of a value.
Dive into the intricate world of variables, and witness how mastering their types and functionalities will empower you to craft efficient and dynamic C# programs. Get ready to elevate your programming skills!
Embark on a hands-on journey into the practical application of variables in C#! In the first part of this video series, we explore the fundamental concepts of variable declaration and initialization. Witness the versatility of data types such as integers, strings, doubles, booleans, and decimals, and understand how they can be effectively employed in programming. We'll bring these concepts to life by showcasing a real-world scenario, demonstrating how to combine variables to create a meaningful and comprehensive output. The video also introduces the concept of constants, illustrating their role in maintaining unchangeable values throughout your program. By the end of this part, you'll have a solid grasp of basic variable usage and an understanding of constants in C#.
Source Code:
Details will be provided in the slides with instructions on how to get the latest source code
Continue your journey into the practical realm of variables with the second part of this video series. Building on the foundation established in Part 1, this segment takes you deeper into advanced topics, starting with enumerations.
Understand how enumerations provide meaningful names to related constants, enhancing the readability and maintainability of your code.
The video then delves into string manipulation techniques, demonstrating essential operations such as concatenation and formatting.
Finally, explore the concept of nullable types and their role in scenarios where variables need to represent the absence of a value. By the end of this comprehensive video, you'll have a practical understanding of how to work with a variety of variables in different scenarios, equipping you with essential skills for C#
Source Code:
Details will be provided in the slides with instructions on how to get the latest source code
Exploring Functions and Methods: Theory
Welcome to a fundamental exploration of functions and methods in C#! In this lecture, we dive into the theoretical aspects of these crucial building blocks of code, understanding their roles, structures, and the various types that exist.
Basics of Functions and Methods:
Uncover the core concepts behind functions and methods. Learn how these code segments allow for code reuse, enabling you to define logic once and apply it multiple times. Understand the fundamental nature of a method as a block of code that executes only when called, with the capability to receive data in the form of parameters.
Function with Return Type:
Explore functions that go beyond mere actions by returning a specific type of data. Understand how these functions provide valuable outputs that can be utilized in other parts of your program.
Void Method with Parameters:
Dive into the world of void methods, which perform actions without returning a specific value. Discover how parameters enhance the versatility of methods, allowing you to pass data and customize their behavior.
Recursive Function:
Delve into the concept of recursion, a powerful technique where a function calls itself. Understand the applications and challenges of recursive functions in solving complex problems.
Async Method with Task:
Grasp the principles of asynchronous programming with async methods. Explore how these methods enable non-blocking execution, enhancing the efficiency of your programs.
Extension Method:
Learn about extension methods, a unique feature in C# that allows you to add new methods to existing types without modifying them. Explore the flexibility and elegance that extension methods bring to your code.
List and Array Method Return Types:
Discover how functions can work with different data structures. Explore methods that return lists and arrays, understanding how these dynamic data types enhance the capabilities of your programs.
Why Use Methods?
Solidify your understanding of the importance of methods. Learn the key motivation behind their usage: code reuse. Appreciate the efficiency gained by defining code once and employing it across various sections of your application.
Different Kinds of Functions in C#:
Explore the diverse types of functions available in C#. From functions with return types to void methods, recursive functions, and async methods, grasp the variety and utility each type offers in the C# programming landscape.
This comprehensive lecture equips you with a theoretical understanding of functions and methods, laying the groundwork for practical implementation and code optimization in your C# projects.
Functions and Methods Practical - Part 1
Welcome to the practical exploration of functions and methods in C#! In this first part, we roll up our sleeves and dive into hands-on examples to reinforce the theoretical knowledge gained earlier.
Example 1: Simple Function with Return Type
Experience the power of functions with return types. Witness how a basic function adds two numbers and returns the sum. Apply this newfound understanding to enhance your programs with functions that provide valuable outputs.
Example 2: Void Method with Parameters
Delve into the realm of void methods, performing actions without returning specific values. Learn how parameters enhance method flexibility, allowing you to customize behavior. Utilize a list of names to dynamically greet each person using our void method.
Example 3: Async Method with Task
Explore the realm of asynchronous programming with async methods. Witness the power of non-blocking execution and understand how tasks handle delayed operations. Calculate a delayed sum asynchronously, gaining insights into efficient program flow.
Example 4: Recursive Function
Uncover the elegance of recursive functions. Learn how a recursive factorial function calculates the factorial of a number. Grasp the power and challenges associated with recursive programming.
Functions and Methods Practical - Part 2
As we continue our practical journey into functions and methods, we delve deeper into advanced topics, discovering how to leverage extension methods and work with different data structures.
Example 5: Extension Method
Unlock the ability to add new methods to existing types using extension methods. Witness a practical example of reversing a string, showcasing the flexibility and elegance extension methods bring to your code.
Example 6: List of Strings
Dive into the creation of functions that return lists of strings. Explore a method that generates a list of fruits, providing you with insights into working with dynamic collections of data.
Example 7: Generating an Alphabet
Extend your practical skills by creating a function that dynamically generates the alphabet. Learn the process of populating a character array, offering a glimpse into the versatility of methods in handling more complex scenarios.
Join us in this interactive session, where theory transforms into practical skills, equipping you with the knowledge to apply functions and methods effectively in your C# projects. Let's code together!
Explore decision making in C# through if, else if, switch, and ternary operators, and delve into boolean logic and basic logic gates for clean, compact code.
Master iteration in C# with for, foreach, while, do while, and recursion, including nested loops and tail recursion, plus break and continue controls and exit conditions.
Demonstrate practical decision making with if statements and iteration in a C# console app, covering temperature and voting logic, continue and break, nested loops, bubble sort, and common loop types.
Explore decisions and iterations in a C# console app, covering dual loops, logic gates, switch statements with pattern matching, and ternary and tail recursion, plus practical unit-test exercises.
Develop a console-based number guessing game using random number generation and input validation. Handle guesses with loops until correct, and offer a play-again option with scoring.
Explore object oriented programming (oop) fundamentals, benefits, criticisms, and alternatives, then learn about classes, objects, message passing, composition, delegation, and core principles like abstraction, inheritance, polymorphism, and encapsulation.
Explore composition as a has-a relationship that enables flexible, loosely coupled code by embedding a bank account inside a customer, and learn delegation, aggregation, association, and is-a inheritance.
Explore abstraction, encapsulation, and inheritance in C#, including abstract classes, interfaces, and access modifiers, illustrated by cars, circles, and shapes to show reusable, secure code.
Explore object-oriented programming concepts, including closing abstraction, composition, encapsulation, and inheritance, through practical examples in C#, including dogs and shapes, and highlight polymorphism and design patterns.
Implement homework exercises, solve problems from voltage and circuit power to compound interest, break formulas into rate, principal, and time, and debug unit tests.
Master password validation criteria, including at least eight characters, upper and lower case, digits, and symbols, then reverse strings with a for loop and stringbuilder.
Explore abstraction, composition, encapsulation, delegation, inheritance, and polymorphism through concrete console app examples, including abstract shapes, interfaces, and a car engine scenario.
Learn message passing and delegation between classes, and apply polymorphism with a chess piece base class to move different pieces via a shared interface in a console app.
Develop a Blazor tic tac toe game on a 3x3 grid with two players X and O. Implement win, draw, and full-board rules using a 2D board of squares.
Extend tic tac toe in blazor by implementing row and column loops to detect winning moves, handle draws, and display modal messages while updating the front-end game board.
Wrap up a TicTacToe game in a C# .NET Core 8 project by debugging win and draw logic, updating scores, and maintaining players across resets.
Explore C# interfaces as contracts, enabling multiple inheritance and default implementations from C# 8, compare them with abstract classes, and learn when to use each for flexible, testable code.
Explore interfaces as the power of abstraction and polymorphism in a console app, enabling interchangeable loggers, notifications, data storage formats (csv, json), and modular payment processors.
Learn how interfaces enable extensible, testable code in a console app, with front end components, game management, notifications, and data storage with CSV and JSON.
Builds a Blazor front-end chess game with a home and player card and a chessboard from files a–h and ranks 8–1, handling movement, selection, checkmate, and undo via game manager.
Explore how a Blazor back-end chess game models pieces, a board of tiles, and moves via interfaces, with validation and states like check, stalemate, and queen and pawn moves.
Build a chess rules engine in Blazor by exploring an interface-driven game structure: board setup, piece types, moves validation, king states, and undo/quit functionality.
Extend the chess rules engine by implementing queen moves using diagonal and straight directions, validating board boundaries and opponent occupancy, and integrating with existing bishop and rook logic.
Wrap up the chess rules engine by implementing queen functionality alongside rook and bishop, validating moves, and exploring check, checkmate, and stalemate using interfaces and dependency injection.
Explore data structures and collections in C# across generic and non generic types. Learn arrays, lists, dictionaries, sorted lists, stacks, and queues, and how to choose and use them.
Explore practical array concepts in C# .NET Core 8, including numeric arrays, fruit arrays, and sensory data calculations (average, max, min), with hands-on examples and code navigation.
Explore how lists extend arrays by providing dynamic size and varied initializations, compare list and array usage, and examine practical examples like to-do lists and fruit examples.
Demonstrate how sorted lists keep items in ascending order by key, with C# examples—from months and a booking system with gold, platinum, silver, bronze classes to student names and grades.
Explore dictionaries in C# by building key value pairs, counting word occurrences, and simulating a simple employee database, while comparing simple and sorted dictionaries.
Explore stacks, a last-in, first-out data structure, with push, pop, and peek operations. See how stacks reverse input, power browser history, undo actions, and reverse strings.
Explore queues as first in, first out data structures that maintain order and process one item at a time. Apply to task queues, bank lines, and inter-service messaging.
Explore how hash sets enforce unique values to automatically remove duplicates, demonstrate use cases like deduplicating lists, unique emails, and finding common interests via set operations.
Explore how an observable collection triggers updates when items are added or removed via event handlers, and how those collection changes drive front-end state synchronization.
Build a console to-do app in c# using collections and classes, with add, view, and complete tasks, priority handling, input validation, and json persistence.
NOTE: This course is updated on a regular basis with new topics.
Complete C# Masterclass: Go from Zero To Coding Hero
Welcome to a transformative learning journey where you will master the intricacies of .NET 8 / Core, C# programming, and essential software development principles. Whether you're a beginner eager to dive into the world of coding or an experienced developer looking to refine your skills, this course offers a comprehensive curriculum that covers everything from the fundamentals to advanced topics.
Why Enroll in This Course?
1. Build Real-World Projects: Gain hands-on experience by constructing two projects throughout the course. From setting up an .NET Core MVC project to integrating Entity Framework and implementing sessions, you'll develop tangible skills applicable to professional scenarios.
2. Thorough Understanding of .NET Core: Learn the structure of .NET Core (.NET 8) projects, delve into Blazor, Razor class libraries for Identity, and explore essential concepts like Bootstrap v5, authentication, and authorization.
3. Comprehensive C# Mastery: This course is not just about .NET Core; it's a holistic exploration of C# programming. Understand C# fundamentals, object-oriented programming (OOP), and advanced techniques like threading. Create video games, handle errors effectively, and work with databases using MS SQL Server, Sqlite, and Linq.
4. Full-Stack Development with Blazor: Build beautiful GUIs and explore front-end development using Blazor and Razor. Understand how to design and develop APIs, ensuring a seamless integration between the front end and back end.
5. Dive into Design Patterns: Uncover the power of design patterns, including Strategy, Repository, Builder, Factory, and Unit of Work. Learn when and how to combine multiple patterns for optimal code structure.
6. Master Docker and Deployment: Familiarize yourself with Docker basics and discover how to deploy your website on Microsoft Azure. These skills are essential for modern development environments and showcase your ability to manage and scale applications.
7. Learn by Doing: More than 5 diverse projects will take you from creating an application from scratch to refactoring an existing one and adding new features. In addition having exercises you after every module. This practical approach ensures that you not only understand the theory but can apply it in real-world scenarios.
Course Outline:
1. Programming Fundamentals with C#: Master variables, methods, loops, conditions, and the basics of OOP.
2. .NET Core Deep Dive: Understand the structure of NET Core projects, integrate Identity Framework, and explore advanced concepts like custom tag helpers and view components.
3. Database and Docker Basics: Dive into databases, Docker, and database-related topics such as entities, DTOs, mapping, and Entity Framework.
4. Advanced C# Techniques: Explore threading, asynchronous development, and advanced C# concepts like Linq and Lambda expressions.
5. Design Patterns and Best Practices: Delve into SOLID principles, design patterns, and best practices for creating robust and maintainable code.
6. Git, Github, and Project Management: Learn the essentials of version control with Git, set up repositories, and manage projects effectively using Github.
7. Azure Deployments and Beyond: Understand Azure deployments and gain insights into further career development, including certification preparation and building a strong LinkedIn profile.
Embark on Your Coding Odyssey!
Enroll now and join a community of learners committed to mastering .NET Core and C# programming. Take the first step towards becoming a versatile and skilled developer. Don't just learn to code; learn to create impactful and scalable solutions. Your coding journey starts here!