none
really good 3-Tier architecture questions RRS feed

  • Question

  •  

    Ok I'm a bit confused so I'm gonna write what I "know" about this

     

      1. There's a 3-Tier development process ( Inside Code)
      2. There's a 3-Tier Architecture (like deployment method)

    Am I Wrong with this statements??

    If I'm not, we should deploy  each Tier as separate projects?? for instance

     

    • presentation Tier (smartClient Application) -Solution 1
    • BL and DAL (dlls or web services (WCF)) as another solution so we can deploy it in the application server- Solution 2

    If that is true,

    can I use a 3-Tier development process in each project??? for example

     

    Presentation:

    • DAL = communication through WCF to the application server
    • BL = maybe resize or block controls or manage sounds and messages
    • PL = just presentation of the main control (Window, Winform, WebForm) 
    Wednesday, October 8, 2008 5:36 PM

Answers

  •  

    So layering is for development  concerns BUT, you're talking about N-Layer, so its not strictly 3 layers right?? How many others can  I use in the development process?? jejeje and in wich situation?? maybe reporting fits here??

     

    There is no limit on the number of logical layers that you can have in an application. That's why it's aptly called "N" layer architecture. Having said that there are standard practices and patterns to decide the same. There was discussion on this exact topic in this forum. You should try and search for it. (subject was regarding 5 layers)

     

    When you say same server, you're talking about an Application Server right?? where BL , DAL and other layer  would recide;

    and different servers deployment,  to separate layers in each server or something.

    correct me please

     

    Yes, I'm talking about app server. However, note that again, as in the case above, there is not limit. So I can have my services, presentations, reporting components, databases etc all in the same server. How all these are to be distributed is a very contextual choice based on performace, utilization, availability, budget etc.

     

    Finally What is the best practice developing layered applications (enterprise applications) in VS 2008, is this the best choice for doing so??

    and do you need to do the layer-thing IN the same solution? or can I develop them separately

     

    VS 2008 is an IDE. The typical instance n-layer architecture is 3-layer architecture i.e. presentation, business logic and data access layer. Some architects consider database also as a layer. Within each of the layer you may have more layers, like MVP in presentation.

     

    Hope this helps.

    Wednesday, October 8, 2008 8:23 PM

All replies

  •  

      1. There's a 3-Tier development process ( Inside Code)
      2. There's a 3-Tier Architecture (like deployment method)

    Am I Wrong with this statements??

     

    You are correct. N-layer and N-tier are different.

     

    It's not clear to me as to what your source of confusion is. However, you can do N-layer development (different logical layers) and choose to deploy them on either same server or different servers (N-tier)

     

    N-layer is used for logical seperation of concerns. For example, changes in PL should not effect BL and vice versa. N-tier is used if there is a need to deploy those logical layers. For example, reasons like server utilization etc.

     

    Hope this helps.

    Wednesday, October 8, 2008 6:23 PM
  • my confusion comes first from the fact that english is not my native language, I'm from Ecuador, so when I heard Tier and Layer... I think the translation is almost the same

     

    So I thought that these words were used interchangedly, and that they ment the same thing.

     

    So correct me if I'm Wrong

     

    It's not clear to me as to what your source of confusion is. However, you can do N-layer development (different logical layers) and choose to deploy them on either same server or different servers (N-tier)

     

    So layering is for development  concerns BUT, you're talking about N-Layer, so its not strictly 3 layers right?? How many others can  I use in the development process?? jejeje and in wich situation?? maybe reporting fits here??

     

    When you say same server, you're talking about an Application Server right?? where BL , DAL and other layer  would recide;

    and different servers deployment,  to separate layers in each server or something.

    correct me please

     

    Finally What is the best practice developing layered applications (enterprise applications) in VS 2008, is this the best choice for doing so??

    and do you need to do the layer-thing IN the same solution? or can I develop them separately

     

    thanks by the way

     

     

    Wednesday, October 8, 2008 7:01 PM
  •  

    So layering is for development  concerns BUT, you're talking about N-Layer, so its not strictly 3 layers right?? How many others can  I use in the development process?? jejeje and in wich situation?? maybe reporting fits here??

     

    There is no limit on the number of logical layers that you can have in an application. That's why it's aptly called "N" layer architecture. Having said that there are standard practices and patterns to decide the same. There was discussion on this exact topic in this forum. You should try and search for it. (subject was regarding 5 layers)

     

    When you say same server, you're talking about an Application Server right?? where BL , DAL and other layer  would recide;

    and different servers deployment,  to separate layers in each server or something.

    correct me please

     

    Yes, I'm talking about app server. However, note that again, as in the case above, there is not limit. So I can have my services, presentations, reporting components, databases etc all in the same server. How all these are to be distributed is a very contextual choice based on performace, utilization, availability, budget etc.

     

    Finally What is the best practice developing layered applications (enterprise applications) in VS 2008, is this the best choice for doing so??

    and do you need to do the layer-thing IN the same solution? or can I develop them separately

     

    VS 2008 is an IDE. The typical instance n-layer architecture is 3-layer architecture i.e. presentation, business logic and data access layer. Some architects consider database also as a layer. Within each of the layer you may have more layers, like MVP in presentation.

     

    Hope this helps.

    Wednesday, October 8, 2008 8:23 PM