Un buon mezzo per evitare richieste al nostro database, è quello di mettere in cache alcune parti del nostro sito. Un esempio può essere una formattazione del testo e dei colori del sito a piacere dell'utente.
In questo caso sarebbe comodo creare un file Xml e metterlo in cache. Quest'ultima poi verrà settata in modo da dipendere dallo stesso file Xml per cui, ogni modifica sul file, farà scadere la cache e quindi il file Xml dovrà essere ricaricato.
Questo breve codice mostra un esempio di utilizzo della Cache:
<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.IO" %>
<%@ import Namespace="System.Web.Caching" %>
<script runat="server">
void Page_Load(Object sender, EventArgs e) {
/*
//Inserire il codice per popolare il datagrid nella pagina.
//Segue un codice di esempio
//--------------------------------------------------------
DataView myDataView = (DataView) GetDataViewFromCache();
DataTable myDataTable = myDataView.Table;
DataGrid1.DataSource = myDataTable.DefaultView;
DataGrid1.DataBind();
//--------------------------------------------------------
*/
}
private DataView GetDataViewFromCache() {
if ( Cache["FileInCache"] == null ) InsertCache();
DataView dv = (DataView) Cache["FileInCache"];
return dv;
}
private void InsertCache() {
//Metto in cache il file Xml
DataSet myDs = new DataSet();
FileStream fileXmlData;
fileXmlData = new FileStream( Server.MapPath("xml/nomeFile.xml"), FileMode.Open, FileAccess.Read );
myDs.ReadXml(fileXmlData);
Cache.Insert("FileInCache",
new DataView(myDs.Tables[0]),
new CacheDependency( Server.MapPath("xml/nomeFile.xml") ) );
fileXmlData.Close();
}
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
</form>
</body>
</html>