State of the Platforms

Preview:

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!

Recommended