Skip to content

fiseni/100DaysOfCSharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

100DaysOfCSharp

This is intended to be an open-source learning platform for everyone who wants to master C#. The idea is born from the twitter community, and the #100DaysOfCode initiative. Since the initiative became focused mostly on front-end and JavaScript, we wanted to create its alternative for the .NET (C# specifically). The #100DaysOfCSharp hashtag would be a meeting point for all developers (newbie or not) who want to share knowledge, tips, resources or information about their journey in mastering C#.

This repository is created to support that idea, and should offer a collection of resources, tutorials and project samples for each corresponding topic. We plan to divide the material into 100 lessons, one lesson per day. This will be a huge undertaking, and might take longer period to finish all the topics. But, once finalized, it will represent an ultimate C# guide for any developer.

Give a Star! ⭐

The intention is to create a project which will be maintained by the community itself, and any contribution is more than welcome. If you feel for collaborating in the project, please contact us, and we'll be happy to send you an invitation. If you like the idea, please give it a star, so it can reach larger audience. Thank you!

List of content

As mentioned, the material is categorized into 100 lessons/topics. In order to keep it simple for the new developers, each lesson will be placed into a separate folder. Each lesson will contain its own solution with corresponding projects. Each folder will contain its own Readme.md with detailed elaboration of the topic, and references to various resources (books, tutorials, blog posts/articles, YouTube videos etc.).

(The list of content is still in the making, and any suggestion is welcome)

Fundamentals

  • Lesson 1 - Introduction (Tools, Editors, Solution and Projects)
  • Lesson 2 - Data Types and Methods (Basic definition)
  • Lesson 3 - Value Types
  • Lesson 4 - Reference Types
  • Lesson 5 - Nullable Reference Types
  • Lesson 6 - Working with String Data
  • Lesson 7 - Enums and Structure Types
  • Lesson 8 - Collections - Part 1
  • Lesson 9 - Collections - Part 2
  • Lesson 10 - Iteration Constructs
  • Lesson 11 - Decision Constructs
  • Lesson 12 - Conditional Operators
  • Lesson 13 - Switch Statement and Switch Expressions
  • Lesson 14 - Methods and Parameter Modifiers

Object-Oriented Programming

  • Lesson 15 - Introduction to Object-Oriented Programming
  • Lesson 16 - Object Initialization and Access Modifiers
  • Lesson 17 - Local Variables and Properties
  • Lesson 18 - Role of this, readonly, static keywords
  • Lesson 19 - Encapsulation
  • Lesson 20 - Inheritance
  • Lesson 21 - Polymorphism
  • Lesson 22 - Base and Abstract Classes
  • Lesson 23 - Interfaces
  • Lesson 24 - Casting (is and as keywords)
  • Lesson 25 - IEnumerable and IEnumerator interfaces
  • Lesson 26 - Exceptions

Advanced Programming

  • Lesson 27 - Generics and Advanced Collections
  • Lesson 28 - Anonymous Types and Methods
  • Lesson 29 - Lambda Expressions
  • Lesson 30 - Delegates and Events
  • Lesson 31 - Extension Methods
  • Lesson 32 - LINQ (Part 1)
  • Lesson 33 - LINQ (Part 2)
  • Lesson 34 - LINQ (Part 3)
  • Lesson 35 - Object Lifetime And Garbage Collection
  • Lesson 36 - Reflection
  • Lesson 37 - Dynamic Types
  • Lesson 38 - Multithreaded Programming
  • Lesson 39 - Async Programming
  • Lesson 40 - Parallel Programming
  • Lesson 41 - Object serialization

Data Access

  • Lesson 42 - Entity Framework (Part 1)
  • Lesson 43 - Entity Framework (Part 2)
  • Lesson 44 - Entity Framework (Part 3)
  • Lesson 45 - Entity Framework (Part 4)
  • Lesson 46 - Entity Framework (Part 5)

Design, Programming Principles and Patterns

  • Lesson 47 - Introduction to Principles and Patterns
  • Lesson 48 - Overview of SOLID Principles
  • Lesson 49 - Single Responsibility Principle (SRP)
  • Lesson 50 - Open/Closed Principle (OCP)
  • Lesson 51 - Liskov Substitution Principle (LSP)
  • Lesson 52 - Interface Segregation Principle (ISP)
  • Lesson 53 - Dependency Inversion Principle (DIP)
  • Lesson 54 - Gang Of Four Design Patterns
  • Lesson 55 - Creational Patterns
  • Lesson 56 - Structural Patterns (Part 1)
  • Lesson 57 - Structural Patterns (Part 2)
  • Lesson 58 - Behavioral Patterns (Part 1)
  • Lesson 59 - Behavioral Patterns (Part 2)
  • Lesson 60 - DRY
  • Lesson 61 - Repository and Unit of Work
  • Lesson 62 - MVC, MVVM
  • Lesson 63 - Domain Driven Design (DDD)
  • Lesson 64 - Bounded Contexts and Aggregates
  • Lesson 65 - Applying DDD and Common Practices
  • Lesson 66 - Event Sourcing
  • Lesson 67 - CQRS

Web Development - ASP.NET

  • Lesson 68 - ASP.NET
  • Lesson 69 - ASP.NET
  • Lesson 70 - ASP.NET
  • Lesson 71 - ASP.NET
  • Lesson 72 - ASP.NET
  • Lesson 73 - ASP.NET
  • Lesson 74 - ASP.NET
  • Lesson 75 - ASP.NET
  • Lesson 76 - ASP.NET
  • Lesson 77 - ASP.NET
  • Lesson 78 - ASP.NET
  • Lesson 79 - ASP.NET
  • Lesson 80 - ASP.NET
  • Lesson 81 - ASP.NET
  • Lesson 82 - ASP.NET

Web Development - Blazor

  • Lesson 83 - Blazor
  • Lesson 84 - Blazor
  • Lesson 85 - Blazor
  • Lesson 86 - Blazor
  • Lesson 87 - Blazor
  • Lesson 88 - Blazor
  • Lesson 89 - Blazor
  • Lesson 90 - Blazor
  • Lesson 91 - Blazor
  • Lesson 92 - Blazor

Desktop Development - WPF

  • Lesson 93 - WPF
  • Lesson 94 - WPF
  • Lesson 95 - WPF
  • Lesson 96 - WPF
  • Lesson 97 - WPF
  • Lesson 98 - WPF
  • Lesson 99 - WPF
  • Lesson 100 - WPF