Book Image

Functional C#

Book Image

Functional C#

Overview of this book

Functional programming makes your application faster, improves performance, and increases your productivity. C# code is written at a higher level of abstraction, so that code will be closer to business requirements, abstracting away many low-level implementation details. This book bridges the language gap for C# developers by showing you how to create and consume functional constructs in C#. We also bridge the domain gap by showing how functional constructs can be applied in business scenarios. We’ll take you through lambda expressions and extension methods, and help you develop a deep understanding of the concepts and practices of LINQ and recursion in C#. By the end of the book, you will be able to write code using the best approach and will be able to perform unit testing in functional programming, changing how you write your applications and revolutionizing your projects.
Table of Contents (19 chapters)
Functional C#
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Summary


Asynchronous programming is a way that we can use to develop a responsive application, and we successfully applied Thread and ThreadPool to achieve this goal. We can create a new thread to run the work, or we can reuse the available threads in thread pool.

We also learned about the asynchronous programming model pattern, which is an asynchronous operation that uses the IAsyncResult interface as its design pattern. In this pattern, we used the two methods that are preceded by Begin and End; for instance, in our discussion, these were the BeginRead() and EndRead() methods. The BeginRead() method started the asynchronous operation when invoked, and then the EndRead() method stopped the operation so that we could fetch the return value of the operation.

Besides the asynchronous programming model pattern, .NET Framework also has a task-based asynchronous pattern to run the asynchronous operation. The concept of this pattern is to represent asynchronous operations in a method and combine...