Desenvolvimento - C#
Exemplo de programação em J# no estudo de caso em C# - Como trabalhar o XML no J# na construção de uma Agenda
Neste trabalho será utilizada a programação J# que se baseará num exemplo construído em C#. O exemplo que será a base foi retirado do livro “Dominando o Visual Studio.NET com C#, autor Fabio Camara”, que mostra como trabalhar o XML no C# na construção de uma Agenda.
por Wandy LucianoResumo
Neste trabalho será utilizada a programação J# que se baseará num exemplo construído em C#. Durante a construção do exemplo para o J# alguns métodos foram modificados em relação ao exemplo original.
O exemplo que será a base foi retirado do livro “Dominando o Visual Studio.NET com C#, autor Fabio Camara”, que mostra como trabalhar o XML no C# na construção de uma Agenda. Seguindo o mesmo o exemplo converterei para o J#.
Este projeto tem o objetivo de utilizar o XML no lugar do banco de dados. E para isso é necessário cria o arquivo em XML que assumirá as alterações feitas em um Grid.
Neste exemplo em J# foi feito no Visual Studio.NET 2003 e pode-se rodá-lo no VS.NET 2005.
Agora vamos montar o exemplo.
1º. Criar um novo projeto em J#, utilizarei o VS.NET 2003.
Coloque o nome do arquivo ex: “AgendaJ”e abra a uma pasta para desenvolvimento no caso foi criado a pasta J# e dentro uma outra pasta chamada Agenda.
Clique em OK para prosseguir. Então o form1 fica aberto para desenvolvimento do trabalho.
2º. Colocar o componente DataGrid e dois Buttons da Toolbox da guia Windows Forms no form.
Serão alteradas as propriedades dos objetos.
DataGrid | Button1 | Button2 | Form1 | ||||
Name: | grdDados | Name: | btnSalvar | Name: | btnSair | Name: | frmAgenda |
Text: | Salvar | Text: | Sair | Text: | Agenda | ||
Font.Bold: | True | Font.Bold: | True | Backgroud: | LigthSteelBlue | ||
Backgroud: | ActiveCaption | Backgroud: | ActiveCaption | ||||
ForeColor: | ActiveCaptionText | ForeColor: | ActiveCaptionText |
Nota: Ao mudar o nome do form na propriedade, mude também o nome dele no trecho para evitar erros na compilação
Application.Run(new Form1());
para
Application.Run(new frmAgenda());)
3º. Coloque um componente DataSet no form que se encontra na Toolbox na guia Data. Escolha o item Untype DataSet e mude a propriedade Locale para Portuguese (Brasil) se estiver não precisa fazer este passo e mantenha o nome próprio do objeto.
4º. Com um duplo clique o btnSair digite o seguinte código:
Application.Exit();
5º. Para criar o arquivo XML é preciso colocar o nome dele e o local onde será criado. Então declare uma variável string abaixo do seguinte trecho.
public static void main(String[] args)
{
Application.Run(new Form1());
}
static String NomeArqXML = "C:\\Agenda.xml";
Nota: Nesta parte no exemplo do livro mostra a declaração em C# utilizando static readonly string NomeArqXML no J# não tem o readonly então foi declarado como na linguagem Java normal, outro característica encontrada foi que no C# a palavra string e minúscula e a para o J# é iniciada maiúscula.
6º. Será criado um metodo que monta dinamicamente o DataSet e grava o schema.
private DataSet CriaXML()
{
//Instancia de um objeto DataTable com o nome “Agenda”
DataTable dt = new DataTable("Agenda");
//A declaração dos títulos das colunas
dt.get_Columns().Add("Nome").toString();
dt.get_Columns().Add("Endereco").toString();
dt.get_Columns().Add("Telefone").toString();
dt.get_Columns().Add("Email").toString();
//Instancia de um objeto DataSet
DataSet ds = new DataSet();
//Adicição do grid no DataSet
ds.get_Tables().Add(dt);
//Escreve as informações do DataSet no arquivo XML
ds.WriteXml(NomeArqXML,System.Data.XmlWriteMode.WriteSchema);
return ds;
}
7º. No próximo método que carrega os dados que abre o arquivo XML e exibe as informações no grid senão foi criado ele passa para o método de criação do arquivo.
private void CarregaDados()
{
DataSet ds;
try
{ //Instanciação do DataSet
ds = new DataSet();
//Metodo que o DataSet recebe as
//informações contidas no arquivo XML
ds.ReadXml(NomeArqXML);
}
catch(System.IO.FileNotFoundException err)
{
//Caso não esteja criado metodo CriaXML e
//chamado
ds = CriaXML();
}
//É adicionado as informações lidas no grid
grdDados.set_DataSource(ds);
//E adicionado o objeto DataTable pelo nome da instancia
grdDados.set_DataMember("Agenda");
}
8º. Neste método é utilizado para gravar o XML a partir das informações contidas no DataSet.
public void GravaXML(DataSet ds)
{
//Metodo que cria o arquivo XML
ds.WriteXml(NomeArqXML,System.Data.XmlWriteMode.WriteSchema);
}
9º. De um duplo clique no btnSalvar e declare o seguinte código;
DataSet ds = new DataSet();
// o DataSet recebe as informações que forma digitadas
//no grid
ds = (DataSet)grdDados.get_DataSource();
if (ds.HasChanges())
{
GravaXML(ds);
}
10º. De um duplo clique no form e coloque o método que carrega os dados nele
CarregaDados();
Pronto o exemplo da Agenda em XML utilizando o J# é mostrado na figura abaixo.
Ao recriar o exemplo da agenda muitos trechos e palavras chaves do C# foram alterados. E alguns trechos tiveram um acréscimo de novos métodos e em outros foram diminuídos.