Live data from Hacker News

Ask HN: Is it better to build intranet apps with desktop technologies?

news.ycombinator.com

11–18 of 18 posts

Re: Ask HN: Is it better to build intranet apps with desktop technologies?

#11
post #8
post #5

Earlier quoted context omitted.

For a lot of apps, this works, but I think this is also what's led to number of Electron packaged apps. It starts out as a web app, because you can iterate quickly and its mostly platform agnostic. Then people realise that what you're doing means a 'dedicated' app is a better experience. At this point, the correct choice would be to have someone create a desktop app that uses your existing web app as an API. If your…

"The correct choice" was only correct after the application was created and iterated upon and somewhat widely adopted. Would any of the rapid feature iteration and widespread adoption have happened if this theoretical application was _initially_ created as a native app?

> Would any of the rapid feature iteration and widespread adoption have happened if this theoretical application was _initially_ created as a native app?

Yes. Desktop applications can be just as quick to develop and iterate on as web based ones. Slapping together a winforms UI in visual studio is still the quickest way to get to MVP status.

Re: Ask HN: Is it better to build intranet apps with desktop technologies?

#12
post #11
post #8

Earlier quoted context omitted.

"The correct choice" was only correct after the application was created and iterated upon and somewhat widely adopted. Would any of the rapid feature iteration and widespread adoption have happened if this theoretical application was _initially_ created as a native app?

> Would any of the rapid feature iteration and widespread adoption have happened if this theoretical application was _initially_ created as a native app? Yes. Desktop applications can be just as quick to develop and iterate on as web based ones. Slapping together a winforms UI in visual studio is still the quickest way to get to MVP status.

But how do you manage deployment of a new version? That's where the web comes into its own.

Re: Ask HN: Is it better to build intranet apps with desktop technologies?

#13
post #12
post #11

Earlier quoted context omitted.

> Would any of the rapid feature iteration and widespread adoption have happened if this theoretical application was _initially_ created as a native app? Yes. Desktop applications can be just as quick to develop and iterate on as web based ones. Slapping together a winforms UI in visual studio is still the quickest way to get to MVP status.

But how do you manage deployment of a new version? That's where the web comes into its own.

Deployment is definitely harder, but not to the point where it's unmanageable. Click once is one solution that's very common, though not great. It will check a url for a new version at startup and install that version. This URL can be a simple aspx page that gives each user the right version, I recently automated this as part of our CI deployment.

A better solution would be something like chocolatey (https://chocolatey.org/), which is basically a package manager for windows. It doesn't do the automatic updating, but doing that with a remote powershell script should be doable.

For some perspective though, if you automate this as part of a CI builds it should be a once off cost, it's not a justification to make something a web app instead.

Re: Ask HN: Is it better to build intranet apps with desktop technologies?

#14
If your application needs to do some heavy lifting on the client machines, then yes desktop technologies will be better. Web browsers are sand boxed for security and can be too limited for some purposes.

Desktop applications can avoid security problems inherent in web apps that are run through a general purpose browser.

The commonly cited tradeoff with desktop apps is they are harder to deploy and update. I don't believe this is necessarily true. You can tell a desktop application to periodically check for updates and notify the user to restart before allowing further writes to any central data stores. If fact many already do this. Problems arise when the OS prevents updates from being applied by non-admin users and you are deploying within a locked down corporate environment.

Java SE/Swing is a good platform for writing cross platform desktop applications. I work on an engineering simulation tool with a complex UI written in Swing. With Nimbus Look and Feel it looks and works the same across Windows, Linux and OS X without changes. Some people (devs) complain that is doesn't look native - none of my users care though.

The few times I have ventured into web development I have been horrified by the amount of work required to get web apps to look and work the same across different browsers. JQuery and Bootstrap deal with a lot of the pain but web dev still feels very hacked-together compared to desktop development to me.

Re: Ask HN: Is it better to build intranet apps with desktop technologies?

#16
post #2

It's a good idea to use desktop technologies if the app is complex, for most corporate intranets a few web pages is probably good enough. As for the stack, c# and winforms is a good bet, particularly if you need to target older versions of windows. If you need a bit more performance or cross platform support then c++ and qt would be better. You could go c++ and win32, but MS dropped the ball on creating a nice api. D…

Have you tried WinForms with touch screen devices? I haven't, but would guess it doesn't cope too well.

Re: Ask HN: Is it better to build intranet apps with desktop technologies?

#17
post #16
post #2

It's a good idea to use desktop technologies if the app is complex, for most corporate intranets a few web pages is probably good enough. As for the stack, c# and winforms is a good bet, particularly if you need to target older versions of windows. If you need a bit more performance or cross platform support then c++ and qt would be better. You could go c++ and win32, but MS dropped the ball on creating a nice api. D…

Have you tried WinForms with touch screen devices? I haven't, but would guess it doesn't cope too well.

Yes, way back when windows mobile was dominating and a stylus was trendy (before they became untrendy and then trendy again) ;) Certain things, like bigger buttons would be trivial, but other things like touch friendly inputs wouldn't be. MS even released a bastardised touch friendly version: https://en.wikipedia.org/wiki/Windows_Mobile_6.5

We're talking corporate intranets though, so a PC (or occasionally mac) will be the norm because that's required for productivity apps. Most things simple enough to be a touch screen app would fit into the category of also being simple enough for a web app. As I said, web apps are a good choice for simple and/or rarely used apps.

Irrelevant side story: For my second ever paid programming job (which only lasted a few weeks for other reasons) I was handed a fairly complex windows mobile app to learn. The app loaded every table in the windows CE database into memory when it started, which took about 15 seconds. Within a couple of days I'd modified this to load on demand instead, cutting start times to zero and impressing the boss.

Re: Ask HN: Is it better to build intranet apps with desktop technologies?

#18
post #12
post #11

Earlier quoted context omitted.

> Would any of the rapid feature iteration and widespread adoption have happened if this theoretical application was _initially_ created as a native app? Yes. Desktop applications can be just as quick to develop and iterate on as web based ones. Slapping together a winforms UI in visual studio is still the quickest way to get to MVP status.

But how do you manage deployment of a new version? That's where the web comes into its own.

There are multiple solutions for handling updates of native apps.

Managing updates to a cluster of backend servers is at least as difficult, because they usually have shared state (a database).

Post reply on HN