COMIC BOOK GRAPHIC NOVEL APPROACH TO ASYNC

Size: px
Start display at page:

Download "COMIC BOOK GRAPHIC NOVEL APPROACH TO ASYNC"

Transcription

1 KATHLEEN DOLLARD - KATHLEENDOLLARD KATHLEEN@MVPS.ORG BLOG: HT TP:// - DOLLARD Puzzles Workshop

2 Puzzles

3 EXPLORING THE SURPRISES IN.NET

4 COMIC BOOK GRAPHIC NOVEL APPROACH TO ASYNC

5

6 Async and Multi-threading are different Async Multi-thread

7 Async and Multi-threading are different Async Multi-thread

8 Async and Multi-threading are different Async Operations overlap with other operations Long file operations, database calls or network requests Asynchronous operations may not be multi-threaded Mads Torgersen: discontinuous sequential operations Multi-thread Multiple operations sharing CPU Multi-threaded operations are asynchronous Get Async right, then do multi-threading

9 Job Today Believe that async doesn t require threads Understand how your code is split up on compile Catch how exceptions pass through async code Learn about WhenAny and WhenAll combinators See how threads start with Run Comprehend cancellation and timeout Know how to report progress Look at concurrency issues Demo debugging

10 Message pump Click Sub Button1_Click(...) LoadSettings() UpdateView() End Sub Sub LoadSettings() IO.File.ReadAllText(path) End Sub Click Thanks Greg Paparin!

11 Message pump Click Sub Button1_Click(...) LoadSettings() UpdateView() End Sub Sub LoadSettings() IO.Network.Download(path) End Sub Click Thanks Greg Paparin!

12 Click Message pump Async Sub Button1_Click(...) Await LoadSettingsAsync() UpdateView() Task... LoadSettings End Sub Async Function LoadSettingsAsync() As Task LoadSettingsAsync Await IO.Network.DownloadAsync(path) End Sub Task... Download DownloadAsync Click Thanks Greg Paparin!

13 Start End Kathleen Dollard. All rights reserved.

14 Start End Kathleen Dollard. All rights reserved.

15 Start End Kathleen Dollard. All rights reserved.

16 Start End Kathleen Dollard. All rights reserved.

17 Start End Task 1 Object Kathleen Dollard. All rights reserved.

18 Start End Task 1 Object 2012 Kathleen Dollard. All rights reserved.

19 Your code Your continuation Task Object Main Thread Event NOMT Not on main thread private async Task<int> LongOp() { Console.WriteLine("1.In LongOp"); await Task.Delay(3000)); Console.WriteLine("3.Done!"); return 42; } 19

20 Your code Your continuation Task Object Main Thread Event NOMT Not on main thread private async Task<int> LongOp() { Console.WriteLine("1.In LongOp"); await Task.Delay(3000)); Console.WriteLine("3.Done!"); Console.WriteLine("3.Done!"); return 42; return 42; } 20

21 Logical Code Rewriting Task Object () => { private async Task<int> LongOp() { Console.WriteLine("1.In LongOp"); await Task.Delay(3000)); Console.WriteLine("3.Done!"); Console.WriteLine("3.Done!"); return 42; return 42; } }

22 Code Rewriting with Variable Task Object private async Task<int> LongOp() { Console.WriteLine("1.In LongOp"); int val = 3; await Task.Delay(3000)); Console.WriteLine(val +" Done!"); Console.WriteLine(val + "Done!"); return 42; return 42; } () => { }

23 Your code Your continuation Main Thread Task Object System.IO wrapper Event NOMT Not on main thread 23

24 Code Continuation Code Continuation Task Object Main Thread System.IO wrapper NOMT Not on main thread 24

25 Your code Your continuation Main Thread Task Object System.IO wrapper Event NOMT Not on main thread 25

26 Your code Your continuation Task Object Main Thread System.IO Task.Run() wrapper NOMT Not on main thread 26

27 Async Exceptions

28 Your code Your continuation Main Thread Task Object System.IO wrapper catch { // handle and/or // rethrow NOMT Not on main thread Catch can appear anywhere in continuation stack 30

29 Combinators WHENALL, WHENANY, RUN, FROMRESULT, DELAY

30 Task.WhenAll Asynchronously await completion of all tasks Task.WhenAny Asynchronously await one of multiple tasks Task.Run Run a task using the thread pool Task.FromResult Immediately return result lifted into a task for task returning method Task.Delay Non-blocking timer for delays (use instead of Thread.Sleep) Create your own combinators Which really just means create appropriate helper classes Examples include RetryOnFault and WhenAllOrFirstException

31 Your code Continuation WhenAll task Task Object Task Object Task Object Main Thread wrapper wrapper wrapper NOMT Not on main thread 33

32 Your code Continuation Task WhenAll Object task Task Object Task Object Task Object Main Thread wrapper wrapper wrapper NOMT Not on main thread 34

33 Your code Continuation WhenAll task Task Object Task Object Task Object Main Thread wrapper wrapper wrapper NOMT Not on main thread 35

34 Your code Continuation WhenAll task Task Object TaskObject Task Object Main Thread wrapper wrapper wrapper NOMT Not on main thread 36

35 When to Use WhenAll Tasks to run at the same time Example: multiple web requests There is no dependency between tasks One task doesn t depend on the result of a previous task If dependencies exist, use sequential async processing All tasks need to complete, or all results are required, before the continuation occurs The same exception handling (catch) is needed for all tasks Exceptions appear in the tasks aggregate exception First exception is also thrown All of the results are supplied in the resulting array

36 WhenAll vs. Sequential Async Operations

37 Your code Continuation Task Object Task Object wrapper Main Thread NOMT Not on main thread 39

38 Your code Continuation Task Object Task Object wrapper Main Thread NOMT Not on main thread 40

39 Your code Continuation Task Object Task Object wrapper Main Thread NOMT Not on main thread 41

40 ur code Task Object Task Object Continuation Task Object Task Object Continuation wrapper wrapper 42

41 You only care about one result Redundant operations of which you only need one result Possibly interleaving (examples on Internet and in my video) You want to work with each result as soon as it is available Consider using TPL for this Possibly throttling (examples on Internet and in my video) You are using multiple threads and wish to control number used although this is very rarely needed: Stephen Toub says really, really, really rare If you do need to throttle probably use an alternate task scheduler, SemaphoreSlim.WaitAsync, or Dataflow and need to read Stephen Toub s blog Cancellation Timeout without cancellation token source Early bail with operations that don t support cancellation Part of complex scenarios

42 WhenAny

43 Your code Continuation Task Object Task Object Task Object Task Object Main Thread wrapper wrapper wrapper NOMT Not on main thread 45

44 Your code Continuation Task Object Task Object Task Object Task Object Main Thread wrapper wrapper wrapper NOMT Not on main thread 46

45 Your code Continuation Task Object Task Object Task Object Task Object Main Thread wrapper wrapper wrapper NOMT Not on main thread 47

46 Your code Continuation Task Object Task Object TaskObject Task Object Main Thread wrapper wrapper wrapper NOMT Not on main thread 48

47 Consuming the Task-based Asynchronous Pattern Note: There is a second more efficient interleaving pattern far down on that page 49

48 Starts a new thread Task.Run(action) Static method which returns a Task object Action can be a lambda expression or a delegate C# will wrap the delegate to a lambda for you It can also be a Task, allowing async/await within the action Allows you to explicitly start a task on another thread from the pool Overloads include parameters that supporting cancellation If you previously used TPL, this replaces Task.Factory.StartNew()

49 Your code Your continuation Task.Run Object Main Thread Thread from thread pool 51

50 Sometimes, data is available & can just be returned Since the method returns a task, we still need one public Task<int> GetValueAsync(string key) { int cachedvalue; return TryGetCachedValue(out cachedvalue)? Task.FromResult(cachedValue) : GetValueAsyncInternal(); } private async Task<int> GetValueAsyncInternal(string key) { }

51 Your code Your continuation Main Thread NOMT Not on main thread 54

52 Task.Delay Allows non-blocking wait Thread doesn t sleep Calling thread is not blocked

53 Your code Your continuation Main Thread Task Object NOMT Doesn t block main thread 56

54 Cancellation

55 Other code, like button click Your code Main Thread NOMT Not on main thread 62

56 Cancellation

57 Cancellation CancellationTokenSource Contains CancellationToken Can initiate cancel Can link CancellationTokens (logically nesting) CancellationToken Can be marked canceled by TokenSource Operations can watch and prematurely end Cannot initiate cancellation Do not accept cancellation tokens in methods that cannot logically cancel

58 Other code, like button click Your code Your continuation Task Object Main Thread NOMT Not on main thread 65

59 Other code, like button click Your code Your continuation Task Object Main Thread Operation wrapper NOMT Not on main thread 66

60 Other code, like button click Your code Your continuation Exception Catch Task Object Main Thread Operation wrapper NOMT Not on main thread 67

61 WhenAny with Task.Delay representing the timeout Requires special code You raise timeout exception Different times, options Does not affect other tasks Does not share token source Logically differentiated code Timeout property on the CancellationTokenSource Very, very simple Automatically ends subtasks If they take CTS Raises timeout exception Task is canceled, not faulted Single timeout for source Can t get partial results Linked sources share CTS Can register special behavior

62 Your code Continuation Task Object Task Object Task.Delay wrapper Main Thread NOMT Not on main thread 69

63 Your code Continuation Task Object Task Object Task.Delay wrapper Main Thread NOMT Not on main thread 70

64 Your code Continuation Task Object Task Object Task Task.Delay wrapper Main Thread NOMT Not on main thread 71

65 Your code Your continuation Task Object Main Thread NOMT Not on main thread 72

66 Your code Your continuation Task Object Main Thread Operation wrapper NOMT Not on main thread 73

67 Your code Your continuation Exception Catch Task Object Main Thread Operation wrapper NOMT Not on main thread 74

68 Progress

69 Progress Type System.IProgress interface void Report(T value) System.Progress<T> class public Progress() public Progress(Action<T> callback) public event EventHandler<T> ProgressChanged protected virtual OnReport method void IProgress<T>.Report( T value)

70 Your code Your continuation Task Object IProgress Main Thread Task.Run Thread from the thread pool IProgress.Report 77

71 Progress Types System.IProgress interface void Report(T value) System.Progress<T> class public Progress() public Progress(Action<T> callback) public event EventHandler<T> ProgressChanged protected virtual OnReport method void IProgress<T>.Report( T value)

72 ProgressChanged event or callback Your code Your continuation Task Object Progress Main Thread System.IO Task.Run wrapper Thread from the thread pool IProgress.Report 79

73 Logical Context for Async and Multi-threading Client applications maintain a single UI thread Important to move blocking tasks like network calls off of this thread Web servers fill requests with a new thread from the thread pool Creating new threads implicitly or explicitly can lower throughput Short blocks on the main request thread is sometimes better Except simple scenarios, plan performance profiling if important Special considerations for unit testing Kathleen Dollard. All rights reserved.

74 Debugging Features Async debugging It just works Parallel debugging improvements Parallel Watch Concurrency Visualizer Flagging threads Debug Location toolbar Breakpoint filters Demo cool features in a wacky app Not covering GPU Threads window

75 Wacky Application to Practice Debugging There is a Clip in Module 4 (11C) of my Pluralsight course on multi-threaded debugging. What s New in.net 4.5, Pluralsight, To access a similar app and practice debugging, use this help link Topic: Walkthrough: Debugging a Parallel Application Currently at Will be most useful if you actually do the walk-through

76 Next Steps Watch my video If you don t have a Pluralsight subscription one month trial, WHAT!? Use async/await in a test application without multi-threading Probably a UI application Do NOT do CPU intensive stuff or Thread.Sleep Create a multi-threaded application for the desktop Get off the main UI thread as much as possible Play with features like Progress Create an async application for a server Preserve threads Consider a web call Use caution considering multi-threading on server

77 LINQ

78 LINQ Demos Lambdas and Functional Programming LINQ Queries Performance Operators/Methods Complex Queries Expressions and Providers

79 Tracing SOUNDS BORING?

80 Understanding Production Applications NOT SO BORING?

81 Things that make debugging hard Desktop Rare Distance (can t sit down and watch) Watching doesn t help Registry corruption/error Machine dependent issues o Hookup Visual Studio remote debugging? o Run Visual Studio on your server? o Buy Ultimate for IntelliTrace? Server Same issues as desktop plus Inter-process issues Higher pressure on threads and memory Authorization issues Not being an admin

82 Two Independent Themes Abstract your tracing Appropriate server tracing Out-of-proc EventSource and ETW, possibly through SLAB Holistic

83 Tracing A mechanism for recording the path currently being taken through your application

84 Your life without tracing Your life with abstracted, semantic, out-of-proc tracing

85 Abstract!

86 Production Code Semantic Log Abstraction Your Logging Framework Production Code Your Logging Framework Abstraction Over Your Logging Framework System Trace.Write(...) Logger.Log.OpenFile(...) Specific Task

87 Semantic or Abstract Logging private void FireEvent2_Click(object sender, RoutedEventArgs e) { Logger.Log.Message("Test message"); } private void KeyEvent2_Click(object sender, RoutedEventArgs e) { Logger.Log.AccessByPrimaryKey(GetPrimaryKey(), "Customer"); } Strongly typed, IntelliSense driven Details like keywords and level defined/changed at central point Aids code readability Logging framework/tool agnostic

88 Semantic or Abstract Logging Trace.WriteLine(string.Format( Access {0} Primary Key {1}, Customer,42); Resulting string is not strongly typed Must be read by a human Or parsed in a fragile manner Ties logging to technology Log.AccessByPrimaryKey( Customer, 42); Easier to read intent Resulting log is strongly typed Can be used with any logging technology and can shift during project

89 Tracing records the path through your app Outside forces affect your app.net Operating system Service/web calls Many others o ETW integrates view of your application with outside factors - holistic

90 Old-Style Tracing You create the entire picture Tools roughly give you a crayon to draw with Technique Trace.WriteXxxx TraceSource Third-party such as Log4Net In-process recording devastates scalability

91 New-Style Tracing with EventSource or SLAB Out-of-proc: Very, very fast because off-thread immediately Holistic: Vast amount of data already available Orienteering: Your app drops locations like GPS points

92 On and off, filtering ETW Design Create trace entry ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating system ETW Session ETW Session ETW Session Observe, access trace info ETW Session ETW Session ETW Consumer

93 What happens Controller Consumer

94 Asd fdaf fdjkdhf Sadf Fkjkdslak Fdd Black Box Tracing

95 Black Box Tracing

96 Black Box Tracing

97 Black Box Tracing

98 Demo PERFVIEW

99 Naming is Very Confusing System.Diagnostics Old stuff System.Diagnostics.Tracing New stuff (.NET 4.5) EventSource EventListener Microsoft.Diagnostics.Tracing TraceSource TraceEvent Method EventSource TraceEvent Class TraceListener EventListener

100 ETW Design - Processes ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider Your App ETW Sessions managed by the operating ETW system ETW ETW Session Session Session ETW ETW Session Session ETW Consumer

101 ETW Design - Manifests ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating ETW system ETW ETW Session Session Session ETW ETW Session Session ETW Consumer

102 ETW Design - Manifests ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating ETW system ETW ETW Session Session Session Binary File Manifest ETW ETW Session Session ETW Consumer

103

104 ETW Design - Manifests ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating ETW system ETW ETW Session Session Session Binary File Manifest ProviderId EventId, Version Manifest ETW ETW Session Session ETW Consumer

105 ETW Design - Manifests ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating ETW system ETW ETW Session Session Session Binary File Manifest ProviderId EventId, Version Guid ETW ETW Session Session ETW Consumer Integer, small, non-zero optional Created from string via standard algorithm

106 ETW Design - Manifests ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating ETW system ETW ETW Session Session Session Binary File Manifest ETW ETW Session Session ETW Consumer

107 ETW Design - Manifests ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating ETW system ETW ETW Session Session Session Binary File Manifest ETW ETW Session Session ETW Consumer

108 ETW Design - Manifests ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating ETW system ETW ETW Session Session Session Binary File Manifest Manifest ETW ETW Session Session ETW Consumer

109 ETW Design - Manifests ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating ETW system ETW ETW Session Session Session Binary File Manifest ETW ETW Session Session ETW Consumer

110 ETW Design Summary ETW is composed of Core (sessions) Controllers Providers Consumers ETW does most of the work outside your process Particularly important for resources like writing files ETW is blazingly fast It s in the operating system It creates binary files or streams Manifests explain how to interpret binary files Contain provider IDs (use strings), event IDs (integers 0, 1 ), and payload def Can be registered on the machine Can be in-line in a message

111 Audiences ETW Session ETW Session ETW Controller ETW Session ETW Session ETW Provider ETW Sessions managed by the operating ETW system ETW ETW Session Session Session ETW ETW Session Session ETW Consumer

112 Writing to Channels Debug.NET 4.5 System.Diagnostics.Tracing. EventSource class Analytic.NET 4.6 or NuGet Microsoft.Diagnostics.Tracing. EventSource class Supports in-line and installed manifests Admin Operational Installed Manifest

113 Demo CREATE SEMANTIC LOGGING

114 EventSource Structure System.Diagnostics.Tracing.EventSource Your custom event source class Static Log property Method for each event type Parameter for interesting data Call to WriteEvent

115 EventSource Structure System.Diagnostics.Tracing.EventSource Your custom event source class Static Log property Method for each event type Parameter for interesting data Call to WriteEvent

116 Event EventSource Important Attribute Parameters Property Default Recommended Name Non-namespace qualified class name Use a hierarchical name meaningful to the consumer does not need to contain the class name DO NOT use the default value Guid Derived from name and also called the ProviderId Do not specify but allow to be derived from the name Property Default EventId Ordinal from top of class Must match value passed to WriteEvent Unique identifier for the event

117 Performance Summary Cached Logger int/string Object Overload Event Off Yes 9ns 100M 20ns 50M Event Watched Yes 410ns 2M 720ns 1M Event Off No 9ns 100M 19ns 50M Event Watched No 410ns 2M 730ns 50M Integer and string constants same speed Caching the logger does not alter performance Object overload is approximately twice as slow Non-watched events are nearly free See guidelines in my course (What s New & ETW) or blog!

118 Demo EXPLORE CODE PERFVIEW AGAINST RUNNING APP

119 SLAB Benefits over direct use Familiar development experience/familiar listeners (ETW not required) Really nice documentation Builds on EventSource, so you get those benefits for free Not even an intervening class Build/test time tools to validate providers In process as well of as out of process logging But use out-of-proc Alternate and multiple listeners IObservable support

120 Summary ETW Architecture Controllers, consumers, providers Manifests installed (NuGet) or in-line Channels supported in NuGet version A few tools WPA in Win 8.1 SDK and PerfView EventSource.NET 4.5 (also has EventListener which you don t care much about use SLAB).NET (validation at build, trace diagnostics-event Zero/constructor) NuGet (4.0 support, channels, validation at build, trace diagnostics-event Zero/constructor, correlation) Patterns and Practices Semantic Logging Application Block for simple development time listeners Use only ETW as production listener and controller

121 ETW Design Summary ETW is composed of Core (sessions) Controllers Providers Consumers ETW does most of the work outside your process Particularly important for resources like writing files ETW is blazingly fast It s in the operating system It creates binary files or streams Manifests explain how to interpret binary files Contain provider IDs (use strings), event IDs (integers 0, 1 ), and payload def Can be registered on the machine Can be in-line in a message

122 Overly Simple (bad) EventSource namespace EventDefinitions { public class SimpleEventSource : EventSource } {static public SimpleEventSource Log } = new SimpleEventSource(); public void Message(string Message) { WriteEvent(1, Message); } public void AccessByPrimaryKey( int PrimaryKey, string TableName) { WriteEvent(2, PrimaryKey, TableName); } Please define a few things Default Id is SimpleEventSource These must match the order of logging methods in the file Parameters/args must match

123 Normal (good) EventSource [EventSource(Name = "KadGen-EtwSamples-Normal")] public class NormalEventSource : EventSource { static public NormalEventSource Log = new NormalEventSource(); [Event(1)] public void Message(string Message) { WriteEvent(1, Message); } [Event(2)] public void AccessByPrimaryKey( int PrimaryKey, string TableName) Please define a few things } { WriteEvent(2, PrimaryKey, TableName); }

124 Semantic Logging Application Block SLAB Uses EventSource (.NET 4.5+) No other dependencies Fantastic documentation, including semantic logging concepts Out-of-proc provides consumers you re familiar with Use in-proc if it s the best your team can do now Sadly, lag behind EventSource version

125 My blog: on Twitter Free Series Pluralsight, Kathleen Dollard Event Tracing for Windows (ETW) in.net, Puzzles, What s New in.net 4.5, Module 3 is ETW Visual Studio 2015 Analyzers, upcoming Vance Morrison s blog: SLAB

DNParallel - Version: 3. TPL Dataflow

DNParallel - Version: 3. TPL Dataflow DNParallel - Version: 3 TPL Dataflow TPL Dataflow DNParallel - Version: 3 4 days Course Description: In this course, you will learn how to use the new.net 4+ features to parallelize existing code, to utilize

More information

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com 70-483 MCSA Universal Windows Platform A Success Guide to Prepare- Programming in C# edusum.com Table of Contents Introduction to 70-483 Exam on Programming in C#... 2 Microsoft 70-483 Certification Details:...

More information

UriQuery query.add + query.tostring()

UriQuery query.add + query.tostring() Employee employee = Employees.CurrentItem as Employee; if (employee!= null) UriQuery query = new UriQuery(); query.add("id", employee.id); _regionmanager.requestnavigate(regionnames.tabregion, new Uri("EmployeeDetailsView"

More information

The Task-based Asynchronous Pattern

The Task-based Asynchronous Pattern The Task-based Asynchronous Pattern Stephen Toub, Microsoft February 2012 Contents Overview... 2 The Task-based Asynchronous Pattern Defined... 2 Naming, Parameters, and Return Types... 2 Behavior... 3

More information

Three Ways Roslyn Will Change Your Life

Three Ways Roslyn Will Change Your Life Kathleen Dollard - CodeRapid @kathleendollard kathleendollard kathleen@mvps.org Blog: http://blogs.msmvps.com/kathleen http://www.pluralsight.com/author/kathleen -dollard Three Ways Roslyn Will Change

More information

Asynchronous Programming Demystified

Asynchronous Programming Demystified Asynchronous Programming Demystified http://submain.com/webcasts/asynchronous-programming-demystified/ for the webcast recording, slides and demo code download 1/14/2015 Webcast Housekeeping Audio Connect

More information

RXTDF - Version: 1. Asynchronous Computing and Composing Asynchronous and Event- Based

RXTDF - Version: 1. Asynchronous Computing and Composing Asynchronous and Event- Based RXTDF - Version: 1 Asynchronous Computing and Composing Asynchronous and Event- Based Asynchronous Computing and Composing Asynchronous and Event- Based RXTDF - Version: 1 5 days Course Description: 5

More information

JS Event Loop, Promises, Async Await etc. Slava Kim

JS Event Loop, Promises, Async Await etc. Slava Kim JS Event Loop, Promises, Async Await etc Slava Kim Synchronous Happens consecutively, one after another Asynchronous Happens later at some point in time Parallelism vs Concurrency What are those????

More information

Task-based Asynchronous Pattern 1 Implementing the Task-based Asynchronous Pattern 8 Interop with Other Asynchronous Patterns and Types 14

Task-based Asynchronous Pattern 1 Implementing the Task-based Asynchronous Pattern 8 Interop with Other Asynchronous Patterns and Types 14 Task-based Asynchronous Pattern 1 Implementing the Task-based Asynchronous Pattern 8 Interop with Other Asynchronous Patterns and Types 14 Task-based Asynchronous Pattern (TAP) https://msdn.microsoft.com/en-us/library/hh873175(d=printer,v=vs.110).aspx

More information

DOT NET Syllabus (6 Months)

DOT NET Syllabus (6 Months) DOT NET Syllabus (6 Months) THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In- Time Compilation and CLS Disassembling.Net Application to IL

More information

Simplifying Asynchronous Programming with Microsoft Visual Studio Async CTP

Simplifying Asynchronous Programming with Microsoft Visual Studio Async CTP Simplifying Asynchronous Programming with Microsoft Visual Studio Async CTP Nelson Morais Universidade Lusófona de Humanidades e Tecnologias Campo Grande, 376 1749-021 Lisboa (Portugal) +351 91 732 46

More information

ASYNCHRONOUS PROGRAMMING IN C# 5 WITHOUT USE OF MULTIPLE THREADS

ASYNCHRONOUS PROGRAMMING IN C# 5 WITHOUT USE OF MULTIPLE THREADS ASYNCHRONOUS PROGRAMMING IN C# 5 WITHOUT USE OF MULTIPLE THREADS Aleš Keprt Department of Informatics, Moravian College Olomouc ales.keprt@mvso.cz ABSTRACT: Asynchrony is a situation when multiple things

More information

Asynchronous Programming with Async and Await 1 Await Operator 12 Async 15 Accessing the Web by Using Async and Await 18 Extend the Async Walkthrough

Asynchronous Programming with Async and Await 1 Await Operator 12 Async 15 Accessing the Web by Using Async and Await 18 Extend the Async Walkthrough Asynchronous Programming with Async and Await 1 Await Operator 12 Async 15 Accessing the Web by Using Async and Await 18 Extend the Async Walkthrough by Using Task.WhenAll 33 Make Multiple Web Requests

More information

The Various Faces of the.net Task Parallel Library

The Various Faces of the.net Task Parallel Library The Various Faces of the.net Task Parallel Library Luc Bläser Hochschule für Technik Rapperswil Multicore@Siemens 2015 5 Feb 2015, Nuremberg The.NET Task Parallel Library (TPL) State of the art in.net

More information

An Async Primer. By Bill Wagner August Introduction

An Async Primer. By Bill Wagner August Introduction An Async Primer By Bill Wagner August 2012 Introduction The C# 5.0 release might seem small, given that the single major feature is the addition of async / await keywords to support asynchronous programming.

More information

VS08 This One Goes to Going Parallel with PFX, PLINQ, TPL and Async Keywords

VS08 This One Goes to Going Parallel with PFX, PLINQ, TPL and Async Keywords VS08 This One Goes to Going Parallel with PFX, PLINQ, TPL and Async Keywords Brian Noyes Chief Architect, IDesign Inc (www.idesign.net) brian.noyes@idesign.net, @briannoyes About Brian Chief Architect

More information

Asynchronous Functions in C#

Asynchronous Functions in C# Asynchronous Functions in C# Asynchronous operations are methods and other function members that may have most of their execution take place after they return. In.NET the recommended pattern for asynchronous

More information

Asynchronous Programming

Asynchronous Programming Asynchronous Programming Agenda Why async priogramming The Task abstraction Creating Tasks Passing data into tasks and retrieving results Cancellation Task dependency Task Scheduling 2 2 The Benefits of

More information

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio Introduction XXV Part I: C# Fundamentals 1 Chapter 1: The.NET Framework 3 What s the.net Framework? 3 Common Language Runtime 3.NET Framework Class Library 4 Assemblies and the Microsoft Intermediate Language

More information

Course Hours

Course Hours Programming the.net Framework 4.0/4.5 with C# 5.0 Course 70240 40 Hours Microsoft's.NET Framework presents developers with unprecedented opportunities. From 'geoscalable' web applications to desktop and

More information

Runtime code generation techniques in real life scenarios

Runtime code generation techniques in real life scenarios Runtime code generation techniques in real life scenarios Raffaele Rialdi Senior Software Architect Microsoft MVP @raffaeler https://github.com/raffaeler http://iamraf.net Abstract The runtime code generation

More information

C# Programming in the.net Framework

C# Programming in the.net Framework 50150B - Version: 2.1 04 May 2018 C# Programming in the.net Framework C# Programming in the.net Framework 50150B - Version: 2.1 6 days Course Description: This six-day instructor-led course provides students

More information

Apex TG India Pvt. Ltd.

Apex TG India Pvt. Ltd. (Core C# Programming Constructs) Introduction of.net Framework 4.5 FEATURES OF DOTNET 4.5 CLR,CLS,CTS, MSIL COMPILER WITH TYPES ASSEMBLY WITH TYPES Basic Concepts DECISION CONSTRUCTS LOOPING SWITCH OPERATOR

More information

OpenACC Course. Office Hour #2 Q&A

OpenACC Course. Office Hour #2 Q&A OpenACC Course Office Hour #2 Q&A Q1: How many threads does each GPU core have? A: GPU cores execute arithmetic instructions. Each core can execute one single precision floating point instruction per cycle

More information

POINT OF FAILURES TOPICS .NET. msdn

POINT OF FAILURES TOPICS .NET. msdn 1 TOPICS POINT OF FAILURES msdn.net 2 THREADS TASKS msdn.net 3 KEY FEATURES msdn.net 4 TASK CREATION var task = new Task(Func func); task.start(); //... task.wait(); var task = Task.Run(Func

More information

Upcoming Features in C# Mads Torgersen, MSFT

Upcoming Features in C# Mads Torgersen, MSFT Upcoming Features in C# Mads Torgersen, MSFT This document describes language features currently planned for C# 6, the next version of C#. All of these are implemented and available in VS 2015 Preview.

More information

Microsoft Windows HPC Server 2008 R2 for the Cluster Developer

Microsoft Windows HPC Server 2008 R2 for the Cluster Developer 50291B - Version: 1 02 May 2018 Microsoft Windows HPC Server 2008 R2 for the Cluster Developer Microsoft Windows HPC Server 2008 R2 for the Cluster Developer 50291B - Version: 1 5 days Course Description:

More information

This walkthrough assumes you have completed the Getting Started walkthrough and the first lift and shift walkthrough.

This walkthrough assumes you have completed the Getting Started walkthrough and the first lift and shift walkthrough. Azure Developer Immersion In this walkthrough, you are going to put the web API presented by the rgroup app into an Azure API App. Doing this will enable the use of an authentication model which can support

More information

MS-20487: Developing Windows Azure and Web Services

MS-20487: Developing Windows Azure and Web Services MS-20487: Developing Windows Azure and Web Services Description In this course, students will learn how to design and develop services that access local and remote data from various data sources. Students

More information

Event-based Asynchronous Pattern Overview 1 Implementing the Event-based Asynchronous Pattern 5 Deciding When to Implement the Event-based

Event-based Asynchronous Pattern Overview 1 Implementing the Event-based Asynchronous Pattern 5 Deciding When to Implement the Event-based Event-based Asynchronous Pattern Overview 1 Implementing the Event-based Asynchronous Pattern 5 Deciding When to Implement the Event-based Asynchronous Pattern 12 Implementing Component with the Event-based

More information

Programming C# 5.0. Ian Griffiths O'REILLY' Beijing Cambridge * Farnham Kbln Sebastopol Tokyo

Programming C# 5.0. Ian Griffiths O'REILLY' Beijing Cambridge * Farnham Kbln Sebastopol Tokyo Programming C# 5.0 Ian Griffiths O'REILLY' Beijing Cambridge * Farnham Kbln Sebastopol Tokyo Preface xvii 1. Introducing C# 1 Why C#? 1 Why Not C#? 3 C#'s Defining Features 5 Managed Code and the CLR 7

More information

DIPLOMA IN PROGRAMMING WITH DOT NET TECHNOLOGIES

DIPLOMA IN PROGRAMMING WITH DOT NET TECHNOLOGIES DIPLOMA IN PROGRAMMING WITH DOT NET TECHNOLOGIES USA This training program is highly specialized training program with the duration of 72 Credit hours, where the program covers all the major areas of C#

More information

Parallelism and Concurrency. COS 326 David Walker Princeton University

Parallelism and Concurrency. COS 326 David Walker Princeton University Parallelism and Concurrency COS 326 David Walker Princeton University Parallelism What is it? Today's technology trends. How can we take advantage of it? Why is it so much harder to program? Some preliminary

More information

Object-Oriented Programming in C# (VS 2015)

Object-Oriented Programming in C# (VS 2015) Object-Oriented Programming in C# (VS 2015) This thorough and comprehensive 5-day course is a practical introduction to programming in C#, utilizing the services provided by.net. This course emphasizes

More information

Concurrency: An Overview

Concurrency: An Overview CHAPTER 1 Concurrency: An Overview Concurrency is a key aspect of beautiful software. For decades, concurrency was possible but difficult. Concurrent software was difficult to write, difficult to debug,

More information

Contents. LINQ for Visual C# 2008 i

Contents. LINQ for Visual C# 2008 i Contents Chapter 1: LINQ to Objects...1 Introduction...1 A Simple C# 3.0 LINQ to Objects Program...1 Extension Methods...3 Lambda Expressions...5 Expression Trees...6 Object Initialization Expressions...7

More information

Object-Oriented Programming in C# (VS 2012)

Object-Oriented Programming in C# (VS 2012) Object-Oriented Programming in C# (VS 2012) This thorough and comprehensive course is a practical introduction to programming in C#, utilizing the services provided by.net. This course emphasizes the C#

More information

.Net. Course Content ASP.NET

.Net. Course Content ASP.NET .Net Course Content ASP.NET INTRO TO WEB TECHNOLOGIES HTML ü Client side scripting langs ü lls Architecture ASP.NET INTRODUCTION ü What is ASP.NET ü Image Technique and code behind technique SERVER SIDE

More information

Microsoft Visual C# Step by Step. John Sharp

Microsoft Visual C# Step by Step. John Sharp Microsoft Visual C# 2013 Step by Step John Sharp Introduction xix PART I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Beginning programming with the Visual

More information

Multiple processes can run in parallel on a single computer and multiple threads can run in parallel in a single process.

Multiple processes can run in parallel on a single computer and multiple threads can run in parallel in a single process. EE 356 Notes on Threading A process is a program in execution. In an operating system a process has a well-defined state. A five-state model of a process includes: New a process is admitted for high-level

More information

Introduction to Parallel Performance Engineering

Introduction to Parallel Performance Engineering Introduction to Parallel Performance Engineering Markus Geimer, Brian Wylie Jülich Supercomputing Centre (with content used with permission from tutorials by Bernd Mohr/JSC and Luiz DeRose/Cray) Performance:

More information

Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation. What s in a process? Organizing a Process

Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation. What s in a process? Organizing a Process Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation Why are threads useful? How does one use POSIX pthreads? Michael Swift 1 2 What s in a process? Organizing a Process A process

More information

Android App Development for Beginners

Android App Development for Beginners Description Android App Development for Beginners DEVELOP ANDROID APPLICATIONS Learning basics skills and all you need to know to make successful Android Apps. This course is designed for students who

More information

7 Tips for Raising The Quality Bar With Visual Studio 2012

7 Tips for Raising The Quality Bar With Visual Studio 2012 Visit: www.intertech.com/blog 7 Tips for Raising The Quality Bar With Visual Studio 2012 Tip 1: Exploratory Testing I have to admit that when I first found out that enhanced exploratory testing was the

More information

MOC 6461A C#: Visual Studio 2008: Windows Communication Foundation

MOC 6461A C#: Visual Studio 2008: Windows Communication Foundation MOC 6461A C#: Visual Studio 2008: Windows Communication Foundation Course Number: 6461A Course Length: 3 Days Certification Exam This course will help you prepare for the following Microsoft exam: Exam

More information

Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API

Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API Arnošt Löbel Sr. Principal Software Engineer, Autodesk, Inc. Class Summary In this class we will explore the realms of challenging

More information

Windows 8. Rainer Stropek. System Architecture. System Architecture re of Windows Store Apps. Saves the day. software architects gmbh

Windows 8. Rainer Stropek. System Architecture. System Architecture re of Windows Store Apps. Saves the day. software architects gmbh System Architecture re of Windows Store Apps Rainer Stropek software architects gmbh Windows 8 System Architecture Mail Web Twitter rainer@timecockpit.comcom http://www.timecockpit.com @rstropek Saves

More information

Joe Hummel, PhD. Microsoft MVP Visual C++ Technical Staff: Pluralsight, LLC Professor: U. of Illinois, Chicago.

Joe Hummel, PhD. Microsoft MVP Visual C++ Technical Staff: Pluralsight, LLC Professor: U. of Illinois, Chicago. Joe Hummel, PhD Microsoft MVP Visual C++ Technical Staff: Pluralsight, LLC Professor: U. of Illinois, Chicago email: joe@joehummel.net stuff: http://www.joehummel.net/downloads.html Async programming:

More information

Programming in.net. Microsoft Development Center Serbia programming course. Lesson 8 Parallelism and Threading in.net

Programming in.net. Microsoft Development Center Serbia programming course. Lesson 8 Parallelism and Threading in.net Programming in.net Microsoft Development Center Serbia programming course Lesson 8 Parallelism and Threading in.net Example 1 Our first example shows basics about threading in C#. It covers basic thread

More information

DOT NET COURSE BROCHURE

DOT NET COURSE BROCHURE Page 1 1Pointer Technology Chacko Towers,Anna nagar Main Road, Anna Nager(Annai Insititute 2nd Floor) Pondicherry-05 Mobile :+91-9600444787,9487662326 Website : http://www.1pointer.com/ Email : info@1pointer.com/onepointertechnology@gmail.com

More information

CS 326: Operating Systems. Process Execution. Lecture 5

CS 326: Operating Systems. Process Execution. Lecture 5 CS 326: Operating Systems Process Execution Lecture 5 Today s Schedule Process Creation Threads Limited Direct Execution Basic Scheduling 2/5/18 CS 326: Operating Systems 2 Today s Schedule Process Creation

More information

Whidbey Enhancements to C# Jeff Vaughan MSBuild Team July 21, 2004

Whidbey Enhancements to C# Jeff Vaughan MSBuild Team July 21, 2004 Whidbey Enhancements to C# Jeff Vaughan MSBuild Team July 21, 2004 Outline Practical Partial types Static classes Extern and the namespace alias qualifier Cool (and practical too) Generics Nullable Types

More information

C# Syllabus. MS.NET Framework Introduction

C# Syllabus. MS.NET Framework Introduction C# Syllabus MS.NET Framework Introduction The.NET Framework - an Overview Framework Components Framework Versions Types of Applications which can be developed using MS.NET MS.NET Base Class Library MS.NET

More information

DOT NET SYLLABUS FOR 6 MONTHS

DOT NET SYLLABUS FOR 6 MONTHS DOT NET SYLLABUS FOR 6 MONTHS INTRODUCTION TO.NET Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate

More information

Visual Profiler. User Guide

Visual Profiler. User Guide Visual Profiler User Guide Version 3.0 Document No. 06-RM-1136 Revision: 4.B February 2008 Visual Profiler User Guide Table of contents Table of contents 1 Introduction................................................

More information

"Charting the Course... MOC A Developing Data Access Solutions with Microsoft Visual Studio Course Summary

Charting the Course... MOC A Developing Data Access Solutions with Microsoft Visual Studio Course Summary Description Course Summary In this course, experienced developers who know the basics of data access (CRUD) in Windows client and Web application environments will learn to optimize their designs and develop

More information

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Poor co-ordination that exists in threads on JVM is bottleneck

More information

To get started with Visual Basic 2005, I recommend that you jump right in

To get started with Visual Basic 2005, I recommend that you jump right in In This Chapter Chapter 1 Wading into Visual Basic Seeing where VB fits in with.net Writing your first Visual Basic 2005 program Exploiting the newfound power of VB To get started with Visual Basic 2005,

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Learn to Code with C#

Learn to Code with C# Learn to Code with C# Getting Started with Microsoft's Cross-Platform, Open Source Language Who am I? Jeff Ammons Microsoft MVP Pluralsight Author CEO/Chief Instructor at Code Career Academy 25 Years Professional

More information

ArcGIS Pro Extensibility - Building and Deploying Addins with the new DotNet SDK

ArcGIS Pro Extensibility - Building and Deploying Addins with the new DotNet SDK ArcGIS Pro Extensibility - Building and Deploying Addins with the new DotNet SDK Charlie Macleod - Esri Esri UC 2014 Demo Theater New at 10.3 is the ArcGIS Pro Application - Extensibility is provided by

More information

The C# Programming Language. Overview

The C# Programming Language. Overview The C# Programming Language Overview Microsoft's.NET Framework presents developers with unprecedented opportunities. From web applications to desktop and mobile platform applications - all can be built

More information

Topics Covered Thus Far CMSC 330: Organization of Programming Languages

Topics Covered Thus Far CMSC 330: Organization of Programming Languages Topics Covered Thus Far CMSC 330: Organization of Programming Languages Names & Binding, Type Systems Programming languages Ruby Ocaml Lambda calculus Syntax specification Regular expressions Context free

More information

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Using the SDACK Architecture to Build a Big Data Product Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Outline A Threat Analytic Big Data product The SDACK Architecture Akka Streams and data

More information

PROCESSES AND THREADS THREADING MODELS. CS124 Operating Systems Winter , Lecture 8

PROCESSES AND THREADS THREADING MODELS. CS124 Operating Systems Winter , Lecture 8 PROCESSES AND THREADS THREADING MODELS CS124 Operating Systems Winter 2016-2017, Lecture 8 2 Processes and Threads As previously described, processes have one sequential thread of execution Increasingly,

More information

QUIZ Friends class Y;

QUIZ Friends class Y; QUIZ Friends class Y; Is a forward declaration neeed here? QUIZ Friends QUIZ Friends - CONCLUSION Forward (a.k.a. incomplete) declarations are needed only when we declare member functions as friends. They

More information

Programming in Visual Basic with Microsoft Visual Studio 2010

Programming in Visual Basic with Microsoft Visual Studio 2010 Programming in Visual Basic with Microsoft Visual Studio 2010 Course 10550; 5 Days, Instructor-led Course Description This course teaches you Visual Basic language syntax, program structure, and implementation

More information

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012 Eike Ritter 1 Modified: October 16, 2012 Lecture 8: Operating Systems with C/C++ School of Computer Science, University of Birmingham, UK 1 Based on material by Matt Smart and Nick Blundell Outline 1 Concurrent

More information

What s in a process?

What s in a process? CSE 451: Operating Systems Winter 2015 Module 5 Threads Mark Zbikowski mzbik@cs.washington.edu Allen Center 476 2013 Gribble, Lazowska, Levy, Zahorjan What s in a process? A process consists of (at least):

More information

Beginning ASP.NET. 4.5 in C# Matthew MacDonald

Beginning ASP.NET. 4.5 in C# Matthew MacDonald Beginning ASP.NET 4.5 in C# Matthew MacDonald Contents About the Author About the Technical Reviewers Acknowledgments Introduction xxvii xxix xxxi xxxiii UPart 1: Introducing.NET. 1 & Chapter 1: The Big

More information

Austin Mobile.NET Develops Group

Austin Mobile.NET Develops Group Austin Mobile.NET Develops Group Thank Sponsors Microsoft - Ryan Joy Xamarin - James Montemagno Netrix - Rabi Satter Enabling Developers to Create Native ios, Android, Mac, & Windows apps in C# Rabi Satter

More information

Layering and Addressing CS551. Bill Cheng. Layer Encapsulation. OSI Model: 7 Protocol Layers.

Layering and Addressing CS551.  Bill Cheng. Layer Encapsulation. OSI Model: 7 Protocol Layers. Protocols CS551 Layering and Addressing Bill Cheng Set of rules governing communication between network elements (applications, hosts, routers) Protocols define: Format and order of messages Actions taken

More information

10265: Developing Data Access Solutions with Microsoft Visual Studio 2010 Duration: 5 Days Method: Instructor-Led

10265: Developing Data Access Solutions with Microsoft Visual Studio 2010 Duration: 5 Days Method: Instructor-Led 10265: Developing Data Access Solutions with Microsoft Visual Studio 2010 Duration: 5 Days Method: Instructor-Led Course Description In this course, experienced developers who know the basics of data access

More information

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO 2010 Course: 10550A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN This course teaches you

More information

CS 3 Introduction to Software Engineering. 3: Exceptions

CS 3 Introduction to Software Engineering. 3: Exceptions CS 3 Introduction to Software Engineering 3: Exceptions Questions? 2 Objectives Last Time: Procedural Abstraction This Time: Procedural Abstraction II Focus on Exceptions. Starting Next Time: Data Abstraction

More information

Introduction to Asynchronous Programming Fall 2014

Introduction to Asynchronous Programming Fall 2014 CS168 Computer Networks Fonseca Introduction to Asynchronous Programming Fall 2014 Contents 1 Introduction 1 2 The Models 1 3 The Motivation 3 4 Event-Driven Programming 4 5 select() to the rescue 5 1

More information

Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500

Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500 Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500 Summary Each day there will be a combination of presentations, code walk-throughs, and handson projects. The final project

More information

Exception Namespaces C Interoperability Templates. More C++ David Chisnall. March 17, 2011

Exception Namespaces C Interoperability Templates. More C++ David Chisnall. March 17, 2011 More C++ David Chisnall March 17, 2011 Exceptions A more fashionable goto Provides a second way of sending an error condition up the stack until it can be handled Lets intervening stack frames ignore errors

More information

DNWSH - Version: 2.3..NET Performance and Debugging Workshop

DNWSH - Version: 2.3..NET Performance and Debugging Workshop DNWSH - Version: 2.3.NET Performance and Debugging Workshop .NET Performance and Debugging Workshop DNWSH - Version: 2.3 8 days Course Description: The.NET Performance and Debugging Workshop is a practical

More information

Chapters are PDF documents posted online at the book s Companion Website (located at

Chapters are PDF documents posted online at the book s Companion Website (located at vbhtp6printonlytoc.fm Page ix Wednesday, February 27, 2013 11:59 AM Chapters 16 31 are PDF documents posted online at the book s Companion Website (located at www.pearsonhighered.com/deitel/). Preface

More information

Java Threads. COMP 585 Noteset #2 1

Java Threads. COMP 585 Noteset #2 1 Java Threads The topic of threads overlaps the boundary between software development and operation systems. Words like process, task, and thread may mean different things depending on the author and the

More information

EECS 482 Introduction to Operating Systems

EECS 482 Introduction to Operating Systems EECS 482 Introduction to Operating Systems Winter 2019 Manos Kapritsos Thanks to Harsha Madhyastha and Peter Chen for the slides and notes What does an OS do? Creates abstractions to make hardware easier

More information

Programming Languages. Streams Wrapup, Memoization, Type Systems, and Some Monty Python

Programming Languages. Streams Wrapup, Memoization, Type Systems, and Some Monty Python Programming Languages Streams Wrapup, Memoization, Type Systems, and Some Monty Python Quick Review of Constructing Streams Usually two ways to construct a stream. Method 1: Use a function that takes a(n)

More information

Java Programming Tutorial 1

Java Programming Tutorial 1 Java Programming Tutorial 1 Every programming language has two defining characteristics: Syntax Semantics Programming Writing code with good style also provides the following benefits: It improves the

More information

Programming Without a Call Stack: Event-driven Architectures

Programming Without a Call Stack: Event-driven Architectures Programming Without a Call Stack: Event-driven Architectures Gregor Hohpe Google www.eaipatterns.com Gregor Hohpe Programming Without a Call Stack: Event-driven Architectures Slide 1 About Me Distributed

More information

Advanced WCF 4.0 .NET. Web Services. Contents for.net Professionals. Learn new and stay updated. Design Patterns, OOPS Principles, WCF, WPF, MVC &LINQ

Advanced WCF 4.0 .NET. Web Services. Contents for.net Professionals. Learn new and stay updated. Design Patterns, OOPS Principles, WCF, WPF, MVC &LINQ Serialization PLINQ WPF LINQ SOA Design Patterns Web Services 4.0.NET Reflection Reflection WCF MVC Microsoft Visual Studio 2010 Advanced Contents for.net Professionals Learn new and stay updated Design

More information

Consistency: Strict & Sequential. SWE 622, Spring 2017 Distributed Software Engineering

Consistency: Strict & Sequential. SWE 622, Spring 2017 Distributed Software Engineering Consistency: Strict & Sequential SWE 622, Spring 2017 Distributed Software Engineering Review: Real Architectures N-Tier Web Architectures Internet Clients External Cache Internal Cache Web Servers Misc

More information

DEVELOPING WEB APPLICATIONS WITH MICROSOFT VISUAL STUDIO Course: 10264A; Duration: 5 Days; Instructor-led

DEVELOPING WEB APPLICATIONS WITH MICROSOFT VISUAL STUDIO Course: 10264A; Duration: 5 Days; Instructor-led CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: DEVELOPING WEB APPLICATIONS WITH MICROSOFT VISUAL STUDIO 2010 Course: 10264A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN In this course, students

More information

Microsoft. Microsoft Visual C# Step by Step. John Sharp

Microsoft. Microsoft Visual C# Step by Step. John Sharp Microsoft Microsoft Visual C#- 2010 Step by Step John Sharp Table of Contents Acknowledgments Introduction xvii xix Part I Introducing Microsoft Visual C# and Microsoft Visual Studio 2010 1 Welcome to

More information

Parallelizing Ocean plug-in computations using the Background Worker + PFX pattern

Parallelizing Ocean plug-in computations using the Background Worker + PFX pattern Parallelizing Ocean plug-in computations using the Background Worker + PFX pattern Dmitriy Repin Program Architect, Schlumberger PTS Ocean Development Framework User Meeting Houston, October 24, 2014 2014

More information

CSE 333 Lecture 1 - Systems programming

CSE 333 Lecture 1 - Systems programming CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting

More information

.NET FRAMEWORK. Visual C#.Net

.NET FRAMEWORK. Visual C#.Net .NET FRAMEWORK Intro to.net Platform for the.net Drawbacks of Current Trend Advantages/Disadvantages of Before.Net Features of.net.net Framework Net Framework BCL & CLR, CTS, MSIL, & Other Tools Security

More information

10264A CS: Developing Web Applications with Microsoft Visual Studio 2010

10264A CS: Developing Web Applications with Microsoft Visual Studio 2010 10264A CS: Developing Web Applications with Microsoft Visual Studio 2010 Course Number: 10264A Course Length: 5 Days Course Overview In this course, students will learn to develop advanced ASP.NET MVC

More information

UNIT 1. Introduction to Microsoft.NET framework and Basics of VB.Net

UNIT 1. Introduction to Microsoft.NET framework and Basics of VB.Net UNIT 1 Introduction to Microsoft.NET framework and Basics of VB.Net 1 SYLLABUS 1.1 Overview of Microsoft.NET Framework 1.2 The.NET Framework components 1.3 The Common Language Runtime (CLR) Environment

More information

CS342: Software Design. November 21, 2017

CS342: Software Design. November 21, 2017 CS342: Software Design November 21, 2017 Runnable interface: create threading object Thread is a flow of control within a program Thread vs. process All execution in Java is associated with a Thread object.

More information

ANALYZING THE MOST COMMON PERFORMANCE AND MEMORY PROBLEMS IN JAVA. 18 October 2017

ANALYZING THE MOST COMMON PERFORMANCE AND MEMORY PROBLEMS IN JAVA. 18 October 2017 ANALYZING THE MOST COMMON PERFORMANCE AND MEMORY PROBLEMS IN JAVA 18 October 2017 Who am I? Working in Performance and Reliability Engineering Team at Hotels.com Part of Expedia Inc, handling $72billion

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

Simple Injector Documentation

Simple Injector Documentation Simple Injector Documentation Release 2 Simple Injector Contributors November 09, 2014 Contents 1 Quick Start 3 1.1 Overview................................................. 3 1.2 Getting started..............................................

More information

10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010

10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010 10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010 Course Number: 10262A Course Length: 5 Days Course Overview In this course, experienced developers who know the basics of Windows

More information

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services MTAT.03.229 Enterprise System Integration Lecture 2: Middleware & Web Services Luciano García-Bañuelos Slides by Prof. M. Dumas Overall view 2 Enterprise Java 2 Entity classes (Data layer) 3 Enterprise

More information