Pesquisar no Programero

segunda-feira, 27 de abril de 2009

Arquivo de configuração ASP .NET

Para quem não quer gravar certas informações no web.config pode muito bem estruturar um arquivo xml para guardar informações, segue um exemplo em C# de como fazer isso:
     //
    //gravando informação no CONFIG.xml
    public void gravaConf(String tipo, String val)
    {
        String par = "";
        //
        //Carrega em DOC o arquivo XML, o caminho pode ser uma url ou diretorio local       
        XmlDocument doc = new XmlDocument();
        doc.Load(HttpContext.Current.Server.MapPath("~/CONF/CONFIG.XML"));
        XmlNode no;
        no = doc.SelectSingleNode("//CONF/" + tipo);
        no.InnerText = val;        
        doc.Save(HttpContext.Current.Server.MapPath("~/CONF/CONFIG.XML"));       
        doc = null;
    }

//
//recupera informação do CONFIG.xml
public String recuperaConf(String tipo)
{
    String par = "";
    //
    //Carrega em DOC o arquivo XML, o caminho pode ser uma url ou diretorio local       
    XmlDocument doc = new XmlDocument();
    doc.Load(HttpContext.Current.Server.MapPath("~/CONF/CONFIG.XML"));
    //
    //Cria uma instância XmlElement na qual atribuindo a raiz do documento
    XmlElement Elem = doc.DocumentElement;
    //
    //Percorre todos os elementos filhos que existem no elemento raiz
    for (int i = 0; i < Elem.ChildNodes.Count; i++)
    {
        if (Elem.ChildNodes.Item(i).Name.Equals(tipo))
        {
            par = Elem.ChildNodes.Item(i).InnerText;
            break;
        }
    }
    doc = null;
    return par;
}

Arquivo exemplo:
<?xml version="1.0" encoding="utf-8"?>
<CONF>
  <appBase>BASE_DE_DADOS</appBase>
  <appSenhaBd>SENHA_123</appSenhaBd>
  <appUsuarioBd>USUARIO_SIS</appUsuarioBd>
</CONF>

Os dois métodos são simples, no de gravação passamos o nome do e o novo valor, e para recuperar os dados apenas informamos o .

sexta-feira, 24 de abril de 2009

Oracle compra a Sun

Por 7 bilhões de dólares ($9,50 por ação)  a Oracle compra aSun, grande fabricante de poderosos servidores e mantenedora de diversas soluções de software bem competentes como o banco de dados MySQL ( com futuro incerto ), GlassFish, OpenOffice, a linguagem de programação Java, NetBeans e por ai vai.
5275
A Sun andava mal das pernas amargando um prejuizo de 1 bilhão de dólares nos últimos quetro meses, mas a Oracle espera ter um aumento em suas ações em 2 bilhões de dólares no segundo ano após a aquisição.
Esse foi um grande passo para Oracle que agora será capaz  de fornecer soluções completas, hardware + software.

Fonte:
G1
Reseller Web

quarta-feira, 22 de abril de 2009

Ajax ASP .NET

Em determinado sites somos surpreendidos por certas funcionalidades que prendem nossa atenção, certas vezes mais até que o próprio conteúdo, como efeitos modais para confirmação, máscaras de dados, calendários dinâmicos, refreshs localizados entre outras coisas.
Não é novidade que todas essas coisas geralmente são fruto da utilização de ajax, e para quem usa o Visual Studio existe um Framework muito bom, simples de instalar e fácil de usar, estou falando do ASP .NET AJAX. Por enquanto deixarei apenas um breve tutorial de como instalar e os links para download, e em breve alguns exemplos de uso práticos.

  • Para baixar você visita o CodePlex ou diretamente por aqui (eu recomendo o NoSource), depois de baixar é só descompactar o arquivo;

  • A instalação é simples, com seu site já criado crie uma nova aba na ToolBox (clicando com o direito e selecionando Add Tab), com a aba criada clique com o direito nela e escolha Choose Items, na tela que se abrir clique em Browse e procure pela pasta onde você descompactou o arquivo baixado, em SampleWebSite/bin você deve escolher AjaxControlToolkit.dll, agora é só confirmar, aguardar a instalação e usar;
Para maiores informações sobre a instalação visite esta página.
Eu recomendo a todos verificar o funcionamento dos exemplos aqui, é realmente interessante, um abraço e até a próxima.

domingo, 19 de abril de 2009

Doe sangue você também

4387576-b19 Ontem fui até o hemocentro de Ribeirão fazer o que considero antes de mais nada um dever, sim pois acredito que ajudar o próximo independente da religião ou crença é uma obrigação de todos nós. Sou doador assíduo a mais de dois anos e deixo aqui meu testemunho da importância desse ato para tantos, não custa nada, não é demorado e não tem qualquer tipo de efeito colateral.
Acabando com algumas dúvidas:
1 - Porque devo doar?
Diariamente muitas pessoas sofrem acidentes ou estão internadas por diferentes doenças e necessitam de transfusões sangüíneas. O sangue humano é fracionado nos seus diversos componentes ou é processado nos seus diversos produtos e serve a vários pacientes e em muitas situações ele é imprescindível, não podendo ser substituído por outro produto. É um produto que não pode ser comprado e, portanto, depende da solidariedade das pessoas. Além disso, o sangue humano tem tipos diferentes e os hemocomponentes têm validade definida, sendo que num dia podemos tê-los e no outro, não.
2 - Quem pode doar?
Em princípio, podemos dizer que todos podemos nos candidatar a ser doadores de sangue. Entretanto, nossa aceitação depende de uma série de fatores que levam em conta o risco que aquela doação pode representar para a saúde do próprio candidato e para a saúde do indivíduo que vier a receber o sangue doado.
3 - O que acontece após a doação?
Depois da doação, o candidato é observado por algum tempo, recebe orientações para que evite esforços físicos naquele dia, para que se alimente bem, especialmente ingerindo líquidos, recebe um lanche e é liberado. Ele é ainda orientado para retornar em alguns dias para buscar os resultados dos exames que foram realizados.
4 - Qual o intervalo das doações?
O intervalo para homens é 60 dias e para mulheres é 90 dias. Entretanto, recomenda-se que o homem doe até 4 vezes por ano e a mulher até 3 vezes por ano.
5 - O que acontece com o sangue do doador?
O sangue doado, juntamente com as amostras colhidas para exame são encaminhados aos laboratórios. A bolsa de sangue colhida será fracionada nos hemocomponentes e ficará em quarentena aguardando os exames que serão realizados para as seguintes doenças:

  • HIV;

  • Hepatite B e Hepatite C;

  • HTLV I, II;

  • Chagas;

  • Sífilis;

6 - Quem não pode doar o sangue?
Quando se realiza a triagem clínica para definir quem pode ou não pode doar sangue, sempre se leva em conta ambos os envolvidos, que são o doador e o receptor. Desta forma, não devem doar sangue todas aquelas pessoas que possam apresentar alguma conseqüência da doação para sua saúde como por exemplo: pessoas anêmicas, pessoas com doenças cardíacas, pessoas com peso inferior a 50 Kg, mulheres grávidas ou lactantes. Também estão impedidas de doar sangue, todas as pessoas cujo sangue possa provocar alguma conseqüência no receptor, como por exemplo, pessoas expostas a risco acrescido de terem doenças passíveis de transmissão sangüínea como Hepatites, AIDS, Sífilis (que possuam parceiros múltiplos, usuários de drogas endovenosas e seus parceiros sexuais), pessoas em uso de medicamentos que possam provocar conseqüências em fetos de mulheres grávidas como Isotretinoína (medicamento para acne), Etretinate e Acicretina (medicamento para Psoríase) e Finasterida (medicamento para doença de próstata ou para calvície), assim como qualquer pessoa que não esteja em sua perfeita condição de saúde. Todos os candidatos passarão por uma triagem clínica antes da doação para serem avaliadas suas condições.
7 - Doar sangue é seguro?
Sim, doar sangue é seguro. Não existe nenhum risco de contrair uma doença infecciosa doando sangue. Entretanto, existe um pequeno risco de que o doador possa sentir algum mal-estar durante ou logo após a doação especialmente nas primeiras vezes que ele doa, porém, os serviços se preocupam com isto e observam e cuidam para que os doadores nada sintam ou se sentirem, para que sejam bem assistidos. 
11No20Trasmite20Donar20Sangre_1
Procure um centro de doação em sua cidade e ajude o próximo você também.

sexta-feira, 17 de abril de 2009

Malandro também se liga no Google

Não, não estou falando do Orkut e sim do Google Earth, segundo o Departamento de Homicídios e Proteção a Pessoa (DHPP) os espertalhões estariam se utilizando da ferramenta para procurar condomínios com brechas na segurança.
bandido_geek
O malandro acessa a ferramenta, procura um bairro bacana e começa o pente fino, procurando por lugares próximos a matas, pontos cegos na vigilância e por ai vai.
Parece piada mas não é, aconteceu de verdade e no caso em questão uma pessoa morreu. É incrível o poder de deturpar algo, usando apenas em proveito próprio e de maneira negativa.
O Google se manifestou e disse que não tem culpa (realmente), dizendo que não há como controlar o uso da ferramenta, deixando claro que em certas situações a ferramenta ajuda os cidadãos a se prevenir e a policia no combate ao crime.

Fonte
G1

quinta-feira, 16 de abril de 2009

A possível quebra de paradigma do FireFox

O pessoal da antiga ainda deve se lembrar da época em que para se navegar em vários sites de uma vez era necessário abrir vários browsers, criando aquele sentimento de caos e desorganização. Com o tempo chegaram as abas, uma revolução na forma de se navegar, tudo em único lugar e bem organizado, não tenho certeza se foi o FireFox a lançar as abas, mas foi nele que experimentei essa nova maneira de organização.
Pois é, em minhas andanças me deparei com o que pode vir a ser o novo conceito em navegação do pessoal da Mozilla, que é a redução no uso das abas (apenas três), percebemos pela imagem como será, haverá miniaturas dos sites organizadas na tela.
no_tabs_firefox
O motivo seria a evolução da web, que tem direcionado os navegadores a agregar cada vez mais funcionalidades tornando-os pequenos SOs independentes, isso sem contar o crescimento nas vendas de netbooks com suas minúsculas telas que causam claustrofobia no usuário ao abrir várias abas.
Agora é esperar para ver e testar, a Mozilla mantém um nível de qualidade alto a anos, e com certeza esse será um novo marco na história dos navegadores.
Fonte:

quarta-feira, 15 de abril de 2009

Internet pela rede elétrica regulamentada

A um tempo atrás escrevi um texto sobre essa tecnologia, e não poderia deixar passar em branco esse fato, no dia 13/04/2009 a Anatel regulamentou a tecnologia e em breve (assim que as empresas de telecomunicações entrarem em acordo com as concessionárias de energia elétrica) estará disponível para os consumidores.
Será como um serviço de TV a cabo, você pede o sinal, a operado libera, ai é só conectar o modem na tomada. Segue uma matéria do jornal da globo:

terça-feira, 14 de abril de 2009

Hyperlink com parâmetro no GridView

Em certas ocasiões precisamos “chamar” outra página passando para esta determinados elementos para que ela apresente determinada informação de modo direto, sem intervenção do usuário.
Quando essa necessidade surge a partir de dados de um determinado registro do GridView podemos nos utilizar dos Hyperlink, com ele especificamos uma lista de parâmetros, um endereço a ser chamado no “click” juntamente com os parâmetros a serem passados para a nova página.
Exemplo:
A maneira de se fazer depende de como as colunas de seu GridView são construídas, se em tempo de desenvolvimento ou execução, mas basicamente o que deve ser feito é o seguinte:

  • Adicione o campo do tipo Hyperlink no GridView;

  • Na propriedade DataNavigateUrlFields coloque sua lista de parâmetros (são as colunas do GridView que você deseja passar);

  • Na propriedade DataNavigateUrlFormatString deve ser colocado o endereço da nova página seguida da identificação dos parâmetros e sua posição no array, ex.: novaPagina.aspx?param1={0}&param2={1};

  • Para finalizar falta apenas colocar Request.Params[“param1”] na página destino, seja para apresentação ou uso como parâmetro para uma nova consulta, depende do que você precisar;
Vimos como é simples usar esse bom recurso, então da próxima vez que precisarmos de uma funcionalidade do tipo “detalhes” para os registros de uma consulta já temos ao menos uma solução em mãos, abraços e até a próxima.
Fonte:

domingo, 12 de abril de 2009

E o FireFox ultrapassa o IE na Europa

fireFox-ie A Microsoft perdeu  a liderança do mercado europeu de navegadores pela primeira vez em anos. O Firefox 3, do Mozilla, assumiu a posição do Internet Explorer 7, informou a empresa de pesquisa StatCounter.
O chororô europeu já é de conhecimento de todos nós quanto aos softwares já inclusos no Windows e não era de se espantar que lá fosse o primeiro lugar a acontecer o inevitável. Quem acompanha a computação a algum tempo, assim como a internet, sabe como a competitividade é importante, ainda me lembro da época em que instalava no meu 486 o Netscape, que não era muito bom mas o IE 5, ou mesmo o 6 conseguia ser pior. O fato é que mesmo no Brasil onde a internet ainda não era tão difundida os provedores de internet colocavam em seus cds (juntamente com seus discadores) o IE 6. O Netscape não durou muito, mas deixou encaminhado um sucessor que desde sua primeira versão é minha primeira opção.
O Firefox tinha 35,05% do mercado europeu de software para navegação na internet na semana passada, seguido pelo Internet Explorer 7 com 34,54%.
"A mudança é parcialmente explicada por uma pequena troca do uso do Internet Explorer 7 pelo Internet Explorer 8, mas também pela crescente participação de mercado do Firefox 3", disse Aodhan Cullen, diretor-executivo da StatCounter, em um comunicado.
"Os números mostram que o Firefox está se aproximando e agora está apenas 10% atrás de todas as versões do Internet Explorer na Europa", acrescentou Cullen.
Em fevereiro, o Internet Explorer 7 teve uma participação de mercado de 41%, seguido pelo Firefox 3 com 24%, de acordo com a StatCounter.
Fonte

quarta-feira, 8 de abril de 2009

Envio fácil de e-mail ASP .NET C#

Usando o .NET existe uma maneira simples de enviar email com o SmtpMail, vamos ao exemplo:
  • O .aspx:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="email.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Envio de Email</title>
</head>
<body>
    <form id="form1" runat="server">
    <p>
        <b>ENVIO DE EMAIL</b></p>
    <p>
        <asp:Label ID="lbSituacao" runat="server"></asp:Label>
    </p>
    <p>
        <table>
            <tr>
                <td>
                    Nome:</td>
                <td>
                    <asp:TextBox ID="txtNome" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    Email:</td>
                <td>
                    <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    Email do destinatário:</td>
                <td>
                    <asp:TextBox ID="txtEmailDestinatario" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    Assunto:</td>
                <td>
                    <asp:TextBox ID="txtAssunto" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    Mensagem:</td>
                <td>
                    <asp:TextBox ID="txtMensagem" runat="server" Height="141px"
                        TextMode="MultiLine" Width="276px"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    &nbsp;</td>
                <td>
                    <asp:Button ID="btEnviar" runat="server" Text="ENVIAR" Width="106px" />
                </td>
            </tr>
        </table>
    </p>
    <p>
        &nbsp;</p>
    <p>
        &nbsp;</p>
    </form>
</body>
</html>


  • Agora o .cs:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Mail;

public partial class contato : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnenviar_Click(object sender, EventArgs e)
    {        
        try
        {
            SmtpMail.Send(txtEmail.Text, txtEmailDestinatario.Text, txtAssunto.Text, txtNome.Text+” escreveu: ”+txtMensagem.Text);
            lbSituacao.Text = "Mensagem enviada com sucesso !";
        }    
        catch(Exception exc)
        {
            lbSituacao.Text = "A mensagem não pode ser enviada: " + exc.Message;
        }

    }
}

sábado, 4 de abril de 2009

QR Code

qrcode Bom acredito que todos ao menos já o viram por ai, em blogs ou cartazes, no Brasil não é muito difundido mas em alguns países como o Japão (sua terra natal) é usado em toda parte, inclusive em cemitérios.
O QR Code (ou Código de Barras em 2D), é uma matriz ou código de barras bi-dimensional, criado pela empresa Japonesa Denso-Wave, em 1994. O QR vem de Quick Response, pois o código pode ser interpretado rapidamente, mesmo com imagens de baixa resolução, feitas por cameras digitais em formato VGA, como as de celulares. O QR Code é muito usado no Japão (Wikipédia).
Depois de uma breve descrição vamos colocar a mão na massa, criar nossos próprios códigos, instalar um programa em nosso celular e sair por ai verificando o que tem por tras dos códigos:
A Kaywa possui em sua página um gerador de código, você escolhe o tipo (URL, texto, número de telefone ou SMS), define o tamanho da imagem e gera, tudo bem simples, e eles disponibilizam ainda um programa para diversos dispositivos.
Segue agora uma pequene llista com outros locais para se gerar o código ou baixar um programa:

qrcode_mens (e ai, já leu os QR Codes desta página?)

sexta-feira, 3 de abril de 2009

Exportar dados do GridView para o Excel

Mais cedo ou mais tarde pessoas acostumadas a visualizar ou manipular informação no Excel, mesmo possuindo uma boa aplicação que lhe fornece todas as visões de dados realmente necessárias acabam por pedir por uma funcionalidade que permita essa exportação.
Iremos construir dois métodos, que podem ser utilizados independente do tipo de componente, banco de dados ou consulta, desde que a informação esteja representada dentro de um GridView. O primeiro método será responsável por converter campos de controle como CheckBox, DropDownList ou qualquer outro que não represente a informação em si, e o segundo será a execução da exportação:
private void ExportaGridView()
{
    string attachment = "attachment; filename=Contacts.xls";
    Response.ClearContent();
    Response.AddHeader("content-disposition", attachment);
    Response.ContentType = "application/ms-excel";
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    GridView1.RenderControl(htw);
    Response.Write(sw.ToString());
    Response.End();
}

private void PreparaGridView(Control gv)
{
    LinkButton lb = new LinkButton();
    Literal l = new Literal();
    for (int i = 0; i < gv.Controls.Count; i++)
    {
        if (gv.Controls[i].GetType() == typeof(LinkButton))
        {
            l.Text = (gv.Controls[i] as LinkButton).Text;
            gv.Controls.Remove(gv.Controls[i]);
            gv.Controls.AddAt(i, l);
        }
        else if (gv.Controls[i].GetType() == typeof(DropDownList))
        {
            l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;
            gv.Controls.Remove(gv.Controls[i]);
            gv.Controls.AddAt(i, l);
        }
        else if (gv.Controls[i].GetType() == typeof(CheckBox))
        {
            l.Text = (gv.Controls[i] as CheckBox).Checked ? "True" : "False";
            gv.Controls.Remove(gv.Controls[i]);
            gv.Controls.AddAt(i, l);
        }
        if (gv.Controls[i].HasControls())
        {
            PreparaGridView(gv.Controls[i]);
        }
    }
}

É isso ai, espero que tenham gostado e que seja útil, abraços e até a próxima…

quarta-feira, 1 de abril de 2009

Wolverine já na internet

Filmes disponíveis na rede (ou nas mãos dos camelôs) antes de suas estréias já é algo corriqueiro, porém nesse caso por ter começado tão cedo (e com um título que com certeza me levará ao cinema) chamou minha atenção. No vídeo rolando por ai ainda estão faltando alguns complementos nos efeitos especiais, em certas cenas ainda é possível ver cabos presos aos atores.
O filme tem a estréia prevista por aqui para o dia 30/04, fiquem com o trailer e vamos esperar a versão original para não perder a graça né….