Cross Platform 지원을 위한 
소프트웨어 개발 방안 
김영욱 Evangelist 
개발자 및 플랫폼 사업총괄 / 부장 
yowkim@microsoft.com
PLATFORM CONVERGENCE JOURNEY 
Windows 10 
Converged 
OS kernel 
Converged 
app model
ONE WINDOWS 
Phone 
Small 
Tablet 
2-in-1s 
(Tablet or Laptop) 
Desktops 
& All-in-Ones 
Phablet 
Large 
Tablet 
Classic 
Laptop
ONE WINDOWS 
Internet 
of Things 
Xbox PPI
ONE WINDOWS 
Phone 
Small 
Tablet 
2-in-1s 
(Tablet or Laptop) 
Desktops 
& All-in-Ones 
Phablet 
Large 
Tablet 
Classic 
Laptop 
Windows 10 
Store 
Development 
Universal App
First feedback
Start Menu & Power Button
Store App Run in a Window
Charms bar redesigned
The Desktop Refined
Virtual Desktop
To 4K and beyond. 
Start Screen Enhanced 
Notification Center 
Storage Sense 
Cortana
Visual Studio 2014
Visual Studio 2014
 
 

 
 
 
 
 
 
 

C# 
#if WINDOWS_PHONE_APP 
Windows.Phone.UI.Input.HardwareButtons.BackPressed += 
this.HardwareButtons_BackPressed; 
#endif 
C++ 
#if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP 
_backPressedEventToken = HardwareButtons::BackPressed += 
ref new EventHandler<BackPressedEventArgs^>(this, 
&NavigationHelper::HardwareButton_BackPressed); 
#endif
 

 
 


Cross Platform 
Create native iOS, Android, Mac and 
Windows apps in Visual Studio and C# 
All in one development tool 
Cloud, Web, Embedded, IoT, BigData, 
Machine Learing …
What is native?
The Anatomy of a Native App 
Native User Interfaces Native API Access Native Performance
Architecting 
Mobile Apps
The Silo Approach 
Build App 
Multiple Times
The Write-Once-Run-Anywhere Approach 
Lowest Common 
Denominator
Xamarin’s Unique Approach 
Native With 
Code Sharing
Windows APIs
iOS APIs | 100% Coverage
Android APIs | 100% Coverage
Native Performance 
Xamarin.iOS does full Ahead Of Time 
(AOT) compilation to produce an 
ARM binary for Apple’s App Store. 
Xamarin.Android takes advantage 
of Just In Time (JIT) compilation on 
the Android device.
Portable Class Libraries
Xamarin + Xamarin.Forms 
With Xamarin.Forms: 
more code-sharing, native controls 
Traditional Xamarin approach 
Shared UI Code
Xamarin + Xamarin.Forms 
Shared UI Code 
Quickly and easily build native user 
interfaces using shared code 
Xamarin.Forms elements map to 
native controls and behaviors 
Mix-and-match Xamarin.Forms with 
native APIs
What’s Included 
 40+ Pages, Layouts, and Controls 
 Build from code behind or XAML 
 Two-way Data Binding 
 Navigation 
 Animation API 
 Dependency Service 
 Messaging Center
Pages 
Content MasterDetail Navigation Tabbed Carousel
Layouts 
Stack Absolute Relative Grid ContentView ScrollView Frame
Controls 
ActivityIndicator BoxView Button DatePicker Editor 
Entry Image Label ListView Map 
OpenGLView Picker ProgressBar SearchBar Slider 
Stepper TableView TimePicker WebView EntryCell 
ImageCell SwitchCell TextCell ViewCell
Login Page – XAML
Login Page
$
We participate in industry standards 
like ISO 27001, SSAE16 and Cloud 
Security Alliance.
compute data services networks 
app services 
Automated 
Managed Resources 
Elastic 
Usage Based 
N Central US, S Central US, N Europe, W Europe, E Asia, 
SE Asia + 24 Edge CDN Locations
Website 
Socket Comm. 
Mobile Service 
Javascript 
범용성
puts("Enter your name: "); 
var name = gets(); 
puts("Name: " + name); 
puts("Enter your name: "); 
gets(function(name) { 
puts("Name: " + name); 
});
Notepad Visual Studio
Intellisense 
Debugging
NPM
Profiling
Node.js 
(x86): http://nodejs.org/dist/v0.10.22/node-v0.10.22-x86.msi 
(x64): http://nodejs.org/dist/v0.10.22/x64/node-v0.10.22-x64.msi 
Visual Studio 2013 Download 
http://www.microsoft.com/visualstudio/eng/downloads#d-2013-editions 
NTVS Download 
https://nodejstools.codeplex.com/wikipage?title=Installation#
TypeScript, DART, & CoffeeScript 
Micorsoft / Open Source Google / Open Source Jeremy Ashkenas / Open Source 
http://www.typescriptlang.org/ http://www.dartlang.org/ http://coffeescript.org/ 
Open Source 
http://typescript.codeplex.com/ 
Open Source 
https://code.google.com/p/dart/ 
Open Source 
https://github.com/jashkenas/coffee-script/
DEMO 
‘Hello TypeScript’
Machine Learning 
표준 REST API를 사용함으로써 
어디에서나 어떤 장치에서나 접근 가능 Mobile Apps 
Azure Portal & ML API service 
Azure 고객사 운영자 
• 데이터 과학자에게 ML Studio workspace 생성 
• 저장소 계정 발급 
• ML 사용량 모니터링 
• 데이터과학자가 완료한 API 게시/업데이트 
1 
ML Studio 
데이터 과학자 
• 데이터를 유형에 맞게 준비/조정 
• 다양한 모델을 생성/학습/테스트 수행 
• 타 업무자와 협업 
• API 서비스를 이용해 서비스 구성 
2 
PowerBI/ 
Dashboards 
Web Apps 
ML API service 개발자 
• C#, Python, R 코드를 제공함 
• 기타 다른 언어도 표준 REST API를 사용함으로 쉽게 연동 
3 
분석 대상 데이터 
HDInsight 
Azure 스토리지 
로컬 스토리지
Multi Platform Support
3 
Windows Store iOS 
Android 
Windows Phone 8 
iOS 
Android 
HTML 5/JS 
SDKs 
Server- 
Side 
Scripts 
& 
Scheduler 
기본 기능
20141216 멜팅팟 부산   세션 ii - cross platform 개발

20141216 멜팅팟 부산 세션 ii - cross platform 개발

Editor's Notes

  • #3 [Purpose of this slide: Set the context that when we say “Threshold” we mean the converged platform.] Nothing shows “One Windows” more than the way our platforms are converging, a journey which ends with Windows “Threshold” With the release of Windows 8 we laid the foundation. Windows Phone 8 took advantage of this. And, Xbox One was built on top of Windows 8 and even uses the same runtime. With the release of Windows Phone 8.1 the runtimes from phone and desktop came together. Over 90% API convergence. Threshold brings EVERYTHING together, the foundation is the same, kernel, drivers etc. – from PCs to phones, to IoT devices And the application platform is the same across all of these devices.
  • #4 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #5 [Purpose of this slide: Reinforce the breadth of scale the platform supports, add some drama to the phone to desktop slide...] This platform will run on IoT devices, all the way up to devices that hang on your walls slide PPI displays.
  • #6 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #7 [Purpose of this slide: Set the context that when we say “Threshold” we mean the converged platform.] Nothing shows “One Windows” more than the way our platforms are converging, a journey which ends with Windows “Threshold” With the release of Windows 8 we laid the foundation. Windows Phone 8 took advantage of this. And, Xbox One was built on top of Windows 8 and even uses the same runtime. With the release of Windows Phone 8.1 the runtimes from phone and desktop came together. Over 90% API convergence. Threshold brings EVERYTHING together, the foundation is the same, kernel, drivers etc. – from PCs to phones, to IoT devices And the application platform is the same across all of these devices.
  • #9 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #10 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #11 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #12 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #13 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #14 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #16 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #17 [Purpose of this slide: land the converged app platform message and answer the UI question] One Windows starts with the user experience. Our converged platform means you can choose to create the same experience on all these devices or choose to change the experience according to the device. On a laptop or desktop machine you have much more screen real estate for example so you can choose to display more information on these screens than on a phone. You might want to take some data offline on the phone while you don’t need that functionality on the desktop pc at the office. Building universal Windows Applications gives you that choice.
  • #34 Poor user experience – API coverage – Performance High abandonment rates Wasted investment
  • #39 There is no compromise on performance. Xamarin apps look and feel native because they are native.
  • #44 I
  • #46 First you have a set of pages for each screen of your application There are things like Content, and MasterDetail which gives you a nice flyout With a tabbed view you get the correct look on each platform iOS on bottom, Android on top, and on WP you have a Pivot control
  • #47 Inside of a page are layouts A lot of options from something simple like a stack panel to complex and powerful grids
  • #53 In a physical sense, Windows Azure is built on datacenters across the world. We currently operate in 8 global regions across different continents. 4 in US, 2 in Europe, and 2 in Asia; we also recently announced Azure availability in China . These are gigantic in their scale and operations. Each of the datacenter is 7-10 times the size of a football field and the PUE (Power utilization efficiency, which is a measure of datacenter efficiency) for the latest generation DC is 1.1. Typically for a large enterprise datacenter PUE tends be at about 2.0. We provide support across 109 countries and you can count on our local teams across the world. So let’s see how this translates to benefits for you! -- Optional talking points: Each region has two datacenters that are paired with each other for things like data replication. We provide support across 109 countries and in 8 languages We have our local teams and sales offices across the world. In addition, we have 19 countries with local currency support
  • #56 So this picture, or at least the big blocks in here are how we think about the main capability buckets of the platform. Now you will start to get more specific about these buckets (Compute, data, networks and app services). Going deeper will depend on the needs of the customer. Sometimes customers will want to drill into specific things, sometimes they want a broad overview. Adapt these slides as needed. These buckets correspond to how they are laid out in the Windows Azure portal.
  • #67 http://engineering.linkedin.com/testing/continuous-integration-mobile
  • #79 Now that you have seen what the new Windows looks like, let’s talk about the platform.
  • #81  이미 20여년전에 이야기 했던 기술들이 이렇게 2014년에 현실화 되는 것은 여러가지 혁신 때문입니다.
  • #84 Here’s a simplified snapshot of the whole solution, from storing and managing data, to business users accessing results and making decisions. If you already have a Microsoft Azure subscription or data in the cloud – especially in HDInsight – you are more than halfway there to realizing the benefit of this solution. Let’s start in the bottom left with the Azure Portal. The Azure ops team, maybe already accustomed to managing storage accounts or provisioning Azure virtual machines, can get a machine learning environment set up right from the Azure Portal. They can: Create an ML Studio workspace and dedicated storage account to get their data scientists up and running Monitor ML consumption to keep track of expenses See alerts when a model is ready to be published And deploy models as web services with the ML API Service Now, moving right, to the ML Studio experience. This where the data scientist will spend her time: She can execute every step in the data science workflow in one place – ML Studio She can access and prepare data Create, test and train models, as well as import her company’s proprietary models securely into her private workspace Work with R and over 300 of the most popular R packages along with Microsoft’s business class algorithms Collaborate with colleagues within the office or across the globe as easy as clicking “share my workspace” Deploy models within minutes rather than weeks or months And the data scientist has her choice of what data she wants to pull into her models. She can access data already in Azure, query across Big Data in HDInsight, or pull datasets in right from her desktop. Once the data scientist is ready to publish, that’s when tested models become available to developers via the API service. The business users can access results, from anywhere, on any device. And any model updates simply refresh the model in production with no new development work needed.
  • #87 <Move into the specifically Azure story here.> So let’s talk about those last three needs our developers have.  If you are in the cloud, firewalls are less cumbersome. Application developers can put data in code in geographical locations that make it very fast.  <Latency Example:> Let’s say your business sells Italian pasta, and your sales are growing, your users in Italy have great service because your servers are really close. So you can preload your data on servers in other geographical locations to improve speed and access. Otherwise the transaction needs to hop across the fiber optic, adding a little more latency.  Also – You can have the cloud doing the heavy lifting so your phone/device/pc equivalent doesn’t.