Hola Alexis,
Básicamente la diferencia es que el BoundField es una columna "construida" que tiene una funcionalidad particular, por ejemplo:
<asp:BoundField DataField=“CreationDate”
DataFormatString=“{0:M-dd-yyyy}” HeaderText=“CreationDate” />
Con eso enlazamos a la columna o campo (objectDataSource) CreationDate, y automáticamente si habilitamos el Update en el GridView (siempre y cuando lo soporte el XXXDataSource), vamos a poder actualizar a través de este campo.
Con TemplateField, se puede personalizar (por ejemplo para poner un combo en un GridView), pero tu tienes que indicarle todo:
<asp:TemplateField HeaderText="CreationDate" SortExpression="CreationDate">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("CreationDate") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<%# Eval("CreationDate") %>
</ItemTemplate>
</asp:TemplateField>
Se entiende la idea?
Links:
dando formato a las columnas en un GridView (fechas, moneda, etc)[/list]
http://www.asp.net/learn/data-access/tutorial-12-cs.aspx[/list]
Saludos,