The world is changing. Every day new devices appears around us. How will .NET survive in a word that is changing, in a word that migrates from mainstream to small and cheap devices fast and without mercy. The session will attack how .NET can survive and what are the new features of .NET that help us (the developers) to do this transition.
The Ultimate Guide to Choosing WordPress Pros and Cons
The fight for surviving in the IoT world - Radu Vunvulea
1. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
The fight for surviving in the IoT
world
Radu Vunvulea
Company: iQuest Technologies
Twitter: @RaduVunvulea
Blog: vunvulearadu.blogspot.com
3. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Why surviving?
Complex project, on cheap devices, distributed all around the
world, where you deploy one time,
run for years and you don’t restart
the system
4. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Why surviving?
Complex projects on cheap devices,
distributed all around the world
where you deploy one time, run for years
without touching the system
6. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
GE predicts investment in Industrial Internet of Things
of $60 trillion during the next 15 years
Future of IoT
= 8000$
8. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
EmbeddedOS • Low-power WiFi device
• Smart building, smart metersTinyOS
• Memory efficient, WiFi sensors
• 2 KB memory, 40 KB ROMContiky
• Energy efficient
• Multiple platform supportMantins
• Full RTOS
• Control resources at task levelNano-RK
• Power usage
• Numerous hardware supportRIOT OS
• Most popular RTOS, industry certified
• Used in healthcare and aerospaceWindRiver VxWorks
13. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
.NET System Requirements
Version CPU Memory Disk Space
.NET 2.0 400 MHz 96 MB 500 MB
.NET 3.5 400 MHz 96 MB 500 MB
.NET 4.0 1 GHz 512 MB 850 MB (x86)
2 GB (x64)
.NET 4.5+ 1 GHz 512 MB 4.5 GB
14. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
No minimum requirements, as long as you run a
supported OS (Windows, Ubuntu, CentOS, OS X)
Samples on GitHub that use less then10 MB of memory
Based on your application complexity, NFR and what
other packages you are using you will need more or less
resources
.NET Core System Requirements
17. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Classical .NET Project X-ray
A lot of projects
Many external
references
Slow start
Complex logic
High consumer
of memory and
CPU
Complex tracing
and debugging
Limited to
Windows OS
“High”
hardware
requirements
Complex library
footprint
18. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
• How many projects you have in your .NET Solution?
• How many Visual Studio solutions you have in your
project?
• How many lines of code does your system has?
Classical .NET Project X-ray
19. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
• How many projects you have in your .NET Solution?
Max(all) = 232
• How many Visual Studio solutions you have in your
project?
8 .NET, 3 C++, 1 Node.JS
• How many lines of code does your system have?
5.4 Millions
Classical .NET Project X-ray
21. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
IoT System Requirements
Low CPU
Less Memory
Small disk size
Long battery
life
As small as
possible
No 3rd parties
cost
22. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
CPU: 400 MHz processor
Memory: 256 MB of memory
Storage: 2 GB
Can you write an app in .NET for…
23. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
CPU: 400 MHz processor
Memory: 256 MB of memory
Storage: 2 GB
You might be able to do this in .NET 2.0 (3.5), but it
will be fun and challenging
Can you write an app in .NET for…
28. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Windows 10 IoT Core
Industry
grade
Robust
Enterprise
proven
security
Easy to scale
Instant
connectivity
29. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Hardware requirements:
CPU 400 MHz
Memory 256 MB
Storage 2 GB
Except core system, everthing else is optional
+Universal Apps -No shell
+Drivers -MS apps
Windows 10 IoT Core
31. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Windows
10
Editions
W10 IoT
Core
W10 IoT
for Mobile
Devices
W10 IoT
for
industry
devices
Included:
• Windows Updates
• Visual Studio
• UWP and UI
• Security and Identity
• Integrated Device
Connectivity
• Microsoft Azure IoT
32. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
W10 IoT Core
• ARM, x86, x64
• 256MB
• 2GB
• Universal Apps
• Core Drivers
• No Shell
• No MS App
W10 for Mobile
Devices
• ARM
• 512MB
• 4GB
• Modern Shell
• Mobile Apps
• Universal Apps
• Core Drivers
W10 for
Industry Devices
• x86, x64
• 1GB
• 16GB
• Desktop Shell
• Win32 Apps
• Universal Apps
• Core Drivers
36. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Runs on Linux, not only on Windows
Windows is not so common on
• IoT Devices
• IoT Gateway
Development complexity smaller than in C++
1. Cross platform
37. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Framework installation not required
Feature centric packages oriented
Footprint reduced
Deploy only what you use
2. Modular
38. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Web Sockets
Custom channel
Peer trust certificate authentication
Windows authentication with explicit credentials
(HTTP, NetTcp) – Windows only
(No) Message level security support
(No) SpnEndpointIdentity supported
3. System Model (WCF) support
39. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Direct deployment of the app from Visual Studio
Build and deploy Windows image with your
application on the flash memory
Well defined upgrade and versioning policies at
Package level
4. Remote deployment
40. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Allows to develop and test in a virtualized system that
is closer to the real one
Optimize time spent during development and testing
Reduce integration complexity
Increase learning curve
5. Docker
41. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
.NET Core vs Node.JS (embedded)
.NET Core
Open source
Support from Microsoft
and other vendors
Existing integrators
Well known language in
enterprise world
Node.JS
Random CPU spikes
No PoC for IoT industry
No big players (IoT)
Lack of specific IoT
libraries
42. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
.NET Core vs C++ (embedded)
.NET Core
Linux and
Windows
Less development
time
Easy to test and
deploy
Easy to learn and
use
C++
Cross platform
Good support for
embedded systems
Very fast
Optimize for
embedded
43. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Roadmap Windows 10 IoT Core
• It is on the right path
• Great for middleware (gateway)
• Industry grade
.NET Core
• Modular, fast and optimize for current needs
• Next generation of .NET framework
• The right framework for new projects
45. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
• Small footprint and fast
• Run on multiple devices
• Rapid development
• Flexible, modular and configurable
Windows
10 IoT
Core
• Cross platform
• Door opener
• Easy to develop, deploy and maintain
• Fast learning curve
• Well known
.NET
Core
46. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
• Small footprint and fast
• Run on multiple devices
• Rapid development
• Flexible, modular and configurable
Windows
10 IoT
Core
• Cross platform
• Door opener
• Easy to develop, deploy and maintain
• Fast learning curve
• Well known
.NET
Core