Blog
01
01
Aug
2008
(C# + JSON + JavaScript) * Inovação = Sapiens
enviada por Ricardo
 

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. :)



 


2009
Janeiro  (4)
2008
Setembro  (1)
Agosto  (3)
Julho  (15)
2007
Abril  (2)
Março  (16)
Fevereiro  (24)
Janeiro  (5)
2006
Setembro  (1)
© 2010 Sapiens design M14