TechEd North America 2014, Houston
The Microsoft Development Platform: Create Applications that Span Devices and Services – Scott Hanselman
Day 1, 12 May 2014, 11:00AM-12:00PM (FDN05)
Disclaimer: This post contains my own thoughts and notes based on attending TechEd North America 2014 presentations. Some content maps directly to what was originally presented. Other content is paraphrased or represents my own thoughts and opinions and should not be construed as reflecting the opinion of either Microsoft, the presenters or the speakers.
Executive Summary—Sean’s takeaways
- For developers, we need to focus on Cloud + Mobile
-
Very easy to debug/test using Azure
- Attach Visual Studio debugger to web app running in Azure
- Microsoft Azure Mobile Services – turnkey back-end solution for mobile apps
-
Modular focus – ability to pick the stuff you want, leave the stuff behind that you don’t
- Choice
- “Bring your own” – platform, tools, framework
-
Cross-platform – use Xamarin to get breadth
- Lots of code reuse across platforms
- Tools help you with this
-
Native vs. Web app
- Native is best experience
- Web app is “shortest path”
Scott Hanselman – Microsoft
What we are hearing from you
- Devs more important than ever
- Cross-platform required
Developer needs
- Optimize for cloud / devices
- Hybrid
Today’s Cloud/Mobile
Cloud scenarios
Dev & Test in the cloud
- Old world—process took couple week
- Plug stuff into Azure
Demo – VMs
VM demo
- Private network
- Can quickly fire up VM in virtual network
- Fire up Win 7 VMs in Azure for dev/test
- Can VPN into VM in cloud
- Remote into the machine
- E.g. testing WPF app on Win 7 VM
Back in Visual Studio – Rt-click, Enable Debugging
- Attach, set breakpoint
- Back in VM, exercise app
- Complete remote debugging session in Visual Studio
- You only pay for VM while it’s provisioned
Web Apps in the cloud
- Standards based
- Highly interactive apps
- Enterprise complexity
Browse With – various browsers
- Can push Refresh out to multiple browsers
- Ctrl-Design, hover around browser
- Modify in Design mode in browser, updated in real-time in code
- Browser Link
File New project, host in web
Hybrid Apps
- Maybe want parts of an app on the public internet, part in private network
- BizTalk Hybrid Connections (preview)
-
Also
- Virtual network et al
BizTalk Hybrid Connections
- Tunnel to corp network to get resources
Demo – Hybrid Connections
- Web site is connection to a specific host (HP laptop)
- E.g. connection string is hooked to the local machine
- Service on local machine – Hybrid Connection Manager
Mobile Apps in the cloud
- Microsoft Azure Mobile Services
- Back-end API running in cloud
- Turnkey backend for Mobile Services
- Extend internal web apps to mobile devices
- Powerful client-side library for multiple devices
- Offline sync support
- Available on any platform
Demo – Managing web API on Azure
- Supports JSON and .NET APIs
- Postman, Chrome extension – RESTful client
Web API in Azure:
Using Postman to test Mobile Service Web API:
Future of .NET
- .NET vNext
-
Multi-purpose
- Client –
-
Specialized
- Device optimized – for client
- Web and service – Cloud optimized
-
Side by side compatibility, each app has its own version of the CLR
- Break apart Framework, just use the parts that you need
- Small footprint
-
Common stuff
- “Entity Framework” everywhere
- All open source and all in .NET Foundation
ASP.NET vNext and the Modern Web
- Modular – swap out stuff you don’t like
- Seamless transition from on-premises to cloud
- Open Source with Contributions
- Faster development cycle
- Choose Editors and Tools
- Cross-platform
New project, ASP.NET vNext application
- Nested references, can pull stuff out
-
Project system changing
- Unified Nugets and References
- Bring in packages by just typing
- Run the app
-
Go into controller – C# code
- Just type in code, don’t do build step, then refresh browser and stuff changes
- No DLLs in \bin folder
-
With Roslyn, just do everything in memory, doesn’t store bits to DLL
- Code/refresh/repeat
-
Pick specific packages in NuGet that you want
- As opposed to installing .NET on local machine
- Makes it easier to try new stuff without breaking old apps
- Looking at various .nupkg builds, each of which is some subset of .NET Framework
Demo – Visitors App –
- Self-hosted, no IIS, run hosting environment in command line
- Do same app on OS X, ASP.NET running in command line on Mac, web site hits local service
ASP.NET vNext Summary
- Choice
- MVC, Web API, Web Pages 6, SignalR 3, EF 7
- SPS: Entity Framework still a first-class citizen
Cross-platform mobile development – Client
Multi-device approaches
-
.NET – rich experiences
- Use Xamarin to get breadth
-
Coming from HTML side
- Hybrid apps to get better richer experience
Windows Store Apps
- Universal Windows apps
- .NET Native
Demo – Universal App demo
- Shared module in universal app – ViewModels, resources, etc.
- Some Views shared, some views custom
Run Universal App
- Win Phone emulator, Win 8 tablet
- Debug Windows Store apps on your machine, RDPs into simulator
- Win Phone – app running on phone
.NET in Android, iOS devices
-
Native mobile apps
- Full access to device features
- High flexibility and customization per device
- Best US and performance in devices
-
Xamarin
- Microsoft/Xamarin technical and
business partnership - Visual Studio and C# capabilities fully available
- Share app logic code across device platforms
- Microsoft/Xamarin technical and
Xamarin demo
- Same app on Android and iOS
- Android app can use shared component from universal project
- Run app on Android tablet (Samsung Galaxy Fab?)
- Remote debugging on physical tablet
- “Android app that looks like an Android app” – on tablet, native
- Then run the app on an Android phone and on iPad
“Native cross-platform mobile development”
Cordova tooling in Visual Studio
-
Hybrid-HTML apps
- Natural path for web devs targeting devices
- Shortest path for cross-platform mobile
-
New Cordova tooling in Visual Studio
- Multi-device Hybrid Apps for Visual Studio
- Hybrid apps
- Flexibility to use any JavaScript framework
- Scale to complex Enterprise apps through optional TypeScript support
- End-to-end dev workflow included
Visual Studio benefits
- File New Project – now have Android, iOS, F#, Python, Node,
- Can start VMs from Visual Studio, attach to debuggers
- Fire up VMs, make web sites, deploy
- Bottom line – amazing power to developer
Demo – Hybrid App, Cordova tooling
- Devices listed in Device dropdown in Visual Studio
- “Ripple” support
- Debug Cordova from Visual Studio
Summary
-
Providing the best end-to-end development experience
- Platform
- Framework
- Tools
-
On our terms
- Bring your own in each area