locked
How should I select the best Application Architecture for Win/Web? RRS feed

  • Question

  •  

    Hi All

     

    I have a query which is of top priority for me and my team these days. I am planning use Visual Studio 2008 for my new project, This will include few components like

     

    Third party services interaction,

    Rich GUI, ( I am sure, WPF will help me out)

    Windows Application, which will be migrated to web version in near future

    And custom controls need to be made & much more.

     

    In short How should I take a decesion for the application architecture  as I really really want to include all the new & latest technology in this application like LINQ, WPF, Design Patterns in C#, Implementing MVP or other such great architecyure patterns which will give me the ability to migrate it in web in a much planned and structured manner. I want to get the best out of the technology for this application so that it should be a rememberable milestone for me and my team.

     

    Although I have implemented few  things like Enterprise Libraries, Ajax Extensions, Silverlight 1.0 and much more but this time I want to make the maximum use of Great Technologies provided by Microsoft and

     

    And I KNOW I CAN'T GET BETTER HELP EXCEPT YOU GUYS !! Smile

     


    I have downloaded & studied no of samples on different topics but am not able to get an overall solution.

     

    Please help me on this.

     

    Thanks in Advance !!

    Thursday, September 18, 2008 2:06 PM

All replies

  • It impossible to advise on the best architecture without more details about your requirements, organisation or project.

     

    However, to my mind, the motivating factor in the selection process should be whatever would provide the greatest benefit for your organisation/project.

     

    I would also restrain the desire to 'include all the...latest technology' as it is often a mistake to add too many new things to a project.  This will introduce too much risk as there will be too many new things for developers to learn.

     

    For example, in a previous project we had our own data access layer.  maintaining and enhancing this took too long and demotivated the developers as the work was dull.  So in the next release we introduced ORM tools. 

     

    For another project it was agile practises.  I also like to change the focus; in one release it will be a technology, in another it may be a practise like TDD.

     

    I find the best way to keep the team motivated is to add one thing at a time, let them become proficient with that before adding anything else as small incremental improvements on a continuous basis has always worked best in the teams I have worked with.

     

    But above all your selection criteria should always be what will give the largest return for your organisation.

     

    Thursday, September 18, 2008 2:33 PM
  • Hello G Moore

    Thanks a lot for responding. I think you are right that I should take a selective approach to figure out what should be my steps for implementing the new/required technology so that I don't run into trouble in the later stages.

    I am going to develop a Windows Application using SQL Server 2008 Express Edition as a database and Visual Studio 2008 with c# for the front end. I will have to integrate few third party services like

    Fax Options, Integrating Accounting Service, Integrating Payroll Services, Integrating Microsoft Mappoint Server 2009 or may be Google maps API(s) for fetching the required data and images.

    I also need to customize and extend the UI and functionality of different controls like buttons, tabs and Data Grid and may be extending few functions also.

    Also, I need to migrate this application in Web Application so that with the appropriate architecture, I have to make minimum changes in terms of logic and connectivity and obviously binding to Web controls will be modified as required.

    At the same time how can I plan for a better for testability and quality of the software which may take place in the next phase.

    I have to make multiple database as my application may have more than one customer/company and can operate on them by selecting the one at a time.


    Also few more custom controls will be required as there are few controls which are not available in the VS 2008 Tool Box and need to be made from the scratch. Lots of work !!

    Need to look for online authentication every time the application is executed for checking the licensing policies and timestamps for the expiry of the license duration

    If I have missed some essential points, please update me & I will be happy to provide the details required.

    Thanks
    Samarth

    Friday, September 19, 2008 1:57 PM