locked
How would you architect this? RRS feed

  • Question

  • How would you architect this?

    80% of functionality will be basic office/data entry.
    10% of functionality will need to read from USB devices such as scales and readers.
    10% of functionality will need to work disconnected (and then upload/download data when within range of wi-fi).

    Within each of those percentage, consider to be that number of screens.  I.e. 

    - 80 screens for office/data entry
    - 10 screens reading USB devices
    - 10 screens needing to work disconnected

    For the 80% my first thought is Web pages.  Especially since office workers around the world would need to work with data at each of our satellite locations (i.e. they can hit the website of each location and will be fast as application code on server right next to database server and just screen IO going across WAN).  Or would I consider Windows app using WCF (or is that deprecating technology)?  If it was a Windows app, could possibly encompass remaining 20% all-in-one and not have to have separate apps.  Pros/cons to that of course.  One monolith client app is one-stop shop for users (no “use this app for this, that app for that”) but separate apps can be upgraded independently.

    So I’m assuming Windows apps for the other 20% since I don’t think web pages can read from devices (unless had Silverlight plug-in?  Even then doesn’t satisfy the disconnected 10%).

    So if Windows app(s) for remaining 20% (and I’d likely go WinForms or WPF or Windows Store/Modern UI),a separate app for each function?  There’s no logical grouping of the functions other than they all require reading USB devices.  Again, pros/cons to a bunch of client apps vs all-in-one (one set of DLLs and database still, of course).  And I can use SQLLocalDB for local database and handle disconnected (but requires Win app of course).

    So first, thanks for reading this.  Second, how would you architect it?


    • Edited by fiverc Friday, November 22, 2013 9:30 AM
    Thursday, November 21, 2013 6:09 PM

Answers

  • Hi,

     I agreed your comments that first 80% of work you can do using web pages. You can develop the site as per your needs and all data entry related jobs will be done. The next 10% of reading USB devices related operation required to write with Windows API. If you need a rich GUI application and more reactive, then create a WPF application and it will be handy to use more friendly. Again the next 10% disconnected architecture comes into WPF application. So you can develop a WPF application with some Windows API, you can cover the rest 20%. So a single solution which contains 2-3 projects as per your need which contains web, libraries and wpf application.


    Balaji -Please click mark as answer if my reply solves your problem.

    • Marked as answer by fiverc Thursday, December 12, 2013 2:33 PM
    Wednesday, November 27, 2013 7:04 AM

All replies

  • Hi,

     I agreed your comments that first 80% of work you can do using web pages. You can develop the site as per your needs and all data entry related jobs will be done. The next 10% of reading USB devices related operation required to write with Windows API. If you need a rich GUI application and more reactive, then create a WPF application and it will be handy to use more friendly. Again the next 10% disconnected architecture comes into WPF application. So you can develop a WPF application with some Windows API, you can cover the rest 20%. So a single solution which contains 2-3 projects as per your need which contains web, libraries and wpf application.


    Balaji -Please click mark as answer if my reply solves your problem.

    • Marked as answer by fiverc Thursday, December 12, 2013 2:33 PM
    Wednesday, November 27, 2013 7:04 AM
  • I don't see why you'd bother with the web pages. What's the adv?

    http://pauliom.wordpress.com

    Wednesday, December 18, 2013 3:10 PM