No atual projeto que estamos desenvolvendo, temos em mente que os dados devem ser expostos para o usuário de forma rápida e simples, minimizando ao máximo as requisições feitas no servidor.
Tendo a rapidez e a boa navegabilidade como prioridade máxima, decidimos utilizar JSON com Ajax e muito JavaScript para realizar as requisições feitas pelo usuário no servidor.
Como estamos desenvolvendo o projeto em VS 2008, podemos utilizar a namespace System.Runtime.Serialization.Json (presente no assembly System.ServiceModel.Web) para serializar nossos objetos em formato JSON e vice-versa.
E o resultado está ficando ótimo. (em breve vocês terão acesso :P ). Neste post vamos expor um trecho do código que estamos implementando.
Classe que vamos utilizar como exemplo:
[ DataContract] public class Pessoa{
[ DataMember] public string Nome { get; set; } [DataMember] public string Sexo { get; set; }
/// <summary> /// Construtor do objeto /// </summary> public Pessoa(string nome , string sexo){ this.Nome = nome; this.Sexo = sexo; }}
Classe de apoio que vamos utilizar para Serializar/Deserializar os objetos:
/// <summary> /// Classe de apoio para serializar/deserializar /// um objeto -> json | json -> objeto /// </summary> public class JsonHelper{
/// <summary> ///Serializa um objeto em Json /// </summary> public static string Serializar<T>(T objeto){
System.Runtime.Serialization.Json. DataContractJsonSerializer objSerializado = new System.Runtime.Serialization.Json.DataContractJsonSerializer(objeto.GetType()); MemoryStream ms = new MemoryStream(); objSerializado.WriteObject(ms, objeto); // Retorna a string em formato Json return Encoding.Default.GetString(ms.ToArray()); }
/// <summary> /// Deserializar a String no Objeto /// </summary> public static T Deserializar<T>(string json){
T objeto = System. Activator.CreateInstance<T>(); MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json)); System.Runtime.Serialization.Json.DataContractJsonSerializer objSerializado = new System.Runtime.Serialization.Json.DataContractJsonSerializer(objeto.GetType());
// Transforma a string no objeto objeto = (T)objSerializado.ReadObject(ms); ms.Close(); // Retorna o Objeto deserializado return objeto; } }
Form aspx onde utilizaremos Json:
public partial class Usuario : System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e){
Pessoa objeto = new Pessoa("Marcos", "Indefinido"); // Serializando o objeto em JSON string json = Classes.JsonHelper.Serializar<Pessoa>(objeto); // Deserializando a String JSON no objeto objeto = Classes.JsonHelper.Deserializar<Pessoa>(json); }}
Agora é só vocês adicionarem muito JavaScript e brincar um pouco. Vale a pena dar uma estudada mais a fundo nas tecnologias aqui empregadas.
Estamos mixando tecnologia como os DJ's fazem com a música. Este é o nosso negócio, somos inovadores. :)
|