COMIC BOOK GRAPHIC NOVEL APPROACH TO ASYNC
|
|
- Clementine Parrish
- 5 years ago
- Views:
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 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 informationMCSA 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 informationUriQuery 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 informationThe 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 informationThree 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 informationAsynchronous 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 informationRXTDF - 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 informationJS 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 informationTask-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 informationDOT 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 informationSimplifying 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 informationASYNCHRONOUS 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 informationAsynchronous 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 informationThe 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 informationAn 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 informationVS08 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 informationAsynchronous 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 informationAsynchronous 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 informationCOPYRIGHTED 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 informationCourse 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 informationRuntime 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 informationC# 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 informationApex 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 informationOpenACC 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 informationPOINT 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 informationUpcoming 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 informationMicrosoft 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 informationThis 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 informationMS-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 informationEvent-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 informationProgramming 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 informationDIPLOMA 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 informationParallelism 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 informationObject-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 informationConcurrency: 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 informationContents. 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 informationObject-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 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 informationMicrosoft 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 informationMultiple 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 informationIntroduction 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 informationQuestions 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 informationAndroid 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 information7 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 informationMOC 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 informationAsynchronous 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 informationWindows 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 informationJoe 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 informationProgramming 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 informationDOT 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 informationCS 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 informationWhidbey 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 informationC# 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 informationDOT 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 informationVisual 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
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 informationExecutive 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 informationTo 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 informationSTARCOUNTER. 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 informationLearn 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 informationArcGIS 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 informationThe 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 informationTopics 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 informationUsing 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 informationPROCESSES 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 informationQUIZ 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 informationProgramming 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 informationOutline. 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 informationWhat 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 informationBeginning 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 informationAustin 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 informationLayering 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 information10265: 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 informationPROGRAMMING 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 informationCS 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 informationIntroduction 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 informationMastering 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 informationException 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 informationDNWSH - 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 informationChapters 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 informationJava 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 informationEECS 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 informationProgramming 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 informationJava 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 informationProgramming 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 informationAdvanced 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 informationConsistency: 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 informationDEVELOPING 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 informationMicrosoft. 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 informationParallelizing 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 informationCSE 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 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 information10264A 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 informationUNIT 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 informationCS342: 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 informationANALYZING 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 informationChapter 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 informationSimple 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 information10262A 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 informationMTAT 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