Book Image

C# 6 and .NET Core 1.0

Book Image

C# 6 and .NET Core 1.0

Overview of this book

With the release of .NET Core 1.0, you can now create applications for Mac OS X and Linux, as well as Windows, using the development tools you know and love. C# 6 and .NET Core 1.0 has been divided into three high-impact sections to help start putting these new features to work. First, we'll run you through the basics of C#, as well as object-orient programming, before taking a quick tour through the latest features of C# 6 such as string interpolation for easier variable value output, exception filtering, and how to perform static class imports. We'll also cover both the full-feature, mature .NET Framework and the new, cross-platform .NET Core. After quickly taking you through C# and how .NET works, we'll dive into the internals of the .NET class libraries, covering topics such as performance, monitoring, debugging, internationalization, serialization, and encryption. We'll look at Entity Framework Core 1.0 and how to develop Code-First entity data models, as well as how to use LINQ to query and manipulate that data. The final section will demonstrate the major types of applications that you can build and deploy cross-device and cross-platform. In this section, we'll cover Universal Windows Platform (UWP) apps, web applications, and web services. Lastly, we'll help you build a complete application that can be hosted on all of today's most popular platforms, including Linux and Docker. By the end of the book, you'll be armed with all the knowledge you need to build modern, cross-platform applications using C# and .NET Core.
Table of Contents (25 chapters)
C# 6 and .NET Core 1.0
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Chapter 10 – Working with Files, Streams, and Serialization


  1. What is the difference between using the File class and the FileInfo class?

    The File class has static methods so it cannot be instantiated. It is best used for one-off tasks such as copying a file. The FileInfo class requires the instantiation of an object that represents a file. It is best used when you need to perform multiple operations on the same file.

  2. What is the difference between the ReadByte method and the Read method of a stream?

    The ReadByte method returns a single byte each time it is called and the Read method fills a temporary array with bytes up to a specified length. It is generally best to use Read to process blocks of bytes at once.

  3. When would you use the StringReader, the TextReader, and the StreamReader classes?

    • StringReader is used for efficiently reading from a string stored in memory

    • TextReader is an abstract class that StringReader and StreamReader both inherit from for their shared functionality

    • StreamReader is used for reading strings from a stream that can be any type of text file, including XML and JSON

  4. What does the DeflateStream type do?

    DeflateStream implements the same compression algorithm as GZIP but without a cyclical redundancy check, so although it produces smaller compressed files, it cannot perform integrity checks when decompressing.

  5. How many bytes per character does the UTF-8 encoding use?

    It depends on the character. Most Western alphabet characters are stored using a single byte. Other characters may need two or more bytes.

  6. What is an object graph?

    An object graph is any instance of classes in memory that reference each other, thereby forming a set of related objects. For example, a Customer object may have a property that references a set of Order instances.

  7. What is the best serialization format to choose for minimizing space requirements?

    JavaScript Object Notation (JSON).

  8. What is the best serialization format to choose for cross-platform compatibility?

    eXtensible Markup Language (XML), although JSON is almost as good these days.

  9. Which Microsoft technology uses the DataContractSerializer class by default?

    Windows Communication Foundation (WCF) for creating SOAP services.

  10. Is it possible to create your own custom runtime serializers?

    Yes. Create a class that implements the interface System.Runtime.Serialization.IFormatter. For details, visit:

    https://msdn.microsoft.com/en-us/library/system.runtime.serialization.iformatter(v=vs.110).aspx