DEV Community

Shreya Dahal
Shreya Dahal

Posted on

Good resources for learning desktop application architecture so that they can be applied to web applications

I was reading Addy Osmani's Design Patterns book where he talks about the MV* patterns. It was shocking to me how much the original Smalltalk MVC pattern for building desktop application paralleled the Flux architecture and how we work with React/Redux.

Web applications are often thought of as something new that we are just discovering and the ecosystem is, therefore, evolving very fast and new patterns are being discovered.

But it is also quite true that today's web applications are just a natural evolution to the desktop applications we've been building for decades. As such, I believe, it is very important that today's web application developers have access to the learnings from building desktop applications.

Discussion (4)

Collapse
yaser profile image
Yaser Al-Najjar

What do you mean by application architecture?

If you mean software architecture, then you dont really need lots of knowledge about that in desktop.

Most desktop software are just apps (which one user alone interacts with).

But, most web software are systems (which many users interact with collaboratively).

You can apply the normal MVC and you'll be good to go.

Collapse
squgeim profile image
Shreya Dahal Author

I'm thinking more along the lines of classic large desktop application like Microsoft Word, or Photoshop. Maybe architecture is the wrong word, but surely applications like that would have to have some high level design as to how the data flows, or how the code is structured; and surely there are some common industry standards that have been established.

Collapse
yaser profile image
Yaser Al-Najjar

Mostly such apps are mere monoliths... we never had "lite version" out of these apps, same goes to Visual Studio, only way is a rewrite thus we had VSCode.

You shouldn't really think too much about the architecture, but more on what value you can bring with your desktop apps. Generally, you won't succeed on desktop unless it's really very an important app for tons of users (unlike android, any app or game will do).

Collapse
rhymes profile image
rhymes

Windows Forms uses MVP and Windows Presentation Foundation uses MVVM

You can use both for web applications: stackoverflow.com/a/101561/4186181