Te mando el ejemplo de un foro, cualquier duda agregame, estoy siempre en linea
[email protected]
namespace Entity {
public class DataBase {
private System.Data.SqlClient.SqlConnection myConn;
private System.Data.SqlClient.SqlCommand myCommandCliente;
public DataBase() {
System.String strCon;
this.myConn = new System.Data.SqlClient.SqlConnection();
strCon=System.Configuration.ConfigurationSettings.AppSettings["ConStr"];
this.myConn.ConnectionString = strCon;
if(this.myConn.State != System.Data.ConnectionState.Open)
this.myConn.Open();
}
public string Alias(string nombreUsuario) {
System.Data.IDataParameterCollection parametros;
System.Data.SqlClient.SqlParameter nombreUsuarioParametro;
System.Data.SqlClient.SqlDataReader dataReader;
this.myCommandCliente = new System.Data.SqlClient.SqlCommand();
this.myCommandCliente.Connection = this.myConn;
this.myCommandCliente.CommandType=System.Data.CommandType.Text;
this.myCommandCliente.CommandText=
"VerAlias";
this.myCommandCliente.CommandType=System.Data.CommandType.StoredProcedure;
parametros=this.myCommandCliente.Parameters;
nombreUsuarioParametro=
new System.Data.SqlClient.SqlParameter("@nombreUsuario",System.Data.SqlDbType.Char);
parametros.Add(nombreUsuarioParametro);
this.myCommandCliente.Parameters["@nombreUsuario"].Value=
nombreUsuario;
dataReader=
this.myCommandCliente.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
bool resultado=dataReader.Read();
return (string)dataReader["aliasUsuario"];
}
public void Cerrar() {
if(this.myConn!=null)
this.myConn.Close();
}
}
}
namespace Entity {
public class Session {
private System.Web.UI.Page myPage;
public Session(System.Web.UI.Page myPage) {
this.myPage=myPage;
}
public string NombreUsuario {
set {
myPage.Session["nombreUsuario"]=value;
}
get {
string resultado;
if((myPage.Session["nombreUsuario"]==null)||(myPage.Session["nombreUsuario"]==""))
resultado="usuarioAnonimo";
else
resultado=(string)myPage.Session["nombreUsuario"];
return resultado;
}
}
}
}
namespace Entity {
public class Mensaje {
private System.Web.UI.Page myPage;
public Mensaje(System.Web.UI.Page myPage) {
this.myPage=myPage;
}
public System.Collections.ArrayList ListaDeMensajes {
set {
myPage.Application["mensaje"]=value;
}
get {
if(myPage.Application["mensaje"]!=null) {
return (System.Collections.ArrayList)myPage.Application["mensaje"];
} else {
System.Collections.ArrayList listaDeMensajes;
listaDeMensajes=new System.Collections.ArrayList();
myPage.Application["mensaje"]=listaDeMensajes;
return (System.Collections.ArrayList)myPage.Application["mensaje"];
}
}
}
}
}
namespace DatosIntercambiadosEntreClases {
public class Mensaje {
System.String mensaje;
int numeroDeMensaje;
public Mensaje(System.String mensaje) {
this.mensaje=mensaje;
}
public void NombreUsuario(string nombreUsuario) {
this.mensaje=nombreUsuario+": "+this.mensaje+". "+(System.DateTime.Now).AddHours(-6);
}
public System.String Texto {
set {
this.mensaje=value;
}
get {
return this.mensaje;
}
}
}
}
namespace InterfazEntrada {
public class Cliente {
private System.Web.UI.Page myPage;
public Cliente(System.Web.UI.Page myPage) {
this.myPage=myPage;
}
public DatosIntercambiadosEntreClases.Mensaje Mensaje() {
System.Web.UI.Control myForm;
System.Web.UI.HtmlControls.HtmlGenericControl InterfazEntradaCliente;
System.Web.UI.HtmlControls.HtmlInputText mensaje;
myForm=myPage.FindControl("myForm");
InterfazEntradaCliente=
(System.Web.UI.HtmlControls.HtmlGenericControl) myForm.FindControl("InterfazEntradaCliente");
mensaje=
(System.Web.UI.HtmlControls.HtmlInputText) InterfazEntradaCliente.FindControl("mensaje");
DatosIntercambiadosEntreClases.Mensaje datosIntercambiadosEntreClasesMensaje;
datosIntercambiadosEntreClasesMensaje=new DatosIntercambiadosEntreClases.Mensaje(mensaje.Value);
mensaje.Value="";
return datosIntercambiadosEntreClasesMensaje;
}
}
}
namespace InterfazSalida {
public class Cliente {
private System.Web.UI.Page myPage;
public Cliente(System.Web.UI.Page myPage) {
this.myPage=myPage;
}
public void ListaDeMensajes(System.Collections.ArrayList mensaje) {
System.Web.UI.Control myForm;
System.Web.UI.HtmlControls.HtmlGenericControl InterfazSalidaCliente;
System.Web.UI.WebControls.Repeater myRepeater;
myForm=myPage.FindControl("myForm");
InterfazSalidaCliente=
(System.Web.UI.HtmlControls.HtmlGenericControl) myForm.FindControl("InterfazSalidaCliente");
myRepeater=(System.Web.UI.WebControls.Repeater)InterfazSalidaCliente.FindControl("myRepeater");
myRepeater.DataSource=mensaje;
myRepeater.DataBind();
}
}
}
namespace ObjetoControl {
public class Foro:System.Web.UI.Page {
protected override void OnLoad(System.EventArgs e) {
if(!IsPostBack) {
Entity.Mensaje estado;
System.Collections.ArrayList listaDeMensajes;
InterfazEntrada.Cliente interfazEntradaCliente;
InterfazSalida.Cliente interfazSalidaCliente;
estado=new Entity.Mensaje(this.Page);
interfazEntradaCliente=new InterfazEntrada.Cliente(this.Page);
interfazSalidaCliente=new InterfazSalida.Cliente(this.Page);
listaDeMensajes=estado.ListaDeMensajes;
interfazSalidaCliente.ListaDeMensajes(listaDeMensajes);
}
}
protected void Enviar(System.Object sender, System.EventArgs e) {
Entity.Mensaje estado;
System.Collections.ArrayList listaDeMensajes;
InterfazEntrada.Cliente interfazEntradaCliente;
InterfazSalida.Cliente interfazSalidaCliente;
estado=new Entity.Mensaje(this.Page);
interfazEntradaCliente=new InterfazEntrada.Cliente(this.Page);
interfazSalidaCliente=new InterfazSalida.Cliente(this.Page);
listaDeMensajes=estado.ListaDeMensajes;
DatosIntercambiadosEntreClases.Mensaje mensaje;
mensaje=interfazEntradaCliente.Mensaje();
Entity.Session session;
session=new Entity.Session(this.Page);
Entity.DataBase dataBase = new Entity.DataBase();
string aliasUsuario=dataBase.Alias(session.NombreUsuario);
mensaje.NombreUsuario(aliasUsuario);
listaDeMensajes.Add(mensaje);
if(listaDeMensajes.Count>10) {
listaDeMensajes.RemoveAt(0);
}
estado.ListaDeMensajes=listaDeMensajes;
interfazSalidaCliente.ListaDeMensajes(listaDeMensajes);
}
}
}