Download PDF Pro Asynchronous Programming with NET Richard Blewett Andrew Clymer Rock Solid Knowledge Ltd 9781430259206 Books
Pro Asynchronous Programming with .NET teaches the essential skill of asynchronous programming in .NET. It answers critical questions in .NET application development, such as how do I keep my program responding at all times to keep my users happy? how do I make the most of the available hardware? how can I improve performance?
In the modern world, users expect more and more from their applications and devices, and multi-core hardware has the potential to provide it. But it takes carefully crafted code to turn that potential into responsive, scalable applications.
With Pro Asynchronous Programming with .NET you will
- Meet the underlying model for asynchrony on Windows—threads.
- Learn how to perform long blocking operations away from your UI thread to keep your UI responsive, then weave the results back in as seamlessly as possible.
- Master the async/await model of asynchrony in .NET, which makes asynchronous programming simpler and more achievable than ever before.
- Solve common problems in parallel programming with modern async techniques.
- Get under the hood of your asynchronous code with debugging techniques and insights from Visual Studio and beyond.
Download PDF Pro Asynchronous Programming with NET Richard Blewett Andrew Clymer Rock Solid Knowledge Ltd 9781430259206 Books
"This for anyone interested in more than just asynchronous programming. It allows to build a deeper understanding of the .Net asynchronous concepts and goes all the way to a custom scheduler.
Most of it demonstrated with code samples.
Helped me quite a bit."
Product details
|
Tags : Pro Asynchronous Programming with .NET [Richard Blewett, Andrew Clymer, Rock Solid Knowledge Ltd] on . <em>Pro Asynchronous Programming with .NET</em> teaches the essential skill of asynchronous programming in .NET. It answers critical questions in .NET application development,Richard Blewett, Andrew Clymer, Rock Solid Knowledge Ltd,Pro Asynchronous Programming with .NET,Apress,1430259205,Computer science,Microsoft .NET Framework,Microsoft software,Parallel programming (Computer science),B,COMPUTER,COMPUTERS / Programming / Microsoft,COMPUTERS / Software Development Engineering / General,Computer Applications,Computer Books Languages,Computer/Languages,Computers,Computers - Languages / Programming,Computers / Programming Languages / C#,Computers Programming Languages - C#,Computers/Programming Languages - C#,Computers/Software Development Engineering - General,How-to/Do-it-yourself,Informatik, EDV / Informatik,Microsoft and .NET,Microsoft programming,Non-Fiction,Operating systems,Professional,Professional and Applied Computing,Programming - Microsoft,Programming Languages - C#,Software Development Engineering - General,Software Engineering,Software Engineering/Programming and Operating Systems,United States,async; developer; development; ASP.NET; threading; Microsoft; performance,async;developer;development;ASP.NET;threading;Microsoft;performance,COMPUTERS / Programming / Microsoft,COMPUTERS / Software Development Engineering / General,Computers / Programming Languages / C#,Computers Programming Languages - C#,Computers/Programming Languages - C#,Computers/Software Development Engineering - General,Programming - Microsoft,Programming Languages - C#,Software Development Engineering - General,Computers - Languages / Programming,Computers,Computer Books Languages,Microsoft programming,Operating systems,Software Engineering,Informatik, EDV / Informatik
Pro Asynchronous Programming with NET Richard Blewett Andrew Clymer Rock Solid Knowledge Ltd 9781430259206 Books Reviews :
Pro Asynchronous Programming with NET Richard Blewett Andrew Clymer Rock Solid Knowledge Ltd 9781430259206 Books Reviews
- Though relatively short (319pp), Richard Blewitt and Andrew Clymer have managed to cover pretty much every facet of current Async development for the .NET platform. I initially picked up the book to get their take on TPL Dataflow but ended up reading the entire book in a couple of days and gained several new insights.
Chapters 1-3 introduce async concepts and trace the evolution of asynchronous development (truly async, not necessarily "parallel") up to and including the familiar Task and Task<T>. Even if you've done async programming in .NET before, these chapters do a nice job bringing the concepts together and is worth your time.
Chapter 4 ("Basic Thread Safety") patiently guides the reader through both the concepts/necessity of atomic operations as well as an overview of .NET's synchronization primitives. It's worth reading through two or three times to really cement your understanding of what's actually behind lock { }, for instance.
Chapter 5 provides a somewhat thin but reasonably complete discussion of concurrent data structures. There are nice nuggets of wisdom if read carefully. For instance, the ConcurrentDictionary class requires a single-threaded lock on all objects when the hash table behind the scenes encounters a lot of collisions. The remedy estimate the working size and pass that into the constructor. Good stuff.
Chapter 6 discusses async UI and the gotchas associated with improper attempts to update the UI thread from an outside thread. While Visual Studio does a good job of guiding developers through these errors, an understanding of the concepts in this chapter make it that much easier to write UI-aware code from the get-go.
Chapters 7-8 naturally lead to the "new" (not really that new anymore) async and await keywords in C#/VB along with useful Task operations. The discussion of how async/await functions are rewritten as state machines is very useful and might make you curious enough to write a simple async function and view the resulting code in Reflector. My only slight criticism of this chapter is that the known holes in the Task-oriented async/await implementation aren't discussed in any real detail. I would suggest searching for "Tomas Petricek c# async gotchas" in addition to avoid unnecessary debugging headaches.
Chapter 9 discusses server-side async. If you're developing solutions for ASP.NET Web Forms/MVC/Web API or WCF you're sure to find some useful info. Surprisingly, the authors omitted discussing the incredibly useful [...] class and its ProcessRequestAsync overridable function. If you're a little closer to the metal on ASP.NET then I'd suggest adding this to your list of topics to learn about.
Chapter 10 highlights the extremely awesome (that's the technical phrase) TPL Dataflow library. Andrew Clymer knocks it out of the park with an easily understandable overview, including use cases and diagrams. After reading this chapter you'll immediately think of real-world applications that will save you a ton of effort. I would also suggest searching for "Stephen Toub inside TPL DataFlow Channel 9 MSDN". Though it is from 2011, the core concepts remain the same with optimizations and enhancements in the latest library available on NuGet.
Chapter 11 (Parallel Programming) might be considered a bit of a bolt-on, especially after considering the in-depth async material of the earlier chapters. The discussion of Parallel.For and Parallel.ForEach are good introductions to these classes and the authors do a nice job distinguishing between async and parallel. The section on PLINQ - though well-written - is pretty much wasted space as you would be wise to avoid PLINQ in production scenarios. The authors go out of their way to be tactful about this so I'll just say it for them.
Chapter 12 is an advanced chapter that discusses the Task Scheduler. If you're needing to replace .NET's default Task Schedulers then most of this book might be considered fairly basic to you. Nevertheless, the scenarios mentioned and the sample code are valuable as there isn't a wealth of information on the topic out there.
Chapters 13-14 concludes the book with a solid discussion of async debugging in Visual Studio and other tools. If anything, you will come away impressed (perhaps even awed) by the work done by the VS team to simplify what is an otherwise incredibly difficult debugging experience. In the not-too-distant-past, debugging multithreaded/async code using was more the domain of systems programmers and the clinically insane. The authors do a good job highlighting the tools available and you will definitely be excited to get your hands on everything VS has to offer. It would have been useful to get a better understanding of how to debug/monitor CPU cache hits (e.g., when are internal values obtained by the L1/L2/L3 caches) as the authors mentioned it in two sidebars in previous chapters but didn't really follow that up with how to actually prove you're writing code that is cache-friendly. I suppose that's a fairly advanced scenario, though.
Overall, I wouldn't hesitate recommending this book. It doesn't waste any space so you might find yourself re-reading certain sections to wring out every bit of info you can. With multicore development becoming a necessity, if you're working on a .NET project then you won't be disappointed with this book. Great job, Richard and Andrew! I only hope they'll follow up with a book on Distributed Programming with .NET (the next obvious transition moving forward). - This book does well in describing the synchronization primitives and threading methods that exist in .NET, both in the newest versions of .NET, but also when using older versions of the .NET framework. There are a lot of examples in how each threading implementation works, using each method and focus on how each revision of the .NET framework has improved on the usage of threading and synchronization logic.
I did however hope to find more information about how to handle common threading issues, such as ensuring a thread safe data model, handling events and reentrancy in a multi threaded system and isolating data by thread, without losing connectivity with data possibly locked by other threads. - If you have been looking for a clear explanation of the various complex issues involved with concurrency and asynchrony, this book is what you have been waiting for. Richard Blewett has a gift for explaining complex issues clearly by breaking them down to simpler parts. You can read this book from cover to cover if you like, or you can pick and choose just what you need and keep it as a ready reference.
Pro Asynchronous Programming with .NET catches us all up to the relatively recent developments in .Net 4 and .Net 4.5 in a way that is accessible. If you have been struggling with trying to get on the learning curve with this topic, I recommend this book as the place to begin. - I've been to multiple sessions covering Async/Await. I've also read many article on the Internet. This book explains a lot of details that you won't pickup in your standard cookie cutter sessions.
- This topic is challenging for even an experienced .NET programmer. It was about 2003 when .NET was new that PC performance hit the wall with silicon and ever increasing clock speeds was over. Chip builders introduced multiple cores. It has been possible since 2003 to develop applications that use multiple threads. But the increase in code complexity made it very difficult to use and the average developer used the threading features only for worst case issues that would freeze the user interface. The 2010 version of Visual Studio introduced the parallel task library. In the 2012 version they introduced the Async and Await keywords and made parallel programming possible for the average .NET developer.
- I have used this book a few times. It was great examples. I would recommend this book for developers coding in 4.5+
- There is good information in this book, and much of it is presented well. But it isn't sufficient to live up to its cover statement of “Become an async programming expert.†To accomplish that the authors would need to do a great job filtering, organizing, communicating and teaching the information. It was the teaching aspect that was the weakest Although there were many code examples, they weren't really presented as learning exercises. And while portions of the book did a great job communicating, other portions were in need of some more hours of editing work. Still, I learned from it and will use it as a reference. I’d recommend it if you are looking for a reference and not looking for tutorials, recipes and learning exercises. In looking for up-to-date books on the subject (comprehensive books current with .NET 4.5), this is the best I've found, so I’m rating it 4 out of 5 stars.
- This for anyone interested in more than just asynchronous programming. It allows to build a deeper understanding of the .Net asynchronous concepts and goes all the way to a custom scheduler.
Most of it demonstrated with code samples.
Helped me quite a bit.