ASP.NET Design and Development Best Practices?

Discussion in 'ASP .Net' started by =?Utf-8?B?SCBQb3dlbGw=?=, Aug 9, 2007.

  1. Greetings!

    Our existing high-traffic internationalized websites were built with
    "classic" ASP. We are currently planning to migrate the sites to ASP.NET 2.0
    (maybe 3.0?).

    Our current "classic" ASP sites use XML/XSL to separate content from design.
    This allows our designers to create the layout and look 'n' feel of the
    sites without having to deal with data or business logic layers. As such,
    what are our options with ASP.NET? We would really like to exploit the power
    of ASP.NET's server controls. I've found some info regarding the use of
    XML/XSL to generate server controls at runtime here:

    http://www.dnzone.com/ShowDetail.asp?NewsId=151

    However, this results in weak typing and we would have to use
    Page.FindControl() when we want to access a server control. This would be
    undesirable. Are there any other options?

    Are there documented best practices available with regards to developing an
    ASP.NET web site that has separate teams working on UI, business logic, and
    data access? How could our UI team design the site such that it doesn't
    interfere with the developers' code behind files? If Master Pages and User
    Controls are used, would the UI team need Visual Studio, Expression Web or
    some other tool?

    I know I've asked a lot of questions in this one post, but this will be a
    large project. Hopefully someone can point me in the right direction ;)

    Thanks in advance


    Herb
     
    =?Utf-8?B?SCBQb3dlbGw=?=, Aug 9, 2007
    #1
    1. Advertising

  2. =?Utf-8?B?SCBQb3dlbGw=?=

    sloan Guest

    As an FYI, 3.0 is more of an addition to 2.0.

    So you'll probably be designing your sites with VS2005 in 2.0.
    You ~might use the "add ons" available in 3.0, but since you're coming from
    ASP, I say you probably won't be.

    XSL.
    I was a big xsl'er in VB6 days.
    However, that really isn't the default mode now.

    Alot of times, you're going to get your data into some type of collection.
    Strong DataSet
    Loose DataSet
    IDataReader
    CustomCollection

    and bind it to some kind of control. Repeater is my favorite in 2.0 and
    1.1. GridView is the 2.0 major player.

    Since you speak of layers in your OP, then I'll suggest a look at:
    http://sholliday.spaces.live.com/Blog/cns!A68482B9628A842A!140.entry

    Where I have a working layered app in 2.0. I don't have a web presentation
    layer in that example, but you can learn alot from it anyways.

    When you go to 2.0, there are kind of 2 models. A RAPID development model.
    And a non rapid development model (and I call this the "good development
    model").

    You can use alot of 2.0 tricks to get data to display on a page. However,
    just because you ~can~ doesn't mean you should.

    It depends on how layered or not layered you want it. And how maintainable.

    As an extra caveat, you can go 3.0 and to the WPF (presentation being the
    key word for the P). I don't know much about WPF, because I'm entrenched in
    WCF right now, and some WF.


    That'll wet your whistle. Wait for other posts as well, as what I've said
    is just a drop in the bucket.


    But my advice is to drop the XSL thinking.

    Let you're designer do up the pages. There are alot of skin,themes,CSS
    options available in 2.0. (I'm not an expert here).

    If you code your BusinessLayer well, you won't to worry about that much
    implementation in the presentation layer. (Easier said then done of
    course).



    "H Powell" <H > wrote in message
    news:...
    > Greetings!
    >
    > Our existing high-traffic internationalized websites were built with
    > "classic" ASP. We are currently planning to migrate the sites to ASP.NET
    > 2.0
    > (maybe 3.0?).
    >
    > Our current "classic" ASP sites use XML/XSL to separate content from
    > design.
    > This allows our designers to create the layout and look 'n' feel of the
    > sites without having to deal with data or business logic layers. As such,
    > what are our options with ASP.NET? We would really like to exploit the
    > power
    > of ASP.NET's server controls. I've found some info regarding the use of
    > XML/XSL to generate server controls at runtime here:
    >
    > http://www.dnzone.com/ShowDetail.asp?NewsId=151
    >
    > However, this results in weak typing and we would have to use
    > Page.FindControl() when we want to access a server control. This would be
    > undesirable. Are there any other options?
    >
    > Are there documented best practices available with regards to developing
    > an
    > ASP.NET web site that has separate teams working on UI, business logic,
    > and
    > data access? How could our UI team design the site such that it doesn't
    > interfere with the developers' code behind files? If Master Pages and
    > User
    > Controls are used, would the UI team need Visual Studio, Expression Web or
    > some other tool?
    >
    > I know I've asked a lot of questions in this one post, but this will be a
    > large project. Hopefully someone can point me in the right direction ;)
    >
    > Thanks in advance
    >
    >
    > Herb
     
    sloan, Aug 9, 2007
    #2
    1. Advertising

  3. You can completely separate UI design and content with ASP.Net 2.0 without
    resorting to XML/XSL, by employing the available Controls combined with a
    good understanding of how they render HTML, and good design practices.

    First, use CSS in external style sheets. This enables the UI designer to
    control the styling of the UI elements without touching the code. If you've
    never visited http://www.csszengarden.com, I suggest you take a look. It is
    a powerful demonstration of how CSS can be used to control UI design without
    affecting UI content. Almost Every page in the site has the same content,
    with a different CSS style sheet applied.

    The use of MasterPages, combined with Code-behind development adds an
    additional separation, allowing your UI designers to create common page
    content in MasterPages, and individual page content in individual pages that
    host MasterPages. If you think of an ASP.Net page as a container for
    Controls, it helps to get the picture. Every HTML page has "inactive" and
    "active" content. By "inactive" I refer to elements that are purely
    design/layout. By "active" I mean content that changes. In the case of
    ASP.Net, it may also refer to dynamic content.

    Many ASP.Net Controls render divs with HTML content. The CSS can control how
    the content is styled, and how the div is positioned. In addition, ASP.Net
    Themes may be used to create common styling. They use and extend CSS, but I
    tend to like using CSS alone, and your designers may well be more
    comfortable with it.

    If you design your ASP.Net application in a modular fashion, which is one of
    the chief advantages of OOP, and plan ahead, keeping business logic in a
    separate layer from interface logic, and interface logic separate from
    interface appearance, you can create applications that are easily modified,
    extensible, and make your designers and developers happy.

    At this time, Expression Web is the best tool for UI design in ASP.Net apps,
    and it will be incorporated as the UI design component of the next version
    of Visual Studio. However, there's no reason that your UI designers should
    use Visual Studio. They can use Expression Web alone.

    --
    HTH,

    Kevin Spencer
    Microsoft MVP

    DSI PrintManager, Miradyne Component Libraries:
    http://www.miradyne.net

    "H Powell" <H > wrote in message
    news:...
    > Greetings!
    >
    > Our existing high-traffic internationalized websites were built with
    > "classic" ASP. We are currently planning to migrate the sites to ASP.NET
    > 2.0
    > (maybe 3.0?).
    >
    > Our current "classic" ASP sites use XML/XSL to separate content from
    > design.
    > This allows our designers to create the layout and look 'n' feel of the
    > sites without having to deal with data or business logic layers. As such,
    > what are our options with ASP.NET? We would really like to exploit the
    > power
    > of ASP.NET's server controls. I've found some info regarding the use of
    > XML/XSL to generate server controls at runtime here:
    >
    > http://www.dnzone.com/ShowDetail.asp?NewsId=151
    >
    > However, this results in weak typing and we would have to use
    > Page.FindControl() when we want to access a server control. This would be
    > undesirable. Are there any other options?
    >
    > Are there documented best practices available with regards to developing
    > an
    > ASP.NET web site that has separate teams working on UI, business logic,
    > and
    > data access? How could our UI team design the site such that it doesn't
    > interfere with the developers' code behind files? If Master Pages and
    > User
    > Controls are used, would the UI team need Visual Studio, Expression Web or
    > some other tool?
    >
    > I know I've asked a lot of questions in this one post, but this will be a
    > large project. Hopefully someone can point me in the right direction ;)
    >
    > Thanks in advance
    >
    >
    > Herb
     
    Kevin Spencer, Aug 10, 2007
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. karim
    Replies:
    0
    Views:
    470
    karim
    Jul 13, 2003
  2. Kevin Spencer
    Replies:
    2
    Views:
    459
    John Saunders
    Aug 6, 2003
  3. Amelyan
    Replies:
    2
    Views:
    495
    Steve C. Orr [MVP, MCSD]
    Apr 30, 2005
  4. Kevin Frey

    Best Practices for Web App Development ?

    Kevin Frey, Feb 3, 2006, in forum: ASP .Net
    Replies:
    1
    Views:
    493
    Raymond
    Feb 3, 2006
  5. metaperl
    Replies:
    6
    Views:
    488
    metaperl
    Aug 30, 2006
Loading...

Share This Page