Uwp + Xamarin : Du nouveau en terre du milieu
-
Upload
microsoft -
Category
Technology
-
view
146 -
download
5
Transcript of Uwp + Xamarin : Du nouveau en terre du milieu
Android Studiojava
Xcode
swiftobjective-c
Visual Studio
.netjavascript
Appl
icatio
ns N
ativ
esHy
brid
eshtml
javascripthtml
javascripthtml
javascript
C++Visual C++ Compiler
C++GCC - Clang/LLVM
C++Clang/LLVM
C# C# C#
javascript javascript javascript
Visual Studio C++ Cross-Platform Mobile
React Native NativeScript
Un code C# pour les unir, et par le framework .net les lier.
UWP on Xbox OneWindows Inking (InkToolbar)Cortana Insights/Actions
Windows.UI.CompositionDesktop Bridge (Centennial)UWP Community Toolkit
What’s new ?
DirectX Family
Windows.UI.Composition
Windows.UI.XamlFramework Layer
VisualLayer
Universal Windows Application
Graphics Layer
Controls, layout, markup, accessibility, data binding
Text rasterization, shapes & vector rasterization, ink rendering, meshes, shaders etc.
Visuals, Animations & Expressions, Effects, Input Routing & Manipulations
Visual LayerWindows.UI.Composition
Content Visuals
• SpriteVisual• Solid color content• Image content• D2D/D3D content
• XAML interop
Animation system
• KeyFrame Animations• Expression Animations• Implicit Animations
Effects system
• Shadows• Scene Lightning• Blur• Exposure, Hint,
Temperature• Grayscale• Blend …
N° 15
Why ?
N° 17
Incomplete Uninstalls
Registry Bloat and “PC Rot”
Untrustworthy Installers
DLL HellDistribution visibility and
trust
No access to most new UWP
APIs(no app identity)
Developer Workflow
N° 18
Setup
Desktop App ConverterConverts existing desktop installerCreates packaged app with UWP manifest
Test, Update, and EvolveMake compatible code changes that go into both MSI and app packageEvolve app package to take advantage of the Universal Windows Platform
AppX
Publish and DistributeDistribute the app package via sideloading, MDM or the Windows Store (coming soon)
Support new and existing customers
• Clean install/uninstall• Virtualized key IO• User Safety
• Untouched
.appxWindows 10
.msiWindows 7
Classic Windows Appwin32 | wpf | winforms | vb6 | delphi |
more
desktop app converter
existing installer build
process
Keep the user safety / privacy promise
Your AppWindows 10
Your AppWindows 7
Virtualized HKCU
Registry.dat
Full WindowsRegistry
UWP AppData
folder
Windows AppData
folder
Virtualization is free: no code changes required!
Use Windows 10 features
Your Classic Windows App,
in UWP app package,
with Identity
Windows 10 Cortana
Live Tiles
Store
Camera and Devices
more
N° 22
Plateforme Xamarin
Storyboard/XIB
XAML/HTML
XML
Code C# Partagé
* F# également supporté
C# APIs iOS
C# APIs Windows
C# APIs Android
Partage de codeRéutilisation de compétencesVisual Studio
Xamarin
N° 25
C# partout
PerformanceExpérience utilisateur100% des fonctionnalités
Apps natives
iOS, AndroidAndroid Wear/TVApple Watch/TVmacOS
Toujours à jour
Open sourceInclus avec Visual Studio
Mature
Xamarin
N° 26
TOUT ce qui est possible en
Objective-C, Swift ou Java est possible en
C# avec Xamarin
Xamarin
N° 27
• LINQ• Event handlers• HttpClient• Json.NET• Async/Await
Compétences .NETC#
N° 28
• Portable Class Library• Shared Project• NuGet
Compétences .NETPartage de code
N° 29
• Intellisense• Refactoring• Déploiement• Debugging
Visual Studio
N° 30
Développement iOSSous Windows !
N° 31
• Connexion à un Mac obligatoire• Simulateur iOS à distance • Transfert de port USB
Démo !Xamarin natif
N° 33
N° 34
N° 35
Xamarin vs Xamarin.Forms
Approche traditionnelle(ou native)
Approche Xamarin.Forms
iOS C#
Windows C#Android C#
C# Commun
UI (C# / XAML)
C# Commun
Xamarin vs Xamarin.Forms
Approche traditionnelle(ou native)
Approche Xamarin.Forms
iOS C# UI Windows C#
UIAndroid C# UI
C# Commun
UI (C# / XAML)
C# Commun~40-70% Partage de Code
~90-98% Partage de Code
Xamarin.FormsXAML
N° 38
<?xml version="1.0" encoding="utf-8" ?><ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="XamlSamples.XamlPlusCodePage" Title="XAML + Code Page"> <StackLayout> <Slider VerticalOptions="CenterAndExpand" /> <Label Text="A simple Label" Font="Large" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" /> <Button Text="Click Me!" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" /> </StackLayout></ContentPage>
Pages + Layout
Stack Absolute Relative Grid ContentView
ScrollView
Frame
Content MasterDetail
Navigation
Tabbed Carousel
ActivityIndicator BoxView Button DatePicker Editor
Entry Image Label ListView Map
OpenGLView Picker ProgressBar SearchBar Slider
Stepper TableView TimePicker WebView EntryCell
ImageCell SwitchCell TextCell ViewCell
Contrôles
…
Partage de code importantExpérience utilisateur moins importante
Application peu complexeInterface unifiée et simple, peu de fonctionnalités natives
Peu d’exigences en performancesLe prix à payer pour une couche d’abstraction
App B2B (ou POC)Priorité au fonctionnel, avant la forme
Compétences XAMLRéutilisation des connaissances XAML, moins exigeant en connaissances natives
Quand choisir Xamarin.Forms ?
N° 41
Démo !Xamarin.Forms
Tests UI automatisés
Test Recorder2000+ devices
RapportsScreenshots, métriques
Xamarin Test Cloud
Rapports de crashDistributionMétriques + Evènements
Feedback utilisateur
HockeyApp
Contrôle de version
TFS/GitOutils AgileIntégration
continueBuild, Test, Deploy
Visual Studio Team Services
Cours en ligne70+ classes
PrésentationsCertification
Partie du contenu disponible via
MSDN
Xamarin University
Evénements
N° 47
Meetup Xamarin
Xamarin Dev Days
Ce soir 19h !Microsoft Experiences
26 novembreMicrosoft Accelerator Paris
N° 48
@microsoftfrance @Technet_France @msdev_fr
N° 49
N° 50