Skip to content
0:00 / 0:00

#c++#microsoftoffice#cross-platformdevelopment

CppCon 2014: Zaika Antoun "Microsoft w/ C++ to Deliver Office Across Different Platforms, Part I"

CppCon

189K subscribers • 103 videos on Hallway • Conference channel

YouTube
  • Recommended by 2 people: 2 on Hacker News.
  • Presented by Igor Zaika and Tony Antoun, Microsoft engineers
  • Linked in the descriptionCppCon/CppCon2014
  • May be out of date. Uploaded 12 years ago, in an area where tools change fast.

Intermediate. Assumes working knowledge.

21K views12 years ago2 recommendations

Programming languagesMobile developmentC++Flutter and React NativeMobile app architecture

Igor Zaika and Tony Antoun explain how Microsoft uses a shared C++ codebase to deliver Office across iOS, Android, Windows, and Mac.

cppcon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2014 -- "How Microsoft Uses C++ to Deliver Office (and More) Across iOS, Android, Windows, and Mac, Part I" -- What does it take to target multiple major mobile devices (as well as traditional environments) with portable, efficient, single-source code? This talk demonstrates architectures, techniques, and lessons learned rooted in actual experience with using C++ to deliver several major cross-platform projects across iOS, Android, Windows, and Mac: Microsoft Office (Word, Excel, PowerPoint, OneNote) and the SQL Server PowerBI. Each presents a different case study: For example, Office already used C++, whereas PowerBI was originally written in Silverlight and then rewritten in C++; Office is a set of user-facing apps, whereas PowerBI is a system component. Although some of these are demanding first-tier “Cadillac” applications, we expect this experience to be a model for the future as more and more apps fall into this category and use C++ to target many popular platforms from (mostly) a single source base. This talk will cover the following key topics and tradeoffs: Rich vs. reach, including access to latest OS features (e.g., iOS 8 additions) and hardware features (e.g., vector units, GPUs). Consistency of functionality. Client code vs. server/service web code. Sharing vs. quality, including dialing appropriately between more shared code and high quality code. Drawing the line between the bulk of C++ code and interfacing with non-C++ for UX and PALs (platform adaptation/abstraction layers) for target-specific user interface and system services. Architecting PALs, including why “mini-PALs” rather than an “über-PAL.” Forces “doing the right thing” and good architecture with composable components. How C++ enables things not feasible using other technologies. Velocity and enabling faster cross-platform development and deployment. Cost of maintenance, including time, size, and complexity (both breadth and depth). And, last but not least, developing in a single modern C++ source base built with different evolving C++ compilers, including VC++ and Clang/LLVM. -- Igor Zaika is the Development Manager for the Office Core Experience team at Microsoft, responsible for shared UX components and application framework used by Office applications. Before that, Igor worked in various areas related to Office client applications, ranging from building Word Object Model and integrating VBA (Visual Basic for Applications) with Office, to shipping first version of OneNote for the WinRT platform. Before joining Microsoft, Igor worked on 3D CAD application and contributed to the Kronos project . -- Tony Antoun is Director of Development for APEX, focusing on delivering Office on all Apple platforms and form factors (iPhone, iPad, Mac), as well as aligning the Office experience on other major platforms (Win32, WinRT, Android). Be

Why it's here

2 people recommend this

What people say. Recommended as a classic case study of sharing a large C++ codebase across multiple mobile and desktop platforms.

akoeplingeron Hacker News • Recommends

On “Visual C++ Cross-Platform Mobile”

There's a pretty interesting video of how the Office team uses C++ for their cross-platform efforts from CppCon 2014: link to this video

golf1052on Hacker News • Recommends

On “Microsoft Teams, the new chat-based workspace in Office 365”

Word for Windows and Word for Mac are much closer together than you may realize. Pretty interesting talk about cross platform Office. Part 1: link to this video Part 2: link

xor_nullon Hacker News • Mentions

On “Office 365, Skype, MS Teams, and VS Code Are All Being Rewritten in React Native”

I wonder, not long ago there was a c++ conference were two Microsoft employees were talking about the Office mobile apps and how they developed it 1. They said that they developed the main part in c++ and the ui part in the respective ui platform (cocoa/android ui framework). Would be interesting why they moved from this approach to React native. 1 link to this video

pjmlpon Hacker News • Mentions

On “$600 Chromebooks are a dangerous development for Microsoft”

Since 2014 not anymore. The Office team did a couple of session at CppCon about how they refactored the code. "CppCon 2014: Zaika Antoun "Microsoft w/ C++ to Deliver Office Across Different Platforms" link to this video link

pjmlpon Hacker News • Mentions

On “Flutter looks good, but is painful”

I did provide the information for it, Dropbox and Microsoft talks at CppCon, easy with some Google fu. CppCon 2014: Zaika Antoun "Microsoft w/ C++ to Deliver Office Across Different Platforms, Part I" link to this video CppCon 2014: Zaika Antoun "Microsoft w/ C++ to Deliver Office Across Different Platforms, Part II" link CppCon 2015: Jacob Potter & Andrew Twyman “Bridging Languages Cross-Platform..." link CppCon 2017: Stephen Spann “Cross-Platform Apps with Dropbox’s Djinni...” link CppCon 2014: T. Grue & S. Kabbes "A Deep Dive into 2 Cross-Platform Mobile Apps Written in C++" link Naturally the native UI has to be used. Are we talking about having a good user experience here, or having the ea…

pjmlpon Hacker News • Mentions

On “Ask HN: React Native or Flutter?”

Yes, C++ with native views. How do you think Microsoft does Office on Android and iOS? As for verification, they have plenty of talks at CppCon and BUILD about how they do it. EDIT: to save you some work. CppCon 2014: Zaika Antoun "Microsoft w/ C++ to Deliver Office Across Different Platforms, Part I" link to this video CppCon 2014: Zaika Antoun "Microsoft w/ C++ to Deliver Office Across Different Platforms, Part II" link Reacting to Dropbox: another take on cross-platform C++ development link Ashampoo Systems GmbH link