
Master c# quickly through a theory and practice course that uses business applications to teach object oriented programming with customers, invoices, and products via complete applications and practical exercises.
Explore the fundamentals of .NET and Visual Studio by building Windows Forms with C#. Learn data types, control structures, and object-oriented concepts, plus database access with Entity Framework Core and ADO.NET.
Explore a beginner refresher on Visual Studio and Windows Forms basics, including navigating the IDE, opening and closing projects, and using the form designer, code editor, and solution explorer.
Learn to create Windows desktop apps with Windows Forms, explore dot net options like WPF, UWP, and XAML, and review Visual Studio editions and SQL Server usage.
Open an invoice total form in Visual Studio and inspect the project structure. Explore labels, text boxes, and two buttons for input and output, and keyboard shortcuts that trigger actions.
Add controls to a Windows form using toolbox, double-click, or drag-and-drop, adjust size and position with mouse or properties, and align, space, and resize multiple controls for a polished layout.
Explore how form and control properties shape the Windows Forms interface, including form name, text, position, and size; learn to edit multiple objects, view grouped properties, and use help hints.
Create a new Windows Forms project in Visual Studio for the .NET Framework, name it invoice calculator, and design a form with labels, text boxes, and calculate and exit buttons.
Explore how C# and Windows Forms treat forms and controls as objects created by instantiation, and how properties, methods, and events—via the dot operator and event handlers—drive your code.
Shows how to write C# code in a Windows Forms app to calculate an invoice, handle click events, apply tiered discounts, and display currency and percent outputs.
Visual Studio highlights syntax and build errors, guiding fixes and refactoring. Debugging uses breakpoints and step-through to uncover logical errors and test Windows Forms.
Review essential C# topics for beginners, including primitive string data, control structures, methods, event handlers, exception handling, collections, and Windows Forms basics, with no coding until the end.
Explore common numeric and string data types in C#, including value types versus reference types, bits and bytes, integers, decimals, Unicode characters, ASCII, booleans, and how variables and constants relate.
Declare and initialize variables in C#, recognize that they can change during execution, use the var keyword for type inference, and declare constants with const alongside meaningful names.
Learn to create arithmetic expressions using binary and unary operators in C#. Practice addition, subtraction, multiplication, division, and modulus, plus prefix and postfix increment and decrement, and basic assignment operators.
Master simple and shortcut assignment operators in C# to update variables from literals, other variables, or arithmetic expressions, and learn about increment and decrement operators and the order of precedence.
Learn the order of precedence for arithmetic operations, including how prefix and postfix increments affect evaluation, and how parentheses override precedence to ensure predictable results.
Explore casting in c#, including implicit widening conversions, explicit narrowing conversions, and casting before arithmetic operations, plus casting between integers and characters via Unicode.
Explore the built-in Math class in C#, using static methods like round, pow, sqrt, min, and max via the class name dot method notation, including bankers rounding and random numbers.
Learn to generate pseudo random numbers in C# using the Random class, including seeds, next methods with exclusive upper bounds, and practical examples like dice simulations.
Explore differences between structures and classes, and understand value types versus reference types. Learn data type conversion with ToString, Parse, TryParse, and the Convert class, plus string and number formatting.
Explore numeric formatting in C#, including decimal places, rounding, and the D format for minimum digits, then apply currency, percent, and general formats with the string format method.
Declare a variable in a method for method scope, or in the class for class scope, to allow access across methods and prevent a build error from out-of-scope references.
Explore how enumerations define a set of related constants, where each constant is a member. Learn default values starting at zero and how to assign explicit values in Windows Forms.
Learn how value types cannot store null values, while reference types can, and how nullable value types enable unknown values in C#. Use the ?? and ??= operators.
Build a simple invoice application by hand in Visual Studio, capture subtotal, apply a 25% discount, compute and format the total as currency.
Review the simple invoice app's code to understand the calculate button's data handling and total display, including try parse, a 25% discount, and formatted results.
Add multi-invoice processing with running subtotals, a running total for all invoices, and a current invoice subtotal; include a clear button and class-level totals with precise money rounding.
Enhance a simple invoice application by adding inputs and read-only displays to calculate a running total, count invoices, compute the average invoice amount, and show the last entered subtotal.
Declare running total variables outside the click events to preserve values, then read the subtotal input, apply a 25% discount with Math.Round to two decimals, and update the running totals.
Format discount percent, discount amount, and total as currency; display the subtotal in its text box as an aid, then update invoices, total, and average value using ++ and +=
Format and display running totals by converting numbers to strings, showing total invoices, total amount as currency, and average as currency, then clear input and return focus for next invoice.
Create a clear button click event to reset text boxes and running totals in a simple invoice app, refocusing input and preserving the discount percent.
Run the enhanced invoice calculator to compute discounts, totals, and averages across invoices, view the last subtotal, and see the input focus return to the text box.
Declare class-level decimal variables for the largest and smallest invoice, initialize largest to zero and smallest to decimal maximum value, update with Math.Max/Math.Min, display as currency, and reset on clear.
Learn how boolean expressions drive control structures, master six relational operators, and use short-circuit and logical operators to build efficient, readable conditions, avoiding not operator when possible.
Explore if else and switch statements in C#, evaluate boolean expressions to choose code blocks, use else and elseif branches, and apply braces for block scope and nested conditions.
Master the switch statement in C# to execute actions by a match expression with case labels, a default, and the no fall-through rule, including discount percent by customer type.
Explore switch expressions as a concise alternative to switch statements for mapping values in C#. Note that switch expressions use comma separated cases and end with a semicolon.
Learn how to use the conditional (ternary) operator in C# to select between expressions based on a boolean condition, using ? and :, with optional parentheses.
Enhance an invoice app using nested if statements in Visual Studio, enabling subtotal input, discounts, and totals, with customer-type based discount rates.
Extend the original invoice form by adding a customer type input with a label. Rename the form to frm_invoice_calculator and update designer and code references.
Modify the invoice application's calculate event to capture customer type and subtotal, use string and decimal types, and apply an if-else to calculate discounts.
Use an if-else chain to compute discount percent by customer type and subtotal: R uses 0%, 10%, 25%; C uses 20% or 30%; others get 4%.
Calculate discount amount from total using the discount percent, compute invoice total after discount, and display results as percentage and currency on the form.
Add a customer type with a 40% discount under 500 and 50% for 500 or more, using if statements; also support uppercase and lowercase inputs for R, C, and D.
Convert if blocks to switch-case logic in an invoice calculator, handling customer types r, c, d with specific subtotals and a default 40 percent discount, including lowercase cases.
Compare while and do-while loops in C#: condition at start vs end, yielding zero-or-more or at-least-once iterations; use a counter, respect block scope, and debug infinite loops.
Explore for loops in C#, including initialization, boolean condition, and increment expressions, with examples counting, summing, and computing monthly payments.
Learn break and continue statements to control loop flow in C#, using break to end a loop and continue to restart checks, plus an overview of other jump statements.
Enter the motley investment amount, yearly interest rate, and number of years in the three tax boxes on the form, then press calculate or Enter to display the future value.
Build a Windows Forms future value calculator using a loop, with three inputs (investment, yearly interest rate, years) and a read-only future value display plus calculate and exit.
Capture monthly investment, yearly interest rate, and years on calculation. Compute months and monthly rate, then display the future value in a read-only text box.
Learn to calculate monthly future value with a for loop, updating a decimal value and displaying currency-formatted results from monthly investment and interest.
Initialize input values from text boxes, convert them to numbers with the Convert class, and compute future value by looping monthly investments with a monthly rate, then display the result.
Debug a future value loop in a C# Windows Forms application by using breakpoints, stepping through iterations, inspecting variables, and finishing the loop with a shortcut to verify calculations.
Learn to create and call methods to organize code, use access modifiers, return types, and parameters, and understand method overloading with examples like get discount percent and calculate future value.
Learn to call methods in a form class using this or the current class, with the dot operator; pass arguments by position or by name and handle return values.
Learn how C# optional parameters assign default values when arguments are omitted, simplifying method calls. Place optional parameters after required ones and use named arguments to avoid positional conflicts.
Explore named arguments in C# to call methods by name or by position, mix positional and named arguments, and understand how argument ordering changes in C# 7.2 and later.
Learn how to implement expression-bodied methods in C# 6.0 using the lambda operator to return expressions or run a single statement, with switch expressions for conditional returns, simplifying syntax.
Explain how arguments default to value passing, and how to pass by reference using the rescuer to let a method modify the calling variable.
Learn how to pass arguments by reference in C# using the out and in keywords, initialize and discard out variables, and use TryParse to validate and convert strings.
Learn to create unnamed and named tuples, infer member types, and access members with dot notation; explore returning tuples and using Pascal notation or camel case for member names.
Discover how to return multiple values from a method using tuples instead of out parameters, including deconstruction, discards, and choosing between tuples and class or struct.
Create and wire event handlers for any form or control event using the form designer, including multi-event handling with a single handler. Understand naming and generation from the events list.
Wire events in Windows Forms with default or custom handler names, and use refactoring to keep designer wiring in sync. Understand the delegate pattern, including sender and event args.
Learn to use a single event handler to manage multiple text box events in a Windows Forms app, including clearing future value when inputs change, with a private calculation method.
Split the future value calculation into a private decimal method called calculate future value, accepting monthly investment, monthly rate, and months, and returning the future value.
Wire the text changed event for three input boxes to clear future value until calculate is clicked, then call calculate future value with massive investment, monthly interest rate, and months.
Examine the generated designer code for a Windows Forms app, including initialize components and event wiring (calculate click, text change), and learn when to edit code vs. the form designer.
Use a get invoice amount method that accepts customer type and subtotal to compute discount percent, discount amount, and invoice total.
Refactor the invoice calculation into a method that returns a tuple with discount percent, discount amount, and invoice total, and update calls and event handling for readability.
Learn to prevent crashes by handling exceptions and validating input in a future value application, and display error dialogs for format, arithmetic, overflow, and divide-by-zero errors.
Display a dialog box to communicate messages and exceptions using the show method, with a title and an OK button, and learn to handle yes, no, cancel, and ignore responses.
Handle runtime errors with structured exception handling using try and catch blocks to prevent crashes, display error dialogs, and guide users to enter valid numbers.
Learn how exceptions are objects with properties and methods, name the exception in a catch block, and use message, get type, ToString, and stack trace to diagnose and log errors.
Order catch blocks from most specific to least specific when a try block may throw multiple exceptions, such as format and overflow, and use a finally block for cleanup.
Learn to throw exceptions in C# by creating new exceptions with messages, rethrowing existing ones, and using throw expressions, with examples in future value checks and input parsing.
Wrap the future value form logic in a try-catch block to catch invalid inputs during decimal conversion, display the exception message in a message box, and improve input validation.
Attach specific exception handlers for format and overflow errors in the future value calculator, display tailored messages, and reinforce a robust try-catch structure.
Validate user input by checking required values, converting text to numbers, and enforcing range limits with error messages until all entries are valid.
Create generic data validation methods that validate any entry, use decimal-based arithmetic for numeric checks, and implement range validation, reusable in windows forms or class libraries.
Centralize validation for multiple form entries, checking decimals for market investment and interest rate, validating integers with the N32 method, enforcing range, and displaying error messages.
Improve the future value application with data validation that prevents format and overflow errors and shows descriptive dialog messages for invalid input in monthly investment, percent-sign rate, and years.
Enhance a future value calculator by implementing data validation and exception handling in a Windows Forms app, validating decimals and integers, and enforcing input ranges via text box tags.
Apply data validation for future value calculations by creating private decimal and integer validators and range checks, using text box names to generate error messages shown in a message box.
Implement a unified range validation method for decimals and integers in a Windows Forms app, using try-parse and range checks to produce error messages displayed in a message box.
Develop a private isData method that calls validation methods for decimal input, range checks, and years, aggregates error messages, shows a message box, and returns true on success.
Validate user input with range, decimal, and integer checks to safely compute future value; implement reusable, robust methods and error messaging for reliable financial calculations.
Improve the invoice application by implementing a try catch exception handling in the calculate click event, validating decimal inputs, and displaying error messages for format and overflow issues.
Learn to validate an invoice subtotal in a Windows Forms app by parsing input to decimal, enforcing a 0–10000 range, and handling errors with if checks and exceptions.
Explore arrays and collections as containers for related data, using one dimensional arrays to store monthly values, and learn how to create, declare, and initialize in the dot net framework.
Learn to assign values to array elements in C# using zero-based indexing, handle out-of-range errors, and declare arrays with explicit length or inferred types (var).
Explore working with arrays using the length property to sum elements and compute averages, then use loops to fill, display, and present results in a message box.
Learn how to use foreach loops to work with arrays in C# and compare it to for loops, showing examples that display elements and compute averages without counters.
Explore rectangular two-dimensional arrays in c#, including creating 2d arrays with rows and columns, default zero initialization, and assigning values via row and column indices or nested brace initializations.
Demonstrates working with rectangular arrays, using get length to determine row and column counts, indexing elements, and building a string displayed in a message box with nested for loops.
Learn to create jagged arrays, or arrays of arrays, with rows of unequal length. Use the new keyword and separate brackets to index and assign values in one statement.
Learn to work with one dimensional arrays using the array class, including length and upper bound, sorting, and binary search for values in ascending, sorted arrays.
Learn how arrays are reference types that allow multiple variables to reference the same array, and how to copy arrays or create larger or smaller ones using copy methods.
Learn how to define C# methods that return and accept arrays, use bracketed return types, and apply the params keyword for array or value arguments.
Explore how the null conditional operator simplifies testing for nulls in arrays and objects, and prevents null reference exceptions with concise, short-circuit examples using arrays, collections, and custom objects.
Learn to refer to array elements from the end using an index-from-end and the range operator, with inclusive start and exclusive end, and to store ranges with the var keyword.
Learn about two collection classes: non-generic collections that store any object and generic typed collections that enforce a specified type with angle brackets to catch errors at compile time.
Compare typed and untyped collections to show how compile-time checks prevent runtime errors and reduce casting. Contrast ArrayList with List<T> to demonstrate generics enforce type safety and enable cast-free summing.
Explore using the list class in C# to create lists with types like string and decimal, set capacity, and apply insert and remove at, while capacity doubles when full.
Learn to manipulate a list in C# using collection initializers, index access, insert and remove operations, foreach to display elements, and contains and binary search for efficient queries.
Create and load a sorted list with add, collection initializer, or index initializer, using item numbers as keys and unit prices as values, with automatic sorting by key.
Learn how a sorted list enables key-based lookups using key and value properties, with a foreach loop over key–value pairs. Compare this to regular lists that index by position.
Explore queue and stack collections in C# by applying enqueue and dequeue, push and pop, and compare fifo and lifo behavior using while loops.
Explore ArrayList usage in C# by comparing typed and untyped collections, master boxing and unboxing for value types, and casting on retrieval to the appropriate type.
Learn to build an invoice app using an array to store up to five totals, display them on exit in a currency-formatted message box, and handle index out of range.
Adds specific handling for index out of range when entering invoices, displaying a custom message box for up to five invoices, and transitions from using an array to a list.
Learn to build an invoice totals calculator using both an array and a list, populating totals and displaying identical results via message boxes at exit.
Learn to implement a future value calculator in a Windows Forms app using a rectangular array as a calculation table, storing monthly investment, interest rate, and years.
Display future value calculations using a rectangular array with nested loops that format results in a tabular message box, illustrating indexing, iteration, and debugging in a Windows Forms app.
Explore dates and times in C# using the DateTime structure. Create values with new DateTime(year, month, day, hour, minute, second, millisecond) or Parse and TryParse, format, and use ticks.
Learn to use the datetime structure to get current date/time, date-only values, and formatting, plus day of year, days in month, leap year, and weekend vs weekday.
Explore adding time spans to dates using the add method, subtracting to find the interval between two dates, and extracting components from DateTime and TimeSpan values.
Discover how to work with strings in C# by creating string objects or string builders, using properties and methods, indexing characters, and splitting strings into substrings.
Explore string operations in c#: access characters by index, use length, check starts with and ends with, utilize index of and last index of, modify with remove, insert, replace, substring.
Explore string handling in C# by trimming input, extracting names with index of and substring, parsing addresses with split, and using insert and replace to format phone numbers and dates.
Learn to validate numeric user input with Parse and TryParse by using NumberStyles to restrict characters, combining flags with pipes, and supplying a culture-aware format provider using culture info.
Learn to enable nullable reference types in C# 8, understand non-nullable defaults, declare nullable references with ?, read compiler warnings, and suppress with ! at project or file level.
Learn to use the string builder class to create mutable strings for efficient appending, inserting, removing, or replacing characters with dynamic capacity in C#.
Format numbers with standard and custom numeric formats using the string.Format static method, specifying format tokens, width and alignment, and applying currency, decimal and thousand separators for multiple values.
Learn to format dates and times using the class's formatting method and codes, mirroring numeric formatting, with examples to guide you.
Learn how interpolated strings in C# 6.0 simplify formatting numbers, dates, and times using the dollar sign and expressions, and compare them to the format method for readability.
Build a simple c# windows forms date handler that calculates a person’s age and the days between two dates, showing day of week born and supporting future or past dates.
Calculate days between today and a user-entered future date using a TimeSpan, display current date, future date, and days until in a message box, with negative days for past dates.
Compute the user's age from their birth date when the calculate button is clicked, adjusting for partial years, and show the result with a long date format.
build a c# windows forms app to demonstrate string manipulation: split a full name into first, middle, last; format a phone number with two text boxes and three buttons.
Capture full name input, trim it, and split by spaces to handle one, two, or three names; capitalize the first letter and show the result in a message box.
Learn to implement a string manipulation feature in a C# Windows Forms app that capitalizes the first letter, lowercases the rest, and extracts first and last names from user input.
Trim whitespace, remove special characters, and collect digits only, then format a 10-digit number with hyphens and display the result in a message box.
Learn to validate and parse currency input with the globalization namespace, using TryParse and currency number styles to support different cultures in a future value application.
Learn to build Windows Forms applications with multiple forms and a variety of controls, including combo boxes, list boxes, group boxes, radio buttons, and check boxes, using .NET.
Load and manipulate combo boxes and list boxes using a for each loop to load month names into a combo box, add items, and manage selections with selected index.
Compare check boxes and radio buttons, noting radio buttons are mutually exclusive in a group while check boxes operate independently. Use the checked property and the checked changed event.
Set tab order in a Windows Forms form using the tab order view to assign sequential indexes for controls, determining the focus sequence including group boxes and access keys.
Master using the most useful Windows Forms controls and their members, while leveraging Microsoft documentation to explore additional controls via the left pane.
Learn to build Windows applications with two or more forms by creating new forms from templates or adding existing ones, using the add form dialog, and adjusting namespaces.
Visual Studio generates form code in a project namespace matching the project name, wires event handlers to form events, and uses the form name from the add new item dialog.
Learn how to rename a form in Visual Studio: use the rename command or press F2, decide to rename all references, and update related event handler wiring for consistency.
learn how the main method starts a Windows Forms app by creating and running the initial form, enabling visual styles, setting text rendering, and selecting the startup main method.
Learn to display a form as a dialog box using the show dialog method, configure control box and maximize options, and use modal versus modeless forms to control user flow.
Pass data between a form and a dialog box by using the show dialog method with the dialog result enumeration, and optionally transfer data via the tag property.
Learn to use the message box class to display dialogs with text, caption, buttons, and a default button, using the show method, and interpret user responses via dialog result enumeration.
Learn to use a dialog box to cancel the form closing event, prompt to save data, and conditionally close based on yes, no, or cancel choices.
Demonstrate two-form payment workflow with a customer form and a payment dialog box, including selecting a customer, who charges the card, default billing method, and saving with the safe button.
Build a customer form from scratch for the payment application, adding a combo box for customer names, a label for the payment method, and save and exit buttons.
Build the customer form in the Windows Forms payment app, populate the dropdown with customers, and implement event-driven unsaved change tracking that clears the payment label on customer change.
Learn to implement a payment selection workflow: open the payment form, handle OK/cancel, capture whether credit card or bill via a tag, and validate and save data via separate methods.
Implement a private void save data method that simulates saving by clearing the dropdown and payment field, refocusing for the next transaction, and add boolean data validation for entry errors.
Implement a payment application's customer form closing event to warn users about unsaved changes, prompt for save with a yes/no/cancel message box, validate data, and save or cancel.
Populate the payment form's credit card type list with Visa, MasterCard, and American Express, defaulting to the first item, and populate expiration month and year dropdowns with a select prompt.
Provide validation for the payments form in a windows forms app by checking credit card type, card number, and expiration month and year, then show errors and save data when valid.
Create a save data method that builds a billing message for the customer form, including card type, number, expiration date, or a bill, with default billing and form tagging.
Toggle between credit card and bill customer by enabling and disabling relevant controls, such as the credit card type, number, expiration date, and saving the payment data.
The customer form uses a data safe boolean to track safety; the payment dialog stores data in the tank property, validates on save, and prompts on close for unsaved data.
Populate the payment form with a list box and two combo boxes, validate input on ok, then save and display the payment info, closing the form with ok dialog result.
Enhance a future value application by using a combo box for number of years and a list box to display future values, naming them CBO years and LSD future values.
Create the load event handler to populate the years combo box with 1 through 20 by looping, set the default to year 3, and adjust the form code.
Modify the future value app to source years from the dropdown, convert to integer, and display yearly future values in a list box with currency formatting.
Debug future value application in a C# Windows Forms course by adjusting the loop to display yearly values in a combo and list box for 20 years at 7 percent.
Learn to create and use your own classes within a three-tier architecture, separating presentation, middle, and database layers to organize business objects and data access.
Explore a product class with private fields, public properties, and two constructors, and learn how public and private access modifiers control access and display text method uses description and price.
Learn object instantiation from a class by creating product instances with new or default constructors, and using object initialization and implicit typing to set properties.
Add a class file to your project to create a user defined class; Visual Studio auto-generates the class declaration, after which you add fields, constructors, properties, methods, and other members.
Learn how to declare and use fields in a class, including instance and static fields and access modifiers. Understand read-only fields, similar to constants, but set at runtime.
Define a typed property with a public access modifier and get and set accessors. Provide a private backing field of the same type; getters return and setters assign using value.
Call class methods using the public modifier and apply method overloading to provide multiple methods with unique signatures defined by parameter count or type. IntelliSense aids selecting the correct overload.
Explore how constructors initialize object state, overload constructors with parameters, and use this to reference current class members, including default and parameterized forms.
Explore static members and static classes in C#, accessing members without creating objects, using static methods for validation, and referencing static members via class name or using directives.
Manage products with a simple product maintenance app using three classes—the product, a file-handling class, and a validator—and forms to add, delete, and display products from a file.
Learn to build a product maintenance form in C# that loads and displays products, adds and deletes items, updates file, and validates input with validator's decimal and present methods.
Demonstrate object oriented programming by building two Windows forms: a main product list with add, delete, and exit, plus a new product form for code, description, and price.
Build a public product class with code, description, and price properties, including constructors and overloaded display text methods to format data for a Windows Forms app.
Create a public static validator class to validate user input, including non empty checks, decimal and integer checks, range enforcement, and descriptive messages for product form fields.
Build a product db class to handle text file input and output, read pipe-delimited lines into product objects, and prepare to write data back to the file.
Implement a static method to save a product list to a file using a stream writer, writing each product’s code, description, and price separated by pipes.
Code the product maintenance form to load products from file into a class-level list, display in a list box with a tab-separated get display, and implement add and delete.
Demonstrates deleting a selected product after user confirmation, removing it from the products list, saving the updated list to the product DB, and refreshing the list box.
Trigger the add product button to open the new product form, capture input, create a new product, save, and refresh the list box.
Develop a product maintenance workflow by opening a new product form, validating code, description, and price inputs, and saving valid data to update the product object.
Build a product maintenance application that validates input, creates new product instances with code, description, and price (decimal), saves to a text file, and displays items in a list.
Explore auto implemented properties in C#, where the compiler creates a private backing field and exposes get and set accessors, including init-only properties via the init keyword.
Learn expression-bodied properties and expression body accessors in C#, returning expressions instead of private fields, and refactor read-only and writable properties with get and set bodies.
Learn to implement expression-bodied methods and constructors in C#, using lambda expressions to return expressions or perform statements, and convert existing methods to expression bodies for consistency.
Learn how pattern matching simplifies type testing in C# by replacing get type and typeof checks with if and switch forms, using is and not operators on product objects.
Explore property patterns in C# 8.0 to simplify switch expressions by testing object types and properties, including product and vendor objects, with concise, pattern-based logic.
Structures define value types with less memory and faster instantiation than classes. Use them for small data and primitive-like types such as int and datetime; they lack inheritance.
Learn how to declare and initialize a structure, create instances with and without new, compare structures using equals, and copy value types without affecting the original.
Learn the syntax for creating records, how records support inheritance, and how equality compares property values, plus using the with keyword to copy and modify records.
Build a two-form customer maintenance app with a list box, add and delete flows, and save to a text file, capturing first name, last name, and email with validation.
Create a customer class with public constructors, properties for first name, last name, and email, plus a get display text method, and introduce a customer db and validator class.
Create a public static Viator class and a private static validator, with a present method for required text fields and an is_valid_email check for '@' and '.'.
learn to read and write customers to a text file with a static customer class, using pipe-delimited fields (first name, last name, email) to build a customer list.
Create a public static save customer method that writes each customer's first name, last name, and email to a file using a file stream and stream writer.
Develop a customer maintenance form by loading a static customer database into a private list, and refreshing a listbox with each customer's first name, last name, and email.
Delete a selected customer from the list box after confirmation in a yes/no message box. Save the updated customers to a text file and refresh the list box.
Create a click event to add a customer, open the customer form for first name, last name, and email, save, and update the customers list and file.
Create and manage a private customer object with a public get-customer method that opens a dialog. Return the customer object after validating first name, last name, and email.
Validate first name, last name, and email on save; create a new customer object and return to the main form, with changes saved to a file and deletions reflected.
Converts the customer maintenance app from class to struct, preserving validation, file save, and list box display. Shows when simple data structures fit object oriented programming.
If you’re ready to add C# to your skill set, there’s no better way to do that than with this course. The course mimics typical college C# course. It uses a mix of theory and practice to help you master C# effectively and quickly.
The exercises for each section guide you through the development of C# Windows Forms applications and challenge you to apply what you’ve learned in new ways. Because you can download the starting points for these exercises from Resources section of each exercise, you get the maximum amount of practice in a minimum of time. And because you can also download the solutions, too, you can check your work and correct any misconceptions right away.
All of the examples presented in this course are drawn from business applications. This is deliberate as it helps you understand OOP aspects of C# programming. This becomes especially apparent in the object-oriented programming section, where you are presented with business classes like customers, invoices, and products so you can see how object-oriented programming is used in the real world.
To help you develop applications at a professional level, this course presents complete applications. That way, you can see the relationships between the C# code, objects, properties, methods, and events that an application requires, which is essential to your understanding.
Each section also contains a lot of theory, some essential, other more advanced. Even if you are a more practical learner who prefers hands on exercises to Powerpoint slides, I am sure you will come to appreciate the huge amount of code snippets and detailed information the theory parts of this course has to offer. And, the theoretical videos are a great video reference that you can use quickly and effectively to learn more about any basic or advanced C# feature or programming concept.
So, if you are ready to boost your C# skills to the next level, this course is here to help and deliver concrete results.
See you in the course!