quarta-feira, 30 de setembro de 2009

flv player

Executa vídeos em formato Flash muito bem, tem algumas opções legais, mas em tempos que a maioria dos players já suporta este formato, está se tornando praticamente dispensável"
7.5
8.1

Análise de Bruno da Silva Lima

Você que precisa de um reprodutor de vídeos em formato FLV ou SWF (Flash)? FLV Player é uma opção prática e descomplicada que não vai pesar muito na sua máquina.

Ele é um programa mínimo, não tem ferramenta nenhuma para organização de arquivos, lista de reprodução ou opções avançadas, mas que faz muito bem o que se propõe a fazer, é fácil de mexer, com visual bem moderno e compacto.

Um ponto interessante dele é o fato de você poder exibir o vídeo apenas na tela, sem nenhuma janela ou menu em volta dele.

"O LimeWire está com interface totalmente reformulada e agora você compartilha arquivos com contatos do Gmail."

O LimeWire chega à versão 5 com um visual totalmente reformulado e novas possibilidades para transferência de arquivos. Mesmo com todas as mudanças de tecnologias para downloads na internet e da queda de popularidade, o LimeWire ainda mantém uma base fiel de usuários e promete recuperar terreno com esta versão.

O que alavancou o LimeWire como uma opção de destaque entre diversos compartilhadores é a sua enorme facilidade de uso através de uma interface extremamente simples. Agora, esta interface está totalmente reformulada, mas todos os recursos que destacam este programa estão mantidos.

Redes de transferência privadas

A maior novidade do LimeWire são os recursos para você compartilhar arquivos com amigos determinados, aumentando sua privacidade. Ainda é possível compartilhar com "a geral", mas agora você pode proteger os arquivos que baixou de fontes privadas. É você quem determina todos os tipos de permissão, incluindo quais arquivos compartilhar e com quem compartilhar.

Feche uma rede de confiança com contatos do Gmail.Para saber quais são seus contatos de segurança, você vai utilizar o Gmail. Isso porque a versão 5 do LimeWire suporta o serviço de email do Google e contas Jabber, além de conta no Live Journal. Basta efetuar login para ver a relação de amigos. Você pode entrar em contato com eles e, caso eles também tenham esta versão do compartilhador, já é possível configurar toda a troca de informações.

Isso faz com que as transferências do tipo P2P fiquem diretas entre você e seus contatos. Esta é uma solução para diminuir o inchaço das redes e os riscos de malfeitores, uma vez que você compartilha arquivos somente com quem confia. Isso também acaba com as falhas de conexão e problemas de configuração de clientes, uma vez que as transferências são diretas.

A Biblioteca

Seus arquivos separados por categorias.Basta executar o programa para que ele identifique arquivos de mídia para adicionar à sua biblioteca. Esse processo pode demorar e consome bastante memória, mas você pode interromper a qualquer momento na janela de opções, onde você também determina quais pastas devem ser adicionadas.

Depois de feita a pesquisa, marque quais arquivos você deseja compartilhar. A biblioteca é divida em categorias: áudio, vídeo, imagens, documentos e programas (as mesmas categorias para pesquisar por arquivos).

A navegação está organizada por abas. Os resultados são divididos por categorias para você encontrar o que deseja com mais facilidade. Os downloads são exibidos na parte de baixo da tela ou então na janela especial.

Navegação facilitada por abas.

"Proteja seu computador contra os spywares e outras ameaças que rondam quem acessa a internet."

O Windows Defender, antes conhecido como Microsoft Antispyware, garante proteção em tempo real contra spywares e outros programas suspeitos que infernizam a vida de quem tem computador conectado à internet.

Assim que a instalação é finalizada, o programa faz a primeira varredura em busca de programas espiões que já estão presentes no seu computador. Não se assuste, pois se você nunca usou um antispyware provavelmente vai se deparar com várias ocorrências. Além disso o programa mostra uma descrição explicando o que é cada spyware ou adware localizado e também mostra o grau de perigo que os arquivos detectados representam para o seu computador.

O Windows Defender conta também com atualizações automáticas e uma rede antispyware. Esta rede é acionada sempre que é detectado um spyware inédito em algum computador, assim a proteção contra esta nova praga passa a valer para todos os usuários do programa na próxima atualização.

Faça uma verificação em busca de softwares mal-intecionados.

Além de proteger contra programas espiões, o Windows Defender possui anti-hijacker para remover softwares que alteram configurações do Internet Explorer e inclui um utilitário para editar configurações de programas iniciados com o Windows, aplicativos e processos do sistema que estão rodando, inclusive os ocultos, e softwares que estão conectados na Internet, possibilitando encontrar vírus e cavalos-de-tróia instalados.

Observações

  • Sistema operacional Windows XP/Vista/2003
  • É necessário possuir uma versão autêntica do Windows para instalar o software!Se você possui um computador 64 Bits, baixe o software no seguinte link: Clique aqui.
  • Antes de instalar o Microsoft Windows Defender você pode criar um ponto de restauração do Windows, assim, se não gostar do programa ou se ele não funcionar corretamente, você pode simplesmente restaurar o sistema para um ponto anterior à instalação do programa.Clique aqui e aprenda a criar um ponto de restauração.

Um dos melhores compactadores/descompactadores de arquivos chega à mais nova versão!"

WinRAR é um compactador RAR para Windows, inclusive com suporte a outros formatos. Ele promete compactar de 8% a 15% a mais que o seu principal concorrente, o WinZIP. Portanto, se você não quer perder tempo para compactar e descompactar arquivos transmitidos pela Internet, faça um "test drive" deste programa, que tem como diferencial um menu sempre interativo e navegável.

WinRAR é um dos únicos softwares que trabalha com arquivos dos mais diferentes formatos de compressão, tais como: ACE, ARJ, BZ2, CAB, GZ, ISO, JAR, LZH, RAR, TAR, UUEncode, ZIP, 7Z e Z. Também suporta arquivos de até 8.589 bilhões de Gigabytes!

O programa expira?

Interface direto ao ponto.Apesar de ter licença para 40 dias de uso, o WinRAR não expira por completo, pois apenas desabilita algumas características, como os add-ons para criar extrações rápidas (self-extracting) e outras pequenas ferramentas, além de perguntar se o usuário deseja comprá-lo após cada inicialização do programa.

Isso implica em uma grande vantagem, pois, dessa forma, o usuário poderá continuar usando as funções básicas do WinRAR sem necessitar comprá-lo e, por conseguinte, o software também não deixará de funcionar após expirar. Se você optar por comprar a versão paga, terá direito ao uso das ferramentas que podem ser desabilitadas e também contará com atualizações automáticas.

Características Gerais:

  • A lista de todos os arquivos compatíveis.Ao usar o WinRAR você terá uma grande gama de ferramentas para compactar arquivos e salvar espaço no computador!
  • Trabalha com diferentes formatos de arquivos.
  • Oferece uma interface gráfica intuitiva e fácil de usar, permitindo usar o mouse e menus de forma ágil, assim como o uso de uma interface através de linhas de comando.
  • Possui um guia passo-a-passo especial que fornece acesso instantâneo às funções mais básicas para você realizar suas tarefas.
  • É capaz de codificar seus arquivos com uma das tecnologias mais avançadas de criptografia com até 128 Bits: AES (Padrão de criptografia avançada).
  • Permite criar extração rápida e trabalhar com arquivos de vários volumes.
  • Está sempre em constante desenvolvimento, possuindo atualizações freqüentes.
  • "Um dos players de músicas e vídeos mais usados na Internet."

    Caso você ainda não saiba disso, o RealPlayer é um dos players mais completos do mercado atual e já foi lançado em mais de dez versões diferentes. A versão 11.0.8 do player tinha sido traduzida para o português, no entanto, a 11.1.1 ainda não o foi (mas ao que tudo indica será traduzida em breve!). Adquira um verdadeiro centro de entretenimento multimídia em seu computador e mude seu conceito sobre players.

    Um Player Completo

    Provavelmente você já deve ter se deparado com algum arquivo que necessita do RealPlayer para ser reproduzido durante suas navegações. Pois bem, este player nasceu para difundir um formato criado pelos mesmos desenvolvedores, mas com o passar dos anos foi abrindo um leque de opções e permitindo que novos formatos fossem sendo adicionados ao seu repertório.

    Reprodução atual.

    O Formato RMVB

    RMVB é a abreviação para RealMedia Variable Bitrate, uma extensão de arquivos multimídia com a taxa de bits variável. Em média, cada arquivo em RMVB tem a metade do tamanho que a de um arquivo de vídeo em DivX/XviD, porém com qualidade semelhante. Tal formato provém do original RM (RealMedia) e sua tecnologia e traz uma idéia inteligente e inovadora.

    O Melhor Conteúdo da Web

    Atualmente a internet está cada vez mais ágil e os serviços de vídeos e músicas cada dia mais difundidos, tanto no conteúdo reproduzido pela rede quanto pelos arquivos baixados. Esta versão do programa oferece aos usuários um guia programação completo que permite que arquivos multimídia sejam reproduzidos através do seu player.

    Guia de programação online em português.

    Também disponibiliza uma infinidade de jogos e arquivos de áudio para download para os usuários que efetuarem o cadastro na opção completa do serviço. Vale lembrar que este cadastro é pago, mas que qualquer jogo pode ser testado de forma inteiramente gratuita por todos os usuários. Encontre diversos jogos casuais de qualidade, mas não espere encontrar games robustos.

    O passe completo do programa permite não somente o acesso a muitos conteúdos exclusivos do seu guia de reprodução como deixa o usuário baixar 1 jogo e 10 músicas todo mês, isso sem falar do acesso a mais de 100 novas rádios do mundo inteiro. Caso você se interesse poderá experimentar o serviço completo por até 14 dias sem pagar nada.Biblioteca.

    Visual Arrojado

    Os programadores apostaram muito no novo visual do programa que quase sempre se apresenta bastante enxuto e intuitivo. A quantidade de opções e mecanismos ocultos é tamanha que o usuário poderá se sentir um pouco confuso no começo, mas essa dificuldade será superada com pouco tempo de uso.

    Biblioteca inteligente

    Como não é apenas uma boa aparência que faz com que um programa seja realmente eficiente, este player conta com uma infinidade de opções e recursos. Além de reproduzir arquivos inclusive de dispositivos portáteis, ele vem com uma biblioteca que pode localizar em seu computador e organizar qualquer arquivo que este software for capaz de reproduzir, excelente para quem busca mais organização sem fazer esforço.

    Além da aba de jogos e do guia de programação, este programa traz um navegador completo com sistema de busca, pasta de favoritos e recursos comuns dos melhores navegadores. Finalmente se você deseja efetuar cópias de segurança do seu conteúdo, grave CD´s e DVD´s através deste software. Esta variedade de recursos faz deste programa uma opção mais do que completa, um apanhado com as melhores opções de multimídia.

    Observações

    • Sistema operacional Windows XP/Vista/2003
    • Se você possui o antivírus VBA 32 versão 3.12.10.1, ele irá acusar que o Real Player possui um cavalo de tróia. Contudo, não passa de um falso positivo, ou melhor dizendo, quando um programa de proteção acusa equivocadamente algum software instalado como perigoso.
    • Antes de instalar o RealPlayer você pode criar um ponto de restauração do Windows, assim, se não gostar do programa ou se ele não funcionar corretamente, você pode simplesmente restaurar o sistema para um ponto anterior à instalação do programa.Clique aqui e aprenda a criar um ponto de restauração.

    quinta-feira, 24 de setembro de 2009

    C# - Gerenciamento de banco de dados MySQL - Parte 01

    Neste artigo eu vou mostrar como gerenciar um banco de dados MySQL efetuando as operações de acesso, seleção, inclusão, alteração e exclusão usando a linguagem C# e ADO .NET.

    Vamos trabalhar usando a arquitetura em 3 camadas definindo assim:

    • A camada de interface : UI - namespace UI
    • A camada de negócios : BLL - namespace BLL e classe produtoBLL
    • A camada de acesso a dados : DAL - namespace DAL e classe produtoDAL

    Vamos também criar a entidade Produto que será o objeto do nosso negócio e que possuirá 3 propriedades: ID, Nome e Preco representando assim cada coluna da tabela Estoque. A entidade terá o namespace DTO e a classe Produto.

    Eu poderia criar 3 projetos distintos, mas para simplificar vou criar as seguintes classes :

    • produtoBLL - contém os métodos das regras de negócio; (namespace BLL)
    • produtoDAL - contém os métodos para acesso a dados no MySQL; (namespace DAL)
    • produto - contém a classe Produto; (namespace DTO)
    • UI - representa a nossa aplicação Windows Forms;

    Lembrando que em uma aplicação em 3 camadas temos uma hierarquia de chamadas onde:

    A UI chama a BLL que chama a DLL que, por sua vez, acessa os dados e retorna os objetos;

    Nunca deverá haver uma chamada direta da UI para a DAL e vice-versa.(Quando usamos os controles de acesso a dados vinculados no formulário, estamos fazendo o acesso direto da camada de interface para a DAL ou banco de dados, o que não é uma boa prática.)

    As ferramentas usadas são:

    Se você não possuir o MySQL e o Connector .NET para o MySQL, deverá efetuar o dowload e instalar. A instalação é simples - basta clicar no pacote e seguir as orientações aceitando as configurações padrão. Veja a seguir a sequência de telas principais da instalação:

    1-tela inicial de instalação do MySQL

    2-Selecione a opção Typical para instalação

    3-Verifique o local onde os arquivos serão instalados

    4-Marque a opção para configurar o MySQL

    5-Marque a opção Standard Configuration

    6-Marque a opção para instalar como um serviço e forneça um nome para o serviço. O nome padrão é MySQL

    7-Informe uma senha ao usuário root

    8-Clique no botão Execute para processar as opções definidas

    Com os componentes instalados, vamos efetuar as seguintes tarefas:

    • Criar um banco de dados no MySQL Chamado Cadastro e uma tabela chamada Estoque com os campos ID, Nome e Preco;
    • Criar um novo projeto Windows Forms no Visual C# 2008 Express ou SharpDevelop;

    Embora eu já tenha descrito como criar um banco de dados no MySQL usando MySQL Administrator vou resumidamente repetir os passos:

    • Abra o MySQL Admininistrator, e, na área inferior esquerda, onde são exibidos os esquemas. clique com o botão direito e selecione a opção: Create New Schema;
    • Na janela Create new Schema informe o nome do banco de dados, no nosso caso, Cadastro, e tecle OK;

    • Clique sobre o esquema criado e selecione a opção Create New Table ou clique no botão Create Table;
    • A seguir defina o nome da tabela como Estoque e defina os campos da mesma conforme a figura abaixo:

    • A seguir, a partir do menu Tools, selecione a opção MySQL Query Browse;
    • Na janela do MySQL Query Browse digite a instrução INSERT INTO Estoque VALUES (',"Caderno", 1.23) e clique no botão Execute para incluir um registro na tabela. Repita a operação e inclua uma borracha com um valor de forma que, ao efetuar uma instrução SELECT * FROM Estoque, iremos obter o resultado abaixo:

    Neste momento já temos o banco de dados Cadastro e a tabela Estoque com dois registros.

    Abra o SharpDevelop ou o Visual C# 2008 Express e crie um novo projeto do tipo Windows Application com o nome MySQL_C#;

    Devemos incluir a referência ao Connector .NET para ter acesso às classes de acesso a dados do MySQL. Para isso clique sobre o nome do projeto e selecione a opção Add Reference;

    A seguir inclua uma referência a dll do MySQL Connector .NET selecionando na pasta onde foi instalada e clicando no botão Abrir/Open;

    No formulário padrão inclua um controle TabControl e defina dois TabPages:

    • TabPage1 - Text = Cadastro
    • TabPage2 - Text = Lista
    • tabControl1 - Appearence = FlatButtons (para obter a aparência conforme a figura abaixo)



    Na primeira TabPage inclua os seguintes controles:

    • 3 controles Label
    • 3 Controles TextBox :txtID, txtNome e txtPreco
    • 5 controles Button : btnNovo, btnAltear, btnExcluir, btnExibir e btnProcurar

    Na segunda TabPage inclua um controle DataGridView - gdvProdutos.

    Acima vemos o leiaute do formulário para cada TabPage.

    Vamos iniciar criando o arquivo de classe Produto.cs que irá representar a classe Produto, clicando no nome do projeto e selecionando a opção Add New Item;

    Na janela de templates selecione o template Class e informe o nome Produto.cs;

    A seguir defina o seguinte código nesta classe onde estamos definindo 3 membros e 3 propriedades da nossa entidade Produto:

    using System;

    namespace DTO
    {
    public class Produto
    {
    int _id;
    String _nome;
    Decimal _preco;

    public int ID
    {
    get {return _id;}
    set {_id = value;}
    }
    public String Nome
    {
    get {return _nome;}
    set {_nome = value;}
    }
    public Decimal Preco
    {
    get {return _preco;}
    set {_preco = value;}
    }
    }
    }

    Neste arquivo criamos a classe Produto e definimos os membros _id, _nome e _preco e as propriedades ID, Nome e Preco. Ela será usada para transferência de objetos entre as camadas de interface de negócio e de acesso a dados.

    Agora vamos criar o arquivo de classe DAL.cs clicando no nome do projeto e selecionando a opção Add New Item;

    Na janela de templates selecione o template Class e informe o nome DAL.cs;

    Os pacotes usados nesta classe são:

    using System;
    using System.Collections.Generic;
    using System.Data;
    using MySql.Data.MySqlClient;
    using DTO;

    A seguir vamos definir na classe produtoDAL 6 métodos conforme exibidos abaixo:

    • selectListProdutos - retorna uma lista de produtos : List com os produtos selecionados;
    • selectProdutos - retorna um DataTable com os produtos selecionados;
    • selectProdutosByID - retorna uma entidade Produto para um produto selecionado pelo seu código (id);
    • insertProduto - inclui um novo produto;
    • updateProduto - atualiza um produto existente;
    • deleteProduto - exclui um produto existente;

    Vejamos o código da classe produtoDAL:

    Declaramos duas variáveis que serão visíveis na classe:

    String _conexaoMySQL = "";
    MySqlConnection con = null;

    O construtor da classe ProdutoDAL define a string de conexão com o banco de dados MySQL:

    public produtoDAL()

    {

    _conexaoMySQL
    =
    "server=localhost;user id=root;password=password;database=cadastro";

    }

    onde temos:

    server - localhost, pois estou acessando o MySQL instalado na minha máquina local;
    id = root, pois estou usando o usuário root;
    password = password, pois essa foi a senha definida para o usuário root;
    database=cadastro, pois esse é o banco de dados que criamos no MySQL;

    Agora vejamos os métodos:

    1- SelectProdutos - Usada para exibir todos os produtos do estoque;

    public DataTable selectProdutos(){
    try{
    String sql = "SELECT * FROM Estoque";
    con
    = new MySqlConnection(_conexaoMySQL);
    MySqlCommand cmd = new MySqlCommand(sql,con);
    MySqlDataAdapter da = new MySqlDataAdapter();
    da
    .SelectCommand = cmd;
    DataTable dt = new DataTable();
    da
    .Fill(dt);
    return dt;
    }
    catch (Exception ex)
    {
    throw ex;
    }
    }

    2- selecteProdutoByID() - Usada para retornar uma entidade Produto representando um único produto pelo seu código (id);

    public Produto
    selectProdutoByID
    (int id)

    {

    try{

    String sql = "SELECT * FROM Estoque WHERE id = @id";

    con
    = new MySqlConnection(_conexaoMySQL);

    MySqlCommand cmd = new MySqlCommand(sql,con);

    cmd
    .Parameters.AddWithValue("@id",id);

    con
    .Open();

    MySqlDataReader dr;


    Produto produto = new Produto();

    dr
    = cmd.ExecuteReader(CommandBehavior.CloseConnection);


    while (dr.Read()) {

    produto
    .ID = Convert.ToInt32(dr["id"]);

    produto
    .Nome = dr["Nome"].ToString();

    produto
    .Preco = Convert.ToDecimal(dr["Preco"]);

    }

    return produto;

    }

    catch (Exception ex)

    {

    throw ex;

    }

    }

    3- selectListProdutos() - Usada para retornar uma lista de objetos Produto representando uma coleção de produtos.

    public List<Produto> selectListProdutos()
    {
    try {
    using (MySqlConnection conn = new MySqlConnection(_conexaoMySQL)) {
    using (MySqlCommand command = new MySqlCommand("Select * from Estoque", conn))
    {
    conn
    .Open();
    List<Produto> listaProdutos = new List<Produto>();
    using (MySqlDataReader dr = command.ExecuteReader())
    {
    while (dr.Read()) {
    Produto produto = new Produto();
    produto
    .ID = (int)dr["id"];
    produto
    .Nome = (String) dr["Nome"];
    produto
    .Preco = Convert.ToDecimal(dr["Preco"]);
    listaProdutos
    .Add(produto);
    }
    }
    return listaProdutos;
    }
    }
    }
    catch (Exception ex) {
    throw new Exception("Erro ao acessar estoque " + ex.Message);
    }
    }

    4- insertProduto() - Usada para incluir um novo produto no estoque;

    public void insertProduto(Produto produto){
    try{
    String sql = "INSERT INTO Estoque (nome,preco) VALUES (@nome,@preco)";
    con
    = new MySqlConnection(_conexaoMySQL);
    MySqlCommand cmd = new MySqlCommand(sql,con);
    cmd
    .Parameters.AddWithValue("@nome",produto.Nome);
    cmd
    .Parameters.AddWithValue("@preco",produto.Preco);
    con
    .Open();
    cmd
    .ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    throw ex;
    }
    finally{
    con
    .Close();
    }
    }

    5- updateProduto() - Usada para atualizar os dados de um produto no estoque;

    public void updateProduto(Produto produto){
    try{
    String sql = "UPDATE Estoque SET nome= @nome ,preco=@preco WHERE id = @id ";
    con
    = new MySqlConnection(_conexaoMySQL);
    MySqlCommand cmd = new MySqlCommand(sql,con);
    cmd
    .Parameters.AddWithValue("@id",produto.ID);
    cmd
    .Parameters.AddWithValue("@nome",produto.Nome);
    cmd
    .Parameters.AddWithValue("@preco",produto.Preco);
    con
    .Open();
    cmd
    .ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    throw ex;
    }
    finally{
    con
    .Close();
    }
    }

    6- deleteProduto() - Usada para excluir um produto no estoque;

    public void deleteProduto(Produto produto){
    try{
    String sql = "DELETE FROM Estoque WHERE id = @id ";
    MySqlConnection con = new MySqlConnection(_conexaoMySQL);
    MySqlCommand cmd = new MySqlCommand(sql,con);
    cmd
    .Parameters.AddWithValue("@id",produto.ID);
    con
    .Open();
    cmd
    .ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    throw ex;
    }
    finally{
    con
    .Close();
    }
    }

    Eu mantive o código o mais simples possível usando ado .net clássica e instruções SQL. Poderia ter usado stored procedures, o que seria mais indicado.

    Esta é a nossa camada de acesso a dados e sua responsabilidade é acesssar e persistir dados no MySQL, só isso. Veja abaixo uma figura onde temos uma visão da nossa solução:

    Aguarde no próximo artigo a continuação onde irei criar a camada de negócios - BLL:

    C# - Gerenciamento de banco de dados MySQL - Parte 02.

    Eu sei, é apenas Visual C#, mas eu gosto...

    Continuando o assunto do último artigo, veremos a definição da camada de negócios - Business Logic Layer (BLL) da nossa aplicação. Lembrando que estamos usando a arquitetura em 3 camadas definidas assim:

    1. A camada de interface: UI - namespace UI
    2. A camada de negócios: BLL - namespace BLL e classe produtoBLL
    3. A camada de acesso a dados: DAL - namespace DAL e classe produtoDAL

    Em uma aplicação em 3 camadas temos uma hierarquia de chamadas onde:

    c_mysql21.gif

    A UI chama a BLL que chama a DAL que por sua vez acesso os dados e retorna os objetos;

    Nunca deverá haver uma chamada direta da UI para a DAL e vice-versa (quando usamos os controles de acesso a dados vinculados no formulário, estamos fazendo o acesso direto da camada de interface para a DAL ou banco de dados, o que não é uma boa prática).

    Nosso projeto possui a seguinte estrutura:

    • produtoBLL - contém os métodos das regras de negócio; (namespace BLL)
    • produtoDAL - contém os métodos para acesso a dados no MySQL; (namespace DAL)
    • produto - contém a classe Produto; (namespace DTO)
    • UI - representa a nossa aplicação Windows Forms;
    c_mysql16.gif

    Onde já implementamos a classe produtoDAL na camada DAL.

    Vamos agora mostrar a definição da camada BLL onde temos a classe produtoBLL. A classe produtoBLL possui os seguintes métodos:

    • DataTable selecionaProdutos() - retorna todos os produtos ;
    • novoProduto(Produto produto) - inclui um novo produto;
    • alteraProduto(Produto produto) - altera os dados de um produto;
    • excluiProduto(Produto produto) - exclui um produto;
    • List listaProdutos() - retorna uma lista genérica de produtos;
    • Produto listaProdutoPorID(int id) - retorna um único produto;

    Conforme é mostrado na figura a seguir:

    c_mysql22.gif

    Vejamos o código da classe produtoBLL:

    Devemos declarar os seguintes namespaces nos imports:

    using System.Collections.Generic;

    using System;

    using DAL;

    using DTO;

    using System.Data;

    Precisamos da referência à camada DAL para acessar os métodos da classe produtoDAL e da referência à camada DTO para acessar as propriedades da entidade Produto. A referência a Generic deve-se ao fato de estarmos retornando uma lista genérica de produtos no método listaProdutos();

    O construtor da classe ProdutoBB está vazio:

    public produtoBLL()

    {}

    Agora vejamos os métodos:

    1. selecionaProdutos() - retorna um datatable com todos os produtos usando o método selectProdutos() da camada DAL;

    public
    DataTable
    selecionaProdutos
    ()

    {

    DataTable tb = new DataTable();

    try{

    dal
    = new DAL.produtoDAL();

    tb
    = dal.selectProdutos();

    }

    catch (Exception ex)

    {

    throw ex;

    }

    return tb;

    }

    2. listaProdutoPorID() - Usada para retornar uma entidade Produto representando um único produto pelo seu código (id) através do método selectProdutoByID() da camada DAL;

    public Produto listaProdutoPorID(int id)

    {

    try{

    dal
    = new produtoDAL();

    return dal.selectProdutoByID(id);

    }catch (Exception ex) {

    throw ex;

    }

    }

    3. listaProdutos() - Usada para retornar uma lista de objetos Produto representando uma coleção de produtos usando o método selectListProdutos() da camada DAL;

    public List<Produto> listaProdutos()

    {

    try{

    dal
    = new produtoDAL();

    return dal.selectListProdutos();

    }catch (Exception ex) {

    throw ex;

    }

    }

    4. novoProduto(Produto produto) - Usada para incluir um novo produto no estoque usando o método insertProduto() da camada DAL;

    public void novoProduto(Produto produto){

    try{

    dal
    = new DAL.produtoDAL();

    dal
    .insertProduto(produto);

    }catch (Exception ex) {

    throw ex;

    }

    }

    5. updateProduto() - Usada para atualizar os dados de um produto no estoque através do método updateProduto() da camada DAL;

    public void alteraProduto(Produto produto){

    try{

    dal
    = new DAL.produtoDAL();

    dal
    .updateProduto(produto);

    }catch (Exception ex) {

    throw ex;

    }

    }

    6. deleteProduto() - Usada para excluir um produto no estoque via método deleteProduto() da camada DAL;

    public void excluiProduto(Produto produto){

    try{

    dal
    = new produtoDAL();

    dal
    .deleteProduto(produto);

    }catch (Exception ex) {

    throw ex;

    }

    }

    Não estamos efetuando nenhuma validação de negócio nessas classes devido à simplicidade do exemplo, mas em um sistema de produção aqui teríamos as validações referentes ao negócio como restrições de valores, cálculo de impostos, descontos, etc.

    Dessa forma concluímos a defnição do código da nossa camada de negócios - BLL - através da implementação dos métodos da classe produtoBLL.

    c_mysql23.gif

    Em um próximo artigo vamos continuar o assunto, definindo como acessar e apresentar as informações na camada de apresentação - BLL

    Eu sei, é apenas Visual C#, mas eu gosto...


    Glary Utilities otimiza desempenho do Windows



    O Glary Utilities é um canivete suíço digital. Ele oferece, num único pacote, uma série de aplicativos para o internauta melhorar o desempenho do Windows que apresenta travamentos ou sintomas de lentidão.

    O programa tem ferramentas especiais para apagar aqueles arquivos inúteis que ocupam espaço demais e deixam o Windows com baixo desempenho. Também tem um recurso específico para analisar o Registro do sistema operacional e dar fim às entradas que afetam o funcionamento de diversos programas.

    Na interface intuitiva e com funções separadas por botões, o internauta encontra com facilidade os recursos para desfragmentar os dados do disco rígido e da memória do PC. Como esses recursos, os botões para desinstalar software e dar cabo aos dados que deixam o navegador lento também são simples de localizar e usar – em parte, graças aos comandos autoexplicativos do Glary Utilities.

    O software tem ainda opções básicas e avançadas em todos os recursos. Internautas mais leigos, por exemplo, podem usar algumas funções do Glary Utilities (como a que limpa a sujeira do Windows) sem medo de danificar o Windows.

    Já aqueles que contam com um bom conhecimento técnico encontram no programa ferramentas avançadas para otimizar o o sistema operacional, como a que desabilita processos e aplicativos que inicializam junto com o sistema operacional.

    O Glary Utilities, é bom dizer, é bem pequeno e não ocupa mais do que 10 MB de espaço no Windows depois de instalado. Apesar da grande quantidade de recursos, o software consome pouca memória e processamento. Por isso, não afeta o desempenho dos outros programas.

    terça-feira, 22 de setembro de 2009

    Apple libera iTunes 9.0.1

    A Apple acaba de liberar a versão 9.0.1 do iTunes na Atualização de Software (Software Update), que também está disponível em versão para Windows (suporta 64 bits). Muitas correções foram adicionadas ao aplicativo, lançado durante o evento musical da Apple no início deste mês.

    iTunes 9.0.1

    Erros de navegação na iTunes Store foram corrigidos, além de problemas de performance capazes de deixá-lo sem resposta — ou seja, travá-lo por um curto período de tempo — e encerrá-lo repentinamente. Além disso, os usuários não mais notarão erros na sincronização de podcasts em listas de reprodução para iPods/iPhones, nem ao classificar álbuns de músicas.

    Duas questões abordadas aqui no MacMagazine foram revisadas pela Apple neste update. Primeiro, o botão verde da janela do aplicativo voltou a mudar o modo de visualização do iTunes para o Mini Player, algo alterado pela Apple que o Rafael mencionou neste artigo. Segundo, o Genius não mais requer uma atualização para exibir Genius Mixes na barra lateral após cada update do jukebox, algo que comentei junto de um problema relacionado a cookies na iTunes Store.

    A Apple também aprimorou o serviço de sincronização com iPhones/iPods touch e trouxe uma correção para uma falha de segurança, capaz de abrir uma brecha para o encerramento do aplicativo ou execução arbitrária de código durante a manipulação de arquivos .pls.

    O iTunes 9.0.1 pesa aproximadamente 90MB.

    domingo, 20 de setembro de 2009

    Revo uninstaller

    O Revo Uninstaller é um aplicativo para remoção avançada de programas do Windows. Mesmo depois que executamos o desinstalador de algum aplicativo é possível que ele deixe para trás arquivos no disco rígido ou informações no registro do sistema. Os primeiros ocupam espaço que poderiam ser usados por outros programas ou para gravar mais arquivos, enquanto dados desnecessários no registro podem comprometer a estabilidade e desempenho da máquina.
    Modo de uso
    Selecione o programa na tela principal (Desinstalador), clique em Desinstalar, confirme a desinstalação do programa selecionado clicando em Sim, escolha então o modo de desinstalação desejado:
    Desinstalação-própria: roda apenas o desinstalador tradicional do programa escolhido;
    Seguro: executa a desinstalação tradicional além de um verificador de sobras de arquivo e registro;
    Moderado: executa o módulo Seguro além de verificações adicionais;
    Avançado: - executa o módulo Moderado com uma varredura de arquivos minuciosa.
    Após selecionar uma das opções, o programa executa o desinstalador do programa e depois, nos módulos Seguro, Moderado e Avançado, realiza uma busca de arquivos e itens no registro do Windows deixados para trás. O usuário pode então selecionar o que quer remover - em geral os itens marcados em negrito - e apagá-los clicando em Excluir.
    Limpador de arquivos geral
    Além da função de desinstalação de programas, o Revo Uninstaller inclui ainda um removedor geral de arquivos desnecessários, recurso semelhante ao encontrado em programas como o CCleaner e Advanced SystemCare Free . Para acessá-lo é só escolher a opção Ferramentas e depois clicar em Limpador de Rastros na barra da esquerda. Basta escolher as categorias desejadas na mesma barra, os tipos de limpeza na direita e depois clicar em Limpar ou Limpar todos no topo da janela.
    Considerações finais
    O Revo Uninstaller é uma ferramenta poderosa para usuários avançados removerem o máximo possível de informações deixadas para trás por programas não necessários. Além das opções citadas, o programa ainda inclui atalhos para ferramentas de manutenção do Windows, um gerenciador de programas executados na inicialização e um removedor definitivo de arquivos.
    Usuários menos experientes não terão muitas dificuldades em usar o programa, apesar de seu visual meio ultrapassado, no entanto, somente quer tiver um conhecimento técnico um pouco maior poderá aproveitar ao máximo as funcionalidades do programa.