none
Technology/Framework/Pattern Suggestions for a New Application RRS feed

  • Question

  • Hello.

     

    We’re starting a new application and wanted to get suggestions/recommendations/opinions on which technologies, frameworks, patterns, etc. to use.  We would like to choose these items so that they’re relevant now and will still be relevant and not abandoned in the future.

     

    We know we’re going to use a layered application with a presentation layer, maybe a service layer, a business layer, a data layer, and a cross-cutting concerns “layer.”  The application will be an Intranet-based web site using Windows authentication, running on IIS, SQL Server database, all layers running on the same server, and using ASP.NET.  We also need to support multiple clients, that is, the normal web browser interface (this is the main app ui), a Silverlight interface, and eventually a mobile app interface.

     

     

    So, our questions aren’t about specific details but rather more general inquiry to get different opinions and options:

     

    • If you were starting this new application, what technologies, frameworks, and/or patterns would you use for the presentation layer?
    • If you were starting this new application, what technologies, frameworks, and/or patterns would you use for a service layer?
    • If you were starting this new application, what technologies, frameworks, and/or patterns would you use for the business layer?
    • If you were starting this new application, what technologies, frameworks, and/or patterns would you use for the data layer?

     

     

     

     

    We're looking forward to hearing various opinions.

    Thanks!

     

    Friday, September 30, 2011 2:03 PM

All replies

  •  Hi,

    Here are some suggestions which we have used succesfully in our projects.

    • If you were starting this new application, what technologies, frameworks, and/or patterns would you use for the presentation layer?

    Since one of your requirements is that you want to use both a ASP.NET interface and a Silverlight one you could have a look at the Modeil View Presenter pattern. This will allow you to share most of the presentation code between different type of interfaces.

    If you don't want to reuse code between the different user interfaces (because they are totally different or something) you could look at ASP.NET MVC (=Model View Controller) and MVVM (Model View View Model) for silverligth.

    • If you were starting this new application, what technologies, frameworks, and/or patterns would you use for a service layer?

    Since your layers won't have to run distributed accross multiple tiers there is not really much about your service layer. Altough I  would always suggest using a Factory for your services and separete the interface and implementation. This way you could always change your service layer to run trough WCF so you can distribute it.

    • If you were starting this new application, what technologies, frameworks, and/or patterns would you use for the business layer?

    For your business layer, the most used pattern is a Domain Model. Think about using Factories for creating your entities so you can keep this in one place.

    • If you were starting this new application, what technologies, frameworks, and/or patterns would you use for the data layer?

    For the data layer I would have a look at the Entity Framework in combination with the Unit of Work and Repository pattern. If you seperate the interface and implementation you can switch the EF context for an in memory version when doing your unit testing. Also have a look at the POCO templates for EF.

    For unit testing I would also have a look at things like the Builder pattern (fits nicely with your domain model) and a mocking tool like Rhino Mocks (which we started using).

    I don't now what your going to use for source control but try to think about things like branching, continues integration and automatic deployment. This will make your life a lot easier in the future.

    Greetings,

    Wouter

     

    Saturday, October 1, 2011 10:00 AM