A tecnologia de cache do ASP.Net melhorou muito a eficiência. Vou postar o código de implementação simples do código:
1. Ao exibir na página, leia os dados em cache e carregue os dados XML
public void LoadData().
{
Fonte DataView = (DataView)Cache["MeusDados"];
if(Fonte == nulo)
{
DataSet ds = new DataSet();
FileStream fs = novo FileStream(Server.MapPath("LoginMsg.xml"), FileMode.Open,FileAccess.Read);
Leitor StreamReader = novo StreamReader(fs);
ds.ReadXml(leitor);
fs.Fechar();
Fonte = novo DataView(ds.Tables[0]);
Cache.Insert("MeusDados", Fonte, new CacheDependency(Server.MapPath("LoginMsg.xml")));
ErrorMsg.Text = "Dados lidos do arquivo";
}
outro
{
ErrorMsg.Text = "Dados lidos do cache";
}
MeuDataGrid.DataSource = Fonte;
MyDataGrid.DataBind();
}
2. Use XML para armazenar dados interativos e colocar os dados no cache
private void LoginMsg_Click(object sender, System.EventArgs e)
{
if(!Page.IsValid)
{
ErrorMsg.Text = "Informações de login necessárias";
retornar;
}
DataSet ds = new DataSet();
FileStream fs = novo FileStream(Server.MapPath("LoginMsg.xml"),FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Leitor StreamReader = novo StreamReader(fs);
ds.ReadXml(leitor);
fs.Fechar();
DataTable dt = ds.Tables[0];
DataRow newrow = dt.NewRow();
newrow["custom_email"] = CustomEamil.Text;
newrow["custom_pass"] = CustomPass.Text;
newrow["login_time"] = DateTime.Now.ToString();
fs = novo FileStream(Server.MapPath("LoginMsg.xml"), FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
Escritor TextWriter = new StreamWriter(fs);
escritor = TextWriter.Synchronized(escritor);
ds.Tables[0].Rows.Add(novalinha);
ds.WriteXml(escritor);
escritor.Fechar();
Cache.Remove("MeusDados");
CarregarDados()
;