Introduction to C# and .
NET Framework
Overview of C# language and its history.
Understanding the .NET framework and its components.
Setting up the development environment.
Basic Syntax and Data Types
Variables, constants, and data types.
Operators and expressions.
Control flow statements (if, switch, loops).
Date conversion
Object-Oriented Programming (OOP)
Classes and objects.
Inheritance, polymorphism, encapsulation, and abstraction.
Interfaces and abstract classes.
Exception Handling
Try, catch, and finally blocks.
Custom exceptions.
Retry mechanism
Best practices for error handling.
Collections and Generics
Arrays, lists, dictionaries, HashSet, Concurrent other collection types.
Compare the two list in bulk instead of foreach loop
Insert one list into another list without foreach loop.
Reusable list instead creating multiple lists with same data.
Advantage of using Dictionaries and sorted Dictionaries compare to other array handle options
Introduction to generics and their benefits.
Using LINQ with collections.
Delegates and Events
Understanding delegates and their uses.
Events and event handling.
Lambda expressions and anonymous methods.
File I/O and Serialization
Reading from and writing to files.
Asynchronous Programming
Introduction to async and await keywords.
Threading – Thread, Pool, Task-based, Parallelism asynchronous pattern.
Handling asynchronous exceptions.
Concurrency and parallel proceeds async
Deadlocks and Race Condition
Synchronization (Locks, Mutex, Semaphore Slim)
Tasks and Task. Run ()
Database Access
Connecting to databases using [Link].
Entity Framework and ORM (Object-Relational Mapping).
With and without Transaction scope how to access the data.
Performing CRUD operations.
Dapper
LINQ to SQL or any database
Connection Pooling and Transactions
Passing single connection across methods.
Copyright 2024, Ramco Systems Limited. Information subject to change. All rights Page 1 of 3
acknowledged.
Unit Testing and Debugging
Writing unit tests with X-Unit frameworks.
Debugging techniques and tools.
Best practices for testing and debugging.
Advanced Topics
Reflection and metadata.
Dependency injection and design patterns.
Performance optimization and memory management.
CQRS Pattern
About CQRS pattern
How to create new solution file, Project
Command
Command Handler
Repository
Writing test cases and coverage should be 100%
Coding Standard
Memory Management
Garbage Collection
I Disposable and using Statement
Weak References
Memory Leaks and Profiling
Entity Framework
Introduction to Entity Framework:
Overview of ORM (Object-Relational Mapping)
Benefits of using Entity Framework
Entity Framework vs. Entity Framework Core
Setting Up the Environment:
Installing Entity Framework Core
Setting up SQL Server and SQL Server Management Studio
Basic Concepts:
Understanding DbContext and DbSet
Creating and configuring a database context
Defining entity classes and relationships
Implementing DTO
Database Operations:
CRUD operations (Create, Read, Update, Delete)
Using LINQ to query the database
Executing raw SQL queries
Migrations:
Creating and applying migrations
Managing database schema changes
Rolling back migrations
Advanced Features:
Lazy loading, eager loading, and explicit loading
Handling concurrency
Working with stored procedures and views
Performance Optimization:
Query optimization techniques
Copyright 2024, Ramco Systems Limited. Information subject to change. All rights Page 2 of 3
acknowledged.
Caching strategies
Profiling and debugging
Code First Approach:
Defining the domain model
Configuring relationships and constraints
Seeding the database with initial data
Database First Approach:
Reverse engineering an existing database
Updating the model from the database
Copyright 2024, Ramco Systems Limited. Information subject to change. All rights Page 3 of 3
acknowledged.