What to choose for a new project? RRS feed

  • Question

  • First off, I apologize for a generic title and question. Trying to stay on top of tech for a new project, while using proven patterns and practices. Below are some project requirements and thought from me. Just wanted to "break out of my routine" and try something new, project architecture-wise. Any suggestions would be welcome from you senior systems architect types :)


    1. Desktop Windows application (likely WPF, running on Windows 7; possibly upgrading to Windows 8 at some point)
    2. SQL backend
    3. Need to integrate with third-party systems (e.g. via secure web services)
    4. Frequent scope changes (read - db and code changes) anticipated in the future
    5. Web version (that is a functional subset of a desktop app) may be needed in the future (no Silverlight)
    6. No mobile or cloud support needed 
    7. Large number of DB queries; interrupt-able processing; need to make UI slick and responsive
    8. .NET 4.5

    I have used previously and am considering:

    • MS Enterprise Library 6 (except data access)
    • Using Entity Framework 6 with some heavy async use (due to req. 2, 4, 7 above)
    • An MVVM pattern (req. 1, 5)
    • Sample N-Layer architecture (previously have used but sample implementation a bit outdated): http://microsoftnlayerapp.codeplex.com/documentation
    • WCF Data services (for web portion) with EF6
    • Am looking for something more streamlined with not too many layers (spring, not winter clothing for my architecture)
    • Am looking for a practical opinion, not general architectural rumblings (like - "more layers means higher abstraction"-type advice)
    • Possibly a downloadable skeleton VS project to evaluate

    Thanks for your input!

    Friday, November 1, 2013 5:41 PM

All replies

  • Hi 

    In IT software we always think about I (Information) first not T (technology) that you look worry about 

    choosing latest technology stack does`t always help ,

    • for example EF is not a very good choice if bulk data access is required.  
    • Also you need to justify why you need to develop a desktop application.
    • Unity is not very good choice for several AOP feature (why not post sharp/castle windser )
    • etc......

    you question is very generic , actually technology stack selection depends up couple of main factors as below 

    1. Type and nature of application 
    2. Future maintainability and availability of application  (No mobile today , but it should be designed in a way that it could support mobile tomorrow ) 
    3. Non functional requirements like performance logging , security , etc
    4. weather it is a internet/intranet facing application etc

    If you have some specific scenario please write up in more details , may be someone can help 



    Monday, November 4, 2013 1:27 AM