<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="AboutDB.aspx.cs" Inherits="MyTunes.DatabaseBinding.AboutDB" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <p>
        <asp:Label ID="lblHeader" runat="server" Font-Bold="True" 
            Text="Advantages and Disadvantages of the Database Binding"></asp:Label>
    </p>
    <h3>Advantage #1: Easy to Implement</h3>
    <p>
        The Visual Studio Designer makes it very easy to connect to a database and display some data.  Simple projects can be setup with very little coding required at all.
    </p>
    <h3>Disadvantage #1: Limited Scalability</h3>
    <p>
        By default, all operations such as paging and sorting will reload the entire set of records from the database for every action.  Once the database grows large or your web site become popular and has to handle many simultaneous visitors, performance will degrade.  Boosting performance requires a design change to fetch only the data needed for the request.  Once you reach that level of complexity, you should think about options such as adding a Business Logic Layer.
    </p>
    <h3>Disadvantage #2: Fragile Design</h3>
    <p>
        When you use the database directly, small changes to the underlying table structures can have a big impact on the user interface components.  Every time the database architect needs to add, remove or rename a column or table, there is a chance many web pages will instantly break.  While this certainly can happen with any design, direct database binding is more fragile than other designs.  A Business Logic Layer might be able to insulate many of these types of changes from the web sites.
    </p>
    </asp:Content>
