11 ms·
There are lots of useful actions an installer does that (some, if not most) end users actually want, including but not limited to adding shortcuts to start menu
by thrdbndndn 2y ago
There are lots of useful actions an installer does that (some, if not most) end users actually want, including but not limited to adding shortcuts to start menu so you can find it or search for it, associating file formats, registering to Windows' program list, etc.
I was a big fan of "portable" software, but nowadays if a software offers both ways, I actually prefer using installer. Otherwise I have to manually add them to Start Menu to be able to search for it, to begin with.
I do hate registry keys, simply for the fact they are often lost after reinstalling the OS. Please just keep all the settings in %appdata%!
- pjmlp 2y agoIf only everyone actually kept up with Windows development best practices, including Microsoft teams themselves[0]. Configuration via XML files, AppData, registry free COM activation, MSI installers, only to quote a few examples, are decades old by now, at very least since Windows XP. [0] - To be fair, nowadays many young employees seem to only ever used Windows after joining Microsoft, so what else can we expect, if apparently they don't get the right mentoring.
- CLiED 2y agoIs there a book or site documenting these best practices somewhere? I'm getting into windows dev and am curious about them.
- p_ing 2y agohttps://learn.microsoft.com/windows/apps/get-started/best-practices https://learn.microsoft.com/windows/apps/get-started/best-pr...
- kibibu 2y agoI cannot stand AppData, specifically the way it's often used to store files that should be in Documents.
- jeroenhd 2y agoThat should be covered by the part about "best practices". That said, I keep finding more AppData files in my Documents folders than the other way around. Linux software (especially legacy software that doesn't respect the XDG spec) is the worst for that, somehow spreading files and directories across my user profile directory and my documents directory.
- jamesfinlayson 2y agoI'd never heard of AppData until a few years ago when I went hunting for where some game config file was getting written to. Seemed like a bunch of disparate things with the most common probably being a dumping ground for programming language library caches (Maven and NuGet and maybe another couple).
- kibibu 2y agoI lost my kid's minecraft world because it stored everything under AppData/Local or some nonsense.
- mattl 2y agoHow did you lose it? That sounds super frustrating
- kibibu 2y agoBy backing up everything in important-looking folders (including My Documents, My Games, the Minecraft installation folder), and overlooking AppData as it is 99% download caches, tempfiles, and other garbage.
- hobs 2y ago:) and local state, configuration, and anything an app needs when you do stuff. It's really the local user state in most cases, very important to back up!
- vlovich123 2y agoWhat about a standalone executable that just offered the ability to install itself without having a dedicated separate installer?
- restalis 2y agoIt would be annoying. If the use-case is as a portable application, but the application would want to let the user know (in a sufficiently loud manner) that it can install itself, then either the user would be forced to pay attention at that aspect every time it opens the application, or that "portable" application will have to somehow pollute the environment with (at least) a note for itself of the fact that user was offered but chose not to install anything. That note is usually just a first change in the system and, for a non trivial application, is way too easily followed by many other kind of saved changes, which in itself looks like a creeping install. Then, if the user would actually choose to install, the app will have to do what, make shortcuts to its current location, which may be a thumb-drive, or another less ideal placement for a program (because how many of us take time to think about file management anyway)? Or, if the application makes a copy of itself to a conventional place (for an application) in the system, then now the useless standalone executable either gets forgotten about or becomes a burden for the user (who has to decide what to do with it). The most appropriate behavior for a portable application is for it to stay clean by default and only offer the user to explicitly enable persistency-dependent functionality. When the application starts, it checks if there's any previous trace of itself and depending on that it either keeps its portable-like clean behavior or switches to installed-like one.
- vlovich123 2y agoWhy would it have to let the user know via an obtrusive splash or anything? Could just be a very simple unobtrusive option on app launch or a menu item. Same goes for post install - not too hard to arrange to auto delete the old copy.
- jamesfinlayson 2y agoI remember a game that did this in like 2006 (it was a small GUI program called drug baron or something like that - you bought and sold drugs and weapons with your sales and purchases affecting the market - like a text-based game without having to use the command line). It didn't work so well (probably not programmed that well I guess).
- klodolph 2y agoI’m really fond of the way macOS does this, which is to stick this information in the executable. Back in the day, this worked via a flag in the metadata for each file. When you got a new executable, the flag was unset. The OS would see a file with an unset flag, ask “Is this an executable? What files can it open?” and then add this information to a database called the desktop database. This is why file associations work on a Mac without an installer, and without writing any code (you just have to write the code for “open file in response to OS request”).
- alt227 2y ago> which is to stick this information in the executable This is neat, shame they went completely the other way with file metadata. It forces a hidden .ds_store file in every single folder a mac touches just to store info like access time. Every other system stores this in the file itself.
- manwe150 2y agoNot to be too annoying, but that file is how it supports the feature on non-posix-compliant file systems (usually FAT). On filesystems that support file-streams (or the original HFS), that metadata is stored on the file itself
- alt227 2y agoConsidering how pushy Apple normally are when it comes to forcing their customers to use new things so they can obselete old ones, I am very surprised where Apple have drawn the line in supporting older systems.
- p_ing 2y agoYou're thinking of resource forks. .DS_Store is stored as ".DS_Store" even on APFS.
- NobodyNada 2y agoWindows does the same thing with 'Thumbs.db' files. They're just hidden from you on Windows systems, just as .DS_Store files are hidden on Unix-like systems; but you'll see them if you use a thumb drive with both types of machines.
- delusional 2y agoAfter using Microsoft Intune I will never again complain about installers. At least installers mostly work, and when they don't you can run them again.
- Kwpolska 2y agoIf I want to use a program once, I’ll just use a portable version. And I’ll be angry if it decides to add itself to the context menu of all Explorer files. But I agree, for things I use more often, installers are the way to go, and I am not a fan of projects that just give you a zip and ask you to figure out where to put it.
- Suppafly 2y ago>There are lots of useful actions an installer does that (some, if not most) end users actually want, including but not limited to adding shortcuts to start menu so you can find it or search for it, associating file formats, registering to Windows' program list, etc. This, I don't really mind unzipping some random small utility, but for things like games and larger applications where you'll actually be saving data and preferences, a real installer that knows how and where to put things following the correct methods for the operating system is much preferred. Then I can run the uninstaller to clean it up when I'm done with it.