Upload
sasha-goldshtein
View
597
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Presentation from SDP 2014 covering the new announcements in Microsoft Azure, .NET, mobile development, and C++.
Citation preview
© Copyright SELA software & Education Labs Ltd. | 14-18 Baruch Hirsch St Bnei Brak, 51202 Israel | www.selagroup.com
SELA DEVELOPER PRACTICEJUNE 29 – JULY 3, 2014
Sasha Goldshtein
State of the Platforms
It’s been 8 months since we last met.
There’s enough new technology from Microsoft to fill three conferences.
Azure .NET Mobile C++
New Azure Features
Azure File Service
API Manageme
nt
Automation
Remote App
Hybrid Connectio
ns
Redis Cache Service
Azure .NET Mobile C++
Related session: Microsoft Cloud, Monday 9:00am
Major Azure Updates
Web Sites• Java support• Backup and
restore• Staged
publishing
Virtual Machines• Chef and Puppet
agents• A8 and A9
compute instances
Mobile Services• .NET backend• Offline sync• Sencha touch
support• Xamarin support
Storage• Read-only geo-
redundant storage
• Import/export service
Azure .NET Mobile C++
Related session: Microsoft Cloud, Monday 9:00am
.NET NativePrecompiles .NET apps to optimized native codeUses the C++ optimizing compiler backendEnd result does not depend on the .NET Framework installation
C# code
IL assemb
ly.ildll
Native .exe/.dll
csc ilcnuts
i
CoreFX ilc MRT
.NET Native Toolchain
Azure .NET Mobile C++
RyuJITRyuJIT is a rewrite of the CLR JIT compilerBetter throughput and code qualityCurrently in CTP4
Azure .NET Mobile C++
Source: Microsoft .NET Team Blog
Microsoft.Bcl.Simd
Modern processors can issue 4-8 integer/fp operations per cycle; RyuJIT supports it
int ArithmeticSeriesSumSimd(int n) { Vector4f vsums = new Vector4f(0, 0, 0, 0); Vector4f viter = new Vector4f(1, 2, 3, 4); Vector4f vstep = new Vector4f(4, 4, 4, 4); for (int i = 1; i <= n / 4; ++i) { vsums = vsums + viter; // ADDPS viter = viter + vstep; // ADDPS } return (int)(vsums.W + vsums.X + vsums.Y + vsums.Z);}
Azure .NET Mobile C++
32-bit float 32-bit float 32-bit float 32-bit float
32-bit float 32-bit float 32-bit float 32-bit float
32-bit float 32-bit float 32-bit float 32-bit float
XMM0
XMM1
XMM0
Roslyn and C# 6.0
Roslyn is coming, in the meantime many new C# 6.0 features were publicly revealedAnd Roslyn went open source!var salaries = new Dictionary<string, int> {
["Kate"] = 1200, ["Dave"] = 1100};
if (int.TryParse(1700, out var result)) { Console.WriteLine(result);}customer?.Address?.AddressLine[0]?.Print();
Azure .NET Mobile C++
Dictionary initializer
Declaration expression
Null propagation
More C# 6.0 Featuresusing System.Math;
class Point(int x, int y) { public int X { get; set; } = x; public int Y { get; set; } = y; public double Magnitude => Sqrt(X*X + Y*Y);}
try { Parallel.ForEach(...);} catch (AggregateException ex) if (ex.Count > 1) { ...}
Azure .NET Mobile C++
Using static membersPrimary
constructor Auto-property
initializers
Expression member
Exception filter
ASP.NET vNext
Redesigned ASP.NET
stack (MVC 6)
Cloud-optimized
.NET (11MB)
available through NuGet
Multiple side-by-
side versions of
.NET
Live refresh of
edited code
through Roslyn
Open source and
cross-platform
Related session: Introducing ASP.NET vNext, Tuesday 1:30pm
Azure .NET Mobile C++
Universal AppsWindows Phone 8.1 is sufficiently converged with WinRT to allow most code and UI to be shared
Universal app templates in Visual Studio (still creates two projects and shared files)
Azure .NET Mobile C++
Related session: Developing XAML Apps for Multiple Devices, Tuesday 1:30pm
Cordova Tools for Visual StudioBringing Cordova tools for mobile apps into Visual StudioMulti-device hybrid app templates
Azure .NET Mobile C++
Related workshop: Building Mobile Web Apps with jQuery Mobile and PhoneGap, Wednesday
Xamarin PartnershipXamarin allows building iOS and Android apps in C# and Visual StudioXamarin Forms beta announced with shared UI controls in addition to business logic
Azure .NET Mobile C++
Related session: C# Everywhere: Introduction to Xamarin, Tuesday 2:35pm
C++ Conformance and Library Updates
C++ 14 is done, C++ 17 work is underway
Largest focus is on libraries: file system*, networking, concurrency*, parallel STL*
* Previews available on CodePlex/Visual Studio “14” CTP
Azure .NET Mobile C++
Related workshop: Making the Most of C++ 11/14, Wednesday/Thursday
This Is, Or Could Be, C++async optional<string> translate_async(string term);
async auto translate(vector<string> terms){ decltype(terms) results; for (auto term : terms) { auto translated = await translate_async(term); results.push_back(translated ? translated : "N/A"s); } parallel_sort(results.begin(), results.end()); return results;}
Azure .NET Mobile C++
Related workshop: Making the Most of C++ 11/14, Wednesday/Thursday
Questions
© Copyright SELA software & Education Labs Ltd. | 14-18 Baruch Hirsch St Bnei Brak, 51202 Israel | www.selagroup.com
SELA DEVELOPER PRACTICEJUNE 29 – JULY 3, 2014
Azure .NET Mobile C++
Sasha Goldshteinblog.sashag.netCTO, Sela Group @goldshtnThank You!