Video description
C# 2012 Developer Learning Path presents Paul Deitel’s signature “Live Code” treatment of Microsoft’s C# 2012 programming language—over 27 hours of expert video! Every important C# concept is presented in the context of a complete, working C# 2012 program. This LiveLesson contains over 20,000 lines of fully tested C# program code. And developers are free to reuse all of it.
Among the key topics included in this LiveLesson are:
• Databases and LINQ to Entities: The LINQ to SQL technology covered in the previous edition has been replaced with the more robust LINQ to Entities and the ADO.NET Entity Framework;
• Microsofts free SQL Server Express 2012 is used to present the fundamentals of database programming;
• ASP.NET 4.5, Microsofts .NET server-side technology, enables developers to create robust, scalable web-based apps;
Asynchronous programming with async and await. Asynchronous programming is simplified in Visual C# 2012 with the new async and await capabilities.
About the Author:
Paul Deitel is the co-founder of Deitel & Associates, Inc., the internationally recognized programming languages authoring, corporate-training and Internet business development organization. Paul and his father—Harvey Deitel—have written many international best-selling programming-language professional books and textbooks that millions of people worldwide have used to master C++, C, Java™, C#, Visual Basic®, Visual C++®, XML, Perl, Python, and Internet and web programming.
Table of Contents
Setting Up Your Windows 7 Environment
Lesson introduction
Setting up your development environment
Lesson 1: Test-Driving a C# App Using Visual Studio for Windows Desktop on Windows 7
Lesson introduction
Test-Driving a C# App Using Visual Studio for Windows Desktop on Windows 7
Lesson 2: Dive Into® Visual Studio Express 2012 for Windows Desktop
Lesson introduction
Overview of the IDE and creating a new project
IDE Menus and Toolbars
Navigating the IDE
Using Help
Using Visual App Development to Create a Simple App that Displays Text and an Image
Lesson 3: Introduction to C#
Lesson introduction
A Simple C# App: Displaying a Line of Text
Creating a Simple App in Visual Studio
Displaying a Single Line of Text with Multiple Statements
Displaying Multiple Lines of Text with a Single Statement
Formatting Text with Console.Write and Console.WriteLine
Adding Integers
Decision Making: Equality and Relational Operators
Lesson 4: Introduction to Classes, Objexts Methods and Strings
Lesson introduction
Declaring a Class with a Method and Instantiating an Object of That Class
Declaring a Method with a Parameter
Instance Variables and Properties
Value Types vs. Reference Types
Initializing Objects with Constructors
Floating-Point Numbers, Type decimal and Validating Data
Lesson 5: Control Statements: Part 1
Lesson introduction
Class Average Using Counter-Controlled Repetition
Class Average Using Sentinel-Controlled Repetition
Nested Control Statements
Compound Assignment Operators
Increment and Decrement Operators
Lesson 6: Control Statements: Part 2
Lesson introduction
Essentials of Counter-Controlled Repetition
for Repetition Statement
Summing integers with the for statement
Compound Interest Calculations with for
do…while Repetition Statement
switch Multiple-Selection Statement
break Statement Exiting a for Statement
continue Statement Terminating an Iteration of a for Statement
Logical Operators
Lesson 7: Methods: A Deeper Look
Lesson introduction
static Methods: User-Defined Method maximum
Three Ways to Call a Method
Promotion Rules
The .NET Framework Class Library
Shifted and Scaled Random Numbers for Rolling a Six-Sided Die
Roll a Six-Sided Die 6,000,000 Times
Case Study: A Game of Chance; Introducing Enumerations
Scope of Declarations
Method Overloading
Optional Parameters
Named Parameters
A Simple Example of Recursion: Factorial
Passing Arguments By Value and By Reference
Lesson 8: Arrays; Introduction to Exception Handling
Lesson introduction
Creating an Array
Using an Array Initializer
Calculating a Value to Store in Each Element of an Array; Introducing const
Summing the Elements of an Array
Using Bar Charts to Display Data Graphically
Using the Elements of an Array as Counters
Using Arrays to Analyze Survey Results; Introduction to Exception Handling
Card Shuffling and Dealing Simulation; Introducing Arrays of References to Objects and the ToString method
foreach Repetition Statement
Passing Arrays and Array Elements to Methods
Passing Arrays by Value and by Reference
Case Study: GradeBook Using an Array to Store Grades
Multidimensional Arrays
Case Study: GradeBook Using a Rectangular Array
Variable-Length Argument Lists
Using Command-Line Arguments
Lesson 9: Introduction to LINQ and the List Collection
Lesson introduction
Querying an Array of int Values using LINQ
Querying an Array of Employee Objects Using LINQ
Introduction to Collection and the Generic List Class
Querying a Generic Collection Using LINQ
Lesson 10: Classes and Objects: A Deeper Look
Lesson introduction
Time Class Case Study
Controlling Access to Members
Referring to the Current Object’s Members with the this Reference
Time Class Case Study: Overloaded Constructors
Composition
static Class Members
A Note About Constant Fields of a Class
Class View and Object Browser
Object Initializers
Lesson 11: Object-Oriented Programming: Inheritance
Lesson introduction
Base Classes and Derived Classes
Creating a CommissionEmployee Class
Creating a BasePlusCommissionEmployee Class without Using Inheritance
Creating a CommissionEmployee-BasePlusCommissionEmployee Inheritance Hierarchy
CommissionEmployee-BasePlusCommissionEmployee Inheritance Hierarchy Using protected Instance Variables
CommissionEmployee-BasePlusCommissionEmployee Inheritance Hierarchy Using private Instance Variables
Class object
Lesson 12: Object-Oriented Programming: Polymorpishm
Lesson introduction
Demonstrating Polymorphic Behavior with the CommissionEmployee-BasePlusCommissionEmployee Hierarchy
Case Study: Payroll System Using Polymorphism
Creating Abstract Base Class Employee
Creating Concrete Derived Class SalariedEmployee
Creating Concrete Derived Class HourlyEmployee
Creating Concrete Derived Class CommissionEmployee
Creating Concrete Derived Class BasePlusCommissionEmployee
Polymorphic Processing, Operator is and Downcasting
Sealed Methods and Classes
Developing an IPayable Hierarchy
Declaring Interface IPayable
Creating Class Invoice
Modifying Class Employee to Implement Interface IPayable
Modifying Class SalariedEmployee for use with IPayable
Using Interface IPayable to Process Invoices and Employees Polymorphically
Operator Overloading
Lesson 13: Exception Handling: A Deeper Look
Lesson introduction
Example: Divide by Zero without Exception Handling
Example: Handling DivideByZeroExceptions and FormatExceptions
finally Block
The using Statement
Exception Properties
Programmer-Defined Exception Classes
Lesson 14: Graphical User Interfaces with Windows Forms: Part 1
Lesson introduction
Introduction to GUIs
A Simple Event-Driven GUI
Building the Simple Event Example and Viewing the Auto-Generated GUI Code
Delegates and the Event Handling Mechanism
Locating Event Information
Control Properties and Layout
Labels, TextBoxes and Buttons
GroupBoxes and Panels
CheckBoxes
RadioButtons
PictureBoxes
ToolTips
NumericIUpDown Control
Mouse-Event Handling
Keyboard-Event Handling
Lesson 15: Graphical User Interfaces with Windows Forms: Part 2
Lesson introduction
Menus
MonthCalendar Control
DateTimePicker Control
LinkLabel Control
ListBox Control
CheckedListBox Control
ComboBox Control
TreeView Control
ListView Control
TabControl Control
Multiple Document Interface (MDI) Windows
Visual Inheritance
User-Defined Controls
Lesson 16: Strings and Chracters: A Deeper Look
Lesson introduction
string Constructors
string Indexer, Length property and CopyTo Method
Comparing strings
Determining Whether a String Begins or Ends with a Specified String
Locating Characters and Substrings in strings
Extracting Substrings from strings
Concatenating strings
Miscellaneous string Methods
Class StringBuilder Constructors
Length and Capacity Properties, EnsureCapacity Method and Indexer of Class StringBuilder
Append Method of Class StringBuilder
AppendFormat Method of Class StringBuilder
Insert and Remove Methods of Class StringBuilder
Replace Method of Class StringBuilder
Char Methods
Simple Regular Expressions and Class Regex
Regular-Expression Character Classes and Quantifiers
A More Complex Regular Expression
Validating User Input with Regular Expressions and LINQ
Regex Methods Replace and Split
Lesson 17: Files and Streams
Lesson introduction
Using Classes File and Directory
Using LINQ to Search Directories and Determine File Types
BankLibrary: Reusable Class BankUIForm
BankLibrary: Reusable Class Record
Creating and Writing to a Sequential-Access File
Reading Date from a Sequential-Access Text File
Case Study: Credit-Inquiry Program
BankLibrary: Class RecordSerializable
Creating a Sequential-Access File Using Object Serialization
Reading and Deserializing Data from a Binary File
Lesson 18: Generics
Lesson introduction
Motivation for Generic Methods
Generic-Method Implementation
Type Constraints
Generic Classes
Generic Methods That Receive Objects of Generic Classes as Arguments
Lesson 19: Collections
Lesson introduction
Class Array and Enumerators
Class ArrayList
Class Stack
Class ClassHashtable
Generic Class SortedDictionary
Generic Class LinkedList
Lesson 20: Databases and LINQ
Lesson introduction
Relational Databases
Books Database
Books Database: Entity-Relationship Diagram
LINQ to Entities and the ADO.NET Entity Framework
Querying a Database with LINQ: Demonstrating the Display Authors Table App
Querying a Database with LINQ: Creating the ADO.NET Entity Data Model Class Library
Querying a Database with LINQ: Creating a Windows Forms Project and Configuring It to Use the Entity Data Model
Querying a Database with LINQ: Data Bindings Between Controls and the Entity Data Model
Querying a Database with LINQ: Code for the Data Bindings Between Controls and the Entity Data Model
Dynamically Binding Query Results
Dynamically Binding Query Results: Creating the Display Query Results GUI
Dynamically Binding Query Results: Coding the App
Retrieving Data from Multiple Tables with LINQ
Creating a Master/Detail View App
Address Book Case Study
Address Book Case Study: Creating the GUI
Address Book Case Study: Coding the app
Lesson 26: Asynchronous Programming with async and await
Lesson introduction
Basics of async and await
Introduction to the Fibonacci calculation used in Sections 26.3-26.5
Executing an Asynchronous Task from a GUI App
Sequential Execution of Two Compute Intensive Tasks
Asynchronous Execution of Two Compute Intensive Tasksp
Invoking a Flickr Web Service Asynchronously with WebClient