Sie sind auf Seite 1von 49

Weekly development podcast

mergeconflict.fm

Weekly development show


xamarinshow.com

James
Montemagno
Principal Program Manager – Mobile Developer Tools,
Microsoft

motz@microsoft.com motzcod.es @JamesMontemagno


Visual Studio
Visual Studio for Mac
Visual Studio Code
Visual Studio Mobile Center
Visual Studio Team Services
Announcing
Visual Studio 2017
General Availability

Download now at
visualstudio.com
FUNDAMENTALS CLOUD MOBILE DEVOPS
Demo
Getting Started with Xamarin for Visual Studio

Photo used under CC http://www.wocintechchat.com/


1 Year anniversary:
Xamarin joins Microsoft
Xamarin.Forms Previewer Visual Studio for Mac Preview Platform Specifics

Xamarin.Forms Native Embedding Inspector


Xamarin included in Visual Studio

Open Source Xamarin.Forms Android Nougat


Open Source Xamarin.Android

Xamarin.Forms URL Navigation Embedded Native Controls

iOS 10 .NET Standard Remote iOS Simulator on Windows


MIT License Mono

Open Source Xamarin.Mac Workbooks BitCode support Vulkan API

Open Source Xamarin.iOS Multi-process debugging on Mac WatchOS 3

Hybrid AOT TLS 1.2 Skia 2D Graphics Xamarin.Forms Tizen


5-STAR APPS
MADE EASY

MOBILE DEVOPS
AUTOMATED
• Native user interface
• High-fidelity API access
• Native performance

Xamarin: Anything you can do in Objective-C,


Swift, or Java, you can do in C# and Visual Studio
Xamarin’s unique approach

iOS C# UI Android C# UI Windows C# UI

Shared C# logic

Shared C# codebase • 100% native API access • High performance


Xamarin Native approach

iOS C# Android C# Windows C#

Shared C# Logic

3 Native User Interfaces


Shared App Logic
Xamarin.Forms approach

Shared UI Code

Shared C# Logic

Shared (Native) User Interfaces


Shared App Logic
How Xamarin Works
Windows APIs

Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices

System.Net System System.IO System.Linq System.Xml

System.Data System.Windows System.Numerics System.Core System.ServiceModel

C#
Android – 100% API coverage

Text-to-speech ActionBar Printing Framework Renderscript NFC

System.Net System System.IO System.Linq System.Xml

System.Data System.Windows System.Numerics System.Core System.ServiceModel

C#
iOS – 100% API coverage

MapKit UIKit iBeacon CoreGraphics CoreMotion

System.Net System System.IO System.Linq System.Xml

System.Data System.Windows System.Numerics System.Core System.ServiceModel

C#
Native performance

IL
.NET
.NET
ARM
BINARY .NET +
JIT

C#
C# AOT .APP C# Compile
and Link .APK
Runs Runs
Bindings
Bindings natively Bindings natively

Xamarin.iOS does full Ahead Of Time Xamarin.Android takes advantage


(AOT) compilation to produce an ARM of Just In Time (JIT) compilation on
binary for Apple’s App Store. the Android device.
✓ Always up-to-date

Same-day Full support for:


support: • Apple Watch
• iOS 5 • Apple TV
• iOS 6 • Android Wear
• iOS 7
• Amazon Fire TV
• iOS 8
• Google Glass
• iOS 9
• iOS 10 • and much more
TOOLS

.NET STANDARD LIBRARY

COMMON INFRASTRUCTURE
$_

Compilers Languages Runtime components


Inspector Connected services

Profiler New templates

Forms previewer Workbooks

iOS simulator Test recorder


Demo
Building native mobile apps with
Xamarin for Visual Studio 2017

Photo used under CC http://www.wocintechchat.com/


Trends
Software development is a team sport
Agile & DevOps change the flow
Individual productivity still matters
public async

<//> Task<int>
{int x = await task;

Development flows left to right and repeats


We can do better
Tighten the cycle
Catch issues before check-in
Identify issues in production
public async

<//> Task<int>
{int x = await task;

Continuous integration + real-time experiences = shift left


public async

<//> Task<int>
{int x = await task;
public async

<//> Task<int>
{int x = await task;

Edit and continue – pulled debugging into the edit/build cycle


public async

<//> Task<int>
{int x = await task;
public async

<//> Task<int>
{int x = await task;

Live unit testing – pulls quality further into the inner loop
public async

<//> Task<int>
{int x = await task;
public async

<//> Task<int>
{int x = await task;

Live code analysis – immediate feedback loop


docs.microsoft.com/en-us/dotnet/articles/csharp/csharp-7
private static (int Max, int Min) Range(IEnumerable<int> numbers)
{
int min = int.MaxValue;
int max = int.MinValue;
foreach(var n in numbers)
{
min = (n < min) ? n : min;
max = (n > max) ? n : max;
}
return (max, min);
}

var range = Range(numbers);


Or
(int min, int max) = Range(numbers);
public static int DiceSum4(IEnumerable<object> values)
{
var sum = 0;
foreach (var item in values)
{
switch (item)
{
case 0: break;

case int val: sum += val; break;

case IEnumerable<object> subList when subList.Any():


sum += DiceSum4(subList);
break;

case IEnumerable<object> subList:


break;

case null:
break;

default:
throw new InvalidOperationException("unknown item type");
}
}
return sum;
}
Demo
Productivity improvements and C# 7

Photo used under CC http://www.wocintechchat.com/


Announcing
Visual Studio 2017
General Availability

Download now at
www.visualstudio.com
Visual Studio 2017 launch partners 116 +500
launch partners extensions
Announcing
New value for Visual Studio
Enterprise subscribers

Pluralsight: 1 year full catalog


Office 365 Dev: 25 seats
Parasoft: 6 months
WhiteSource: 6 months
Announcing
New value for Visual Studio
Dev Essentials members
Opsgility: 3 months of Azure and DevOps training
Xamarin University Training Classes
Azure Credits
So Much More
aka.ms/devessentials
Announcing
Visual Studio for Mac
Preview 4

A mobile-first, cloud-first IDE. Made for the Mac.


Native mobile and Mac apps in C#
Build from the client to the cloud
Announcing
Visual Studio Mobile Center
Preview

Lets developers build apps, not ops


Easy to adopt
Ready for the enterprise
aka.ms/mobilecenter
FUNDAMENTALS CLOUD MOBILE DEVOPS
• visualstudio.com
• xamarin.com

• github.com/jamesmontemagno/MyItems-VS2017

• aka.ms/devessentials

• launch.visualstudio.com
Weekly development podcast

Thank you.
mergeconflict.fm

Weekly development show


xamarinshow.com

James
Montemagno
Principal Program Manager – Mobile Developer Tools,
Microsoft

motz@microsoft.com motzcod.es @JamesMontemagno

Das könnte Ihnen auch gefallen