Pro Asynchronous Programming with.net. Richard Blewett Andrew Clymer
|
|
- April O’Neal’
- 6 years ago
- Views:
Transcription
1 Pro Asynchronous Programming with.net Richard Blewett Andrew Clymer
2 Pro Asynchronous Programming with.net Copyright 2013 by Richard Blewett and Andrew Clymer This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher s location, in its current version, and permission for use must always be obtained from Springer. Permissions for use may be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecution under the respective Copyright Law. ISBN-13 (pbk): ISBN-13 (electronic): Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. President and Publisher: Paul Manning Lead Editor: Gwenan Spearing Technical Reviewer: Liam Westley Editorial Board: Steve Anglin, Mark Beckner, Ewan Buckingham, Gary Cornell, Louise Corrigan, Morgan Ertel, Jonathan Gennick, Jonathan Hassell, Robert Hutchinson, Michelle Lowman, James Markham, Matthew Moodie, Jeff Olson, Jeffrey Pepper, Douglas Pundick, Ben Renow-Clarke, Dominic Shakeshaft, Gwenan Spearing, Matt Wade, Tom Welsh Coordinating Editor: Christine Ricketts Copy Editor: James Fraleigh Compositor: SPi Global Indexer: SPi Global Artist: SPi Global Cover Designer: Anna Ishchenko Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY Phone SPRINGER, fax (201) , orders-ny@springer-sbm.com, or visit Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please rights@apress.com, or visit Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. ebook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales ebook Licensing web page at Any source code or other supplementary materials referenced by the author in this text is available to readers at For detailed information about how to locate your book s source code, go to
3 For my mum and dad Rich For my loving wife For my mum and dad From tiny ZX81 mighty programs of today do grow. Andy
4
5 Contents at a Glance About the Authors... xvii About the Technical Reviewer... xix Acknowledgments... xxi Chapter 1: An Introduction to Asynchronous Programming...1 Chapter 2: The Evolution of the.net Asynchronous API...7 Chapter 3: Tasks...31 Chapter 4: Basic Thread Safety...57 Chapter 5: Concurrent Data Structures...89 Chapter 6: Asynchronous UI Chapter 7: async and await Chapter 8: Everything a Task Chapter 9: Server-Side Async Chapter 10: TPL Dataflow Chapter 11: Parallel Programming Chapter 12: Task Scheduling Chapter 13: Debugging Async with Visual Studio Chapter 14: Debugging Async Beyond Visual Studio Index v
6
7 Contents About the Authors... xvii About the Technical Reviewer... xix Acknowledgments... xxi Chapter 1: An Introduction to Asynchronous Programming...1 What Is Asynchronous Programming?...1 The Drive to Asynchrony...1 Mechanisms for Asynchrony...2 Multiple Machines... 2 Multiple Processes... 3 Multiple Threads... 3 Thread Scheduling...3 Threads and Resources...4 Thread-Specific Resources... 4 Resources Shared by Threads... 4 Summary...5 Chapter 2: The Evolution of the.net Asynchronous API...7 Asynchrony in the World of.net System.Threading.Thread... 7 Using the System Thread Pool Changes to Async in.net vii
8 Contents Asynchrony in.net Logical and Physical Separation Passing Data into a Thread Closures SynchronizationContext Event-Based Asynchronous Pattern Minor Changes in.net Lambda Expressions Thread Pool Heuristics in.net Big Changes in.net Remodeling the Thread Pool Queue Work-Stealing Queues Thread Pool Heuristics in.net Summary...30 Chapter 3: Tasks...31 What Is a Task?...31 Creating a Compute-Based Task...31 Passing Data into a Task Dangers of Closures Returning Data from a Task...37 Creating I/O-Based Tasks Error Handling...41 Ignoring Errors Designing Task-Based APIs Cancellation Progress Task Relationships...50 Chaining Tasks (Continuations) Nested and Child Tasks Conclusion...55 viii
9 Contents Chapter 4: Basic Thread Safety...57 Asynchrony and Data...57 It s Not Always Good to Share Immutable State Atomic State Transition Nonatomic State Transition Correctness Is Not the Only Problem Thread Safety The Interlocked Class...61 Basic Operations Richer Functions Monitor: The Workhorse of.net Synchronization...64 The lock Keyword Timing Out of Monitor Acquisition Signaling with Monitors Signaling As a Building Block Optimizing for Read...73 ReaderWriterLock ReaderWriterLockSlim A Semaphore Out of the Box...75 Raising the Starting Gate: ManualResetEventSlim...78 CountdownEvent: Simplifying Fork and Join...80 Barrier: Rendezvous-Based Synchronization...81 Crossing the AppDomain Boundary with WaitHandle...83 Mutex Semaphore Events WaitHandle The Kernel Synchronization Abstraction Working with Multiple WaitHandles Integrating Standard Primitives and Kernel Objects ix
10 Contents x Synchronization Is Not the Only Answer...87 Conclusion...88 Chapter 5: Concurrent Data Structures...89 Simplifying Thread Safety...89 Lazy<T>...94 Concurrent Collections...98 ConcurrentDictionary<K,V>...99 Locking Mechanics ConcurrentQueue<T> and ConcurrentStack<T> ConcurrentBag<T> Blocking Collections Graceful Shutdown Consuming Enumerable BlockingCollection of X Summary Chapter 6: Asynchronous UI UI Mechanics UI Threading Model Synchronization Context Send and Post Task Continuations Event-Based Asynchronous Pattern (EAP) Background Worker Data Binding Windows Forms Windows Presentation Foundation (WPF) WinRT WPF Dispatcher Obtaining the Dispatcher Executing Work Through the Dispatcher
11 Contents WinRT Dispatcher Obtaining the Dispatcher Executing Work Through the Dispatcher UI Timers Windows Forms Timer WinRT and WPF Dispatch Timers WPF Freezable Components Too Much of a Good Thing Summary Chapter 7: async and await Making Asynchronous Programming Simpler What Do async and await Actually Do? Returning Values from async Methods Should You Always Continue on the UI Thread? Task.Delay Task.WhenAll Task.WhenAll, Error Handling Task.WhenAny async/await Mechanics Summary Chapter 8: Everything a Task TaskCompletionSource<T> Worked Example: Creating a Foreground Task Unit Testing and Stubbing Asynchronous Methods Building Task-Based Combinators Improved WhenAny Alternative WhenAll, WhenAllOrFail Summary xi
12 Contents Chapter 9: Server-Side Async Natural Parallelism The Problem of I/O ASP.NET WebForms A Synchronous WebForms Implementation Asynchronous Pages in WebForms Asynchronous Pages in WebForms ASP.NET MVC Asynchronous MVC Processing in.net Asynchronous MVC Processing in.net ASP.NET Web API Asynchronous Web API Operations in.net Asynchronous Web API Operations in.net Windows Communication Foundation Asynchronous WCF Services in.net Asynchronous WCF Services in.net Summary Chapter 10: TPL Dataflow The Building Blocks Producer and Consumer Revisited Linking Blocks Transform Block Transform Many Block Linking to Multiple Targets Shutting Down Gracefully Propagating Completion Error Handling Cancellation xii
13 Contents Glue Blocks Buffer Block Batch Block Broadcast Block Joining Asynchronous Blocks Summary Chapter 11: Parallel Programming What Is Driving the Need for Parallelism? Coarse- and Fine-Grained Parallelism Task and Data-Based Parallelism Is It Worth Trying to Parallelize Everything? Before You Parallelize Parallel Class Parallel.Invoke Parallel Loops PLINQ Moving from Sequential LINQ to PLINQ Influencing and Configuring the Query ForAll Aggregating Results Summary Chapter 12: Task Scheduling ConcurrentExclusiveSchedulerPair Why Write a Task Scheduler? The TaskScheduler Abstraction Implementing QueueTask Implementing GetScheduledTasks Implementing TryExecuteTaskInline Executing Tasks xiii
14 Contents Implementing a Custom Scheduler Creating a Basic Implementation Adding Threads on Demand Removing Idle Threads Unit Testing Custom Schedulers Controlling Execution Order with Synchronization Primitives Adding Members to the Scheduler to Provide Insight Deriving a Testable Class from the Scheduler Summary Chapter 13: Debugging Async with Visual Studio Types of Multithreading Bugs Data Corruption Race Conditions Deadlocks Runaway Threads The Limitations of Using Visual Studio for Debugging The Interactive Debugger It Works on My Machine Multithreaded Visual Studio Debugging Basics Breakpoints and Threads Locals, Autos, and Watch Windows The Call Stack Window The Threads Window Debugging Tasks The Parallel Tasks / Tasks Window The Parallel Stacks Window The Concurrency Visualizer Summary xiv
15 Contents Chapter 14: Debugging Async Beyond Visual Studio Memory Dumps Generating a Memory Dump Task Manager DebugDiag ADPLUS Analyzing Memory Dumps WinDbg SOS SOSEX PSSCOR Summary Index xv
16
17 About the Authors Richard Blewett is a professional software developer and trainer living in Bristol in the UK. He has been writing software for over 20 years and has spent most of that time building distributed systems of one form or another. He first started writing multithreaded code in C on OS/2 and continued when moving to Windows, COM, and.net. Over the years he has built software for banks, insurance companies, travel companies, emergency services, health companies, and more. He is a cofounder of Rock Solid Knowledge, a development, training and consultancy company specializing in.net development, and a Microsoft Integration MVP. Andrew Clymer is a professional software developer and educator living in Chippenham, Wiltshire (UK). Andy cut his teeth working in various startups and programming on a host of platforms, finally working for a small startup that was acquired by Cisco in Having worked for Cisco for a few years, the lure of the startup world was too much to resist. He is a cofounder of Rock Solid Knowledge. xvii
18
19 About the Technical Reviewer Liam Westley has been using Microsoft technologies since the days of Visual Basic 1.0 and is currently a Microsoft MVP in C#. He s a prolific speaker in the UK developer community, talking at user groups and community conferences. After 15 years in the television industry, including working with BSkyB, Reuters Television, chellomedia, GMTV, and the QVC UK shopping channel, Liam moved into the world of tech startups in London. He is currently one of a team of application architects at Huddle, where he works with some of the best.net developers and UX designers to deliver world-class collaboration software. He quite likes working just off Old Street as there is some fantastic food and coffee to be had within a few minutes walk. Photo courtesy of Ian Battersby/DDDNorth. xix
20
21 Acknowledgments We d like to thank all the folks at Apress who have helped us ship this book: Gwenan Spearing for getting involved in the first place; Christine Ricketts for her patience and perseverance in keeping us on track; Tom Welsh and Matthew Moodie for their great editing; and James Fraleigh for his copyediting. We d also like to thank Liam Westley for his technical reviews of the chapters. Thank you and apologies to Michele, Carmel, Tegen, and Ewan for bearing with me as I paced around the house with writer s block. I couldn t have gotten here without your understanding and support. Richard Blewett Thanks to Jules, Emily, and Joseph for putting up with me juggling so many things over the last 12 months and for picking up the things I dropped. Thanks to my Mum and Dad, who through the purchase of many home computers set me off on the most incredible of journeys. Andrew Clymer xxi
MATLAB Programming for Numerical Analysis. César Pérez López
MATLAB Programming for Numerical Analysis César Pérez López MATLAB Programming for Numerical Analysis Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the
More informationWindows 10 Revealed. The Universal Windows Operating System for PC, Tablets, and Windows Phone. Kinnary Jangla
Windows 10 Revealed The Universal Windows Operating System for PC, Tablets, and Windows Phone Kinnary Jangla Windows 10 Revealed Kinnary Jangla Bing Maps San Francisco, California, USA ISBN-13 (pbk): 978-1-4842-0687-4
More informationObjective-C Quick Syntax Reference
Objective-C Quick Syntax Reference Matthew Campbell Objective-C Quick Syntax Reference Copyright 2014 by Matthew Campbell This work is subject to copyright. All rights are reserved by the Publisher, whether
More informationC++ Quick Syntax Reference
C++ Quick Syntax Reference Mikael Olsson C++ Quick Syntax Reference Copyright 2013 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part
More informationPro.NET 4 Parallel Programming in C#
Pro.NET 4 Parallel Programming in C# Adam Freeman Pro.NET 4 Parallel Programming in C# Copyright 2010 by Adam Freeman All rights reserved. No part of this work may be reproduced or transmitted in any form
More informationMATLAB Numerical Calculations. César Pérez López
MATLAB Numerical Calculations César Pérez López MATLAB Numerical Calculations Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the Publisher, whether the
More informationPro JavaScript Performance Monitoring and Visualization
Pro JavaScript Performance Monitoring and Visualization Tom Barker Pro JavaScript Performance Copyright 2012 by Tom Barker This work is subject to copyright. All rights are reserved by the Publisher, whether
More informationBeginning ASP.NET MVC 4. José Rolando Guay Paz
Beginning ASP.NET MVC 4 José Rolando Guay Paz Beginning ASP.NET MVC 4 Copyright 2013 by José Rolando Guay Paz This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
More informationJavaScript Quick Syntax Reference
JavaScript Quick Syntax Reference Mikael Olsson JavaScript Quick Syntax Reference Copyright 2015 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the
More informationC Quick Syntax Reference
C Quick Syntax Reference Mikael Olsson C Quick Syntax Reference Copyright 2015 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of
More informationPractical Spring LDAP
Practical Spring LDAP Enterprise Java LDAP Development Made Easy Balaji Varanasi Practical Spring LDAP: Enterprise Java LDAP Development Made Easy Copyright 2013 Balaji Varanasi. All rights reserved. This
More informationSwift Quick Syntax Reference
Swift Quick Syntax Reference Matthew Campbell Swift Quick Syntax Reference Copyright 2014 by Matthew Campbell This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
More informationEssential Angular for ASP.NET Core MVC
Essential Angular for ASP.NET Core MVC Adam Freeman Essential Angular for ASP.NET Core MVC Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-2915-6 ISBN-13 (electronic): 978-1-4842-2916-3 DOI 10.1007/978-1-4842-2916-3
More informationFunctional Programming in R
Functional Programming in R Advanced Statistical Programming for Data Science, Analysis and Finance Thomas Mailund Functional Programming in R: Advanced Statistical Programming for Data Science, Analysis
More informationLearn PHP 7. Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL. Steve Prettyman
THE EXPERT S VOICE IN WEB DEVELOPMENT Learn PHP 7 Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL Steve Prettyman Learn PHP 7 Object-Oriented Modular Programming
More informationWeb Programming with Dart. Moises Belchin Patricia Juberias
Web Programming with Dart Moises Belchin Patricia Juberias Web Programming with Dart Copyright 2015 by Moises Belchin and Patricia Juberias This work is subject to copyright. All rights are reserved by
More informationExpert C# 5.0 with.net 4.5 Framework
Expert C# 5.0 with.net 4.5 Framework Mohammad Rahman Apress Expert C# 5.0: with.net 4.5 Framework Copyright 2013 by Mohammad Rahman This work is subject to copyright. All rights are reserved by the Publisher,
More informationMigrating to Swift from Android
Migrating to Swift from Android Sean Liao Migrating to Swift from Android Copyright 2014 by Sean Liao This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part
More informationScalable Big Data Architecture
Scalable Big Data Architecture A Practitioner s Guide to Choosing Relevant Big Data Architecture Bahaaldine Azarmi Scalable Big Data Architecture Copyright 2016 by Bahaaldine Azarmi This work is subject
More informationAgile Swift. Swift Programming Using Agile Tools and Techniques. Godfrey Nolan
Agile Swift Swift Programming Using Agile Tools and Techniques Godfrey Nolan Agile Swift: Swift Programming Using Agile Tools and Techniques Godfrey Nolan Huntington Woods, Michigan, USA ISBN-13 (pbk):
More informationVisual Studio Condensed. Patrick Desjardins
Visual Studio Condensed Patrick Desjardins Visual Studio Condensed Copyright 2014 by Patrick Desjardins This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
More informationMicrosoft Computer Vision APIs Distilled
Microsoft Computer Vision APIs Distilled Getting Started with Cognitive Services Alessandro Del Sole Microsoft Computer Vision APIs Distilled Alessandro Del Sole Cremona, Italy ISBN-13 (pbk): 978-1-4842-3341-2
More informationPro ASP.NET MVC 5. Adam Freeman
Pro ASP.NET MVC 5 Adam Freeman Pro ASP.NET MVC 5 Copyright 2013 by Adam Freeman This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is
More informationPro MERN Stack. Full Stack Web App Development with Mongo, Express, React, and Node. Vasan Subramanian
Pro MERN Stack Full Stack Web App Development with Mongo, Express, React, and Node Vasan Subramanian Pro MERN Stack Vasan Subramanian Bangalore, Karnataka, India ISBN-13 (pbk): 978-1-4842-2652-0 ISBN-13
More informationJames Cryer. Pro Grunt.js
James Cryer Pro Grunt.js Pro Grunt.js Copyright 2015 by James Cryer This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned,
More informationSQL Server AlwaysOn Revealed
SQL Server AlwaysOn Revealed Second Edition Peter A. Carter SQL Server AlwaysOn Revealed, 2nd Edition Peter A. Carter Botley, United Kingdom ISBN-13 (pbk): 978-1-4842-2396-3 ISBN-13 (electronic): 978-1-4842-2397-0
More informationCompanion ebook Available Pro Android Includes Android 1.5 SOURCE CODE ONLINE US $44.99
The EXPERT s VOIce in Open Source Pro Android Covers Google s Android Platform and its fundamental APIs, from basic concepts such as Android resources, intents, and content providers to advanced topics
More informationC++ Recipes. A Problem-Solution Approach. Bruce Sutherland
C++ Recipes A Problem-Solution Approach Bruce Sutherland C++ Recipes: A Problem-Solution Approach Copyright 2015 by Bruce Sutherland This work is subject to copyright. All rights are reserved by the Publisher,
More informationJava Quick Syntax Reference. Second Edition. Mikael Olsson
Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Mikael Olsson Hammarland, Länsi-Suomi, Finland ISBN-13 (pbk):
More informationWindows 8 MVVM Patterns Revealed
Windows 8 MVVM Patterns Revealed Covers both C# and JavaScript Ashish Ghoda Windows 8 MVVM Patterns Revealed Copyright 2012 by Ashish Ghoda This work is subject to copyright. All rights are reserved by
More informationDeepak Vohra. Pro Docker
Deepak Vohra Pro Docker Pro Docker Copyright 2016 by Deepak Vohra This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically
More informationPro ASP.NET SignalR. Real-Time Communication in.net with SignalR 2.1. Keyvan Nayyeri Darren White
Pro ASP.NET SignalR Real-Time Communication in.net with SignalR 2.1 Keyvan Nayyeri Darren White Pro ASP.NET SignalR: Real-Time Communication in.net with SignalR 2.1 Copyright 2014 by Keyvan Nayyeri and
More informationBeginning Robotics Programming in Java with LEGO Mindstorms
Beginning Robotics Programming in Java with LEGO Mindstorms Wei Lu Beginning Robotics Programming in Java with LEGO Mindstorms Wei Lu Keene, New Hampshire, USA ISBN-13 (pbk): 978-1-4842-2004-7 ISBN-13
More informationBuilding Custom Tasks for SQL Server Integration Services
Building Custom Tasks for SQL Server Integration Services Andy Leonard Building Custom Tasks for SQL Server Integration Services Andy Leonard Farmville, Virginia, USA ISBN-13 (pbk): 978-1-4842-2939-2 ISBN-13
More informationThe Windows 10 Productivity Handbook
The Windows 10 Productivity Handbook Discover Expert Tips, Tricks, and Hidden Features in Windows 10 Mike Halsey The Windows 10 Productivity Handbook Mike Halsey Sheffield, Yorkshire, UK ISBN-13 (pbk):
More informationPro Android C++ with the NDK
Pro Android C++ with the NDK Onur Cinar Apress Pro Android C++ with the NDK Copyright 2012 by Onur Cinar This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
More informationCarlo Scarioni. Pro Spring Security
Carlo Scarioni Pro Spring Security Pro Spring Security Copyright 2013 by Carlo Scarioni This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material
More informationBeginning Objective-C
Beginning Objective-C James Dovey Ash Furrow Beginning Objective-C Copyright 2012 by James Dovey and Ash Furrow This work is subject to copyright. All rights are reserved by the Publisher, whether the
More informationMicrosoft Mapping. Geospatial Development in Windows 10 with Bing Maps and C# Second Edition. Carmen Au Ray Rischpater
Microsoft Mapping Geospatial Development in Windows 10 with Bing Maps and C# Second Edition Carmen Au Ray Rischpater Microsoft Mapping: Geospatial Development in Windows 10 with Bing Maps and C# Copyright
More informationPro Multithreading and Memory Management for ios and OS X
Pro Multithreading and Memory Management for ios and OS X Kazuki Sakamoto Tomohiko Furumoto i Pro Multithreading and Memory Management for ios and OS X Copyright 2012 by Kazuki Sakamoto This work is subject
More informationPro SharePoint 2013 Administration Rob Garrett
Pro SharePoint 2013 Administration Rob Garrett Apress Pro SharePoint 2013 Administration Copyright 2013 by Rob Garrett This work is subject to copyright. All rights are reserved by the Publisher, whether
More informationPro MongoDB Development
Pro MongoDB Development Deepak Vohra Pro MongoDB Development Copyright 2015 by Deepak Vohra This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
More informationThe Definitive Guide to Grails 2
The Definitive Guide to Grails 2 Jeff Scott Brown Graeme Rocher Apress The Definitive Guide to Grails 2 Copyright 2013 by Jeff Scott Brown and Graeme Rocher This work is subject to copyright. All rights
More informationMaterial Design Implementation with AngularJS
Material Design Implementation with AngularJS UI Component Framework First Edition V. Keerti Kotaru Material Design Implementation with AngularJS V. Keerti Kotaru Hyderabad, Andhra Pradesh, India ISBN-13
More informationAndroid Fragments. Dave MacLean Satya Komatineni
Android Fragments Dave MacLean Satya Komatineni Android Fragments Copyright 2014 by Dave MacLean, Satya Komatineni This work is subject to copyright. All rights are reserved by the Publisher, whether the
More informationBeginning Silverlight 3
Beginning Silverlight 3 From Novice to Professional Robert Lair Beginning Silverlight 3: From Novice to Professional Copyright 2009 by Robert Lair All rights reserved. No part of this work may be reproduced
More informationRealtime Web Apps. With HTML5 WebSocket, PHP, and jquery. Apress. Jason Lengstorf Phil Leggetter
Realtime Web Apps With HTML5 WebSocket, PHP, and jquery Jason Lengstorf Phil Leggetter Apress Realtime Web Apps: With HTML5 WebSocket, PHP, and jquery Copyright 2013 by Jason Lengstorf, Phil Leggetter
More informationBeginning CSS Preprocessors
Beginning CSS Preprocessors With Sass, Compass, and Less Anirudh Prabhu Beginning CSS Preprocessors: With SASS, Compass.js, and Less.js Copyright 2015 by Anirudh Prabhu This work is subject to copyright.
More informationLearn Excel 2016 for OS X
Learn Excel 2016 for OS X Second Edition Guy Hart-Davis Learn Excel 2016 for OS X Copyright 2015 by Guy Hart-Davis This work is subject to copyright. All rights are reserved by the Publisher, whether the
More informationIntroducing Meteor. Josh Robinson Aaron Gray David Titarenco
Introducing Meteor Josh Robinson Aaron Gray David Titarenco Introducing Meteor Copyright 2015 by Josh Robinson, Aaron Gray, and David Titarenco This work is subject to copyright. All rights are reserved
More informationBeginning Apache Cassandra Development. Vivek Mishra
Beginning Apache Cassandra Development Vivek Mishra Beginning Apache Cassandra Development Copyright 2014 by Vivek Mishra This work is subject to copyright. All rights are reserved by the Publisher, whether
More informationTroubleshooting Xcode
Troubleshooting Xcode Magno Urbano Troubleshooting Xcode Copyright 2015 by Magno Urbano This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material
More informationExcel 2010 Made Simple
Excel 2010 Made Simple Abbott Katz i Excel 2010 Made Simple Copyright 2011 by Abbott Katz All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic
More informationCreating Google Chrome Extensions
Creating Google Chrome Extensions Prateek Mehta Creating Google Chrome Extensions Prateek Mehta New Delhi, India ISBN-13 (pbk): 978-1-4842-1774-0 ISBN-13 (electronic): 978-1-4842-1775-7 DOI 10.1007/978-1-4842-1775-7
More informationPro Data Backup and Recovery. Steven Nelson
Pro Data Backup and Recovery Steven Nelson Pro Data Backup and Recovery Copyright 2011 by Steven Nelson All rights reserved. No part of this work may be reproduced or transmitted in any form or by any
More informationJava I/O, NIO and NIO.2
Java I/O, NIO and NIO.2 Jeff Friesen Java I/O, NIO and NIO.2 Copyright 2015 by Jeff Friesen This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
More informationS Cove pring Bootrs Pivotal Certified Spring Enterprise Integration Specialist Exam SOURCE CODE ONLINE
Covers Spring Boot Pivotal Certified Spring Enterprise Integration Specialist Exam A Study Guide Lubos Krnac Pivotal Certified Spring Enterprise Integration Specialist Exam Copyright 2015 by Lubos Krnac
More informationAndroid Continuous Integration
Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla Android Continuous Integration Pradeep Macharla North Carolina, USA ISBN-13 (pbk): 978-1-4842-2795-4
More informationDynamic SQL. Applications, Performance, and Security. Ed Pollack
Dynamic SQL Applications, Performance, and Security Ed Pollack Dynamic SQL Edward Pollack Albany, New York, USA ISBN-13 (pbk): 978-1-4842-1810-5 ISBN-13 (electronic): 978-1-4842-1811-2 DOI 10.1007/978-1-4842-1811-2
More informationPro SQL Server 2008 Mirroring
Pro SQL Server 2008 Mirroring Robert L. Davis, Ken Simmons Pro SQL Server 2008 Mirroring Copyright 2009 by Robert L. Davis, Ken Simmons All rights reserved. No part of this work may be reproduced or transmitted
More informationHTML5 Programmer s Reference
HTML5 Programmer s Reference Jonathan Reid HTML5 Programmer s Reference Copyright 2015 by Jonathan Reid This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
More informationJavaScript Object Programming
JavaScript Object Programming Martin Rinehart JavaScript Object Programming Copyright 2015 by Martin Rinehart This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
More informationDigital Illustration Fundamentals
Wallace Jackson Digital Illustration Fundamentals Vector, Raster, WaveForm, NewMedia with DICF, DAEF and ASNMF 1st ed. 2015 Wallace Jackson Lompoc, California, USA ISBN 978-1-4842-1696-5 e-isbn 978-1-4842-1697-2
More informationPractical Linux Infrastructure. Syed Ali
Practical Linux Infrastructure Syed Ali Practical Linux Infrastructure Copyright 2015 by Syed Ali This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part
More informationPractical Amazon EC2, SQS, Kinesis, and S3
Practical Amazon EC2, SQS, Kinesis, and S3 A Hands-On Approach to AWS Sunil Gulabani Practical Amazon EC2, SQS, Kinesis, and S3: A Hands-On Approach to AWS Sunil Gulabani Ahmedabad, Gujarat, India ISBN-13
More informationBeginning Oracle WebCenter Portal 12c
Beginning Oracle WebCenter Portal 12c Build next-generation Enterprise Portals with Oracle WebCenter Portal Vinay Kumar Daniel Merchán García Beginning Oracle WebCenter Portal 12c Vinay Kumar Rotterdam,
More informationBeginning django CMS. Nigel George
Beginning django CMS Nigel George Beginning django CMS Copyright 2015 by Nigel George This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material
More informationIntroducing SQLite for Mobile Developers
Introducing SQLite for Mobile Developers Jesse Feiler Introducing SQLite for Mobile Developers Copyright 2015 by Jesse Feiler This work is subject to copyright. All rights are reserved by the Publisher,
More informationPro Angular 6. Third Edition. Adam Freeman
Pro Angular 6 Third Edition Adam Freeman Pro Angular 6 Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-3648-2 ISBN-13 (electronic): 978-1-4842-3649-9 https://doi.org/10.1007/978-1-4842-3649-9 Library
More informationExpert MySQL. Second Edition. Apress. Charles Bell
Expert MySQL Second Edition Charles Bell Apress Expert MySQL: Second Edition Copyright 2012 by Charles Bell This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
More informationLearning Groovy. Adam L. Davis
Learning Groovy Adam L. Davis Learning Groovy Adam L. Davis New York, USA ISBN-13 (pbk): 978-1-4842-2116-7 ISBN-13 (electronic): 978-1-4842-2117-4 DOI 10.1007/978-1-4842-2117-4 Library of Congress Control
More informationGet Fit with Apple Watch
Get Fit with Apple Watch Using the Apple Watch for Health and Fitness Allen G. Taylor Get Fit with Apple Watch: Using the Apple Watch for Health and Fitness Copyright 2015 by Allen G. Taylor This work
More informationBeginning the Linux Command Line
Beginning the Linux Command Line Second Edition Sander van Vugt Beginning the Linux Command Line, Second edition Copyright 2015 by Sander van Vugt This work is subject to copyright. All rights are reserved
More informationBeginning Hibernate. Third Edition. Joseph B. Ottinger Dave Minter Jeff Linwood
Beginning Hibernate Third Edition Joseph B. Ottinger Dave Minter Jeff Linwood Beginning Hibernate Copyright 2014 by Joseph B. Ottinger, Dave Minter, Jeff Linwood This work is subject to copyright. All
More informationAndroid Continuous Integration
Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla
More informationASP.NET Core Recipes
ASP.NET Core Recipes A Problem-Solution Approach Second Edition John Ciliberti ASP.NET Core Recipes: A Problem-Solution Approach John Ciliberti Sparta, New Jersey, USA ISBN-13 (pbk): 978-1-4842-0428-3
More informationUnderstanding Oracle APEX 5 Application Development
Understanding Oracle APEX 5 Application Development Second Edition Edward Sciore Understanding Oracle APEX 5 Application Development Copyright 2015 by Edward Sciore This work is subject to copyright. All
More informationPython 3 for Absolute Beginners
Python 3 for Absolute Beginners Tim Hall and J-P Stacey Python 3 for Absolute Beginners Copyright 2009 by Tim Hall and J-P Stacey All rights reserved. No part of this work may be reproduced or transmitted
More informationPro ASP.NET SharePoint 2010 Solutions Techniques for Building SharePoint Functionality into ASP.NET Applications
Pro ASP.NET SharePoint 2010 Solutions Techniques for Building SharePoint Functionality into ASP.NET Applications Dave Milner i Pro ASP.NET SharePoint 2010 Solutions: Techniques for Building SharePoint
More informationBeginning Haskell. A Project-Based Approach. Alejandro Serrano Mena
Beginning Haskell A Project-Based Approach Alejandro Serrano Mena Beginning Haskell: A Project-Based Approach Copyright 2014 by Alejandro Serrano Mena This work is subject to copyright. All rights are
More informationPeter A Carter. Pro SQL Server Administration
Peter A Carter Pro SQL Server Administration Pro SQL Server Administration Copyright 2015 by Peter A Carter This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
More informationIntroducing SQL Server
Introducing SQL Server Mike McQuillan Introducing SQL Server Copyright 2015 by Mike McQuillan This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
More informationMongoDB Basics. David Hows Peter Membrey Eelco Plugge
MongoDB Basics David Hows Peter Membrey Eelco Plugge MongoDB Basics Copyright 2014 by David Hows, Peter Membrey, and Eelco Plugge This work is subject to copyright. All rights are reserved by the Publisher,
More informationWeb Development, Silverlight, and
The EXPERT s VOIce in.net Beginning Web Development, Silverlight, and ASP.NET AJAX From Novice to Professional Learn how to build web applications using ASP.NET AJAX, WPF, WCF, and WF, as well as Silverlight.
More informationBeginning Oracle Application Express 5
Beginning Oracle Application Express 5 Doug Gault Beginning Oracle Application Express 5 Copyright 2015 by Doug Gault This work is subject to copyright. All rights are reserved by the Publisher, whether
More informationLearn Apple HomeKit on ios
Learn Apple HomeKit on ios A Home Automation Guide for Developers, Designers, and Homeowners Jesse Feiler Learn Apple HomeKit on ios: A Home Automation Guide for Developers, Designers, and Homeowners Jesse
More informationPro SharePoint 2013 Administration. Rob Garrett
Pro SharePoint 2013 Administration Rob Garrett Pro SharePoint 2013 Administration Copyright 2013 by Rob Garrett This work is subject to copyright. All rights are reserved by the Publisher, whether the
More informationPro ios and Android Apps for Business
Pro ios and Android Apps for Business with jquery Mobile, Node.js, and MongoDB Frank Zammetti Pro ios and Android Apps for Business with jquery Mobile, Node.js, and MongoDB Copyright 2013 by Frank Zammetti
More informationPro HTML5 with Visual Studio 2015
Pro HTML5 with Visual Studio 2015 Mark J. Collins Pro HTML5 with Visual Studio 2015 Copyright 2015 by Mark J. Collins This work is subject to copyright. All rights are reserved by the Publisher, whether
More informationPro Single Page Application Development
Pro Single Page Application Development Using Backbone.js and ASP.NET Gil Fink Ido Flatow Pro Single Page Application Development: Using Backbone.js and ASP.NET Copyright 2014 by Gil Fink and Ido Flatow
More informationThe Definitive Guide to HTML5 WebSocket
The Definitive Guide to HTML5 WebSocket Vanessa Wang Frank Salim Peter Moskovits Apress The Definitive Guide to HTML5 WebSocket Copyright 2013 by Vanessa Wang, Frank Salim, Peter Moskovits This work is
More informationMark E. Daggett. Expert JavaScript
Mark E. Daggett Expert JavaScript Expert JavaScript Copyright 2013 by Mark E. Daggett This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material
More informationBeginning Functional JavaScript
Beginning Functional JavaScript Functional Programming with JavaScript Using EcmaScript 6 Anto Aravinth Beginning Functional JavaScript Anto Aravinth Chennai, Tamil Nadu, India ISBN-13 (pbk): 978-1-4842-2655-1
More informationASP.NET Web API 2 Recipes
ASP.NET Web API 2 Recipes A Problem-Solution Approach Filip Wojcieszyn ASP.NET Web API 2 Recipes: A Problem Solution Approach Copyright 2014 by Filip Wojcieszyn This work is subject to copyright. All rights
More informationEssentials of Administering Team Foundation Server 2015
Essentials of Administering Team Foundation Server 2015 Using TFS 2015 to accelerate your software development Gary Gauvin Essentials of Administering Team Foundation Server 2015 Using TFS 2015 to Accelerate
More informationBeginning PowerShell for SharePoint 2016
Beginning PowerShell for SharePoint 2016 A Guide for Administrators, Developers, and DevOps Engineers Second Edition Nikolas Charlebois-Laprade John Edward Naguib Beginning PowerShell for SharePoint 2016:
More informationWindows Troubleshooting Series
Windows Troubleshooting Series Mike Halsey, MVP Series Editor Windows Group Policy Troubleshooting A Best Practice Guide for Managing Users and PCs Through Group Policy Kapil Arya, MVP Edited by Andrew
More informationPro SharePoint Migration
Pro SharePoint Migration Moving from MOSS 2007 to SharePoint Server 2010 Sahil Malik Srini Sistla Pro SharePoint Migration Copyright 2012 by Sahil Malik, Srini Sistla This work is subject to copyright.
More informationBeginning SQL Server 2012 Administration. Rob Walters Grant Fritchey
Beginning SQL Server 2012 Administration Rob Walters Grant Fritchey Beginning SQL Server Administration Copyright 2012 by Rob Walters, Grant Fritchey This work is subject to copyright. All rights are reserved
More informationExpert PHP and MySQL. Application Design and Development. Marc Rochkind
Expert PHP and MySQL Application Design and Development Marc Rochkind Expert PHP and MySQL: Application Design and Development Copyright 2013 by Marc Rochkind This work is subject to copyright. All rights
More information