Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'m in a very beginning of the design phase of an application that will have to

ID: 642688 • Letter: I

Question

I'm in a very beginning of the design phase of an application that will have to run in the following platforms/devices: Desktop: Windows, Linux & Mac Mobile: Android, iPhone/iPad & Windows Phone 7 Web: Silverlight I will use C# on Mono and I want to maximize code re-usability. Except for the desktop (I'll use WinForms/GTK#), my concern is related to many different GUI that I will face. What would be your approach? Obviously, the views will be different, but what about the controllers, data access, utility classes, etc. Is it really acceptable to share everything but the views?

Explanation / Answer

I would start the web app first, so you can get a test/beta site to multiple users as fast as possible. It's about the easiest way to distribute. Find out what people want out of the core functionality of the apps. Whatever you release first, is going to have the fewest features.

Along with the website you may want to consider a web service if there is going to be a need for centralized data that has to be shared to all devices. If so everyone is going to want to be able to store local and synchronize.

Other than the obvious differences, I don't think there is a lot of functionality you would have on a website that couldn't be done on a desktop app. If you start with the desktop app, you run the risk of giving users features that they want only to be taken away when they go to the website. It won't be perfect, but it will limit this issue. You may find that people would prefer to have it on their phone instead of/before a desktop app.

If I knew the nature of the app, I could be more specific. Having multiple devices may help grow the client base. An API would allow developers to provide customization which would be beneficial if you clients are larger companies needing enterprise software.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote