11 ms·
Win32 and .NET desktop apps can now be published in the Windows Store
- flukus 10y agoAnd all you have to do is convert it into a UWP app: >A few months ago, during Build 2016, we announced the Desktop Bridge, enabling developers to bring their existing desktop apps and games over to the Universal Windows Platform (UWP) by converting their app or game with the Desktop App Converter and then enhancing and extending it with UWP functionality. This then enables the path to gradually migrate the app or game to reach all Windows 10 devices over time, including phones, Xbox One and HoloLens.
- benaadams 10y agoYou run the converter on your complied exe installer, not your applications code. That a fairly low barrier. Seems to make the Store very backwards compatible, it can even convert VB6 apps: http://www.hanselman.com/blog/PuttingMyVB6WindowsAppsInTheWindows10StoreProjectCentennial.aspx http://www.hanselman.com/blog/PuttingMyVB6WindowsAppsInTheWi... Also if you want to go from exe rather than installer you can use makeappx directly https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-manual-conversion https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop...
- flukus 10y agoWhat if I'm using something more modern, like chocoaltey? MSI has never played well with CI servers and wix is way too complicated.
- benaadams 10y agoNano server (variant of Server 2016) which has no UI component at all has adopted the appx for Windows Server apps (WSA) so I'd imagine the tooling will improve there. Though you can also build one with a text editor and command line: https://blogs.technet.microsoft.com/nanoserver/2015/11/19/hands-on-packaging-and-installing-your-first-windows-server-apps-on-nano-server/ https://blogs.technet.microsoft.com/nanoserver/2015/11/19/ha...
- flukus 10y ago> Though you can also build one with a text editor and command line That's exactly the sort of thing I'm after, thanks. I hate it when configuration is hidden in favor of tooling.
- benaadams 10y agoAlso manual conversion steps without installer: https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-manual-conversion https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop...
- Already__Taken 10y agoSeems like they want MSI to go away. I'm finding it harder and harder to find published ones.
- flukus 10y agoThe kind of tried it years ago by not including setup projects in visual studio (MS Developers think publishing directly from VS is a good idea), the problem was there wasn't a better alternative. I didn't mind NSIS (nullsoft of winamp fame), but it was weird to say the least. Install scripts were a high level, domain specefic variant of assembly...
- douche 10y agoWe switched to Advanced Installer when that happened. Now I notice that probably 50% of the MSIs that I run are using the AdvancedInstaller dialog skins.
- mschuster91 10y agoVB6? That's... the awesome kind of crazy. How does the converter deal with the VB6 runtime that had to be distributed? Oh dude, this brings back some memories... but I have to admit, for long time there was nothing except VB6 if you wanted to put together GUI apps with very little code and a WYSIWYG GUI designer.
- Jaruzel 10y ago> How does the converter deal with the VB6 runtime that had to be distributed? I've just checked on Windows 10, and yup, MSVBVM60.dll is still part of the OS install - the mind boggles. This is classic MS - providing support for as long as they can, where they can. Of course I'm not sure how the UWP Bridge would work if your VB6 app referenced a bunch of old school .OCXs though, as typically even the self registering ones need to write to HKEY_LOCAL_MACHINE part of the Registry, which the Bridge docs say is a complete no-no.
- Washuu 10y agoWhen I was about 12 my father gave me a copy of VB6. I used form and image controls to made a pixel based tiled fighting game. Not an actual game engine. Just a horrible hack that actually worked and I was proud of it. It was one of those things that helped me get into programming. (I still have a copy of it.)
- majewsky 10y agoI remember implementing a Conway's Game of Life in VB6 with a grid view's cell background colors. Good times.
- ifdefdebug 10y agoMy WiX installer prepares the program folder location and installs exactly one downloader executable which pulls the rest of the desktop app from a location in the internet. Is this setup compatible with App Store via Desktop Bridge in principle or should I get problems with sandbox etc.? (No need to elaborate, if the answer is yes I'll work through the details on my own).
- benaadams 10y agoPreparing your internet download desktop app as appx might be the way? Rather than converting the installer https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-manual-conversion https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop...
- jmkni 10y agoWouldn't this make it easy for people to convert other peoples applications and upload them to the store? Especially if you don't need access to the code. I wonder what barriers MS has in place to prevent that sort of piracy?
- WorldMaker 10y agoThe same barriers that try to keep people from needlessly cloning and profiting off open source projects? Review processes.
- mhd 10y agoHow's the current quality? When I used a Windows Phone for a while, the store was horribly swamped by featureless spamware, esp. compared to Apple's store or even Play.
- flukus 10y agoThe few apps I've installed were high quality. The biggest issue is that they were all optimized for phone/tablet and not for desktop use.
- garganzol 10y agoA few of them are decent: MS apps like Weather and Remote Desktop, some products from Abby. But in general, Windows Store is still loaded with featureless poor quality pieces. And yes, even the good apps scream for being "not the right thing" for desktop. A screen real estate seems hugely wasted. It is annoyingly hard to point to giant controls with the mouse on the big screen.
- jbb555 10y agoCan be. Won't be. And if they are nobody will notice.
- nickpp 10y agoOK. So I converted our app from MSI to AppX (using Advanced Installer so it was just another output from the same project). Publishing to Store is underway. What next? What are the UWP APIs/functionality worth adding to an existing Win32 app?
- Longhanks 10y agoSeamless updates, sandboxed registry, notifications API all seem to add some value to UX.
- doikor 10y agoTile functionality.
- xamlhacker 10y agoTiles and notifications might be the most obvious ones.
- garganzol 10y ago30% cut from your revenue.
- the_trapper 10y agoThat's kind of a narrow view. There's nothing preventing you from continuing to sell your software directly, and just about any other retailer/publisher will take a similar share of your revenue. The upshot is that by putting your software in the Windows store, there is a chance that you will gain new users that would have never found your product otherwise. It also removes some of your overhead considering that Microsoft hosts the software themselves, handling payment, storage, and bandwidth for you.
- abz10 10y agoHosting an installer is trivial, basically free, and likely less effort than dealing with the MS store. Their search is terrible (I work in search) and their reach is poor - people have been trained not to trust the store and most ignore it completely. The biggest benefit would have to be copy protection. Copy protection is hard to do because MS has made it hard intentionally for both technical and privacy reasons. Also the people making these decisions at MS are also on the payroll of the installer companies who benefit from not having a workable and freely available alternative. And there was no insentive internally at MS to fix it because bonuses are tied to the new metro stuff. If you're doing something mass market then 30% might be worth it. But if you're niche, which is MSs bread and butter, and stickiness, then it will not be worth it. Which is an idiotic position for MS to be putting people in. I predict continued failure of the App Store which will erode Microsoft's dominance in the long tail. The only thing keeping me on Windows is WPF and legacy customers.
- CommanderData 10y agoDo I need to sign my code which means having to purchase a signing cert? The costs for code signing are prohibitive for some small devs.
- benaadams 10y agoYou don't need to buy a signing cert; the Store signs the appx for you for installation. (Though you sign or self-sign the package https://msdn.microsoft.com/en-us/library/windows/desktop/hh446592.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/hh4...) You may need to buy one if you distribute the appx outside the store and you want it to be automatically trusted? (As you don't need to distribute the appx via the Store or install via the Store)
- huhtenberg 10y agoUnless it's some sort of weekend hobby project, ~$100 a year is hardly "prohibitive". [1] https://www.digicert.com/friends/sysdev/ https://www.digicert.com/friends/sysdev/
- flohofwoe 10y agoSo if I understand it right, this is basically running apps in a Win32-emulator/sandbox where all 'unsafe' Win32 file and registry accesses are redirected into sandboxed locations. I wonder why MS didn't go this way from the beginning instead of pushing that Frankensteinian half-desktop/half-mobile monstrosity called WinRT^H^H^H UWP on us. The UWP application model has been modelled after the (now 10 years old) iOS/Android app model, created in a time when mobile devices had a lot less memory and performance than notebooks. Win32 is a pretty bad desktop API, but UWP somehow managed to be even worse because it is an outdated mobile OS ported back into the traditional desktop environment, and everything that is not 'mobile' (mouse, keyboard, window management, ...) has been implemented as an afterthought. For games (which I guess are the main usage for old-school desktop computers now), UWP is an especially bad fit. I'm all for increasing security by running applications in a sandbox with granular permissions. However I am against 'walled gardens' curated by platform owners, this closed-platform model kills innovation. Unfortunately these two different things got thrown into the same pot by Apple, Google, and now MS. UWP somehow manages to combine the worst aspects of a dead app shop, a dead mobile platform, and walled-garden power phantasies. All of these problems aren't fixed with the Win32 sandbox though, I'm pretty sure this is just an emulation layer on top of UWP, so all UWP limitations would still apply.
- icebraining 10y agoThe introductory phrase of UWP explains why they pushed it: "A Universal Windows Platform (UWP) app can run on any Windows-based device, from your phone to your tablet or PC". The point was getting more applications for their mobile platform by coaxing developers who might have otherwise built a desktop-only application. I'd say this new development is essentially an admission of defeat on mobile.
- flukus 10y agoThe problem is that it may take their desktop with it. The industry doesn't want to invest in a desktop windows app because there is no clear direction. WPF/Win32 etc seem to be getting deprecated, but UWP is too limited.
- Animats 10y agoThe day will come when you won't be able to install an "app" from anywhere other than the Windows Store. Microsoft will want a big cut of the sale price. Bad security is a feature. If platforms were secure against hostile applications, we wouldn't need app stores.
- CyberDildonics 10y agoI don't know why this is buried, it is absolutely true. What windows users need are some sort of sandbox / container / jail where registry / file system / system calls are isolated. Then you could package up a program into one file and delete it to uninstall it like one file. This could have been done decades ago and now microsoft is banking off of the fact that they never did.
- walterbell 10y agoDoesn't App-V / Desktop Bridge provide exactly this sandbox? If the resulting file can be distributed outside the Windows app store, the developer can avoid the appstore tax and retain access to a direct customer billing relationship. If signing of the sandboxed-app-installer is required, $100/year (or other tolerable fixed cost) is still better than a 30% tax on every sale.
- diego_moita 10y ago> I don't know why this is buried Because it is the typical anti-M$ conspiracy theory. It blames on "evil" what it can't understand. Win32 is not insecure because they wanted to sell security. It is what it is because that's what made sense at the time, before Internet and viruses appeared, memory was restrained and virtualization and sandboxing were obscure techniques and processing power and memory were severely constrained. The "could have been done decades ago" is not that simple. One way or the other it should imply in limiting direct access to resources by programmers. And, giving how big the Win32 ecosystem became, that's more political than technical.
- emodendroket 10y ago
- MayeulC 10y ago> converting their app or game with the Desktop App Converter and then enhancing and extending it with UWP functionality The keyword here is probably "extending". I am not aware of what it really means, but I wouldn't be surprised if MS tried everything it could to get more developers on its UWP. And keep them.
- youdontknowtho 10y agoIt just means using some API's that aren't available unless your app is well behaved. No admin access is the big one. Don't write to \Windows or Program Files. That kind of thing. It doesn't mean...whatever paranoid thing you think it means. Also, its a developer related thing. If you don't have a desktop app that you want to move to the store or bundle in an Appx package for distribution on the web, it doesn't mean anything to you.
- wolfgke 10y ago> It just means using some API's that aren't available unless your app is well behaved. No admin access is the big one. Don't write to \Windows or Program Files. That kind of thing. Does this also include "allocate executable memory" (you need this if you write a JIT compiler)?
- benaadams 10y agoUse the "Code generation" permission? https://msdn.microsoft.com/windows/uwp/packaging/app-capability-declarations https://msdn.microsoft.com/windows/uwp/packaging/app-capabil...
- garganzol 10y agoAre those UWP packaged apps could be downloaded and installed from a website in a few mouse clicks? If not then thank you, I would not bother to participate in a walled garden.
- ctolkien 10y agoYes, the store is just one distribution model. The web, or whatever is also fine.
- garganzol 10y agoThat's interesting. Is there any practical step-by-step guide on how to achieve this? Or at least any sample website that offers installable downloads in APPX/UWP format? The last time I tried it wasn't possible at all without some PowerShell black voodoo scripts with some temporary certificates and other royal pain points rendering the whole technology totally useless. I could not even run my own appx apps because they should only be run "in container context". UPDATE: Just tried to create a blank app, packaged it into .APPX and run it on my machine by double-clicking the resulting APPX file. Here is what I've got: "Either you need a new certificate installed for this app package, or you need a new app package with trusted certificates. Your system administrator or the app developer can help. A certificate chain processed, but terminated in a root certificate which isn't trusted (0x800B0109)" What? Totally useless. I've just compiled MY application on MY machine and I even cannot run it. Why not replicate the UAC known/unknown publisher model? And those MS people are then curious why their latest greatest UWP/Store platforms aren't getting enough traction. UPDATE 2: tried to run my compiled .EXE file without APPX packaging. Here is what I've got: "This application can only run in the context of an app container." Duh. Universal Windows Platform they say? Conquer the world? Nope. It all stops at "the context of an app container". UPDATE 3: Settings -> Update and Security -> "For Developers" -> Developer mode ("Install any signed app") Of course I did this. Does not work as described above. All I want is to run MY just-compiled app without the hoops in loops, for starters. Yep, installing a temp certificate probably would solve this but its a PITA because it expires and requires ceremony. Won't waste my time, sorry. See ya at the next MS Conf. Hope .exe files will be launchable again till that time. P.S.: Sometimes I miss Sir William Gates
- zspitzer 10y agoThe Store app is still half baked, I was looking at the Microsoft Remote Desktop Preview and I noticed there are a couple of urls in the description. Can you click a url in the description? No. Can you select text from the description? No
- CyberDildonics 10y agoSo does this mean that there is a sandbox/jail that can be used arbitrarily? One of the biggest problems on windows is that you never know what an installer is going to do. Most average people's computers are bogged down with 20 things running all the time. Even without malware most people's computers slow down until they buy a new one.
- WorldMaker 10y agoYes, these converted apps are containerized (sandboxed) and their arbitrary requests are redirected to an app-only location.
- forgotAgain 10y agoSo then UWP is basically dead for 99+% of it's use cases. For mobile: use Xamarin. For desktop: use win32/.net so you can support pre August 2016 versions of Windows. For Xbox and ARM where you also need support for desktop and mobile devices: use UWP.
- WorldMaker 10y agoThere is no "Xamarin for Windows" there is only UWP. Xamarin spreads in the other direction giving Android and iOS a more UWP-like .NET development stack. For Desktop, probably still a better idea for new development to be in UWP directly instead of converting a Win32 app. This isn't the "death" of UWP, this is a stopgap bridge to take the long legacy of old Windows apps and give them a new life in the UWP era, including making it much easier to migrate out of classic Win32/.NET for newer UWP APIs, one screen at a time instead of porting the whole thing at once.
- oridecon 10y agoToo bad you still need a Microsoft account to use the store, besides sideloading. That's a deal breaker for me, at least on the desktop (I know you can login separately on each app). 1) How good is the sandbox? I followed the links but how battle-tested is it? What if you put an already sandboxed Chrome inside UWP, does it basically use almost the same calls or there are some extra benefits? Besides FS isolation. 2) Can I browse the "sandboxed disk" (including registry files) and export everything? So I can make backups or restore it later. 3) Does it stop apps from installing intrusive things? Some bank plugins use like 30% of my CPU on idle, run a lot of services on startup, so I have no option but to use a VM. I'm really curious about all of this and there's almost no hype around it. All I see is people talking about walled gardens, privacy concerns (that I have too), how they screwed in the past with GFWL, Windows 8. But downloading software from 3rd party sources in 2016 is just awful. I want the Linux package manager experience. I don't trust any 3rd party like Ninite, Chocolatey, and they have like 10% of all the software I need anyways. Let's see if the third time I make this comment gets a reply
- ocdtrekkie 10y agoAlmost every "store" requires an account. Try to use the Play Store without a Google account. That being said, since UWP itself isn't tied to the Store, as UWP expands, there will hopefully be third party sites to get UWP apps. (Eventually even Steam I presume will offer UWP apps.) If you know where to look, pretty much everything in a UWP app can be opened via file explorer. Check out the C:\Users\yourusername\AppData\Local\Packages folder
- deleted 10y ago[deleted]
- WorldMaker 10y agoThe sandbox here seems somewhat battle-hardened, as it is based on App-V (and some other container systems in Windows), which Enterprises have used for a while and Office has used for every desktop install for several major releases (since 2013 or 2010?).
- 10y ago