Learn advanced C# concepts and techniques such as building caches, cryptography, and parallel programming by solving interesting programming challenges
Key Features
- Gain useful insights on advanced C# programming topics and APIs
- Use locking and cached values to solve parallel problems
- Take advantage of .NET's cryptographic tools to encrypt and decrypt strings
Book Description
C# is a multi-paradigm programming language. The Modern C# Challenge covers with aspects of the .NET Framework such as the Task Parallel Library (TPL) and CryptoAPI. It also encourages you to explore important programming trade-offs such as time versus space or simplicity. There may be many ways to solve a problem and there is often no single right way, but some solutions are definitely better than others. This book has combined these solutions to help you solve real-world problems with C#.
In addition to describing programming trade-offs, The Modern C# Challenge will help you build a useful toolkit of techniques such as value caching, statistical analysis, and geometric algorithms.
By the end of this book, you will have walked through challenges in C# and explored the .NET Framework in order to develop program logic for real-world applications.
What you will learn
- Perform statistical calculations such as finding the standard deviation
- Find combinations and permutations
- Search directories for files matching patterns using LINQ and PLINQ
- Find areas of polygons using geometric operations
- Randomize arrays and lists with extension methods
- Explore the filesystem to find duplicate files
- Simulate complex systems and implement equality in a class
- Use cryptographic techniques to encrypt and decrypt strings and files
Who this book is for
The Modern C# Challenge is for all C# developers of different abilities wanting to solve real-world problems. There are problems for everyone at any level of expertise in C#
Table of Contents
- Mathematics
- Geometry
- Dates and Times
- Randomization
- Strings
- Files and Directories
- Advanced C# and .NET Features
- Simulations
- Cryptography