State of .NET Markus Egger President & CSA, EPS Publisher, CODE Magazine About the Presenter Markus Egger • President and CSA EPS Software Corp. (USA & Europe) • Publisher: CODE Magazine • International Author and Speaker • Microsoft RD (Regional Director) • Microsoft MVP: C# About CODE & EPS Software Corp. “Helping People Build Better Software” • • • • • • • Custom Software, Consulting, Training, Mentoring,… Windows, Web, Mobile Cloud Databases User Interface and Interaction Design Project Rescue Legacy Conversions Social Networks • We appreciate people tweeting about these events, or mentioning them on Facebook and other social networks • Facebook: Link to @StateOfDotNet • Twitter: #StateOfDotNet hash-tag Agenda • Where are we at? • How do we develop today? • What’s new with Visual Studio? • What’s new with .NET? • What’s new with Windows? • What’s new with the Cloud? The Big Picture The “New Microsoft” • Microsoft is Back!!! • My non-Microsoft take on things: • • • • Microsoft is back to being the friendlier, cooler Microsoft! Microsoft is back to building cool new stuff that’s actually exciting! Microsoft is back as the leader in OS innovation Microsoft is building incredible Enterprise-level software • Very rapid developments The “Open Microsoft” • Strategic move to Open Source • Example: ASP.NET vNext • Strategic move to embracing all technologies and platforms Visual Studio Visual Studio 2015 • Visual Studio 2015 is now available • You can easily open existing Visual Studio projects in 2015 without changes Visual Studio 2015 Community Edition • Free version of Visual Studio 2015 • You can think of this as “Visual Studio Professional” • Full support for features such as add-ins and extensions • Free for non-Enterprise developers Visual Studio Editions What’s New in Visual Studio 2015 • Tons of little enhancements • Example: Debugging lambdas • Support for various new development scenarios and technologies • …the details of which will keep us busy for the rest of the afternoon • New compiler and editor platform • Roslyn, C# 6, VB 14 • Support for new file types and technologies • Example: Bower and NPM for web developers • New Tools • Example: Performance, Android Emulator,… Visual Studio Code • A new, lightweight IDE that is part of the Visual Studio family • Completely free of charge • Runs on Windows, Mac, and Linux • Focus on code • Great for modern web and cloud development New Features in C# • Lots of small new features that help with productivity • • • • • • • • • Read-only auto-properties, and property initializers “using” static methods to bring them into scope String interpolation Expression-bodied methods/properties Index initializers Null-propagation nameof operator Exception filters await in catch and finally New Features in Visual Basic 14 • • • • • • • • • Better coding experience (refactoring, better editor support,…) Inline comments Read-only auto-properties Multi-line string literals References in Solution Explorer by default Improved compiler performance NameOf operator Null propagation String interpolation NuGet • NuGet’s role in the Visual Studio ecosystem is steadily gaining significance • Going forward, references will generally come from NuGet Visual Studio Tools for Apache Cordova • Visual Studio integrates the Apache Cordova Tools for HTML5based cross platform hybrid mobile development • Note: Check out the article by Rick Strahl on www.codemag.com Xamarin • Still very important for building native mobile apps on iOS, Android, and more… using .NET • However, we do not have enough time to go into this in detail today Windows • Great for desktop use • Familiar experience across devices • Tailored to form factor • Customize the Start Menu by resizing, pin/unpin the Windows Apps or Windows Desktop Apps in Live Tile. • Dynamically switches the interface between the Desktop PC and 2-in-1 Tablet mode that’s better suited for fingers • Tablet Mode setting is also available in Action Center. Continuum for Convertibles and Phones Continuum for Phones • Improved the snap feature to include more snap options • To snap a window, click its title bar and drag it to the edge of your screen. • Press Windows Key + Arrow to snap from Keyboard • Biometric authentication technology powered by Intel RealSense 3D Camera • Login by using your face, iris, or fingerprint to unlock your devices • Prevent unauthorized user to access and authenticate by using photo • Replaced Charms Bar • Repository useful information with pop-up reminder • Turn On/Off the common functions • Windows Update for Business is FREE for Windows 10 Pro and Enterprise devices. • Patch ONLY security updates, without any functional updates. • Specify which devices go first in an update wave, and which ones will come later. • Specify maintenance windows timeframes. • Peer to peer delivery. • One year free upgrade offer • Applicable to Windows 7/8.1 Home/Pro editions • Enterprise Edition and Windows RT are excluded • Active SA customers may upgrade to Enterprise edition as part of their SA benefit • Devices must be compatible Universal App Platform • Remember those WinRT apps that nobody wanted to use in Windows 8? • Well, those apps now seriously rock! • You can now build one app that runs on all Windows 10 devices • Desktop, slate, mobile, headless, Xbox, Surface Hub,… • Universal Apps are now much more powerful and “normal” • Universal Apps can be seen as a new way to build powerful desktop apps, and more • They support most things you would expect from a typical windows app iOS Apps on Windows 10 • Using Visual Studio, it is possible to open an Objective-C based iOS project and re-compile it as a Windows 10 app • Most assets are reused • Unless you want to do some manual fine-tuning • The experience includes standard Windows 10 components Android Apps on Windows 10 • It is possible to take Android (Java) projects and re-compile them for Windows 10 • Most of the assets will be reused • Unless you want to do some manual fine-tuning • The experience will include native Windows 10 components Windows Store • Windows Store supports all Universal Apps • …across all Windows flavors • It also supports .NET apps! • There is a better Enterprise/private deployment version HoloLens • “Holographic” computing in the form of a wearable computer • Think of this as a combination of a PC, Google Glass, and Oculus Rift • The “holograms” are projected into the glasses to appear in the real world • The apps running on HoloLens are Universal Apps • Either unmodified, or tailored to provide an optimized holographic experience • Watch the demo at: https://www.youtube.com/watch?v=3AADEqLIALk Edge Introducing Microsoft Edge • Faster, safer and sites “just work” • Always up-to-date, and with a new engine built for the modern web • More secure by default • Single codebase across all Windows 10 devices, with an experience that scales fluidly for each device • Set as default web browser for Windows 10 Microsoft Edge • New experiences to make you more productive on the modern web • Capture and share your thoughts and ideas with web notes right on the page • The best place to read, with a distraction-free reading view, and gorgeous new Reading List to get you back to your interests. • Redefined around you, with Cortana built-in and ready to help you get things done on the Web Windows Browser Roadmap 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2019 2020 Internet Explorer 8 Internet Explorer 9 Internet Explorer 10 Internet Explorer 11 Internet Explorer 10 Internet Explorer 11 Internet Explorer 11 Microsoft Edge 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 Browser Internet Explorer Web Platform Trident Browser Chrome Web Platform Blink Browser Safari Web Platform Webkit Browser Firefox Web Platform Gecko 1995 2015 1 2 3 4 4.x 5 5.5 6 7 Trident 8 9 10 11 HTML4, ES3, CSS2 1995 2015 1 2 3 4 4.x 5 5.5 6 7 8 Trident !DOCTYPE Quirks Strict 9 10 11 HTML4, ES3, CSS2 1995 2015 1 2 3 4 4.x 5 5.5 6 7 8 Trident !DOCTYPE Quirks Strict 9 10 11 HTML4, ES3, CSS2 CSS2.1 1995 2015 1 2 3 4 4.x 5 5.5 6 7 8 Trident !DOCTYPE x-ua-compatible IE5 Quirks IE7 Compatibility View IE8 Standards Mode 9 10 11 HTML4, ES3, CSS2 CSS2.1 HTML5, SVG, ES5 1995 2015 1 2 3 4 4.x 5 5.5 6 7 8 Trident !DOCTYPE x-ua-compatible IE5 Quirks IE7 Compatibility View IE9 Standards Mode IE8 Standards Mode 9 10 11 HTML4, ES3, CSS2 CSS2.1 HTML5, SVG, ES5, CSS3 1995 2015 1 2 3 4 4.x 5 5.5 6 7 8 Trident !DOCTYPE IE5 IE7 IE8 Quirks Compatibility View Standards Mode IE9 QME IE10 x-ua-compatible Standards Mode Quirks Mode Emulation Standards Mode 9 10 11 HTML4, ES3, CSS2 Legacy Web CSS2.1 Modern Web HTML5, SVG, ES5, CSS3 1995 2015 1 2 3 4 4.x 5 5.5 6 7 8 Trident !DOCTYPE IE5 IE7 Quirks Compatibility View IE9 IE10 IE8 EMIE QME IE11 Standards Mode Enterprise Mode x-ua-compatible Standards Mode Standards Mode Quirks Mode Emulation Standards Mode 9 10 11 Gecko Browser Firefox Evergreen Blink Browser Chrome Evergreen Microsoft EdgeHTML Browser Edge Evergreen Windows Desktop Apps (WPF) New for Windows Desktop (WPF) • Performance improvements • And performance tools • Touch support improvements • DirectX Integration • Native Support for DX11 and DX12 • Supporting Modern Hardware • Improved Tooling • Including a very cool new Blend experience New for Windows Desktop (WPF) • Better support for high-DPI • Multi-DPI Cursors, clipping,… • App Local • WPF as individual NuGet Components • Side-by-side • Content Deferral • Improved Stylus and On-Screen-Keyboard support Windows Universal Apps What are Windows Universal Apps? • Windows 10 can execute two types of apps • “Conventional Windows Apps” based on “Win32 style architecture” • “Desktop Apps”, 32 bit or 64 bit • Run on PCs only • Universal Apps running on a new fundamental tech stack • Formerly “WinRT”, “Store Apps”, “Metro Apps”,… • Run on any hardware (PCs, Phones, Xbox,…) WPF WF MFC XAML HTML DirectX .Net .Net C++ languages languages & CX WWA Obj.C Java Web Win32 iOS Android hosted desktop Bridging technologies C++ .Net runtime Universal Windows Platform Windows 10 operating system One Windows Desktop SKU Mobile SKU PC Tablet 2 in 1 Phablet Phone Xbox SKU Xbox IoT SKU Band IoT headless SKU Raspberry Pi Home Automation Surface Hub SKU Surface Hub Holographic SKU HoloLens The convergence journey Unified core and app platform Converged OS kernel Converged app model Windows 10 Easy for users to get & stay current Phone Phablet Small Tablet 2-in-1s (Tablet or Laptop) Large Tablet Classic Laptop Desktops & All-in-Ones Windows 10 Surface Hub Xbox Holographic IoT Adaptive User Interface Natural User Inputs One SDK + Tooling One Store + One Dev Center One Universal Windows Platform Reuse Existing Code Bridge Technologies • Objective-C • iOS code can be reused in Universal Windows Apps • Android • Android Java code can be reused in Universal Windows Apps • Web • HTML-based apps can be wrapped to run as a hybrid Windows App • Win32 • Classic Windows apps can be packaged as APPX apps to be deployed through the Windows Store • Note: They still are Win32 apps targeting the Win32 platform only! Adaptive Design • Responsive Design • Flexible layout responds to small changes • Many controls handle basic responsiveness • Adaptive Design • Smart layout responds to large changes • Features such as Visual States aid in this design • Tailored Design • Device specific apps simplify designs • Some devices have unique design languages Adaptive Design Phone (portrait) Tablet (landscape) / Desktop Tailored Design Tablet (landscape) / Desktop Phone (portrait) Adaptive Code • Compatible Across Devices • Universal API with device-specific implementations • Not all features are available everywhere • But the same binary app compiled against these API will still work • Testing capabilities adaptively at runtime var api = "Windows.Phone.UI.Input.HardwareButtons"; if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(api)) { Windows.Phone.UI.Input.HardwareButtons.CameraPressed += CameraButtonPressed; } .NET Native • Every App in the Store is compiled with .NET Native • Likely used for other types of apps in the future • .NET Native is a next-generation compiler in the Cloud • Apps use the standard C++ Compiler • As Optimizer Performance improves, so does .NET Native • Apps with .NET Bootstrapper • Includes Garbage Collection • There is no runtime, since this creates native machine code • Improved startup time and less memory usage Developing Windows Universal Apps • Visual Studio 2015 • Usually done on Windows 10 • Although Windows 8.1 is supported • Typically done with XAML and C#/VB • The older HTML-based scenarios is still supported but not pushed Windows store One Store, One Catalog Apps Including Win32 Music Video Xbox Games The Business Store • Public Store Apps are listed in the Business Store • Businesses can control what their users can see • Businesses can buy in bulk • Offline scenarios are supported • Privately published apps are supported • ISVs can make their apps available to specific customers • Businesses can use the Store infrastructure to deploy their in-house private apps ASP.NET Problems with ASP.NET Architecture • Limited hosting capabilities (IIS only) • Dependency on IIS environment (System.Web) • Web evolves faster than the .NET Framework • Requires full .NET Framework • Resource-intensive and not Web/Cloud friendly • Hard to optimize for lightweight, high-performance apps • How much server-side processing do you really need? ASP.NET 5 (“ASP.NET vNext”) • ASP.NET 5 is a complete re-write of ASP.NET • Modular and not platform dependent • The ASP.NET Framework now comes in lots of tiny packages that are brought in through NuGet • Pick and choose the features and components you would like to use • Better suited for Cloud-operations • MVC 6 • No separate WebApi, no more WebForms Introducing ASP.NET 5 stack ASP.NET Web API MVC Web Pages Middleware .NET Core CLR .NET CLR Host IIS Self-hosted OS .NET Core vs. Full .NET Runtime • In ASP.NET 5, there are two versions of the .NET Runtime • Full .NET Runtime, and .NET Core • ASP.NET 5 runs on both! • .NET Core runs cross platform • Windows, Mac, Linux • .NET Core is a sub-set of the Full .NET Runtime • In the near future, most people will probably use ASP.NET 5 on the full runtime • …but this will probably change in the future .NET 2015: High-Level Overview A Word about 4.x • There are many features of ASP.NET 4.x that will continue to be supported • It is fine to keep using that version… • …and the full runtime .NET Framework 4.6 ASP.NET vNext Release Schedule • ASP.NET vNext is currently in Beta • Although some say “Alpha” is a better term ;-) • But things have been coming together lately • Release in Early 2016 More about ASP.NET vNext • Attend tonight’s user group for more information on ASP.NET vNext! Azure What is Azure? • Azure is an open and flexible cloud platform that enables you to quickly build, deploy and manage applications across a global network of Microsoft-managed datacenters. • You can build applications using any language, tool, or framework. And you can integrate your public cloud applications with your existing IT environment. Why the Cloud? • Rapidly setup environments to drive business priorities • Scale to meet peak demands • Increase daily activities, efficiency and reduced cost. >57% >300k Fortune 500 using Azure >30 >3 TRILLION storage objects MILLION requests/sec Active websites >300 >13 MILLION AAD users BILLION authentication/wk More than 1,000,000 SQL Databases in Azure >1.65 MILLION Developers registered with Visual Studio Online 17 Regions Worldwide in 2015 Azure footprint Data Centers Regional Partners 99.9% = 43 minutes/month Compliance: aka.ms/AzureCompliance Partners Support for Open Source Languages CMS Devices Databases / Apps Operating systems Management A Couple Of Things to Know About Azure • Azure is BIG. • Azure changes almost daily. • The terminology changes a lot too! • There are 2 Azure portals, each with different capabilities. What’s in Azure as of today 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Active Directory API Management Application Insights Automation Backup Batch BizTalk Services Blobs CDN Cloud Services Data Factory DocumentDB Event Hubs Express Route Files HDInsight 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Hybrid Connections Import/Export Key Vault Machine Learning Management Portal Marketplace Media Services Mobile Engagement Mobile Services MultiFactor Authentication Notification Hubs Operational Insights Power BI (analytics for Excel) Redis Cache RemoteApp Scheduler Note: items in italics are currently in preview 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. Search Service Bus Site Recovery SQL Database Storage Queues StorSimple Stream Analytics Tables Traffic Manager Virtual Machines Virtual Network Visual Studio Online VM Depot Websites Some other things to take note of • App Services (adds logic (use connectors) & api (create connectors) apps to web and mobile apps) • Windows Azure Pack (software: run an Azure cloud on-prem) • Cloud Platform System (hardware: on-prem cloud from Dell) • Active Directory Application Proxy (secure on-prem web apps & services with Azure AD) • Machine Learning Marketplace (brings data owners and data analyzers together) • Storm for HDInsight (analysis for Hadoop) • HBase for HDInsight (extends Hadoop) • Analytics Platform System Appliance (gateway between on-prem data and cloud analytics) • Live Streaming for Media Services • Visual Studio Emulator for Android • Visual Studio Tools for Apache Cordova • Lots of IOT services coming A few things that are coming • Storage iOS Library • Availability on Demand (builds on Site Recovery and Backup) • Role-Based Access Control • Network Virtual Appliances (hardware) • Microsoft Identity Manager • Visual Studio Online Release Management • Microsoft just bought Revolution Analytics, the makers of R Notes for Azure offerings COMPUTE • • • • • Virtual Machines (not just Windows) Cloud Services (web roles and worker roles) Scheduler (scheduled jobs call svcs anywhere) RemoteApp (remote desktop for a single app) Batch (schedule & scale .exes) STORAGE • • • • • • • • Blobs Tables (NoSQL key/attribute) Import/Export (ship encrypted hard drives) Files (\\server\share\ drive in the sky) SQL Database (2014) StorSimple (SAN appliance hybrid storage) DocumentDB (NoSQL JSON) Redis Cache (atomic key-value. scale / latency) NETWORKING • • • Virtual Network Express Route (dedicated lines to Azure) Traffic Manager (load balance traffic.) DATA ANALYTICS HDInsight (Hadoop – big data) Machine Learning (mine data to make predictions) Stream Analytics (analyze without storing) Data Factory (data warehse - multiple sources) Media Services (encode and stream) CDN HYBRID INTEGRATION VPN) Mobile Services (easy services, db, sync) API Management (API catalog) Notification Hubs (push notifications to devices) Backup (scheduled powershell xfers) Site Recovery (VM cloud backup) MEDIA & CDN MOBILE • • • Active Directory (cloud identity and access) MultiFactor Authentication (annoying texts) COMMERCE Marketplace (fka Dallas) VM Depot Event Hubs (high throughpt data collection IOT) BACKUP Websites (not just ASP.NET) IDENTITY & ACCESS DEVELOPMENT WEB • Search (index a website or db) Storage Queues (older, based on blob storage) Service Bus (queues on-prem <-> cloud) BizTalk Services (enterprise app integration) Hybrid Connections (websites & services w/o Visual Studio Online (TFS online) Application Insights (instrument web apps and services) MANAGEMENT Automation (PowerShell) Operational Insights (on-prem machine / network instrumentation dashboard) Management Portal Key Vault (hardware security) AWS Offerings 51 Key Scenarios to get started with Microsoft Azure • Dev / Test • Full test and dev environments in minutes • VSO integration • Lift and Shift • Take existing work loads and run then in a certified instance • Storage • Archive key data in inexpensive cloud storage • Big Data • Process key data into business intelligence using Hadoop or Machine Learning • Identity • Synchronize all your identities through Azure AD to control access to Apps, Data and Services • Web Apps • Take your web apps to the cloud using inexpensive App Service Web Apps Scenario 1 • I need a new SAN. I need a LOT of disk capacity. Add a StorSimple hardware appliance to your network. Get a big SAN in the cloud. Local caching in the hardware device. Huge capacity in the cloud. Scenario 2 • I want to try out Visual Studio and Windows previews. Fire up a Virtual Machine pre-loaded with the software from the VM Depot Shut it down when you’re not using it and it only costs a couple of bucks. Scenario 3 • I have an existing desktop app that I sell and I want to offer it as a service to new clients. Fire up Windows Server 2012 Virtual Machines with Remote Desktop Services installed. Install the app, database, etc.. Use Virtual Network to make them part of your domain or create a new domain controller on a VM in Azure. or Extend your Active Directory with Azure Active Directory. Package your app and deploy it to RemoteApp. Scenario 4 • I want to develop and deploy a new web site that could end up being a small site, or high volume a global site. Create an appropriate database, such as Azure SQL Database and share it among the dev team. Develop your app using HTML5, JavaScript, CSS3 and other tools such as Angular and deploy to Azure as your dev/test environment. Build services deploy them in-process for fast calls from C# and also as REST via Web API for AJAX calls. Deploy QA and production environments to Web Apps. Scale as necessary. Scenario 5 • My web site is getting bigger and going global. I need to do more than just scale up. Add Content Delivery Network worldwide to serve static content fast. Add Application Insights to help you monitor, troubleshoot and predict. Add Media Services to stream those videos. Add Search so users can quickly search across your entire growing site. Add Redis Cache to speed up the site & lighten the load on the DB. Scenario 6 • I want to get a mobile app up and running fast. Create your mobile app with Xamarin/Cordova/Objective C/Java/UA. Create a new Azure Mobile Services project in Visual Studio and deploy to Azure. Web API, single sign-on, push notifications, SQL/Table/MongoDB, sync Scenario 7 • My manufacturer has sensors on all of our equipment. I need to start securely storing, querying, analyzing and making predictions. Set up ExpressRoute for a private, dedicated connection to Azure. Add an HDInsights cluster to store a huge amount of data and query it. Add a Service Bus Queue for durable, rapid intake of data. Use Machine Learning to analyze and predict. Scenario 8 • I’m a developer Use the $100/month you get with your MSDN/BizSpark subscription. Use Visual Studio Online for free, globally accessible source control. Use Azure SQL Database to make your databases globally available. Use Application Insights to instrument all of your deployed apps. Use Multi-Factor Authentication to send texts confirming user’s identities. Use Notification Hubs to add push notification to phones. Use Visual Studio Online to load test web sites and services at scale. Activate your MSDN Benefits… + 3 VMs for 16 hrs a day Up to $150 per Month 80 VMs for 20 hour load test 33% off Dev/Test VMs 25% Up to 100 web sites + DB off Other Dev/Test 89 Countries Other Announcements CODE Framework • Application development framework for professional business application developers • Services, XAML, Web, Mobile,… • Free and open-source • www.codemag.com/framework CODE Training • Training classes scheduled in our Houston offices • …but can also be attended online • Several classes are coming up shortly • More classes to be announced soon • Custom training and mentoring also available CODE Training – Day of Azure • Houston – 10/6/2015 • Dallas – 10/8/2015 • More locations t.b.a. Free CODE Consulting • You are also entitled to a free 1-hour consultancy if you need a recommendation as to what technologies to use in your project(s) • info@codemag.com Lunch with CODE • We offer free lunch presentations on topics of your choice • We even bring the lunch! • lunch@codemag.com Free CODE Magazine • As an attendee to this event, you are entitled to a free subscription! • …which you will get automatically, unless you don’t want us to Q&A Contact us with questions! CODE/EPS Contact: www.codemag.com info@codemag.com facebook.com/codemag twitter.com/codemagazine Presenter Contact: www.MarkusEgger.com/Blog markus@codemag.com facebook.com/MarkusEggerEPS twitter.com/MarkusEgger