Beginning C# 7 Hands-On – Advanced Language Features - Tom Owsiak - E-Book

Beginning C# 7 Hands-On – Advanced Language Features E-Book

Tom Owsiak

0,0
37,19 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

An advanced C# beginners guide to some of the tougher parts of the C# language!

About This Book

  • Learn C#, Visual Studio, and object-oriented programming
  • Get practical examples of advanced C# language features so that you can easily master them yourself
  • Use the C# programming language to work generics and lambda expressions
  • Program C# and SQL Server 2017
  • Get ready for your first MVC applications

Who This Book Is For

This book is for anyone who is interested in learning how to program the more advanced aspects of the C# language. Previous programming knowledge of C# is required, at least to the level of basic object-oriented programming. Readers can benefit from first reading Tom Owsiak's companion book, Beginning C# 7 Hands-On – The Core Language, as a preparation for the more advanced elements and techniques presented in this book.

What You Will Learn

  • Learn C# advanced language elements and techniques
  • Discover advanced C# techniques with hands-on working examples
  • Build on your knowledge of OOP by using C# generics and lambda expressions
  • Work with C# and LINQ custom data types
  • Program C# and SQL Server 2017 to manage and query data
  • Create your first full MVC application

In Detail

Beginning C# 7 Hands-On – Advanced Language Features assumes that you've mastered the basic elements of the C# language and that you're now ready to learn the more advanced C# language and syntax, line by line, in a working Visual Studio environment. You'll learn how to code advanced C# language topics including generics, lambda expressions, and anonymous methods.

You'll learn to use query syntax to construct queries and deploy queries that perform aggregation functions. Work with C# and SQL Server 2017 to perform complex joins and stored procedures. Explore advanced file access methods, and see how to serialize and deserialize objects – all by writing working lines of code that you can run within Visual Studio.

This book is designed for beginner C# developers who have mastered the basics now, and anyone who needs a fast reference to using advanced C# language features in practical coding examples. You'll also take a look at C# through web programming with web forms.

By the time you've finished this book, you'll know all the critical advanced elements of the C# language and how to program everything from C# generics to XML, LINQ, and your first full MVC web applications. These are the advanced building blocks that you can then combine to exploit the full power of the C# programming language, line by line.

Style and approach

A comprehensive book that blends theory with just the right amount of practical code implementations, to help you get up and running with the C# programming language and its advanced features. You'll also get to work with other tools and technologies that complement C# programming. Each core part of the C# language is coded as you learn, and code output is tested every time to verify the syntax is working as expected, so it's easy for you to learn directly from the working code examples. Advanced-level features of C# will be used to code and work through examples.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 270

Veröffentlichungsjahr: 2017

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Beginning C# 7 Hands-On – Advanced Language Features

 

 

 

 

 

 

 

 

 

 

 

Learn the advanced-level features of C# 7 using Visual Studio 2017

 

 

 

 

 

 

 

 

 

 

Tom Owsiak

 

 

 

 

 

 

 

 

 

 

 

BIRMINGHAM - MUMBAI

Beginning C# 7 Hands-On – Advanced Language Features

 

Copyright © 2017 Packt Publishing

 

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

 

First published: October 2017

Production reference: 1271017

 

Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.

ISBN 978-1-78829-426-3

 

www.packtpub.com

Credits

Author

Tom Owsiak

Copy Editor

Tom Jacob

Project Editor

Suzanne Coutinho

Proofreader

Safis Editing

Acquisition Editor

Dominic Shakeshaft

Indexer

Pratik Shirodkar

Content Development Editor

Gary Schwartz

Graphics

Kirk D'Penha

Technical Editor

Gaurav Gavas

Production Coordinator

Arvindkumar Gupta

About the Author

Tom Owsiak has eight years of experience as a teacher in Mathematics, Physics, Statistics, and Programming. He has worked for five years as a database programmer using various technologies such as .NET, Clipper, SQL, SQL Server, SAS, and Excel, and many related technologies.

Tom is the publisher of one of the most successful courses on Udemy, called Learn C# With Visual Studio 2013. Currently, Tom works as a Mathematics and Computer Science teacher at Mercy College in Dobbs Ferry, NY.

www.PacktPub.com

For support files and downloads related to your book, please visit www.PacktPub.com. Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

https://www.packtpub.com

Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career.

Why subscribe?

Fully searchable across every book published by Packt

Copy and paste, print, and bookmark content

On demand and accessible via a web browser

Customer Feedback

Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial process. To help us improve, please leave us an honest review on this book's Amazon page at https://www.amazon.com/dp/1788294262.

If you'd like to join our team of regular reviewers, you can email us at [email protected]. We award our regular reviewers with free eBooks and videos in exchange for their valuable feedback. Help us be relentless in improving our products!

Table of Contents

Preface

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Downloading the color images of this book

Errata

Piracy

Questions

Creating a Simple Generics Class

Creating a generics class

Working with different data types

Making parameters that are generic

Displaying the values

Adding a button to Default.aspx

Initializing a collection of integers to their array and displaying the results

Changing the data types in our generics class

Running the program

Accumulating the input

Chapter review

Summary

Creating a Generic Method

Creating a button to exchange and then comparing two values

Writing a swap function

Comparing values using the CompareTo method

Introducing constraints

Completing the GenMethods class

Hardcoding the values

Running the program

Modifying the program for an additional type of comparison

Modifying the program for different data types

Chapter review

Summary

Implementing a Generic Interface to Accomplish Sorting

Adding a button to sort and display results

Creating a generics interface class

Implementing the interface

Adding a virtual function

Adding refinements

Entering the reference code

Upcasting

Downcasting

Running the program

Chapter review

Summary

Making Delegates More Flexible with Generics

Adding a summarize button to the HTML

Constructing a delegate

Assigning functions to represent the delegate

Calling the delegate

Running the program

Summary

Creating and Using Generic Dictionaries

Adding a show button to the HTML

Starting a process from a web page

Making a verbatim string

Iterating over key-value pairs

Making a directory and creating a file from Command Prompt

Chapter review

Summary

Connection Between Delegates and Lambda Expressions

Adding a Show Results button to the HTML

Adding delegates

Setting up the variables

Making objects of the delegate type

Defining lambda expressions

Operating an array

Working with actions

Chapter review

Summary

Expression-Bodied Lambdas and Expression-Bodied Members

Adding a box and a Find Max button to the HTML

Making the delegate

Defining an expression-bodied member

Converting an array of strings into an array of doubles

Creating an expression-bodied lambda

Comparing values

Specifying the parameters

Running the program

Chapter review

Summary

Anonymous Methods and Objects That Run Their Own Delegates

Adding a Show Results button to the HTML

Streamlining writing functions

Performing an action on all of the values

Making an anonymous function or method

Starting a thread

Running and modifying the program

Chapter review

Summary

C# with LINQ and Built-In Types

Adding a Show Values button to the HTML

Adding namespaces

Working with the IEnumerable generic interface

Converting an array to a list of integers

Determining the values in a collection

Converting the values back to a list

Extracting values from the list and sorting them

Running the program

Chapter review

Summary

C# with LINQ and Custom Data Types

Adding a Show People button to the HTML

Setting up a database

Making a custom type using LINQ

Setting up an array of people

Querying the array

Running the program

Chapter review

Summary

Using Query Syntax to Construct Queries

Adding a show button to the HTML

Creating a decimal salary array

Working with range variables

Selecting a salary range and putting it in descending order

Displaying the results

Observing deferred execution

Making a dictionary

Working with key-value pairs

Querying the data in the key-value pairs

Running the program

Chapter review

Summary

Queries That Perform Aggregation Functions

Adding a show button to the HTML

Creating an array

Averaging the values in a list

Displaying the results

Using the Count function

Working with a list of lists

Adding students to the classList

Summarizing the information in the classList

Running the program

Chapter review

Summary

Using LINQ to Summarize Tuples

Adding a show tuple summary values button to the HTML

Introducing tuples

Adding namespaces

Making a list with a tuple

Returning the tuples

Making a list of doubles

Summarizing the list

Displaying the results

Running the program

Chapter review

Summary

Summarizing Results with Grouping

Adding a Show Results button to the HTML

Adding namespaces

Creating the student class and defining fields

Making a list of students

Grouping names

Displaying the grouped results

Chapter review

Summary

Joining Datasets with Inner Joins

Adding a Join Classes button to the HTML

Adding the namespaces

Creating the person and car classes

Making person objects

Making car objects

Making a list of owners and their cars

Joining the owners and car lists

Getting and displaying the results

Running the program

Chapter review

Summary

Downloading, Installing, and Running SQL Server 2017

Downloading SQL Server 2017 express

Selecting the installation type

Installing the package

Working with SQL server inside Visual Studio

Creating a SQL server database

Adding and defining a table

Adding fields to the table

Updating the structure of the database

Chapter review

Summary

Writing Code to Manually Connect to a Table and Retrieve Records

Adding a show records button to the HTML

Adding a namespace

Making the connection string

Connecting to SQL Server

Catching exceptions

Displaying errors

Opening the connection

Working with the SQL Server data reader

Running the program

Chapter review

Summary

Inserting Records into Tables Using Stored Procedures

Adding text boxes and a button to the HTML

Reviewing what you created already in SQL Server

Creating a new stored procedure

Updating the database structure

Adding a namespace

Building the connection string

Initializing the connection

Catching exceptions

Trying out commands

Adding the parameters

Saving the information for later retrieval

Recognizing the role of indexers

Running the program

Chapter review

Summary

Using the Nullable Feature to Make Apps More Stable

Adding a Show People button to the HTML

Adding a field to the people database

Modifying the dbo.People table

Writing the code for this project

Creating the person class

Making the properties

Making the list of people

Building the connection string

Entering the SQL-related code

Adding people to the list from the table

Displaying the records

Running the program

Chapter review

Summary

Connecting a Chart Control to SQL Server

Placing a chart into the HTML page

Adding a button to the HTML page

Adding a new table to the People database

Enabling auto-incrementation

Adding values to the new table

Coding the project

Adding a namespace

Building the connection string

Writing a SQL query

Making the command object

Opening the connection and making a SQL data reader

Running the program

Modifying the program to display the Y values

Chapter review

Summary

Using LINQ to Operate on Tables from SQL Server

Changing the data in the ExperimentValues table

Summarizing the fields

Adding the namespaces

Building the connection string

Making the SQL connection

Making an adapter

Making a data table

Populating the table with data

Displaying the summed values

Running the program

Adding comments

Chapter review

Summary

Creating a Page That Saves Text to Disk

Creating an application to save text

Creating the user interface for your project

Starting to code the project

Catching an exception

Creating a StreamWriter class

Creating a StreamReader class

Running the program

Chapter review

Summary

Creating a Page That Uses the File Upload Control

Starting our project from scratch

Adding a namespace

Saving a file to a specific location

Saving the file

Displaying messages to the user

Determining which files are stored in a directory

Determining the return type

Exploring the exceptions for EnumerateFiles

Catching the exceptions

Running the program

Chapter review

Summary

Serializing and Deserializing Objects

Adding two buttons to the HTML

Beginning to code the project

Adding namespaces

Creating a serializable class

Adding features to the serializable class

Defining the path for saving a file

Making a Person object

Handling unmanaged resources

Making a binary formatter

Serializing an object

Testing the program

Rebuilding an object from a hard drive

Displaying the results

Running the program

Chapter review

Summary

Having a Little Fun with Images with Pixel Manipulations

Manipulating an image

Adding a button and an image control to the HTML

Adding a namespace

Making a bitmap

Saving an image as a bitmap picture

Accessing a pixel's location

Manipulating the pixels

Converting the picture to a byte array

Sending out the image URL

Running the program

Chapter review

Summary

Saving an Image to SQL Server

Adding buttons and a list box to HTML

Creating a database table to store the files

Storing image files on your hard drive

Adding namespaces

Coding the application

Testing the scanning the folder function

Building the connection string

Using of the connection string

Running the program

Chapter review

Summary

Creating and Using an XML File

Adding a button to HTML

Coding the XML

Adding a namespace

Loading the XML file into your program

Iterating over the contents of the XML file

Displaying the results

Running the program

Chapter review

Summary

Creating XML Files with C#

Adding a button to HTML

Adding namespaces

Coding the XmlWriter settings

Writing to the hard drive

Formatting the results

Running the program

Chapter review

Summary

Querying XML Documents with LINQ

Adding a text box and a button to HTML

Adding namespaces

Clearing the output

Building an element tree

Saving the store XML file

Testing the program

Searching for items that meet a specific criteria

Selecting among the items that meet the search criteria

Displaying the results

Running the program

Chapter review

Summary

Preface

Beginning C# 7 Hands-On – Advanced Language Featuresassumes that you’ve mastered the basic elements of the C# language and that you're now ready to learn the more advanced C# language and syntax, line by line, in a working Visual Studio environment. You'll learn how to code advanced C# language topics including generics, lambda expressions, and anonymous methods. You'll learn to use query syntax to construct queries and deploy queries that perform aggregation functions. You'll work with C# 7 and SQL Server 2017 to perform complex joins and stored procedures. Explore advanced file access methods, and see how to serialize and deserialize objects—all by writing working lines of code that you can run within Visual Studio. You'll also take a look at C# through web programming with web forms. By the time you’ve finished this book, you’ll know all the critical advanced elements of the C# language and how to program everything from C# generics to XML, LINQ, and your first full MVC web applications. These are the advanced building blocks that you can then combine to exploit the full power of the C# programming language, line by line. This book is designed for beginner C# developers who have mastered the basics now, and for anyone who needs a fast reference to using advanced C# language features in practical coding examples.

What you need for this book

Visual Studio 2017, which will install and run on Windows 7 or above, and 2 GB or 4 GB of RAM is recommended. A minimum 20-50 GB of hard disk space is essential for typical installations.

Who this book is for

This book will appeal to anyone who is interested in learning how to program in C#. Previous programming experience will help you get through the initial sections with ease, although it's not mandatory to possess any experience at all.

Conventions

In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning. Code words in text, database table names, folder names, filenames, file extensions, path names, dummy URLs, user input, and Twitter handles are shown as follows: "Specifically, Default.aspx is a file that contains the markup of the elements on the web page."

A block of code is set as follows:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"> <asp:ListItem>Monday</asp:ListItem> <asp:ListItem>Tuesday</asp:ListItem> <asp:ListItem>Wednesday</asp:ListItem></asp:DropDownList>

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"> <asp:ListItem>

Monday

</asp:ListItem> <asp:ListItem>

Tuesday

</asp:ListItem> <asp:ListItem>

Wednesday

</asp:ListItem></asp:DropDownList>

New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "If you wish, click on Browse and save the file to a location you choose and click on OK."

Warnings or important notes appear like this.
Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of. To send us general feedback, simply email [email protected], and mention the book's title in the subject of your message. If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

You can download the example code files for this book from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files emailed directly to you. You can download the code files by following these steps:

Log in or register to our website using your email address and password.

Hover the mouse pointer on the

SUPPORT

tab at the top.

Click on

Code Downloads & Errata

.

Enter the name of the book in the

Search

box.

Select the book for which you're looking to download the code files.

Choose from the drop-down menu where you purchased this book from.

Click on

Code Download

.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

WinRAR / 7-Zip for Windows

Zipeg / iZip / UnRarX for Mac

7-Zip / PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Beginning-CSharp-7-Hands-On-Advanced-Language-Features. We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Downloading the color images of this book

We also provide you with a PDF file that has color images of the screenshots/diagrams used in this book. The color images will help you better understand the changes in the output. You can download this file from https://www.packtpub.com/sites/default/files/downloads/BeginningCSharp7HandsOnAdvancedLanguageFeatures_ColorImages.pdf.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title. To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.

Piracy

Piracy of copyrighted material on the internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the internet, please provide us with the location address or website name immediately so that we can pursue a remedy. Please contact us at [email protected] with a link to the suspected pirated material. We appreciate your help in protecting our authors and our ability to bring you valuable content.

Questions

If you have a problem with any aspect of this book, you can contact us at [email protected], and we will do our best to address the problem.

Creating a Simple Generics Class

In this chapter, you will look at the basics of making a simple generic class so that one class can operate on many different data types. A great benefit of generics is flexibility.

Creating a generics class

Bring up a project, and go to Solution Explorer; right-click, select Add, and click on Class. Name the class GenericsClass; a simple generics class. Then, click on OK. When the Visual Studio message comes up, click on Yes.

For our purposes, you don't need any of the using System lines at the top, nor any of the comments underneath, so delete them. Your initial screen should look like Figure 1.1.1:

Figure 1.1.1: The initial GenericsClass.cs screen

Working with different data types

Now, let's put a <T> symbol after where it says public class GenericsClass, as follows:

public class GenericsClass<T>

This means that this single class can work equally well with several different data types. Next, enter the following beneath the open curly brace under the preceding line:

private T[] vals;

Enter the following comment directly above this line:

//generic array instance variable

In other words, this will operate equally well on doubles, decimals, integers, and so on.

Adding a button to Default.aspx

Now, let's take a look at Default.aspx. The only thing we really need to do at this time is to add a Button control. For this, go to Toolbox and grab a Button control from there. Drag and drop it below the line beginning with <form id=... (you can delete the <div> lines, as we won't be needing them). Change the text on the Button control to, for example, Display Values. Your complete Default.aspx file should look like the one shown in Figure 1.1.2:

Figure 1.1.2: The complete HTML for this project

Now, go to the Design view. Our very simple interface is shown in Figure 1.1.3:

Figure 1.1.3: Our very simple interface in the Design view

Running the program

Now, let's take a look. When you run this code and click on the Display Values button, your screen will look like the one shown in Figure 1.1.4:

Figure 1.1.4: The initial run of our code

Summary