state of the platforms

17
© Copyright SELA software & Education Labs Ltd. | 14-18 Baruch Hirsch St Bnei Brak, 51202 Israel | www.selagroup.com SELA DEVELOPER PRACTICE JUNE 29 – JULY 3, 2014 Sasha Goldshtein State of the Platforms

Upload: sasha-goldshtein

Post on 24-May-2015

595 views

Category:

Technology


0 download

DESCRIPTION

Presentation from SDP 2014 covering the new announcements in Microsoft Azure, .NET, mobile development, and C++.

TRANSCRIPT

Page 1: State of the Platforms

© 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

Page 2: 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++

Page 3: State of the Platforms

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

Page 4: State of the Platforms

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

Page 5: State of the Platforms

.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++

Page 6: State of the Platforms

RyuJITRyuJIT is a rewrite of the CLR JIT compilerBetter throughput and code qualityCurrently in CTP4

Azure .NET Mobile C++

Source: Microsoft .NET Team Blog

Page 7: State of the Platforms

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

Page 8: State of the Platforms

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

Page 9: State of the Platforms

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

Page 10: State of the Platforms

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++

Page 11: State of the Platforms

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

Page 12: State of the Platforms

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

Page 13: State of the Platforms

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

Page 14: State of the Platforms

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

Page 15: State of the Platforms

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

Page 16: State of the Platforms

Questions

Page 17: State of the Platforms

© 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!