We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Windows 10 Power - Building Apps with Windows Bridges

00:00

Formal Metadata

Title
Windows 10 Power - Building Apps with Windows Bridges
Title of Series
Number of Parts
133
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
With an ambitious goal of putting Windows 10 on one billion devices, Microsoft is inviting developers from iOS, Android, web and old school Win32 to be part of creating Universal Windows Apps that can run on all Windows 10 devices from Raspberry Pi, to phones and desktops.Even HoloLens will run Universal Apps. In this talk you will get an introduction to how you can port your existing apps to Windows 10 and leverage the infrastructure of Microsoft Azure.Learn to use the Windows Bridges to leverage your existing skillset and code to quickly reach another potential billion customers, whichever device they might be using.
36
61
Thumbnail
1:11:04
73
107
Software developerBuildingMobile appPower (physics)Table (information)SurfaceoutputSoftware development kitPoint cloudAdaptive behaviorUser interfaceMobile WebUniverse (mathematics)Data storage deviceTablet computerTouchscreenPlastikkarte1 (number)Form (programming)Operational amplifierQuicksortBitExpert systemNumberSystem callFamilyMassCore dumpSimulation7 (number)Natural numberChannel capacityNeuroinformatikOperating systemTerm (mathematics)Service (economics)LaptopVariety (linguistics)Touch typingScripting languageProjective planeSlide rulePurchasingJava appletDifferent (Kate Ryan album)Android (robot)Vector potentialMobile WebWindowPoint (geometry)Graph coloringBridging (networking)Image resolutionGame theoryComputer programmingMobile appCodeoutputHand fanSoftware developerUser interfaceDesign by contract.NET FrameworkInterface (computing)Adaptive behaviorVideo gameEndliche ModelltheorieSet (mathematics)JSONXMLUMLComputer animation
Software developerEmailClient (computing)Tablet computerCASE <Informatik>Noise (electronics)Scaling (geometry)WindowSource codeComputer animation
Software developerScaling (geometry)BitNoise (electronics)Medical imagingEmailWindowCodeSoftware developerMilitary baseDifferent (Kate Ryan album)Bookmark (World Wide Web)Mobile appOrder (biology)Flow separationSlide ruleSource code
Software developerPhysicsAlpha (investment)Multitier architectureSlide rulePhysical lawBookmark (World Wide Web)Video gameQuicksortSampling (statistics)Cross-platformAuthorizationGreen's functionCausalitySoftware developerComputing platformWave packetBitShooting methodLibrary catalogUltraviolet photoelectron spectroscopyInternetworkingRight angleSource codeComputer animation
Software developerData managementPhysical systemDatabaseVideo game consoleVisualization (computer graphics)Computer-assisted translationBitComputing platformContent (media)QuicksortStreaming mediaNP-hardForm (programming)Software developerLine (geometry)1 (number)Software frameworkRight angleWindowBridging (networking)CodeVirtualizationCross-platformService (economics)Computer hardwareBuildingSoftware bugMobile appProcess (computing)DemosceneLevel (video gaming)Field (computer science)Cartesian coordinate systemAreaMetropolitan area networkRow (database)Order (biology)Error messageProjective planeUniverse (mathematics)Boss CorporationDrag (physics)Software maintenanceGoodness of fitEvent horizonWeb 2.0HookingoutputJava appletStack (abstract data type)Formal languageAndroid (robot)WritingClassical physics.NET FrameworkWeb serviceCovering spaceComputer animation
Software developerState of matterPlanningUniverse (mathematics)Term (mathematics)WebsiteBlog1 (number)WindowFunctional (mathematics)Visualization (computer graphics)Perturbation theoryData managementVariable (mathematics)Mechanism designSoftware developerGame theoryKeyboard shortcutGame controllerData storage deviceQuicksortMobile appAutomatic differentiationInformationDistribution (mathematics)Bridging (networking)Right angleMessage passingMultiplication signWeb pageTheory of relativityEndliche ModelltheorieWeb applicationEnterprise architectureSI-EinheitenGoodness of fitSoftwareRevision controlMachine codeComputing platformService (economics)PurchasingWeb-DesignerTesselationLogic gateProgram slicingCrash (computing)Demo (music)Series (mathematics)
Software developerDemo (music)Projective planeScripting languageProcess (computing)Machine codeSoftware frameworkRight angleLogicComputer animation
Software developerCheat <Computerspiel>Mobile appWeb applicationMachine codeProjective planeBridging (networking)Optical disc driveWindowUniverse (mathematics)Library (computing)Web 2.0BitTerm (mathematics)Keyboard shortcut2 (number)Group action.NET FrameworkOnline helpBit rateCuboidSummierbarkeitGodJava appletFormal languageProcess (computing)Line (geometry)System callDot productVideo gameComputer animation
Software developer3 (number)Default (computer science)Web pageMobile appMedical imagingMultiplication signUniform resource locatorDisk read-and-write headCodeMereologyQuicksortLatent heatComputer animationLecture/Conference
Software developerUniform resource locatorWeb pageSemiconductor memoryMobile appRight angleLatent heatQuicksortComputer animationLecture/Conference
Software developerWebsiteContent (media)Arithmetic meanRight angleCartesian coordinate systemWeb 2.0HookingWindowMobile appSampling (statistics)Computing platform.NET FrameworkMachine codeCodeUniverse (mathematics)Greatest elementComputer animation
Software developerDemo (music)InformationUniform resource locatorSlide ruleWebsiteData storage deviceComputer-assisted translationUniform resource locatorQuicksortComputer animation
Normed vector spaceDesign by contractSoftware developerConditional-access moduleQuicksortResultantMobile appWebsiteAxiom of choiceAndroid (robot)Bridging (networking)Noise (electronics)Web 2.0Game theoryMereologyPlotterComputer clusterAmsterdam Ordnance DatumWater vaporOnline helpComa BerenicesProper mapRegulator geneComputer animation
Software developerComputer programLocal GroupAndroid (robot)CAN busCodeVideoconferencingProjective planeComputing platformWindowSoftware developerComputer programmingData managementPhysical systemWebsiteGroup actionComputer virusUniverse (mathematics)Mobile appMobile WebComputer animationLecture/ConferenceMeeting/Interview
Software developerCompilation albumPlot (narrative)WindowTexture mappingDirected setService (economics)GoogolPurchasingUniqueness quantificationJava appletSoftware developerMobile appWindowMereologyMathematical analysisCodeProjective planeService (economics)NumberMathematicsConfiguration spaceMappingPurchasingLine (geometry)Process (computing)Uniqueness quantificationVideo gameDirection (geometry)GoogolDynamical systemJava appletTesselationType theoryComputer animationLecture/Conference
Software developerView (database)BuildingComputer fileNavigationWordShift operatorWindowVideo game consoleVariable (mathematics)DebuggerMobile appAndroid (robot)Android (robot)Integrated development environmentBitMobile app1 (number)Product (business)Drop (liquid)Computing platformMultiplication signWindowMathematical analysisNumberTransport Layer SecurityPhysical lawWebsiteWeightDrag (physics)Computer animation
Software developerCodeMobile appBuildingBridging (networking)Sign (mathematics)WebsiteRight angleCivil engineeringComputer animation
Software developerPlotterComplete metric spaceRight angleMultiplication signCodeWindowExtension (kinesiology)Mobile appBitProcedural programmingCartesian coordinate systemMobile WebExecution unitAverageMereologyBridging (networking).NET FrameworkCivil engineeringPoint (geometry)Green's functionProjective planeMeeting/InterviewComputer animation
Software developerDemo (music)Bridging (networking)Multiplication signMobile appBridging (networking)Slide ruleDemo (music)Complete metric spaceVisualization (computer graphics)WindowHuman migrationInsertion lossVirtual machineIntegrated development environmentStandard deviationXMLComputer animation
Software developerNormal (geometry)BuildingWindowMobile appInsertion lossDemo (music)Software developerQuicksortMultiplication signFreewarePoint (geometry)WebsiteResultantCASE <Informatik>CausalityBridging (networking)Right angleComputer animation
Software developerBridging (networking)Demo (music)InfinityBridging (networking)Drag (physics)Drop (liquid)Software developerCodeRight angleSystem callOpen sourceProjective planeBitObject (grammar)Bookmark (World Wide Web)Moment (mathematics)TouchscreenReal numberWindowSpeciesBit rateMobile appQuicksortMultiplication signAndroid (robot)outputComputer animation
Software developerBridging (networking)Demo (music)BackupCore dump2 (number)Software repositorySource codeWindowComputer fileSystem callProjective planeoutputBinary fileVisualization (computer graphics)Object (grammar)CodeMilitary baseComputer animation
Software developerVisualization (computer graphics)Projective planeComplex (psychology)Computer fileComputer animation
Software developerSystem callMappingComputer fileProjective planeDemo (music)Formal languageVisualization (computer graphics)Message passingTerm (mathematics)FacebookAndroid (robot)Text editorDrop (liquid)Mobile appoutputData structureProcess (computing)Object (grammar)BuildingWindowComputing platformSource codeComputer animation
Software developerWindowCAN busCore dumpComputing platform.NET FrameworkCodeCuboidComputer animation
Software developerCore dumpOpen sourceMereologyExtension (kinesiology)QuicksortGoodness of fitDemo (music)Projective planeSource codeOnline helpObject (grammar)Source codeComputer animation
Demo (music)Bridging (networking)Software developerComputing platformAndroid (robot)Java applet.NET Framework.NET FrameworkUniverse (mathematics)Right angleWindowOffice suiteMobile appMetropolitan area networkCodeoutputPolar coordinate systemVideoconferencingBuildingVisualization (computer graphics)CASE <Informatik>Mathematical analysisGoodness of fitResultantObject (grammar)Computer clusterOcean currentData managementTestbedAndroid (robot)SpacetimeWeb 2.0Game theoryPoint (geometry)QuicksortAddress spaceBitLaceDisk read-and-write headParameter (computer programming)Computer animation
Software developerComputer-assisted translationGroup actionSqueeze theoremComputer animation
Computing platformAndroid (robot)Java appletSoftware developer.NET FrameworkFreewareGame theoryCuboidMultiplication signPlastikkarteComputer animationMeeting/Interview
Transcript: English(auto-generated)
Welcome. Thanks for coming. This is, as far as I know, this is the only Windows 10 talk there is. Correct me if I'm wrong. I know, Jessica, you did something. Was that on Windows 10 as well? No. So, thanks for coming. I know this is a topic that sort of
it questions people. It's just an operating system. Like, what are we doing? What's with it with devs? But there's something called Windows Bridges that I think is really, really quite exciting. And I think it's important that we know of. So, I just want to sort of get a feel for people here. How many are actually developers? Who writes codes in here? Is that everybody? All right, cool. Pretty much everyone.
All right, so I'm not completely just baffling along here. So, I'm guessing most of you will use Windows 10 in some capacity on your computer. Is that right? No? No? There's a few. So, yeah, is that iOS? Sorry, Mac OS you're using then instead or? Windows 7. All right. I'm sorry.
It's not. No, Windows 7 is all right. It's not terrible. If you'd said Vista, then I would have given you a hug. Windows 10 is sort of being pushed really heavily, which you've probably noticed from Microsoft. And the reason I'm here, I want to start a little bit sort of a step backwards from the Bridges first off.
So, there's something called Universal Apps for Windows, which I'm hoping you may have heard of. Is that something that anyone like show of hands? Universal Apps. Okay, so is this? So, I guess this looks familiar, right? You have far new projects. So, is this sort of what you've done, Universal Apps?
All right, those are not the ones we're talking about. We're talking about those ones. Thank you, Microsoft. So, there's Universal Apps and there's Universal Apps, just to make it really confusing. The Windows 8 variety is a way of trying to get your code to work on phone and tablet and phone and desktop. The new way, which is also called Universal Apps,
is leveraging the OS, you know, deep down in the roots and everything. And it's a really important distinction because they're very different technologies, those two. But they're called the same. I hope they fix this. It's a bit like if you want to build a Xamarin project, you've got to go to JavaScript or something and then choose to...
Anyway, so Windows 10 has this big, big future, you know, it's all visualized in the sort of slides we get like this, that says it's going to run on absolutely everything. So, we've got phones, we've got tablets, we have laptops, we have desktops, even Surface Hubs, which is this enormous 84-inch touch screen.
Like, you feel like a kid because you walk up to it and it can do 100 touch points and it does different colors with different hands and it's really, really, really clever. Even Xbox runs Windows 10. So, everything is going to run Windows 10, even HoloLens. Have you heard of HoloLens?
Yes. Anyone hasn't heard of HoloLens? Oh, good, you will have to go out. Now, HoloLens is probably the most exciting technology so far from Microsoft, I think. So, it's going to run on everything, even stuff without a screen. You have IoT stuff, no screen, you know, potentially. And you're going to have lots and lots of apps running for various different devices.
So, there's this sort of, I did another talk on, well, how do we make sure it doesn't become Android? Like, there's 24,000 different Android devices and they have 1,200 different brands and there's, you know, several hundred different screen resolutions and like, how do we get to the point of not being Android
so we don't have to test the top 10% of devices? So, this is sort of, that's the world that Microsoft is wanting you to live in. They want you to be a Windows 10 fan because this is going to make your life a lot easier as a developer. So, here's another way of looking at it.
There's families of devices and each of these families have certain traits. Like, so for example, that mobile will have a SIM card, Xbox will have some sort of gaming interface or the Xbox community, there'll be different APIs obviously that don't make sense. Like, it's probably not going to make sense to have holograms on an IoT device with no screen.
It may, but like, it's unlikely for now at least. So, there are certain things that are unique to each family, but there's also a very, very, very broad mass of APIs that will be common across those and they're called the core API. It's like a contract. So, if you're a developer, Microsoft says, we guarantee that all of this is always going to be the same
and it's always going to work on everything that runs Windows 10, which is unique. Like, I've never heard of any company doing that before on such a massive amount of devices. And then, of course, you have all the different feature sets. So, adaptive user interface, that's how does it make it look on different screens, so it looks really good on all the screens without you having to sit in a corner and rock, you know.
Natural user inputs is a Windows 10 thing, you know, how you touch things. It comes for free almost, but how do you make sure that it works on all the different devices, even the ones with no screen? Another really big thing is the store. So, typically you'd have a store for each platform, each family of devices,
so you'd have a phone store and a desktop store and so on. There'll now be one. And this is all in terms of, I'm talking developers here, how it's going to be better for you if you choose to develop for Microsoft, or for Windows 10 especially. So, you have one place to manage all your apps in terms of downloads, updates, new features,
in-app purchases, accounts, all of that stuff. So, this is sort of where we're at now. So, we have this universal device family, which is the core, and you're saying, we guarantee this will always be the same, and all of these device families are then going to add on to those. Does that make sense?
Yeah. So, did I mention that it's going to run on HoloLens? This is really exciting. If you haven't seen the HoloLens, I haven't tried it. Is anyone here that's tried a HoloLens? I thought you guys might have. And it is as awesome as they say. Yeah. It's absolutely amazing.
I mean, I'm going on a tangent here, but see the wall there and you put a projected TV on it or something, right? You walk out the door and go and have a cup of coffee. When you come back, the TV is still on the wall. Like, it knows where you are and where everything is in the real world. It's unbelievable. And it'll run Universal Labs. It'll run Windows 10. So, obviously, it's not going to be, you know,
C sharp WinForms that you're going to put on the HoloLens. It's Unity and it's 3D modeling and stuff like that, but it's still going to be adhering to the core API. And then, often, I get sort of a question. I mean, come on. It's not even possible? Well, yes, it is. And I'll show you.
So, okay. Let's see if I can get this going right. So, look, there's my emails. Very exciting. This is the mail client in Windows 10, if you haven't used it.
It's actually quite good. I did this example on the Gold Coast in Australia and someone actually sent me an email with really rude pictures while I was doing this, which was kind of funny. So, the whole idea is that you have a single assembly or a single package that gets delivered absolutely everywhere. So, in this case, this looks like a desktop app,
because it is right now. But if I were to go and, say, use it on a tablet. So, there's a bit of background noise here. But, see, as I, you know, scale it, it changes. And you go, oh, yeah, that's all right. You know, we've seen that before. But this is what's called Adaptive UX and it'll work on absolutely any device. So much so that if I do this
and you now look at my Windows 10 phone. So, this is, you know, see there. And you open up the mail app, there's exactly the same emails, because it's the same app. Oh, look at that. It's the same executable.
It's the exact same code running on both devices. There is no difference. The only difference is that it knows what device it's on, so it can adapt. And that's the cool thing. It's a little bit more work for you as a developer initially when you set it up, because you want to make sure it works on everything. But you don't have 18 code bases to maintain in order to make it work on different devices.
Is that cool? Yes? Yes? I think it's really cool. Like, it's, my least favorite thing for software development is maintenance. And this means there's a lot less offered, because you're only maintaining one app. So, hooray. Okay. I'll go back to my slides.
Yes, it's exactly what I wanted. Sorry. All right.
So that's kind of like, I just want to give you a sort of an idea of the world that, especially Microsoft. Like, this is a Microsoft talk, I know. Not everybody likes Microsoft. But this is what they want you to buy into. This is why they're trying to make your life easier if you choose to be in the Microsoft stack and use your favorite C sharp, VB, JavaScript, C++, whatever it might be that you want to develop in.
So just a short intro. Why am I even here? Who am I? So I talk a lot about this stuff, which means I get stickers that says MVP, and that's pretty much it. Microsoft likes you going out and talking about stuff. And I do Pluralsight courses. If you have not been to the booth, the Pluralsight booth, and if you're interested in learning more stuff, training,
new stuff all the time, go and check these guys out and get a free sample as well. It's, I'm a bit biased, but it's absolutely unbelievable catalog. There's about 4,000 different courses or something. And Steve actually here is an author as well. If you want to talk more, we have a talk later today about how do you become an author? And then I do a podcast, which, as you can see, we're episode 8,
so it's sort of green, but I like it. And I ramble about all sorts of stuff. I live in country Victoria in Australia, and I have almost no internet, and I work in IT. It's really quite interesting. So, but that's the Australia for you. Okay. So is there anyone here that does cross-platform development?
There's a couple of people. Okay. Can I ask, what tool do you use? Xamarin. Xamarin, right. And do you develop for multiple platforms in the one go?
Yeah, so you're not always doing every single platform. Because in my experience, cross-platform development is something like this.
You don't actually build cross-platform software. You just have, yeah, because it's hard. It's really hard. So you'll have, even though you use Xamarin, which is a brilliant tool, by the way, if you use C-Sharp and you want to use, say, iOS, do iOS development, you can use C-Sharp for that. And it's, hooray, you don't have to use that other one.
The one from the 80s, what's it called? But it becomes like this. You have a solution for each and every single one of them, and that means you have to maintain each and every single one of them, and you just die. Like, the maintenance hell just keeps going. And then your boss comes and goes, oh, I heard of this thing called Android. And you go, pfft, like, oh, no.
It's really, really, really hard. So, with that in mind, there it is. Does anyone actually develop for iOS and write code? No? Wow. Objective-C, because I always get people here that come and heckle me, because I'm such a, I drink a Microsoft Kool-Aid and all that.
And they go, all right, wow, yes. Is there anyone that's doing Android, Java development? It's all right, I'll give you a hug if you, you know, it's okay. Because Java is also, you know, a perfectly fine language. It's just, it's a bit large. And then I'm guessing people here are on the Microsoft stack.
So, you're doing Win32 apps, and you're doing all that, you know, WinForms and that sort of stuff. Yeah? Yeah? And then, obviously, web developers, right? We all do web, like, we almost can't avoid it. And that's a good thing, because all of you here is actually now a Universal Windows developer, like a developer for the Universal platform.
Which is, which is sort of like, hey, what? Hang on. Why? But the whole idea is that Microsoft has realised there's this app gap, which I'm sure you've heard of. It's become a real, you know, thing, I would say. So, I have some of these. I don't know if you've seen these before. They're called Windows Phone. I believe they're a bit more prevalent than the UK. And then, I have all of them in Australia, I think.
And so, I have one here, and I also have one here, and I have one over there. I travel with them to try and spread the gospel, right? But it's not just that. I like the platform, but there is a lack of apps. And it's always the thing that people come back to. I'd love to have that. That's a brilliant device. Can I get a new app for the Kickstarter, blah, blah, blah? And you go, no.
And it's the problem. People go, oh, well, okay, I don't need it then. And that's what iOS and Android has going for them. So, in order to mitigate this and try and fill this app gap, Microsoft comes up with these Windows bridges. And does anyone know what they are before? I'm trying to gauge your level here.
Have you heard of Windows bridges? Is that why you're here? Yeah? Okay, excellent. All right, because this sort of idea was that it was a bit of an introduction to it. And you'll see why it's only an introduction in a minute. So, the bridges, there's five of them.
Four are done by Microsoft, and one is done externally. And I'll go through each one of them as much as I can, because there's a lot of material that we could cover. So, the first one that we want to look at is the classic Windows app. So, I'm guessing everyone here has done some form of WinForm, some form of executable that runs Win32 or .NET Framework
or WPF or something like that. So, we know what that is. And it's easy to do. You know, find your project, drag on some stuff, and you click on things and you create some event handlers and magic happens, right? You hook up to a web service and off you go. It's easy, it's fast, but I don't know, in my world,
it's sort of like, oh, you're one of them. And you haven't got a beard, right? It's sort of becoming a bit of an old man thing, even though it's really quite useful. So, a couple of years ago, Microsoft invented a technology called AppV. And it's application virtualization. It's a bit like Hyper-V as is for servers and hardware.
AppV is for applications. So, look, it's really complicated. It has lots of lines and stuff on it. This was the best schematic I could find of it. But all that means essentially is that you have your Win32 or whatever it is, your classic Windows app, and it streams the content to a container
that lives on the universal platform. That makes sense. That's sort of the best way I can explain it. There's obviously a lot of magic and wizardry going on to make that happen, but it's essentially just streaming the data as you use it, which makes you able to use it on these newer platforms if you have a container that can run on that platform
that supports AppV. However, as we talk about WinForms, anyone knows, oh, there we go. Does that look familiar? Have you seen apps like that? Because I certainly have. And you have no idea what they do and you click all the buttons and you still have no clue.
And all that comes up is they're just evil, right? Would you like to have these on your phone? There's some things that just doesn't make sense, right? What could possibly go wrong? But Microsoft has done some research and they say there's about 16 million actual apps that would benefit from this technology, which is why they're investing in it.
If no one's going to use it, of course, they weren't going to build it. But I'm hoping it doesn't come to that and we get all that crap on the platform. But the whole idea is that... I like this quote. Before software can be reusable, it's got to be usable. It's aimed at stuff that makes sense for this platform and it's aimed at enterprises especially to say,
oh, we need to deploy this to Windows 10 but we haven't got a Windows 10 app yet. But all of our internal systems run on Windows 10 because obviously Microsoft wants all companies to run Windows 10, not Windows 7, I'm sorry. And because of that, they're providing this technology to say, well, you can have it right now
while you're building the proper app. So it's sort of like a shortcut to get your app. And we all know what's going to happen. All the managers go, oh, it runs just fine. Why would we rebuild it? And all the developers go, ah! But that's the reality, right? So any questions for that bridge? Does it make sense what the bridges are?
It's a way, yeah. No. That particular one is not ready yet because I'm pretty sure that's the darn hardest of them all because there's so many variables in Windows 32 stuff. Like you're basically taking 20 years of stuff and cramming it into one technology. I'm guessing the next six months we'll see something.
But it's certainly been announced and there's certainly information about it and how it's going to work but I haven't seen any actual demos of it. So that's why I started with that because it's the least impact, like it's now. Pretty much.
Yep, yep. That's the way I understand it. So it won't be a conversion as such. It'll be more of a container to provide that service. But you will be able, as far as I know, to add Windows 10 universal features such as notifications or use the camera on the device or those sort of things that are hardware related.
So hosted controls. Is it? Oh, right. Not really, no. It's kind of like, I guess, when you look at it,
yeah, it's sort of a container to provide some functionality but in terms of the App-V technology... I understand that it would be global. Yeah, yep, yep. I don't think it's quite... It's sort of the same idea but it's not quite the same. Was there a hand somewhere else? I'm happy to take questions by the way. That makes a much better interactive session for everyone.
So that's the first one and it's by far the hardest as far as I'm concerned. Not that any of them are easy. Then we have this one for web apps. So that's if you're a web developer and you have a website, you can essentially make it a native application you can deploy in the store
or sideload it if you have a company store or whatever you want to do. And the example that Microsoft has is this game with a plane and it's a website. So you can play it on the website and they wrap it up and you can use features like Cortana. So does people know what Cortana is?
It's like the good version of Siri. It's actually really good. I quite like Cortana, especially like the Tell Me a Joke. No, not really. That's just been done so many times. And then you can do stuff like LiveTiles. So this is one of the real benefits of using Windows platform
is something like LiveTiles which doesn't exist anywhere else and in my opinion makes it a lot easier to use a device without having to do this all the time. Because you can just glance at it and go, ah, the tiles on the front of the page will give you the information you need right now or at least that's the intention because it's up to the developers of course to put the information there.
And then you can make in-app purchases. So again this is a way of monetizing your work because everybody knows it's pretty bloody to make money out of a website. People go, there's ads on it? Hot ad blog. People just, it's just hard. If you can do this and you can wrap it up in a container,
sell it for free through the store and then you can add, say, oh, I want to buy 10 articles a month for a dollar or whatever it might be that your in-app purchase could be. It could also be the games. You say I want to level up quicker and you pay. I mean it's a proven model that works really well. It's sort of a fear of missing out. Oh, if I don't do this I'm not going to be,
I'm going to miss out on something. And it works well because they already have your app in their hand. And then there's notifications, of course. So you can send notifications, just like when you get a text message on your phone, the notifications can be pushed from Azure or whatever your distribution mechanism is.
All right, so now I'm going to attempt a demo. It's going to be interesting because my Visual Studio crashed a little while ago, about 8 o'clock. So we'll just see if I can get this going. Oh, hang on.
So the idea with this is that you create a JavaScript project. If it would start. And have anyone used WinJS?
WinJS is a JavaScript framework that Microsoft came up with that allows you to compile JavaScript to native code. So they give you controls that will compile into being completely native.
All right, so now we're going to do a new project. Ah, that's slow. There we go. And as you can see here, we have the two universal. Can you actually see that? Is that right? It's a bit small, just let me know. I think the text is going to be a bit small, but we can fix that. So we want to go down to other languages.
JavaScript. Windows. Universal. That was easy, wasn't it? Because of course the universal is not under universal. I know. You'd think so, wouldn't you? Well, it's kind of odd because I built an Xbox app
a couple of months ago. I helped out building one. I shouldn't take credit for it, but I helped two guys build an Xbox app. And we're using WinJS and we're using KnockoutJS, if you use the data binding library for JavaScript. And it was like, they said, well, you've got to use WinJS for these bits so that Xbox knows it's an app.
And then you just gutted everything else and just used Knockout for all the binding pretty much. So I'm with you, it's like, WinJS? Yeah, they are probably trying to hide it because if you need it, then you're the guy that needs it and you'll find it. Okay, let's try this. So it's called a hosted web app.
That's the official term for this web bridge, a Microsoft bridge for web apps. It's called a hosted web app. Let's get my cheat sheet here. Say that again.
So is it kind of like Cordova? Yeah. Cordova is more aimed at building cross-platform stuff as well. It's a bit like, what's it called? PhoneGap, I think. I haven't used Cordova very much but my impression is that it's very similar to PhoneGap.
All right, so here we are. And my cheat sheet disappeared. Give me a second. There we go. So the first thing you want to do is delete everything. There you go.
I think that was it. Just make sure it is right. And the reason you're doing that is because you're going to import everything from a website anyway, right? So get rid of that. Yep. Things about it. All right. And then we open up this package app manifest.
And in here it says the start page which was going to be default HTML, right? That's where your start page was. And all you do now is you go in and let me just get my cheat sheet because I can't remember this URL off the top of my head. And you say this is where my app is going to start.
And then over here in the content URIs you just add all the URLs that you want to be part of this app. So all the URLs that this app can access you put into these content URIs. Is this too small, by the way? Can you see this?
I can't make this any bigger. I can make the code bigger. I can zoom in, I guess. But trust me when I say that you're pretty much just putting in some URLs. What you can do, though, is you can have this sort of catch-all. So star.copen.io.
I'm only putting in the first one as a specific example because it's a start page. And we set this winrtaccess. So this is what can this app access on the device that it's running on.
You just get everything. I'll save that. And I think that's it for memory. Here we go. Run if I'm right. But that's how easy it is. It's three steps, four steps.
That's it. And then you can then use WinJS. So you have your website, right? That you are managing. So you're the content owner of this website. I mean, you could do it for any website, but you can only change the content of it if... Where'd he go?
You can only change the content of it if you're the owner of the website, right? Because all of this is coming from that URL. But I now have a native app. That's a universal app. That'll run on anything. Yes, I was hoping for some questions. Does it work offline?
If your website does, yes. Yep. It is just a container. But the cool thing is you can get stuff like this. The toast notifications, right? So, come on. Oh, there you go. Down here. Did you see it down the bottom here? So you get a toast on the desktop from the app, even though it's a website. So this is WinJS trickery
that's on the website itself. So this is obviously a sample that Microsoft's given me because I wasn't going to stand here and code everything for you to hook into the native application, the native content, native features of the platform. I don't know if camera's going to work on this device.
But if I were to put this on the Windows 10 phone, I could then use the camera as well. I'm not sure. It should show up here. But you kind of get the idea, right? Does that make sense? Yeah? I mean, it's almost too easy.
Yep. So the content comes from the web. Yep. It's almost like putting a web container on your page and putting... But don't tell your boss this.
Is anyone here a manager? Out. Someone comes and says, oh, we need to get our website as an app. We need to have an app. That's going to take four weeks, probably. But I need silence. I'm going to go home and do it. So there are applications for it.
But what happens, I think... I'll just stop this. Go back to my slides.
Oh, come on. Why does it do that? So the way that they describe it on the Microsoft Describers is this. Publishing your website into the store would be as easy as providing URLs and clicking publish. It's pretty much what we did, right?
So what about this website? Stuff on my cat. Do you think it would be a good app? What about this? Ling's Cars. Because whoever built that can go and click, click, click. Here's an app. I have questions around this. I hope there's some sort of gatekeeper that sits there and goes, you didn't do anything to that.
Denied. Because otherwise we're going to get inundated and hilarious. Have you seen it? But it's a proper business. Like they actually do business stuff. I don't know why. You can probably buy a chicken.
That's the web bridge. And it kind of... It's okay. You can do it. Can you see a problem with this? No? You're a manager, aren't you? Yeah. So it's a container
you can get native stuff. Yes. Thank you very much. There's already enough crap. Yes, there is. There is a million different fart apps. We don't need noise like this. So I'm hoping this is going to be regulated or whatever you're going to call it somehow.
It does have merit though because I helped Cricket Australia in Australia, not that I play cricket, but they wanted to have their live scoreboard from the website as an app. Promotional push and whatnot. And we did this. And we added buttons on there that would set up toast notifications for you
so you could follow a game and get notifications if something happened. So that made sense. That was a good choice because it was quick and they got the result they wanted and they didn't have to redo anything. But I just hope that it was proper guidance in whoever needs to do this. I'll save you, sorry.
Then there's this one. Is this an Android phone? Exactly. There's a fair few around. I'm hoping this is going to work. Oh, I forgot. Can I get sound? I'll just plug this in because I want someone else to explain it much better than I can.
That blackjack, right? Okay. So, see if this works. How do you know how much of your Android code can... I don't know why it does that. But that's okay.
We'll see. It was that. I just want... So there's a video on the website for... It used to be called Project Astoria.
Have you ever heard of that? Okay. Hello. My name is Agnieszka Gerling. I'm a Group Program Manager for the Microsoft Operating Systems Group. The Windows Universal App Platform enables developers to create amazing and diverse experiences from mobile... How do you know how much of your Android code can be reused to build a Windows app?
You start by dropping your app into the analysis tool on the Windows Developer Portal. You see what parts of your app will just work and you receive actionable guidance on what we recommend you alter. You can configure your project to redirect your app to Microsoft services with little effort. For example, this is the original Timber app
on an Android device. With a one-line configuration change in your project, the app on Windows uses Bing Maps. We provide interrupt and direct API mapping for most commonly used Google Play services such as ads, analytics, in-app purchases and notifications. And if you want to enhance your app with unique Windows features such as Live Tiles,
you can use our Java API and a few lines of code to engage users with dynamic tile updates. To make changes or debug your app, you can use your current IDE. We support IntelliJ, Android Studio and Eclipse. So, there's a little bit more,
but the rest is just, hi, we're Microsoft, we're awesome. So, I'll spare you for that bit. So, that's kind of like the... There we go. Excellent. That's the idea, right? You build your Android app and you drag it on
and it tells you magic things about what you need to fix. It's something that we can all do, really. So, the idea is that Microsoft doesn't want you to do more work. They want you to take your Android app, because remember, they don't have any apps on Windows platform. They need to steal all the ones from Android
and all the ones from iOS, right? So, they want you to take that thing you just built and just, wait, here you go. Drop it up there. And they'll give you some analysis and say, oh, this doesn't work, this might work, this probably will work. So, I don't know. They promised you were going to use Android Studio, right?
And you could use IntelliJ, which is a JetBrains product. And you're also going to use Eclipse, as in it doesn't matter what tool you're using, as long as you give us your stuff, we're happy. And then this happened, just as you said. This came out about November, number 17, that week, and saying, hey, it's dead.
Something happened and there was rumours and at the same time the website broke. So, people thought they were taking the website offline as well, but they didn't actually, they just actually broke. And there was all these rumours about, and there was nothing, Microsoft didn't say a thing, but all these rumours about, ah, it's broken, right? So, here we go.
They have actually now somehow revived the beast. Like, they've found a way to keep this going. And I'm guessing, yeah, I'm guessing it's something like that. They've found a way. I don't know why the rumours came out, I really don't know.
I can speculate something around, ah, people thought they were doing an Android device or, you know, there was different things, but this is the current website. Sign up here, get access, we're doing it. Right, so it's definitely not dead. But you're right, there were rumours and there were, like, because there were so many different sites,
people went, ah, must be true. But there was never actually any official reply for Microsoft. Excuse me. All right, so, is that exciting? Is that something anyone would use? If it was that easy? Yeah?
Ubiquitous, yeah. Very good questions. The question is, why would everyone bother? Like, what's the point? And I'll get to that, okay?
But that's a good question, because you're absolutely right, that's my first thought, why are you doing all this stuff? Now it's my favourite, and I know everybody loves this. Yes, Silverlight, right? Yeah, yeah, you go like this, don't you? Woohoo! You all right? No, you're right. Silverlight was more like this. There was just a complete face plant.
There was just... The problem with Silverlight was that it came out in the wrong time. The technology was fine, but it was competing with Flash, and it was then competing with HTML5, right? Like, there was just not a use for it. You can just keep watching that, can't you? It's just, ah. But what Silverlight is used for
is all the Windows Phone 8 and 8.1 devices, and to some extent 7, but we don't really talk about 7 anymore, because there's no... I have a couple, anyway. It's a disease. All of the disease devices run Silverlight code. So there still is...
I don't actually know how many Windows Phone devices are, I think it's about 100 million, currently in the market or something, that runs Silverlight, somewhere around that, 80, 100 million, something like that. Everyone has. But this meant that... Guess what you had to do if you wanted to port your Silverlight or your Windows Phone 8 application to Windows 10?
Guess what the procedure was? Exactly. File, new project, copy, paste, copy, paste, copy, paste. There was no way to do it. It was just impossible. And you can run Windows 8 apps on Windows 10 devices. They work just fine, for the most part.
But there was just no upgrade path. So all these apps, which... A quarter of a million apps, I think, something like that, 300,000 apps, that would just sit there and rot. And unfortunately, this is a bit of a history with Microsoft, is that they kind of forget, they leave people behind, right?
Upgrading Windows Phone 7 to 8 was the same thing, you couldn't do that. There's a company called Mobilize.net, they've built a Win32 app. I'm wondering if they're going to put this in a... No, never mind. And what this does is it installs a bridge, the Silverlight bridge. And it's free. And it works relatively well,
unless you have really complicated apps. And even so, often there are things that you can fix within a day or two. It does save you an enormous amount of time. And then I had this slide, with a demo. And then Visual Studio completely cocked it, so I'm going to try and see if it works.
It's really quite simple. So... And let's go and see here. So... Okay. So we have a standard Visual Studio IDE. See, it needs migration. We might be able to do that. Yeah, didn't work. I opened it earlier.
All the tooling for Windows Phone 8 died on this machine, I tried installing it and it didn't work. But it's not that big a loss because you would just see a normal solution, and you'd say, upgrade to Windows 10. That's it. And it creates a Windows 10 solution for you. And in this case, this was my Pluralsight course app, which is really simple, it worked a treat.
There was no problems at all. I actually had it running on this phone. So... Anyway, is there any questions? Would anyone use this? Because it's free and you can do it right now. To get on Windows 10. One guy going, oh, yeah, maybe.
Say again? Yeah. It is that easy. It's sort of the anti-climax of demos because it's just click and you get the result, right? And I guess that's the whole point of all of these things before we get to the last one in a minute. Is that...
Oh, that's the wrong one, isn't it? You have all of these developers that have already spent so much time building apps and you don't really want them to do the same amount of work again, or even near that same amount of work. So all the bridges are meant to be, even though they're really, really technically quite advanced, for you guys as developers it's more of a drag and drop or click. And I know that doesn't make you feel
very valuable as a developer. You're like, oh, I want to code and stuff. But it does mean that you can focus on not doing maintenance, which I like. Let's just do this again. All right. Here's everyone's favorite.
People have iPhones? Yes. iPhones are nice. Very nice devices. And they're very dominant, right? This is the same in the UK. In Australia it's like you see iPhones are almost the same rate as Android phones. It's almost the same. Everybody has an Android on iPhone and that's just it. So iPhones are really, really important
also because they seem a bit of a... This is where the apps come out first. The big apps come out first for iOS. Often they come out at the same time, Android and iOS, but more likely than not iOS is the first one. And it's a real problem because something you say is Snapchat.
Does anyone use Snapchat? Yeah, it's, you know, if you have iPhone or it's just there, same on Android, it doesn't exist on Windows Phone. There are third party apps that are really, really quite close. There's some really good developers that have sort of built their own but it's not an official app that doesn't say it's Snapchat. So that's the problem.
And one of the reasons, and this completely blew people away because no one expected there was going to be this bridge or even anything to do with iOS, but this is the new Microsoft. We like everyone, especially if they give us our stuff, give us their stuff. So if you code in this stuff, which I don't even know what that says,
I think that's just print screen actually. There's nothing wrong with Objective-C. So, hey? It's awful. Yeah, I know one guy that likes, like he really loves it. But he also has a PhD, so it kind of makes sense, right? But this is an open source project.
It's called WinObjectiveC or WinOBJC. And it's on GitHub. So if you want, or you want to try it, you just get it. You can fork it, you can look at the code, you can do a pull request if you find a bug. It's just a completely open source project. Hey?
It will not work with Swift, at the moment anyway. So it's only Objective-C. I'm not sure why they chose that. I'm guessing there's many, many, many more developers that use Objective-C, but I actually don't know. Do you use Swift yourself? A little bit. I just like you can code in emojis. It's hilarious. So we'll just have a look at the iOS bridge
and see if we can get it going, because it's kind of cool. It's actually quite impressive. Bear with me for one second.
So when you download it, or you clone the repo or whatever, they have compiled it for you so you don't have to, but you can also build the source yourself if you choose to do so. This is what you get. This is pretty much it.
The main thing you want to know about is in this bin folder, there's, let me just, because you can't see a thing here,
so there's a viasimporter file. That's the one that does all the hard work. So the way this works is that they take the Objective-C project and they analyse and see what API calls are you making and they're mapping them. So they're mapping the API calls to .net code. It's really quite elaborate the way that it's done.
And you use this viasimporter to basically just create a Windows 10 solution that you can then work from. But you still work in Objective-C. It's not translating into C sharp. So if you're an iOS developer, you can now use Visual Studio to write Objective-C, which is really odd.
I'll show you. There was a few puzzled faces. Let me just change this font, because that's terrible.
Do you remember the little dialogue that came up and says, wait while Visual Studio completes this command or something, and it would just sit there forever. There we go. That's better. Is that better enough? Or do you want it more better?
Is that right? Okay. So this is Objective-C. And out here we have on the right, out here, there's all of the different files that this project came with. Oh, stop it. And they're all just files that it came with.
But what it's done, what the importer has done is it looked at all these files, and it said, oh, this has this call, so it maps it somewhere deep in the bowels of it. It maps that Objective-C API call to a Universal Platform call. Does that make sense? So there's a lot of trickery going on,
which is also why people were so surprised that this was going to happen, because the way that iOS apps work is completely different. Like Android and Java, C sharp, there's some things in common, there's folder structures, and there's a lot of things that are similar and also in terms of language syntax, but this is just completely different.
So here's our project. If anyone knows, so you get even syntax highlighting for your Objective-C. It's a full editor now for Objective-C in Visual Studio.
No? Do you? I don't think so. This is it. I don't know Objective-C. That's the problem. I don't know where to look, but I have seen demos of people doing visual stuff here with click and clang and drop. Okay, disclaimer. I would certainly build it in Xcode first
before I did this. I'm not sure this is quite ready yet. Not a Facebook message. How'd you talk? I'm still doing it. As impressive as it is, it's still early days, right?
So let's try and build it. Let's just try and run it. So this is now Objective-C running in Visual Studio being built into a universal app running on Windows 10. All right? Yeah, I know. It kind of blows your mind. Okay.
Wait for it to load up. But this would now also run on my phone. Like that's the cool thing. No, that comes up next month, I think, or something. But this is now, we have a... No, it's a very boring app, granted, but we can click on things and hopefully it won't blow up.
There you go. In the back and... This is a very simple example, but you get the idea. All of this is now Objective-C code that's been mapped to core API and .NET API calls to be able to use it on the universal platform. Any questions for this? I think this is pretty neat.
Does IntelliSense work? That's a very good question. No. Actually, I thought it did, to be honest. I have seen demos where it did work,
but again, it's a GitHub thing. It's an open source. Some people are doing all sorts of stuff to extend on it. There are Visual Studio extensions that will do it for you, I believe. There's one that's syntax highlighting that I've installed to get the Objective-C syntax highlighting. But IntelliSense is not really a core part of what the project is, I guess. It's pretty cool. But actually mapping all that
could just be an extension, I guess. All right. Any other questions on this? We only have an hour. That's why I'm going pretty quick through them all so we know what they are. Okay. Very good.
I'll do this whole thing again. By the way, the new Office 2016. Has anyone installed that, using it? Troy has. That is a universal app.
That's the exact same that runs on your phone. That is pretty impressive. But that's okay. Microsoft will have to sort of forge the way, right? But it's a Windows 10 app. And it looks exactly like it did before. There must have been an enormous amount of work writing that again.
So someone mentioned... What was your question before? Oh yeah, why do people care? Why do they bother? Before I get to that, this was yesterday they announced, Microsoft, that there is now going to be a web tool similar to the Android one where you drag and drop your objective C code on and you get similar results.
Like you get this works, this won't work, you need to fix this, and so on. Because I think they realized that even though this was kind of cool, it's not quick enough. We need to have that, oh, it's just a click. Of course I can do that. The analysis of your solution certainly doesn't come with doing it in Visual Studio,
that's very much manual. Now you may ask, if this is already out, are there any apps? Has anyone done it? And the most prominent one I could find, unfortunately, was Candy Crush. That was the iOS solution
that was used as a test bed when they were building it behind closed doors. And this was released before Build and I'm not sure when that came out. I don't play it, I'm sorry. I don't have any, I don't know. You lose IQ points or something? I don't know. And this was released and no one knew.
Everybody thought it was just a Windows phone app but no, it was the iOS app that was ported. So that was sort of when they went, hey, look what we did. It's impressive because that's a pretty full on game. Okay, so there was a question before, why does anyone care? It's a really good question because why does anyone care about, I have all the Windows phones in Australia, just ask, Troy will know.
Why does anyone care? But there's this. And it's a goal that Microsoft has set. They want a billion devices on Windows 10 before or about 2017. It's about two years from now. It's pretty ambitious. And apparently it is not just someone in marketing
went, ooh, a billion, that sounds like a lot. Let's do that. How many devices there are. Currently Windows 7, sorry again, Windows XP and all those devices, how many can we actually get on this? And right now, does anyone know how many devices are on Windows 10 right now? It's 200 million.
So they're not. Like they're not on the lazy side, right? It's 200 million devices. So I think it's 140 million, 150 million PCs and then the rest is devices and IoT devices and whatnot. But that's a lot of devices already in six months. So it's not completely incomprehensible that something like this could happen. Does that answer your question?
It's a billion, man. It's a billion. Yeah, it's a pretty good business case though. If you were in this space and you wanted to go to your manager and say, I think we should take this app that's selling really well and I think we should port it and put it on Windows. And don't say Windows Phone because that always gets me to go, oh. Just say Windows.
And even, oh this, we might even get to a point where we can build stuff like this. I'm gonna have to do a video now because PowerPoint won't play my videos apparently.
Can I get sound again please? Anyone know this? It is a cat.
Love that and it reminds me of HoloLens. Did I mention that Windows 10 works on HoloLens? But that's pretty much what I've got. Thank you very much guys. If you've got any questions, feel free. We've still got five minutes. No?
I kinda answered everything as we went. I hope you got something out of this. And remember we got this puzzle game outside that if you put the green card in the box, there's free beer. Yeah, it's really cool. I really appreciate it. Thanks for your time.