Intermediate C# and .Net Core

This lab-intensive program enhances your basic knowledge with advanced constructs and industry best practices. This course enables you to refine your skills, using the latest C# features to develop high-quality software solutions. From employing raw literals for cleaner code to applying tuples for improved data structures, and managing resources effectively for globalized applications, the course is designed to strengthen your programming foundation for immediate application in a multitude of projects.

Description

Overview

Intermediate C#/.Net Core Programming is a five-day lab-intensive program that enhances your basic knowledge with advanced constructs and industry best practices. Proficiency in C# is imperative for creating scalable, robust applications. This course enables you to refine your skills, using the latest C# features to develop high-quality software solutions. From employing raw literals for cleaner code to applying tuples for improved data structures, and managing resources effectively for globalized applications, the course is designed to strengthen your programming foundation for immediate application in a multitude of projects.

The curriculum is crafted to ensure a balanced mix of theoretical and practical learning, with 50% of the course dedicated to hands-on labs, mirroring real-world challenges. You will enhance your understanding of design patterns and SOLID principles, creating code that's as resilient as it is reliable. Engage in test-driven development with XUnit, and master generics to optimize your coding efforts. With an industry-expert instructor guiding you through each topic, you’ll gain invaluable insights into effective problem-solving and practical application of your new skills.

You’ll exit the course equipped with a solid understanding of intermediate C# principles, ready to be applied to your role professional work. You'll emerge with the capability to write more maintainable, efficient, and scalable code, seamlessly integrating advanced C# features into your daily development tasks.

Course Objectives

After completing this course working in a hands-on learning environment, guided by our expert team, attendees will learn to:

  • Proficient Use of Advanced C# Constructs
  • Application of Design Patterns and SOLID Principles
  • Development of Robust Classes and Exception Handling
  • Test-Driven Development with XUnit
  • Effective Implementation of Generics and LINQ
  • Concurrency and Asynchronous Programming

Who Should Attend

This is an intermediate-level .Net programming course, designed for experienced C# developers. This course is NOT for new developers, developers new to C#, or those without a programming background.

Course Outline

Module 1: Overview of New Features

  • Apply modern C# enhancements to streamline code development and maintainability.
  • Type specifiers
  • Raw Literals
  • Top-level statements
  • Records
  • Global Usings
  • Tuples
  • Deconstruction

Module 2: Design Guidelines

  • Develop code that adheres to industry-standard design guidelines for clarity, sustainability, and effectiveness.
  • Conventions
  • Class Design guidelines
  • Exception Design guidelines
  • Common Design Patterns

Module 3: Robust Classes

  • Construct robust classes with advanced property and function implementations for more dynamic and responsive code.
  • Properties
  • Functions
  • Delegates
  • Events

Module 4: Unit Testing with XUnit

  • Implement test-driven development with XUnit to ensure the creation of reliable, bug-resistant applications.
  • Utilizing Test Driven Development (TDD)
  • Survey of Unit test frameworks
  • Using XUnit
  • Mocking with Moq

Module 5: Exceptions

  • Master sophisticated exception handling techniques for more robust error management in applications.
  • Syntax
  • Exceptions vs Return code
  • Testing for exceptions

Module 6: Generics

  • Utilize generics to create flexible, reusable, and type-safe code structures, reducing redundancy.
  • Generic Classes
  • Generic Functions
  • Understanding invariance
  • Survey of Generics in the .Net Library

Module 7: Delegates

  • Leverage delegates to design more versatile and modular code with methods as first-class objects.
  • Methods as objects
  • Generics and Delegates
  • Delegates in the library

Module 8: Events

  • Efficiently manage and respond to application events through proper event definition and handling.
  • Defining
  • Register/Deregister

Module 9: Lambda Expressions

  • Streamline event handling and delegate instantiation using concise lambda expressions.
  • Using lambdas to generate a delegate

Module 10: Inheritance

  • Implement inheritance and polymorphism to create extensible and maintainable object-oriented designs.
  • Syntax
  • Override/Virtual
  • Abstract
  • Polymorphism

Module 11: SOLID Principles & Design Patterns

  • Apply SOLID principles and design patterns to diagnose and refactor code smells for improved software architecture.
  • Design Smells
  • Single Responsibility
  • Open/Close
  • Liskov’s Substitution Principle
  • Using SOLID to correct design smells

Module 12: Interfaces

  • Design and utilize interfaces effectively to decouple code and enhance modularity and testability.
  • Interface motivations and SOLID
  • Interface Segregation
  • Dependency Inversion
  • Default interface methods

Module 13: LInQ

  • Manipulate collections efficiently using LINQ queries and extension methods for more expressive data operations.
  • Extension Methods
  • Linq API
  • Linq Query

Module 14: Attributes, Reflection & Metadata

  • Employ reflection and attributes to manipulate metadata and enhance the functionality of code at runtime.
  • Reflections basics
  • Attributes

Module 15: Resources & Globalization

  • Manage application resources and adapt to different cultures and languages for global software compatibility.
  • Resource Bundles
  • Specifying Language/Region

Module 16: Threads, Tasks, Async/Await

  • Develop efficient, responsive, and scalable applications using advanced concurrency and asynchronous programming techniques.
  • Creating Threads
  • Coordinating threads
  • Tasks
  • Async/Await

Module 17: Basics of Entity Framework

  • Leverage Entity Framework for streamlined data access and manipulation, utilizing code-first or database-first approaches effectively.
  • DbContext
  • Code first vs Db first
  • Entities
  • Mapping

Module 18: Survey of GUI Applications

  • Explore and understand the latest trends in GUI application development to create intuitive and modern user experiences.
  • MAUI
  • Blazor
  • Asp.Net

Prerequisites

Students should have development skills at least equivalent to the following course(s) or should have attended one of these as a pre-requisite:

Similar courses

This course is designed to create PL/SQL blocks both anonymous and named. This course will cover PL/SQL objects and data types. It will also cover packages and how to debug and improve performance within PL/SQL. It will address deploying PL/SQL objects and using Oracle pre-define packages, procedures, and functions.

More Information

Students who attend this course will leave armed with new skills to leverage modules, scale applications into multi-core environments, and improve the performance of Java 9 applications. This course will teach students everything they need to successfully master and implement the latest features and benefits of Java 9 and become a more effective Java 9 developer.

More Information

In this course you will, explain core programming fundamentals such as computer storage and processing, create and use variables and constants in programs, discuss how to create and use functions in a program, use decisions structures in a computer program, create and use repetition (loops) in a computer program, explain pseudocode and its role in programming, implement object-oriented programming concepts, and identify application errors and explain how to debug an application and handle errors.

More Information

In this course, you will create single page web applications using the MVC pattern of AngularJS, understand the programming model provided by the AngularJS framework, define Angular controllers and directives, and control Angular data bindings.

More Information

In this course, you will develop single page Angular applications using Typescript, set up a complete Angular development environment, create components, directives, services, pipes, forms and custom validators, handle advanced network data retrieval tasks using observables, consume data from REST web services using the Angular HTTP Client, handle push-data connections using the WebSockets protocol, work with Angular Pipes to format data, and use advanced Angular Component Router features.

More Information

This course is designed for people who want to learn the Python programming language in preparation for using Python to develop software for a wide range of applications, such as data science, machine learning, artificial intelligence, and web development.

More Information

In this course, you will apply recommended practices for effective and efficient automation with Ansible, perform automation operations as rolling updates, use advanced features of Red Hat Ansible Automation Platform to work with data, including filters and plugins, create automation execution environments to contain and scale Red Hat Ansible Automation, and leverage capabilities of the automation content navigator to develop Ansible Playbooks.

More Information

In this course, you will learn the most common DevOps patterns to develop, deploy, and maintain applications on the AWS platform. We will explore the core principles of the DevOps methodology and examine a number of use cases applicable to startup, small- to medium-sized business, and enterprise development scenarios.

More Information

In this course, you will expand your Python proficiencies, select an object-oriented programming approach for Python applications, create object-oriented Python applications, create a desktop application, create data-driven applications, create and secure web service-connected applications, program Python for data science, implement unit testing and exception handling, and package an application for distribution.

More Information

This course will teach you the fundamentals of programming in R to get you started. It will also teach you how to use R to perform common data science tasks and achieve data-driven results for the business.

More Information

In this course, you will develop web content in HTML, enhance its formatting and layout using CSS, and add interactivity using JavaScript.

More Information

In this course, you will practice and deploy serverless solutions on AWS.

More Information

In this course, you will learn to accelerate the process to prepare, build, train, deploy, and monitor ML solutions using Amazon SageMaker Studio.

More Information

In this course, you will develop and deploy VBA modules to solve business problems.

More Information

This course provides detailed information on the architecture of an Oracle Database instance and database, enabling you to manage your database resources effectively. You learn how to create database storage structures appropriate for the business applications supported by your database. In addition, you learn how to create users and administer database security to meet your business requirements. This course provides basic information on backup and recovery techniques.

More Information

In this course, you will use Microsoft Power Apps to build and deploy low-code business apps.

More Information

This 2-day virtual workshop puts the distributed agile team members through their paces, by showing them how to conduct the five (5) scrum ceremonies, while simulating key activities within a sprint, all while working remotely and using their own project (for private classes) as a case study for the exercises.

More Information

This hands-on course teaches participants how to integrate Git and GitHub into their daily command-line workflow. Git operations, customizations of Git functionality, and how to connect to Git via Eclipse are covered as well.

More Information

This course shows you the fundamentals of building IT infrastructure on the AWS platform. You learn how to optimize the AWS Cloud by understanding AWS services and how they fit into cloud-based solutions. You explore best practices and design patterns to help you architect optimal IT solutions on AWS, then build and explore a variety of infrastructures through guided, hands-on activity. You learn how to create fledgling architectures and build them into robust and adaptive solutions.

More Information

This fundamental-level, full-day course is intended for individuals who seek an overall understanding of the AWS Cloud, independent of specific technical roles. It provides a detailed overview of cloud concepts, AWS services, security, architecture, pricing, and support. It includes lab exercises reinforcing some of the core concepts of the lecture. This course also helps you prepare for the AWS Certified Cloud Practitioner exam.

More Information

In this course, you will learn how to use the AWS SDK for developing secure and scalable cloud applications. The course provides in-depth knowledge about how to interact with AWS using code and covers key concepts, best practices, and troubleshooting tips.

More Information

During this 5-day course, students will learn Transact-SQL as implemented in SQL Server 2008, 2012 and 2014. The course starts by establishing a foundation understanding of database concepts and terminology. Students are then prepared to use various Microsoft tools to submit queries and view the result.

More Information

Explore Oracle 19c DB Architecture, DBCS Deployments, Managing Database Security, Backup and Recovery, Monitoring and more.

More Information

Explore Next-Level DBA Skills: Backup & Recovery, Working with Grid Infrastructure, Upgrading Oracle and more.

More Information

This course is a continuation of AZ-040T00: Automating Administration with PowerShell, taking a deep dive into the development of PowerShell cmdlets and modules and features both hands on labs and challenging exercises to help you practice the skills presented in class. Time will be spent on the theory of how to design cmdlets as well as the proper structure of the programming code to facility cmdlets that work with the PowerShell piping in keeping with community standards.

More Information

Building on concepts introduced in Architecting on AWS, Advanced Architecting on AWS is intended for individuals who are experienced with designing scalable and elastic applications on the AWS platform. Building on concepts introduced in Architecting on AWS, this course covers how to build complex solutions which incorporate data services, governance, and security on AWS. This course introduces specialized AWS services, including AWS Direct Connect and AWS Storage Gateway to support Hybrid architecture.

More Information

This course teaches developers how to create end-to-end solutions in Microsoft Azure. Students will learn how to implement Azure compute solutions, create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, implement authentication and authorization, and secure their solutions by using Key Vault and Managed Identities. The course also covers monitoring, troubleshooting, and optimizing Azure solutions.

More Information

This course provides the knowledge and skills to design and implement DevOps processes and practices. Students will learn how to plan for DevOps, use source control, scale Git for an enterprise, consolidate artifacts, design a dependency management strategy, manage secrets, implement continuous integration, implement a container build strategy, design a release strategy, set up a release management workflow, implement a deployment pattern, and optimize feedback mechanisms.

More Information

Learn to Think Like a Programmer: Jumpstart your C#/.Net Core coding skills in this engaging, skill-focused programming basics course. Getting started with Programming, OO and C#/.Net Core Basics for Non-Developers is a fast-paced, five day course designed to provide you with a first look at how to code to a very basic level. You’ll gain light hands-on programming experience, while you begin your journey to develop a programmer's mindset.

More Information

Geared for experienced developers, Programming in C#/Creating Apps in C# and .Net Core (20483) is a five day, hands-on course that provides you with the skills required to create applications in C# and .Net Core. Throughout the hands-on course you’ll explore and learn the basics of Visual C# program structure, language syntax, and implementation details, and then consolidate their knowledge throughout the week as they build an application that incorporates several features of the .NET Core 5.

More Information

This course teaches developers how to create applications using the SQL API and SDK for Azure Cosmos DB. Students will learn how to write efficient queries, create indexing policies, manage and provision resources, and perform common operations with the SDK.

More Information

This course introduces a process for effectively planning and designing a functional, efficient database. Knowing how to plan a relational database is important to the success of the databases you create. Without planning, you cannot possibly know what the database needs to do, or even what information to include in the database. Planning a database is essential and prevents the extra work of fixing data maintenance problems later on.

More Information