Learning .NET High-performance Programming
eBook - ePub

Learning .NET High-performance Programming

Antonio Esposito

Condividi libro
  1. 304 pagine
  2. English
  3. ePUB (disponibile sull'app)
  4. Disponibile su iOS e Android
eBook - ePub

Learning .NET High-performance Programming

Antonio Esposito

Dettagli del libro
Anteprima del libro
Indice dei contenuti
Citazioni

Domande frequenti

Come faccio ad annullare l'abbonamento?
È semplicissimo: basta accedere alla sezione Account nelle Impostazioni e cliccare su "Annulla abbonamento". Dopo la cancellazione, l'abbonamento rimarrà attivo per il periodo rimanente già pagato. Per maggiori informazioni, clicca qui
È possibile scaricare libri? Se sì, come?
Al momento è possibile scaricare tramite l'app tutti i nostri libri ePub mobile-friendly. Anche la maggior parte dei nostri PDF è scaricabile e stiamo lavorando per rendere disponibile quanto prima il download di tutti gli altri file. Per maggiori informazioni, clicca qui
Che differenza c'è tra i piani?
Entrambi i piani ti danno accesso illimitato alla libreria e a tutte le funzionalità di Perlego. Le uniche differenze sono il prezzo e il periodo di abbonamento: con il piano annuale risparmierai circa il 30% rispetto a 12 rate con quello mensile.
Cos'è Perlego?
Perlego è un servizio di abbonamento a testi accademici, che ti permette di accedere a un'intera libreria online a un prezzo inferiore rispetto a quello che pagheresti per acquistare un singolo libro al mese. Con oltre 1 milione di testi suddivisi in più di 1.000 categorie, troverai sicuramente ciò che fa per te! Per maggiori informazioni, clicca qui.
Perlego supporta la sintesi vocale?
Cerca l'icona Sintesi vocale nel prossimo libro che leggerai per verificare se è possibile riprodurre l'audio. Questo strumento permette di leggere il testo a voce alta, evidenziandolo man mano che la lettura procede. Puoi aumentare o diminuire la velocità della sintesi vocale, oppure sospendere la riproduzione. Per maggiori informazioni, clicca qui.
Learning .NET High-performance Programming è disponibile online in formato PDF/ePub?
Sì, puoi accedere a Learning .NET High-performance Programming di Antonio Esposito in formato PDF e/o ePub, così come ad altri libri molto apprezzati nelle sezioni relative a Computer Science e Programming in C#. Scopri oltre 1 milione di libri disponibili nel nostro catalogo.

Informazioni

Anno
2015
ISBN
9781785288463
Edizione
1

Learning .NET High-performance Programming


Table of Contents

Learning .NET High-performance Programming
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Instant updates on new Packt books
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Performance Thoughts
Understanding performance
Performance as a requirement
Performance engineering
Performance aspects
Latency
Throughput
Resource usage
Availability/reliability
Scalability
Efficiency
Class of applications
Case study: performance aspects of a desktop application
Case study: performance aspects of a mobile application
Case study: performance aspects of a server application
Performance concerns as time changes
Technical overview
Multithreaded programming
Parallel programming
Distributed computing
Grid computing
Summary
2. Architecting High-performance .NET Code
Software architecture
Performance concerns about architecture
Object-oriented design principles
The single responsibility principle
The open-closed principle
The Liskov substitution principle
The interface segregation principle
The dependency inversion principle
Common designs and architectures
Layered architecture
Performance concerns
Model-View-Controller and ASP.NET MVC
Performance concerns
Model-View-ViewModel and XAML
Performance concerns
The 3-tier architecture
Performance concerns
Service-Oriented Architecture (SOA)
Standardized service contract
Service loose coupling
Service abstraction
Service reusability
Service autonomy
Service statelessness
Service discoverability
Service composability
Performance concerns
Architecture comparison
Common platform architectures
Architecting desktop applications
Architecting mobile applications
Architecting web applications
Architecting cloud web applications
Performance considerations
Caching, when and where
PLINQ everywhere
Inversion of Control (IoC)
Lazy loading
Reusability of code
Agnostic versus idiom-powered implementation
Short coding
Remote computation
Cloud versus on-premise applications
Summary
3. CLR Internals
Introduction to CLR
Memory management
Garbage collection
Large object heap
Collection tuning
Working with AppDomains
IDisposable interface
Threading
Multithreading synchronization
Locks
Signaling locks
Drawbacks of locks
Exception handling
Summary
4. Asynchronous Programming
Understanding asynchronous programming
Asynchronous programming theory
Asynchronous Programming Model (APM)
Event-based Asynchronous Pattern (EAP)
Task-based Asynchronous Pattern (TAP)
Task creation
Task synchronization
Task exception handling
Task cancellation
Task continuation
Task factories
Task UI synchronization
Async/await
Summary
5. Programming for Parallelism
Parallel programming
Task parallelism
Data parallelism
Task parallelism with TPL
Data parallelism with TPL
ThreadPool tuning
Parallel execution abortion
Partitions
Sliding parallel programming
Integrated querying with LINQ
Data parallelism with PLINQ
Partitioning optimization
Summary
6. Programming for Math and Engineering
Introduction
Evaluating the performance of data types
BigInteger
Half-precision data type
Real-time applications
Case study: Fourier transform
Rolling average
Low-pass filtering for Audio
Sliding processing
Summary
7. Database Querying
Introduction
Overview of ADO.NET
An overview of Entity Framework
Advanced querying
Entity Framework querying optimization
Querying execution lifecycle
Querying approaches
Performance thoughts
Entity Framework persistence optimization
Performance comparison
Stream-like querying
ADO.NET bulk copy
Summary
8. Programming for Big Data
What is big data?
Architecting big data solutions
Case study – automotive big data system
Microsoft Azure for big data
Service Bus Topic
AppFabric Cache
Redis Cache
Simplified grid computing
Lookup programming
Summary
9. Analyzing Code Performance
Software profiling
Profiling with Visual Studio
Instrumentation profiling
The analysis report comparison
Testing with Visual Studio 2013
The Integration test
Performance-related tests
TDD
Test and Continuous Integration
Static program analysis
Code analysis
Code metrics
Summary
Index

Learning .NET High-performance Programming

Copyright © 2015 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: June 2015
Production reference: 1260615
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78528-846-3
www.packtpub.com

Credits

Author
Antonio Esposito
Reviewers
Altaf Hussain
Thomas Krause
Chad D. Morgan
Newton Sheikh
Commissioning Editor
Dipika Gaonkar
Acquisition Editor
Larissa Pinto
Content Development Editor
Amey Varangaonkar
Technical Editor
Rohith Rajan
Copy Editors
Charlotte Carneiro
Ameesha Green
Puja Lalvani
Vikrant Phadke
Project Coordinator
Suzanne Coutinho
Proofreaders
Stephen Copestake
Safis Editing
Indexer
Rekha Nair
Graphics
Jason Monteiro
Production Coordinator
Melwyn D'sa
Cover Work
Melwyn D'sa

About the Author

Antonio Esposito has been an experienced software developer, architect, and trainer since 2002. He started programming in BASIC on MS-DOS 3 at the age of 8 and still loves programming on Microsoft products. An expert in .NET, he has a lot of knowledge of SOA techniques and architectures as well as WCF and Microsoft Azure. He also has extensive knowledge of application production frameworks, such as WPF, MVC, and so on.
Antonio has worked with prominent companies as a freelance consultant, speaker, and trainer. These companies include UniCredit Banca, Microsoft Italia, IBM Italia, Ferrari, Tenova Pomini, Cornér Banca, and many others.
As a speaker, he has had the opportunity to contribute to events such as the MCT Summit Europe, WPC Italia, Community Days Milano, Codemotion, and many more from his own user group, DotNet Lombardia.

About the Reviewers

Altaf Hussain is a student pursuing a master's course from Saint Francis Xavier University in Nova Scotia, Canada. Prior to this, he received his undergraduate degree in computer science and engineering from Shahjalal University of Science and Technology in Sylhet, Bangladesh. He is researching in the field of semantic web and cloud services. He is also into developing a framework for context-aware service discovery and selection, providing decision-making support for healthcare scenarios, using parallel computing and semantic technologies.
Altaf is also working as a senior software engineer for Logistics Software Corp., Canada, where he develops distributed web and desktop applications in C#, ASP.NET, and contemporary technologies. Prior to beginning his master's course, he also worked as a full-stack distributed application developer, implementing e-forms, citizen services, and public sector workflow integration. Altaf has also published several research papers in the fields of grid computing, cloud computing, and the Semantic Web.
Thomas Krause is an independent software developer, author, and consultant. He specializes in high-performance solutions, algorithms, and artificial intelligence. Most of the projects he has worked on have leveraged the productivity of the Microsoft .NET framework while still aiming to be highly performa...

Indice dei contenuti