SlideShare a Scribd company logo
#DotNet2018
Desarrollando un motor
gráfico en C# para
Virtual Reality y
Augmented Reality
ORGANIZATION
SPONSORS
#DotNet2018
Thank you!
#DotNet2018
@jcant0n
jcanton@plainconcepts.com
Javier is a Computer Science Engineer who has always had a passion for
3D graphics and software architecture. His professional achievements
include being MVP for Windows DirectX and DirectX XNA for the last
nine years, Xbox Ambassador, as well as Microsoft Student Partner and
Microsoft Most Valuable Student during his years at college. Currently
he works at Plainconcepts as Research Team Lead.
Javier Cantón
Research Team Lead
#DotNet2018
Wave Engine on VR,
AR and MR
#DotNet2018
Wave Engine
• 7 years ago
• Latest C# features
• Unified cross-platform API
• Component-based engine
#DotNet2018
Video
#DotNet2018
C# features to keep in
mind
#DotNet2018
Access Modifiers
• Public
Assembly 1
Assembly 2
Class 1
Class 2
Class 3
#DotNet2018
Access Modifiers
• Public
• Protected
Assembly 1
Assembly 2
Class 1
Class 2
Class 3
#DotNet2018
Access Modifiers
• Public
• Protected
• Internal
Assembly 1
Assembly 2
Class 1
Class 2
Class 3
#DotNet2018
Access Modifiers
• Public
• Protected
• Internal
• Private
Assembly 1
Assembly 2
Class 1
Class 2
Class 3
#DotNet2018
Access Modifiers
• Public
• Protected
• Internal
• Private
• Protected Internal
Assembly 1
Assembly 2
Class 1
Class 2
Class 3
#DotNet2018
Access Modifiers
• Public
• Protected
• Internal
• Private
• Protected Internal
• Private protected
Assembly 1
Assembly 2
Class 3
Class 2
Class 1
#DotNet2018
Explicit interface implementation
#DotNet2018
Explicit interface implementation
#DotNet2018
Stack Heap
Value Type vs Reference Type
Reference Type
Memory Location
Int var = 10
Value Type
Int var = 10
#DotNet2018
Boxing and Unboxing
Stack Heap
#DotNet2018
Stack Heap
Boxing and Unboxing
i (Reference type)
Int i = 4
#DotNet2018
Boxing and Unboxing
Stack Heap
i (Reference type)
4
o (Reference Type)
Memory Location
4
Boxing
Value to Reference
#DotNet2018
Stack Heap
Boxing and Unboxing
i (Value type)
4
o (Reference Type)
Memory Location
4
Unboxing
Reference to value
j (Value type)
4
#DotNet2018
Attributes
• System.Runtime.CompilerServices
• Custom attributes
#DotNet2018
Lazy evaluation or deferred execution
• Not all values needed
• Useful for other datastructs
• Easy to code
#DotNet2018
Writing C# code when
performance is the
most important thing
#DotNet2018
Micro-optimization are for
• BCL and Runtime
• You expect it
• Real Time applications
• Graphics development
• 16 ms per frame
#DotNet2018
Benchmarking best practices
@andrey_akinshin
JetBrainsRider developer
• Warmup
• Cleanup
• Enable compiler optimizations (Release Mode)
• Run benchmarks without an attached debugger
• Run benchmark several times
#DotNet2018
Simple example
• 1920x1080 resolution
• 4x4 nearpixels
• 30 frames per second
• 995.328.000 ~ 1 billion
#DotNet2018
Simple example
119 times faster
#DotNet2018
Loops
#DotNet2018
Loops
#DotNet2018
Loops
#DotNet2018
Inlining
• Do not use throw new
• Do not use virtual
• Less than 32 bytes of IL
• Up to 20% performance
#DotNet2018
#DotNet2018
#DotNet2018
Structs (fields order)
40 bytes 24 bytes
#DotNet2018
Object memory Layout
Byte
Byte
Byte
Double
Double
Byte Byte Byte
Double
Double
#DotNet2018
Repository and builds
#DotNet2018
Repository
• Visual Studio Online
• Git based repository
• Git Flow
• SourceTree
• GitKraken
• Branch Policies
• Develop needs Pull Requests
• Partial Github mirror
#DotNet2018
Builds
• TeamCity connected to VS online
• Agents
• Azure (Linux, Windows)
• MiniMacs (MacOS)
• Fake using F#
• Continue Integration
• New Release
• Nightly builds
• Samples builds
#DotNet2018
Testing
• Visual Tests
• Custom tool
• Pixel based comparison
• Unit tests
• Performance Tests
• DotnetBenchmarks
#DotNet2018
VR/AR/MR devices
#DotNet2018
VR devices
Oculus Rift
HTC Vive Pro
HTC Vive
PlayStation
#DotNet2018
Name Resolution Field Of View Weight Refresh Pricing
Oculus Rift 2160x1200 110 470 grams 90hz $399
HTC Vive 2160x1200 110 555 grams 90hz $439
HTC Vive Pro 2880 x 1600
(615 PPI)
110 470 grams 90hz $799
PlayStation 1920x1080 100 610 grams 90 – 120 hz $329
VR devices
#DotNet2018
Windows 10 VR devices
#DotNet2018
Name Resolution Field Of View Weight Release date Pricing
Acer WMR headset 2880x1440 95 350 grams October 17, 2017 $299-$399
ASUS HC102 2880x1440 95 400 grams Spring 2018 $449
Dell Visor 2880x1440 110 834 grams October 17, 2017 $329-$449
HP WMR headset 2880x1440 95 380 grams October 17, 2017 $349-$399
Lenovo Explorer 2880x1440 105 Unspecified October 17, 2017 $349-$449
Samsung Odyssey 2880x1600 110 645 grams November 6, 2017 $499
Windows 10 VR devices
#DotNet2018
VR standalone devices
Oculus Go
DayDream
Gear VR
Google VR180
#DotNet2018
MR devices
HoloLens Meta 2 Magic Leap
#DotNet2018
AR devices
ARKit
ARCore
• Iphone 6S
• Iphone 6S Plus
• Iphone SE
• Iphone 7 / 7 Plus
• Iphone 8 / 8 Plus
• Iphone X
• Asus Zenfone AR / Zenfone Ares
• Google Pixel 2 / 2 XL / Pixel / Pixel XL / Nexus 5X / Nexus 6P
• Huawei P20 / P20 pro
• Motorola Z2 Force / G6 Plus
• OnePlus 5 / 3T
• Samsung A5 / A7 / A8 / A8+ / Note 8 / S7 / S7 Edge / S8 / S8+ / S9 / S9+
• Sony XZ Premium / Xperia XZ1
• Xiaomi Mi Mix 2S
#DotNet2018
Questions & Answers
#DotNet2018
Thanks and …
See you soon!
Thanks also to the sponsors.
Without whom this would not have been posible.

More Related Content

Similar to WaveEngine Dotnet 2018

Building the Ultimate Device Matrix
Building the Ultimate Device MatrixBuilding the Ultimate Device Matrix
Building the Ultimate Device Matrix
Carly Vanderwert
 
ProtoTech Solutions Corporate Profile
ProtoTech Solutions Corporate ProfileProtoTech Solutions Corporate Profile
ProtoTech Solutions Corporate Profile
ProtoTech Solutions
 
Artificial Intelligence in practice - Gerbert Kaandorp - Codemotion Amsterdam...
Artificial Intelligence in practice - Gerbert Kaandorp - Codemotion Amsterdam...Artificial Intelligence in practice - Gerbert Kaandorp - Codemotion Amsterdam...
Artificial Intelligence in practice - Gerbert Kaandorp - Codemotion Amsterdam...
Codemotion
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
iFunFactory Inc.
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
Globant
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
DevClub_lv
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JSFestUA
 
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
mstonis
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
Slide_N
 
Your Data in Unreal: How to bring your data into real-time environments
Your Data in Unreal: How to bring your data into real-time environmentsYour Data in Unreal: How to bring your data into real-time environments
Your Data in Unreal: How to bring your data into real-time environments
Safe Software
 
Back to Space
Back to SpaceBack to Space
Back to Space
Timmy Kokke
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSITCamp
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentDavid Galeano
 
IoT practical case using the people counter sensing traffic density build usi...
IoT practical case using the people counter sensing traffic density build usi...IoT practical case using the people counter sensing traffic density build usi...
IoT practical case using the people counter sensing traffic density build usi...
Getting value from IoT, Integration and Data Analytics
 
The road to AI is paved with pragmatic intentions
The road to AI is paved with pragmatic intentionsThe road to AI is paved with pragmatic intentions
The road to AI is paved with pragmatic intentions
Jean-Georges Perrin
 
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
Amazon Web Services
 
Look ma! no hands!
Look ma! no hands!Look ma! no hands!
Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011
Lee Stott
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
Emanuele Di Saverio
 
The fight for surviving in the IoT world
The fight for surviving in the IoT worldThe fight for surviving in the IoT world
The fight for surviving in the IoT world
Radu Vunvulea
 

Similar to WaveEngine Dotnet 2018 (20)

Building the Ultimate Device Matrix
Building the Ultimate Device MatrixBuilding the Ultimate Device Matrix
Building the Ultimate Device Matrix
 
ProtoTech Solutions Corporate Profile
ProtoTech Solutions Corporate ProfileProtoTech Solutions Corporate Profile
ProtoTech Solutions Corporate Profile
 
Artificial Intelligence in practice - Gerbert Kaandorp - Codemotion Amsterdam...
Artificial Intelligence in practice - Gerbert Kaandorp - Codemotion Amsterdam...Artificial Intelligence in practice - Gerbert Kaandorp - Codemotion Amsterdam...
Artificial Intelligence in practice - Gerbert Kaandorp - Codemotion Amsterdam...
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
 
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
Xamarin Evolve 2014 - Designing Android UIs for the Ever Changing Device Land...
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
Your Data in Unreal: How to bring your data into real-time environments
Your Data in Unreal: How to bring your data into real-time environmentsYour Data in Unreal: How to bring your data into real-time environments
Your Data in Unreal: How to bring your data into real-time environments
 
Back to Space
Back to SpaceBack to Space
Back to Space
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
 
IoT practical case using the people counter sensing traffic density build usi...
IoT practical case using the people counter sensing traffic density build usi...IoT practical case using the people counter sensing traffic density build usi...
IoT practical case using the people counter sensing traffic density build usi...
 
The road to AI is paved with pragmatic intentions
The road to AI is paved with pragmatic intentionsThe road to AI is paved with pragmatic intentions
The road to AI is paved with pragmatic intentions
 
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
AWS re:Invent 2016: Powering the Next Generation of Virtual Reality with Veri...
 
Look ma! no hands!
Look ma! no hands!Look ma! no hands!
Look ma! no hands!
 
Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
 
The fight for surviving in the IoT world
The fight for surviving in the IoT worldThe fight for surviving in the IoT world
The fight for surviving in the IoT world
 

More from Javier Cantón Ferrero

Writing high performance code in Net 7.pptx
Writing high performance code in Net 7.pptxWriting high performance code in Net 7.pptx
Writing high performance code in Net 7.pptx
Javier Cantón Ferrero
 
Writing high performance code in NetCore 3.0
Writing high performance code in NetCore 3.0Writing high performance code in NetCore 3.0
Writing high performance code in NetCore 3.0
Javier Cantón Ferrero
 
Freakend 2019: Preparing for Vulkan
Freakend 2019: Preparing for VulkanFreakend 2019: Preparing for Vulkan
Freakend 2019: Preparing for Vulkan
Javier Cantón Ferrero
 
Todo lo que no sabías sobre HoloLens
Todo lo que no sabías sobre HoloLensTodo lo que no sabías sobre HoloLens
Todo lo que no sabías sobre HoloLens
Javier Cantón Ferrero
 
Phong and Blinn Phong
Phong and Blinn PhongPhong and Blinn Phong
Phong and Blinn Phong
Javier Cantón Ferrero
 
Optimizing a C# engine
Optimizing a C# engineOptimizing a C# engine
Optimizing a C# engine
Javier Cantón Ferrero
 
Screen space Techniques
Screen space TechniquesScreen space Techniques
Screen space Techniques
Javier Cantón Ferrero
 
Light Pre Pass Deferred lighting
Light Pre Pass Deferred lightingLight Pre Pass Deferred lighting
Light Pre Pass Deferred lighting
Javier Cantón Ferrero
 
Xamarin Tecnhologies
Xamarin TecnhologiesXamarin Tecnhologies
Xamarin Tecnhologies
Javier Cantón Ferrero
 
Introduction to wave engine
Introduction to wave engineIntroduction to wave engine
Introduction to wave engine
Javier Cantón Ferrero
 

More from Javier Cantón Ferrero (10)

Writing high performance code in Net 7.pptx
Writing high performance code in Net 7.pptxWriting high performance code in Net 7.pptx
Writing high performance code in Net 7.pptx
 
Writing high performance code in NetCore 3.0
Writing high performance code in NetCore 3.0Writing high performance code in NetCore 3.0
Writing high performance code in NetCore 3.0
 
Freakend 2019: Preparing for Vulkan
Freakend 2019: Preparing for VulkanFreakend 2019: Preparing for Vulkan
Freakend 2019: Preparing for Vulkan
 
Todo lo que no sabías sobre HoloLens
Todo lo que no sabías sobre HoloLensTodo lo que no sabías sobre HoloLens
Todo lo que no sabías sobre HoloLens
 
Phong and Blinn Phong
Phong and Blinn PhongPhong and Blinn Phong
Phong and Blinn Phong
 
Optimizing a C# engine
Optimizing a C# engineOptimizing a C# engine
Optimizing a C# engine
 
Screen space Techniques
Screen space TechniquesScreen space Techniques
Screen space Techniques
 
Light Pre Pass Deferred lighting
Light Pre Pass Deferred lightingLight Pre Pass Deferred lighting
Light Pre Pass Deferred lighting
 
Xamarin Tecnhologies
Xamarin TecnhologiesXamarin Tecnhologies
Xamarin Tecnhologies
 
Introduction to wave engine
Introduction to wave engineIntroduction to wave engine
Introduction to wave engine
 

Recently uploaded

The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

WaveEngine Dotnet 2018

Editor's Notes

  1. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers
  2. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers
  3. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers
  4. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers
  5. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers
  6. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers
  7. ¿Donde se almacenan los arrays? Struct no permiten herencia 192 Bytes en las guias de Windows phone. Stack = static memory Heap = Dynamic memory
  8. .NET foundation
  9. https://github.com/dotnet/corefx/commit/8c3a1bac543c7654b37a9506e3382f184849ba16#diff-f1285172a2a161542ccf657778f0852c
  10. SharpLab
  11. https://marketplace.visualstudio.com/items?itemName=StephanZehetner.InliningAnalyzer
  12. https://github.com/SergeyTeplyakov/ObjectLayoutInspector