14 ms·
Microsoft introduces Universal Windows apps
- yulaow 13y agoThis is imho the best news ever from microsoft. Now I can target serverside, frontend, windows8 devices and windowsphone all with one language (javascript for me). Not bad at all update: I have to add other news just announced. With winJS now we can target also xboxone, ios and android device And also the full framework is opensource under apache license update2: winJS on github https://github.com/winjs/winjs https://github.com/winjs/winjs
- venomsnake 13y agoUnless it is shoehorned into their appstore ... have they said anything about that?
- jbigelow76 13y agoI was worried that MS would drop support for WinJS and double down on XAML. Allowing fully native builds for Windows Phone from Javascript instead of just native wrappers is great, now if only iOS and Android would follow suit.
- candl 13y agoThey've just announced they are making WinJS cross-platform and open source (under Apache license). Now I haven't used WinJS, I haven't ever developed a WinRT app (just a few for the Phone), but doesn't WinJS have a ton of quality components, even more so than WinRT XAML? This seems pretty awesome.
- jbigelow76 13y agoI missed the cross platform part, I've been bouncing between the live stream and work this morning. So the claim is iOS apps with WinJS as if it had been built in Obj C with XIBs and not just a web view hosted in a native harness? If true that would be pretty amazing (it would probably also cause Xamarin to shit a brick)
- candl 13y agoNo, definitely just a WebView. Still having a set of quality cross-platform MVVM-aware components for HTML5 is nice.
- jbigelow76 13y agoOh, I misunderstood what the implications were for "cross platform" then in this context. I would never think that javascript wasn't cross platform, I'll have to look into the MVVM components but JS already has that with libraries like Knockout so obviously I need to go back and watch the keynote again. Thanks for the clarification.
- Touche 13y agoThe APIs are what is now cross-platform. Previously WinJS had hooks for opening files (as one example) that obviously only worked in Windows.
- frozenport 13y agoCouldn't you do this with javscript before and also get MacOS, Linux, and Android? Anything with a web-browser?
- kevingadd 13y agowin8's js framework isn't just a browser with your code in it. They expose pretty much all of their API surface to JS with JS-friendly APIs and things like promises for async calls, so you're not stuck using dumbed-down apis or calling out to native code shims for things HTML5 can't do yet.
- Touche 13y agoNo, web browsers don't have APIs for accessing everything the native platforms are capable of doing.
- keithwarren 13y agoI think the most significant part of this announcement is how they are dogfooding, Office for 'metro' and for the windows phone are using this Universal targeting.
- sz4kerto 13y agoThey've been dogfooding for decades, that's a very core part of the developer culture at MS. (You can say many bad things about them, but they really do dogfooding all the time.)
- danabramov 13y agoKind of... Still, they didn't use .NET, Windows Forms, WPF and countless data access layers in their core products (Office and Windows), which probably contributed to the fact most of these frameworks got obsoleted every few years.
- lnlyplnt 13y agoThis seems similar to Google's tablet/phone strategy taken to it's natural extreme. This makes me wonder if google will soon do something similar with the (currently separate) Chrome/Android ecosystem.
- sz4kerto 13y agoI don't think it will -- it's really hard for MS to provide the tooling for making universal apps more or less feasible, even if they all share most of the WinRT APIs. Integrating Chrome/Android will be much harder.
- amaks 13y agoHaven't looked at the APIs, but are the APIs going to scale between phone, tablet and 30" 4K monitors? It's relatively easy to make the same app to be adaptable between phone and tablet, or even laptop, but to make it look good on 30" 4K monitor is a completely different UX, if full screen. Or in high resolutions the apps run in windowed mode?
- sz4kerto 13y agoYou can adapt any part of the app. I.e. you can simply migrate the app to be universal across devices, but if a specific part does not look good, then you can change the XAML/code behind for that part.
- amaks 13y agoBut do these "universal" apps still run full screen on 30" monitor? If so, then it's not a good UX. The benefit of a large high resolution monitor is to display lots of information at the same time, this frequently implies more than one app/window visible at the same time.
- orf 13y agoYou can move any app so it takes up only a slice of your screen
- revisionzero 13y agoYes, unless I am missing something. It's up to the developer (same as on Web w/ CSS Breakpoints) to accommodate the various 'breakpoints' or devices visually. To say it's poor UX is inaccurate, will there be plenty of unoptimized UI/UX full-screen apps? Sure, but the functionality itself is not poor UX.
- sonnyz 13y agoThey just announced that you can make your apps run in a window, instead of full screen.
- juarez 13y ago
- keithwarren 13y agoThis just in...Universal apps run on Xbox one.
- majc2 13y agoThis is interesting - Xbox one is their most interesting platform right now.
- gum_ina_package 13y agoThe amazing thing is that you can potentially write all your code in C# and have backend/frontend logic for the web (ASP.NET), Windows, Windows Phone, and even iOS/Android (via Xamarin). Wow.
- Aardwolf 13y agoBut what about Linux?
- gum_ina_package 13y agoMono! Lots of ASP.Net projects (like Nancyfx or SignalR) are actually built on Mono. I think there's some hope that web dev on Windows isn't dead.
- dmix 13y agoI tried Keepass2 with mono on Linux and it's pretty slow and unnatural UX experience. Much like running Wine. On OSX Keepass2 mono just froze constantly and looked weird. I've had similar experience with other cross-platform apps. Total cross-platform is a pipe dream. Just like Java or more recently HTML5/JS cross-platform mobile apps, they are almost always a half-baked solution compared to proper native OS apps. The UX and performance will never be consistent enough to make it better than just investing in native development (Note I'm talking about software, not simple content consumption apps where HTML5 in browser is fine). Having primary operating system -> tablet -> phone is a good enough goal. They should focus 100% and make it as stable ass possible.
- jarjoura 13y agoI see this as equivalent to writing one application that targets both iPhone and iPad and even Android with one app targeting tablets and phones. The only really new thing is support for a single application but the design and UI work still needs to be addressed for each screen size.
- mamcx 13y agoOK, and where is the code?
- emeraldd 13y agoI'm still trying to figure out how/why this makes sense as a goal. Building an application that runs across multiple platforms in congruent spaces makes sense: iOS and Android and Windows Phone. When you move to running the same application across Laptop vs. Phone style platforms, even on modern hardware, you're looking at capabilities and resources that are radically different. I can see wanting to share certain common code, but a library system ala npm, bundler, cpan, etc., would handle that better than sharing a common code base/project. What am I missing?
- UK-AL 13y agoMicrosoft has NuGet, which can do that. Common base is stuff for REST Interfaces, Entities etc
- deleted 13y ago[deleted]
- svas 13y agoThe real key here is sharing business logic. Microsoft apps are written using the MVVM (Model View, View-Model) framework. The idea here is that you would share almost all of your model code, and really only rewrite the view layer (XAML) per platform. You're also allowed to share the exact same views across platforms, but it's unlikely that will be a good experience for users, given the differences: screen sizes, input modalities, etc.
- tdicola 13y agoHow is this really different from what exists today? You can write in C# for pretty much every MS platform already. If you're smart you're already writing your business logic with as little dependencies as possible on view specific logic so it's more testable, portable, etc.
- svas 13y agoNot sure if you have tried doing this. In practice, it's quite painful as you need to have a separate visual studio project file for each platform (phone vs tablet). Further, the Phone implementation of WinRT is a subset of the tablet's, so sticking to the WinRT API alone isn't enough. Complicating matters further, the phone lets you actually use a Win32 subset which is not allowed on tablet. This (appears to atleast) unify everything towards more of a write once, run on all windows platforms world.
- frozenport 13y agoI'm shocked this didn't happen sooner. If you ever wanted to point to a problem with MS vision you can ask yourself why this didn't happen in 2005.
- rkuykendall-com 13y agoI think your underestimating the INSANE amount of vision and foresight that would be required to do this in 2005. 1. The xbox 360 was released in 2005. This was essentially the first Microsoft console to run 'apps,' and those had to be architected specifically for the console. 2. The iPhone was years away in 2005. Phones ran shitty little apps that had to be architected specifically for the phone. 3. The iPad was years away. Microsoft tablets just ran XP. The idea of the iPad as a "bigger iPhone" was mocked to no end when it was announced. People thought they wanted OS X on a touchscreen. Microsoft would have thought the same thing. 4. gMail has just been released. The idea of a true "web app" required remarkable vision and foresight by itself. Additionally, web apps had to be architected specifically for the browser (seeing a pattern?). Even if Microsoft had seen 5 years into the future and predicted all these changes, the platform they would have created in 2005 wouldn't have had anything to run on.
- NoPiece 13y agoGood points, but it is also worth considering that in 2005, Microsoft had a much stronger position in the Smartphone/handheld market with Pocket PC/Windows Mobile. Even looking at how they named their mobile os makes you think they should have been thinking about cross platform apps. Those phones felt a lot like tiny PCs, which was also their weakness.
- streptomycin 13y agoThe idea of a centralized "app store" was not new. People had been complaining about Windows not having Linux-like package management since the 90s. Similarly, the idea of web apps taking over everything was not new. Microsoft was acutely aware of that, since that was Netscape's big idea (also Java was in theory the same threat - write once, run anywhere, make Windows unimportant). Again, all in the 90s. This is the most fundamental answer as to why MS didn't do this stuff before. Not because of a lack of foresight, but because their foresight was good enough to allow them to identify it as a threat to their monopoly. Touch screen phones/tablets I agree were less obvious predictions, but even if MS did figure that out early on, it wouldn't have changed their motivation to fight back against Netscape and Java and similar technologies. But now the tables have turned...
- 0x006A 13y agoThey must live in quite a bubble if "universal" only includes Microsoft platforms.
- gagaga 13y agoI guess Google and Apple also live in a bubble? Not really sure what your point is. Is your expectation that Microsoft Universal apps also run on Android and Google? On Web browsers? Would you like them to use a different term?
- 0x006A 13y agoIts fine if they only target Microsoft Products as a Platform, calling it Universal was confusing to me. Of cause Google and Apple also have there bubbles too, they seam to be more aware of the universe they live in to not brand themselves as the universe.
- gagaga 13y agoSo you are aware that Apple also calls apps that run on both iPhone and iPad as Universal apps?
- rbanffy 13y agoIt's just that a mobile app that runs neither on Android nor iOS (90%+ of all phones) is not exactly universal. If all it does is run on all Microsoft platforms, from Windows Phone to XBoxOne, it's just a "Microsoft" app. If Microsoft decides to call what the Xbox runs "Windows" they'll become... Windows apps...
- pekk 13y agoThrowing around words like "universal" suggests a real cross-platform API, not "convergence of Windows with Windows Phone". Lots of people would like to see real cross-platform, not more vendor lockin.
- deleted 13y ago[deleted]
- svas 13y agoInteresting move in the right direction. I wonder if they'll take it further and let you write iOS and Android apps using Xamarin / Mono? This would actually provide an easy path for developers to get into the Windows ecosystem while ignoring the whole market share issue. Combine first class integration with an awesome IDE (Visual Studio), and frankly way better tooling than Eclipse this would be a pretty compelling reason for me to use Xamarin, and by extension have a Windows run target for my app.
- r00fus 13y agoBeware Apple, Google: Microsoft is starting to get it.
- _random_ 13y agoGoogle has universal apps? When will they get 'it'?
- shashwatak 13y agoChrome, and thereby all Google webapps, run on every major OS.
- _random_ 13y agoWhat about their tablet and phone OS - Android? Is there an app-store for those 'webapps' (not the Chrome app store)?
- hayksaakian 13y agocoming soon TM so far they've been working with phonegap to allow porting packaged apps to phonegap (to then package for specific platforms) http://phonegap.com/blog/2013/11/21/chrome-apps-pgdayeu/ http://phonegap.com/blog/2013/11/21/chrome-apps-pgdayeu/
- dragontamer 13y agohttp://tctechcrunch2011.files.wordpress.com/2014/04/img_20140402_104055.jpg?w=738 http://tctechcrunch2011.files.wordpress.com/2014/04/img_2014... Yes they are. Windowed Metro-apps, and legitimate Start Menu with decent Metro live tile integration (and a shutdown button) I was hoping that they'd have jumplists back on the startmenu, but lets see what they come up with...
- taiki 13y agoWhat about the internals? Is it still kind of a mess under the hood? I heard they rebuilt the TCP/IP stack so it's not user land 32 bit driver anymore. Any ideas if/when they'll modernize NTFS? Right now it's a race to the bottom to who has the worse FS, HFS+ or NTFS. WinFS or ZFS on OS X would be a godsend. What about the registry? Any idea if they'll make that easier to manage for regular people? Am I still fucked if it corrupts? What about sunsetting Win32? Or improving the driver model? They're starting to get it on the UI side, but the reason why I use Mavericks as my personal machine and work on a LAMP stack has less to do with how useful or pretty the start menu is, and more to do with the godawful internals of Windows. Or have we just resigned ourselves to a crappy OS internally that we've all just gotten used to?
- deleted 13y ago[deleted]
- bhauer 13y agoExciting! This is getting progressively closer to an ideal I call PAO (Personal Application Omnipresence [1]), wherein I use a single set of applications on all my devices. I am very happy to see progress in this direction, but there is still much more to be done in the future. [1] http://tiamat.tsotech.com/pao http://tiamat.tsotech.com/pao
- gress 13y agoSounds like iWork.
- kenferry 13y agoSo is this Silverlight but for WinRT apps instead of WPF apps?
- be5invis 13y agoI am wondering whether they can make Windows Runtime's GUI avaliable for existing desktop appliacations. There are many professional applications needs a brand new API for user interface.
- masterj 13y agoI believe they also had a segment about this for sideloaded apps.
- SixSigma 13y agoThey need a funky catchphrase, how about : "write once, run anywhere"
- jsight 13y agoThink pure thoughts. :) (for those who don't get the reference: https://www.youtube.com/watch?v=bGX7N-CoaPo https://www.youtube.com/watch?v=bGX7N-CoaPo)
- mitchty 13y agoI'm resisting saying Write once, debug everywhere. This sounds cool, but the road to this hell has been littered with many failures. Dammit, there goes my resistance. Which apparently is futile. I'll show myself out. If this does work its a cool things. Just microsoft needs to make c# and the .net framework open source and actually cross platform. Mono is a non starter for a lot of places.
- jjgreen 13y ago"write once, run away"?
- 72deluxe 13y ago"write once, test everywhere" Then fix and start again.
- tdicola 13y agoOne thing I don't see mentioned, do universal apps support C++11? I can understand why it's not as easy to support native code across platforms (i.e. need to do some kind of fat binary thing), but think it's a little sad to see all the work done to support modern C++ app development kind of abandoned. Really annoying if you have to choose between an app being universal or written in modern C++.
- dragontamer 13y agoMicrosoft is one of the biggest supporters of C++11, and C++14 for that matter. http://msdn.microsoft.com/en-us/library/hh567368.aspx http://msdn.microsoft.com/en-us/library/hh567368.aspx
- mnem 13y agoWell, they're certainly catching up, but they have a bit to go to before they match clang or gcc: http://cpprocks.com/c1114-compiler-and-library-shootout/ http://cpprocks.com/c1114-compiler-and-library-shootout/
- xamlhacker 13y agoAFAIK they do. WinRT apps can be written in many languages including C++. And this is pure native C++ and not "managed" C++.
- tdicola 13y agoYes I'm aware of that, but can universal apps be written in native code? I don't see any mention of it in their announcement.
- xamlhacker 13y agoI am 100% sure they can be written in native code but don't have any reference to give you for now.
- KMag 13y ago
- snarfy 13y agoThey really need to go both ways with their cross platform offerings. I can use their technology to develop apps for other platforms, but I cannot use their technology to run those apps. That requires having the other platform. It would be nice if I could not only develop cross platform apps for iOS, Android, and Windows Phone, but I could also run them on their Windows Phone platform. I would buy a windows phone if it could do that.
- ManFromUranus 13y agoWhy would they want to help you provide content for Android?
- snarfy 13y agoBecause I would do it using their tools, so it would also be content for Windows Phone. Given the current state, why would I bother making content for windows phone? Why use C# if it's a second class citizen on the majority platforms? Why even learn it if the only thing it's good for anymore is Web API? Windows could be the universal platform but instead they are still functioning like it's something they could monopolize. Those days are over.
- tluyben2 13y agoSome people here have mentioned this already but I am quite surprised with all the happiness and it's nice but... I have been writing apps on my Mac targetting asp.net, ios, android, wp8 and win8 with a lot of reuse and perfect frontends for two years. I love f#/c# and it works like a charm. Business wise it is nice that you have to pay only once but outside that what in god's name is so nice or special about this? I was hoping this would include a build system on Azure and a unified system using Xamarin all from VS. This is nothing at all. Wow I can target those 3 wp8 users from my win8 codebase app. Pfff. So it's just fanboys or almost nothing changes or I am missing some significant thing even though I am quite deep in this ecosystems for years now?
- nbevans 13y agoAgreed, it's been possible for years, especially with PCL libraries gaining significant traction last year. But these announcements and improvements have made things even easier than before. And to a certain extent have made what was once somewhat a "black art" to the layman C# devs now a official development track. Not sure why you've been downvoted for stating facts. So I +1'd.
- tluyben2 13y agoProbably because my tone and term 'fanboy'; I said it very carefully even as I am not anti MS or whatever; I use F#/C#/.NET every single day and like it. But apparently that was enough to trigger :) Thanks anyway; I was just surprised why suddenly whole HN seemed to hail in the new messiah... Easier is nice, but...
- majc2 13y agoLooking at twitter it seems like XAML is getting a ton of love from MS. Go back 2 years and many were predicting that HTML was going to win the war on Windows; what gives/what's changed? Disclosure: written more XAML than I'd care too.
- gagaga 13y agoFrom my understanding and use of XAML and HTML/JS, the UI performance you get on XAML apps is still better than whats achievable on HTML/JS apps.
- tanzam75 13y agoWhat happened was that most third-party developers refused to use WinJS, and stuck with XAML: http://www.zdnet.com/windows-8-developers-are-shunning-winjs-7000025443/ http://www.zdnet.com/windows-8-developers-are-shunning-winjs...
- rurban 13y agoBetter description: http://techcrunch.com/2014/04/02/microsoft-updates-visual-studio-with-support-for-universal-projects-typescript-1-0-and-net-native-code-compilation/ http://techcrunch.com/2014/04/02/microsoft-updates-visual-st...