publicidade
Desenvolvedor Java, C# .Net | Anderson Damasio - Seja bem vindo!

Musicadas e músicas

by Anderson 21. December 2009 05:54

Qual o significado e música e musicada. Alguém sabe?

Segue o link que pode ajudar.

www.musicada.com.br

Tags:

Como localizar seu IP

by Anderson 14. October 2009 12:01

Ver ip em seu site:

Copie a código acima e cole em seu site

ou Acesse http://www.verip.com.br

Tags: ,

Ferramentas

Converter xml DataPacket para Xml Normal

by Anderson 22. September 2009 07:36

Estive pesquisando alguma maneira de ler o xml criada no delphi para minha aplicação desenvolvida em c#, porém não consegui encontrar nada que me ajudasse,
no entanto acabei criando uma rotina própria que fizesse isso pra min, irei deixar o código abaixo para quem mais estiver interessado..
Qualquer coisa..dúvidas...comentem!!

 private DataRow addDataRowValue(XmlAttribute xmlAttribute, DataRow dataRow, DataTable dataTable)
        {
            if (xmlAttribute != null)
            {
                if (!dataTable.Columns.Contains(xmlAttribute.Name))
                    dataTable.Columns.Add(xmlAttribute.Name);
                dataRow[xmlAttribute.Name] = xmlAttribute.Value;
            }
            return dataRow;
        }
        public void converteDataPacketXml(FileInfo fileInfo, string nomeXml)
        {
            DataColumn dataColumn = new DataColumn();
            DataTable dataTable = new DataTable(nomeXml);
            XmlDocument xml = new XmlDocument();
            xml.Load(fileInfo.FullName);
            foreach (XmlNode no in xml.GetElementsByTagName(@"ROW"))
            {
                DataRow dataRow = dataTable.NewRow();
                foreach (XmlAttribute xmlAtribute in no.Attributes)
                {
                    dataRow = addDataRowValue(no.Attributes[xmlAtribute.Name], dataRow, dataTable);
                }
                dataTable.Rows.Add(dataRow);
            }
            fileInfo.Delete();
            dataTable.WriteXml(fileInfo.FullName);
        }

 

 

Tags: ,

C Sharp | C Sharp | Delphi | Delphi

Os desenvolvedores ASP.NET devem aprender ASP.NET MVC?

by Anderson 12. July 2009 15:50

Muitas discussões dos desenvolvedores sobre se devem usar ou aprender a ASP.NET MVC tem sido recorrente em blogs, Twitter e fóruns nas últimas semanas.  As opiniões variam de não recomendar até ao ponto de que todos os desenvolvedores deveriam aprender. InfoQ tentou resumir um pouco da recente atividade em relação a este tópico.

Rob Conerey (funcionário da Microsoft no time de ASP.NET MVC e criador do SubSonic) explica porque desenvolvedores deveriam aprender ASP.NET MVC, depois de observar questões levantadas na comunidade.

Em sua introdução ele começa descrevendo WebForms como "A Grande Mentira":

WebForms é uma mentira. Sua abstração embrulhada em decepção coberta com molho de mentira servido em um prato cheio de diversão e um truque bem pensado. Nada que você faz com WebForms tem é ver com Web - você deixa ele fazer o trabalho para você.

Isto, amigos, é algo importante (pelo menos para mim): Você está trabalhando em uma mentira. A web não é 'stateful' e trabalha com esta coisa chamada HTML enviada através de fios usando outra coisa chamada HTTP - você precisa sabê-los, amá-los e senti-los nas suas veias.

Rob lista 7 razões para usar ASP.NET MVC ou em suas próprias palavras - 7 Razões Para Parar de Me Chamar De Idiota:

  1. Testabilidade
  2. Controle sobre HTML
  3. Extensibilidade
  4. Faz você pensar
  5. ...Diferentemente: Javascript não enche o saco
  6. Aprendendo novos conceitos
  7. É engraçado

E conclui que:

Ponto proncipal: Eu estou me divertindo novamente ao programar web e acho que é muito motivador, pelo menos para mim e para meus gatos. Ainda uma comparação, com certeza, mas acredito que um pouco mais direto. Você não tem nenhum motivo para não aprender MVC "mas vou permitir que possa ter uma razão ou duas para você continuar com WebForms."

Joe Brinkman (desenvolvedor em tempo integral noDotNetNuke) rapidamente seguiu com uma resposta, criticando Rob por não escolher "UMA BOA razão para aprender MVC", e lista sua própria:

  1. Vai te expor a uma arquitetura diferente
  2. Você será forçado a se tornar intimamente faimilar com HTML e HTTP
  3. MVC promove testes unitários
  4. MVC o fará ver o quanto você ganha por lidar com WebForms

Joe conclui dizendo:

Então em resumo, você deve realmente conferir MVC.  Mas não pelas razões que Rob enumerou.  Você deve explorar MVC porque ao final você pode ter aprendido algo que o fará um programador web melhor, não importa que plataforma você escolha.

Rob e Joe basicamente concordam no mesmo, que desenvolvedores ASP.NET devem aprender ASP.NET MVC, mas discordam no porquê dos argumentos.Karl Seguin no entanto tem uma diferente opinião e pergunta "se ASP.NET é uma solução crua"?:

Ser capaz de escrever sistemas complexos de uma maneira limpa é um bom começo, mas dado onde o desenvolvimento web geralmente se encontra, e outras plataformas em específico, ASP.NET MVC larga muito atrás (Perl sendo a única que eu consigo pensar que é pior).

Há uma pequena questão que uma grande parte do problema é que este é realmente um stack VC - não há pensamento, suporte e ferramentas para o Modelo. Quando você compara as milhares de linhas que você vai acabar escrevendo para seu repositório/dal/linq/nhiberate para outros stacks MVC (que normalmente somente requerem que seus modelos herdem de uma classe), você já está em uma série desvantagem de produtividade. Mas o real impacto é na verdade muito pior - você perde qualquer coesão de propósito através dos controllers e views. Não há maneira de gerar labels HTML de propriedades modelo, ou validação no lado do cliente.
...
Existem algumas boas notícias, e que toda esta "infraestrutura" é reutilizada, que fazem projetos como S#arp Architecture possíveis. No entanto, eu ainda estou cético que estes projetos possam realmente ter sucesso contra frameworks melhor integrados.

 Jeremy D. Miller (um dos criadores do FubuMVC) lista alguns prós e contras:

CONTRAS:
"o framework MVC não é eficiente a não ser que você planeje arregaçar as mangas e produzir uma infraestrutura específica para seu projeto para preencher no "M", atingir melhor testabilidade, sincronização de tela mais fácil, e HTML helpers mais produtivos"

...
PRÓS:
É muito fácil e direto para pegar o framework MVC pelos chifres e customizar para seu benefício.

Jeremy conclui dizendo:

Eu fico com a afirmação que o ASP.Net MVC framework, no fim das contas, é uma melhor maneira de construir aplicações web que a "abstração embrulhada em decepção coberta com molho de mentira servido em um prato cheio de diversão e um truque bem pensado,"  mas neste ponto é provavelmente uma ferramenta restrita para amigos que sejam do tipo "early adopters"

Jeffrey Palermo (atualmente escrevendo o livro “ASP.NET MVC in action”) declara que “Você não deve usar ASP.NET MVC se…”:

  • Você não esta muito confortável com polimorfismo
  • Você não deseja escrever no topo de um framework
  • Você utiliza controles de terceiros para muito da interface de usu?rio
  • Você é contra utilizar bibliotecas open-source

Mas continua com:

O framework ASP.NET MVC é um framework facilitador.  Não é um framework que "pega na sua mão".   Não é um framework “ASP.NET 101” .  Você tem controle total sobre tudo.  Padrões de interface de usuário no espaço da Web não são tão padronizados para que nós possamos abandonar controles para usar frameworks que trabalham de uma maneira "padrão".   Acesso a dados alcançou este ponto onde nós sabemos que precisamos Criar, Ler, Atualizar e Apagar, cascateando persistência, lazy loading, etc.   Existe muitos mapeadores objeto-relacional (ORM) que suportam as operações comuns, e muitos desenvolvedores estão satisfeitos desistindo do controle completo sobre o acesso a dados devido a forma parecida que os ORMs líderes trabalham (Hibernate/NHibernate).

Existem é claro muitos outros que expressaram as suas opiniões, mas InfoQ acha que as acima resumem muitos dos argumentos a favor e contra de aprender/usar ASP.NET MVC.


Coteúdo do Site: http://www.infoq.com/br/news/2009/05/should-devs-learn-aspnetmvc
Postado por Jon Arild Tørresdal , traduzido por André Pantalião em 12 Mai 2009 05:06 PM

 
Sites relacionados ao assunto:
  1. Criando um aplicativo de Filme usando Banco de Dados:
    Stephen Walther desenvolve uma aplicação do início ao fim em ASP.NET MVC. Este tutorial é uma ótima introdução para as pessoas ques estão querendo aprender ASP.NET MVC Framework e que querem ter uma noção do processo de construção.
  2. Entendendo: Models, Views e Controllers:
    Confuso sobre Models, Views e Controllers? Neste tutorial, Stephen Walther introduz as diferentes camadas de uma aplicação ASP.NET MVC.
  3. Entendendo: Controllers, Controller Actions, and Action Results:
    Stephen Walther introduz os Controllers do ASP.NET MVC. Você aprenderá a criar novos controllers e retornar resultados diferentes para cada tipos de ação.
  4. Resumo sobre ASP.NET MVC Routing:
    Stephen Walther mostra como o ASP.NET MVC mapeia os request do Navegador.
  5. Prevenir ataques de JavaScript Injection:
    Este tutorial explica como você pode facilmente derrotar estes tipos de ataques codificando seu HTML.
  6. Criando HTML Helpers Customizado:
    O objetivo deste tutorial é mostrar como você pode criar HTML Helpers personalizada que você pode usar no seu projeto MVC. Você pode reduzir a quantidade de digitação de tags HTML.
  7. Exibindo uma tabela de banco de dados:
    Neste tutorial, demonstrar dois modos de exibição de um conjunto de registos de dados. Demonstra dois métodos de formatação de registro em uma tabela HTML.
  8. Autenticando usuários com Forms Authentication:
    Aprenda a usar o atributo [Authorize] para proteger determinadas páginas MVC na sua aplicação. Você aprenderá como usar o "Web Site Administration Tool" para criar e gerenciar users e roles.

Tags: ,

Artigos | Artigos | C Sharp | C Sharp

Msn messenger no seu site ou blog

by Anderson 29. June 2009 20:58

Veja como configurar o seu

1º - Entre aqui:
http://settings.messenger.live.com/Applications/WebSettings.aspx
2º - Marque como na imagem e clique em salvar, depois clique em: "Criar HTML"


Embarassed

3º - Escolha qual das 3 widget que você quer usar no seu blog.


4º - Configure o tamanho, cor, etc...


5º - Copie o código que fica em baixo de: "Copiar HTML e colar em sua página da Web"

6º - Faça login no seu blogger, clique em "Layout" -> "Elementos da Página", clique em "Adicionar um Gadget". Escolha para adicionar "HTMl/Java Script".
Cole o código e salve!
Pronto, esse Gadget vai ficar de acordo com o seu status no msn.

um botão será adicionado como o exemplo abaixo de acordo com sua preferência

 

Ordenar List em Asp.Net 2.0 - 3.5

by Anderson 20. June 2009 11:35

Segue exemplo prático 

            List<ProdutoBean> testeList = new  List<ProdutoBean>();
           
            ProdutoBean produtoBean = new ProdutoBean();
            produtoBean.proNome = "c";
            testeList.Add(produtoBean);

            produtoBean = new ProdutoBean();
            produtoBean.proNome = "b";
            testeList.Add(produtoBean);


             produtoBean = new ProdutoBean();
             produtoBean.proNome = "a";
             testeList.Add(produtoBean);

            System.Collections.Generic.IEnumerable<ProdutoBean> teste = testeList;
            teste = teste.OrderBy(i => i.proNome);

 

//Para repassar para a lista novamente use o método toList()
             
            testeList = teste.ToList();

 

Botão promover do Google - Recurso do indíce de busca - Como Funciona?

by Anderson 5. May 2009 13:52

Uma forma simples de promover teu site no Google

 

Uma forma muito simples de aumentar as chances de qualquer website aparecer mais a frente nas pesquisas do Google é usar o botão PROMOVER, uma pequena seta que aparece a frente do nome do website, quando efetuamos uma pesquisa no Google.

Não apareceu?
Normal, só aparece a seta quando o logado leitor ou a conectada leitora estão utilizando uma conta do Gmail, portanto é preciso ter uma conta no Gmail para ter acesso a este recurso.

Uma vez estando com o log ativo a seta aparece e você pode ir clicando na setinha PROMOVER até o nome do seu website estar o mais alto possível, tem um momento em que vai parar, neste caso volte outro dia pois se ainda houver sites acima do seu significa que não podem ser superados tão facilmente.

Para funcionar este truque não basta você fazer a mágica, precisa pedir a outros amigos (que também tenham conta no Google) para fazer o mesmo, mais amigos, mais promoção para seu website.

E não é apenas isso, esta setinha faz parte de uma novidade do Google, o Google Wiki, que permite comentar websites, ou seja, dar sua opinião sobre eles e esta opinião aparecerá para quem desejar ve-la.

 


Referência: http://interfaceinterativa.blogspot.com/2009/02/uma-forma-simples-de-promover-teu-site.html


O que é Twitter? Para que serve o Twitter? Como Funciona o Twitter?

by Anderson 2. May 2009 19:13

Uma das maiores falhas (inclusive minha) em tentar definir o Twitter até o momento baseia-se no fato de que o twitter não tem um uso claro e definido.

Pra começar você entra no site, cria uma conta e diz o que você está fazendo no momento. Pra ficar mais interessante é legal seguir seus amigos (entrando na página deles e clicando em follow). Cada vez que você adiciona um amigo você começa a receber as mensagens deles. Quando você envia uma mensagem, todo mundo que te segue recebe a sua mensagem. Para enviar uma mensagem especificamente para uma pessoa coloque @usuariodapessoa no começo da sua mensagem. Esta também é uma forma de forçar/faciliar alguém a ler sua mensagem, pois se ele não te segue ele não lerá o que você escreve. As mensagens desse tipo aparecem numa pasta em separado chamada Replies. Mais detalhes de configuração você encontra nesse artigo do G1.

A facilidade de acessar o twitter de qualquer lugar faz com que a maioria dos acontecimentos seja anunciada primeiro no twitter e o fato de usar mensagens curtas faz com que isso seja transmitido e retransmitido rapidamente. O terremoto em São Paulo por exemplo foi notificado às 21:02 no twitter, a notícia mais antiga que encontrei foi da Abril, às 21:53. E pra quem reclama de detalhes é só acompanhar o que todas as pessoas escreveram (e continuam escrevendo) sobre o assunto: terremotosp.

Mas isso não resumo o twitter, ele tem muitas funções úteis, vou tentar descrever a maioria delas.

Usando o celular:

Um texto no twitter é limitado a 140 caracteres, essa limitação é para viabilizar a integração do twitter com mensagens de texto via celular (SMS), isso transforma o twitter numa plataforma acessível a 126 milhões de brasileiros. Uma das formas mais simples de enviar mensagens via SMS para o twitter aqui no Brasil é através do BrTTwitter.

Isso permite enviar mensagens para seus amigos ou registrar acontecimentos em qualquer lugar pois dificilmente estamos sem celular ou em local onde o celular não funcione.

Se o seu celular/smartphone possui acesso à web a coisa fica mais simples, acesse m.twitter.com e tenha acesso a quase todas as funcionalidades da versão web. Ou então instale o ceTwit (dica do @csoler)

Usando o MSN:

O twitter também pode ser integrado com instant messengers, a integração com o Gtalk é nativa. Para integrar com o MSN você pode utilizar o IMified:

1) Adicione o usuário imified@imified.com no seu MSN
2) Escreva uma mensagem qualquer para criar seu usuário
3) Digite 4 para acessar a sua conta, ele te enviará uma url para você navegar no seu browser.
4) Adicione o widget do twitter à sua conta
5) Crie um shortcut (atalho) para o widget (service) do twitter (sugestão /t).

Pronto, de agora em diante para enviar uma mensagem para o seu twitter via MSN é só abrir uma conversa com o imified@imified.com no MSN e digitar /t sua mensagem.

Você pode importar/convidar seus amigos do MSN que já tem twitter, para isso basta acessar o link Find & Follow, preencher seus dados do Hotmail (ou de outro instant messenger). Ele irá checar sua lista de amigos e lhe indicar quem já usa twitter para você seguir, e em seguida a lista de quem não tem para você convidar.

Se você quiser que sua mensagem de status no MSN seja atualizada a cada mensagem enviada para o twitter baixe e instale o Twessenger, leia o arquivo README com cuidado, a instalação desse add-in não é tão simples.

Mas para que conversar com seus amigos pelo twitter ao invés do MSN ou Gtalk? Particularmente não gosto de usar o MSN ou Gtalk para conversar, mas se eu tenho algo que gostaria de deixar registrado, como uma frase bacana, uma música legal, um link interessante, uma foto diferente, e não direcionado a uma pessoa específica, ou seja, poderia ser interessante para qualquer pessoa que eu conheça, eu deixo essa mensagem no twitter.

Usando o Firefox:

Você pode acompanhar o twitter sem precisar dar Refresh (F5) no http://www.twitter.com/, também não precisa ficar de olho grudado no Gtalk (que as vezes falha e você acaba perdendo mensagens). Usando o plugin TwitterFox você acompanha o que seus amigos estão dizendo, vê as respostas e mensagens diretas pra você e pode responder de volta através de uma pequena janela no rodapé do seu browser.

Usando o e-mail:

Através do TwitterMail você pode se cadastrar e obter um endereço de e-mail para enviar suas mensagens através de qualquer programa de e-mail.

Se você tem um blog:

Você pode usar seu twitter como um microblog, muitas vezes você encontra algo na rede que é interessante, mas não o suficiente para fazer um post, ou na verdade já é um post em outro blog e não faz sentido repetir o assunto, mas se você gostaria de divulgar para todo mundo, então você pode fazê-lo no seu twitter! Basta usar qualquer um dos métodos acima.

Se você ainda não assistiu, vale a pena ver o vídeo da Common Craft sobre o twitter: Twitter in Plain English.

Você também pode colocar um badge (widget) no seu blog mostrando as últimas atualizações do seu twitter, fundindo o blog com o microblog.

Para avisar automaticamente no twitter que você publicou um post novo use o twitterfeed. Se você usa wordpress pode instalar um plugin que envia uma mensagem a cada modificação de post no seu blog. Muita gente utiliza a tag #nbp (new blog post) para identificar que aquela mensagem refere-se a divulgação de um post do próprio blog.

E se você quiser facilitar a vida do seu visitante que tem twitter você pode utilizar o twitthis para adicionar um link no final do seu post através do qual seu leitor pode enviar um link do seu post para o twitter dele, avisando que está 'Reading' (lendo), 'Looking' (olhando), Listening (ouvindo), Laughing (rindo), etc.

Se você costuma participar de eventos:

Você pode usar o twitter para fazer uma microcobertura do evento, postando os títulos das palestras, nomes dos palestrantes e algumas frases chave para dar uma idéia do que está acontecendo aos seus seguidores. Para esse tipo de uso geralmente associa-se uma etiqueta (tag) ao evento no formato #nomedatag.

Para quem não está presente no evento é possível acompanhá-lo através do Gtalk digitando track #tagdoevento no usuário twitter@twitter.com e/ou acompanhar pela web através de indexadores do twitter como o TweetScan ou Twemes: Exemplo: Webpanel da Datasul.

Ultimamente nos principais eventos de tecnologia e comunicação sempre tem alguns twitter presentes, até pela facilidade de se enviar mensagens pelo celular. Com o crescente uso da ferramenta até eventos mais populares como a viradacultural tiveram uma boa cobertura via twitter.

Se você é curioso ou exibicionista:

Você pode realmente usar o Twitter como uma espécie de Big Brother particular, algumas pessoas tem uma vida bastante interessante, ou são relativamente famosos como a Rosana Hermann (@rosana) e o Maestro Billy (@maestrobilly).

Além disso, seguindo as pessoas que você conhece pessoalmente já dá uma adiantada naquele papo de elevador, ao invés de perguntar sobre o tempo você pode comentar algo que leu no twitter dela (- e aí como foi a mudança? - putz, vi que seu carro quebrou outro dia...) alias, contar o que aconteceu via twitter pode te poupar de explicar dúzias de vezes a mesma coisa, difícil vai ser resumir em 140 caracteres ; ) 

Como achar mais amigos?

Depois de usar o Find & Follow para adicionar seus amigos do Gtalk/MSN você pode utilizar o Twubble, ele vai fuçar seus amigos e te mostrar pessoas que eles seguem, você deve encontrar alguns amigos em comum ou pessoas interessantes que seus amigos seguem.

Como postar fotos?

Uma maneira simplificada de postar fotos é através do Twitpic, você informa seu usuário e senha do twitter, envia a foto que ficará hospedada no próprio twitpic, informa a mensagem que irá acompanhar a foto e ele envia sua foto e mensagem automaticamente para o seu twitter.

Como agendar mensagens?

Seu amigo mandou uma mensagem e você tem certeza de que ele estava sem computador e sem celular naquele momento? Provavelmente ele usou o TweetLater e programou uma mensagem para o futuro! Você pode agendar um post no seu blog e personalizar uma mensagem no seu twitter para quando o post entrar no ar. Ou você pode preparar o lançamento de um produto ou serviço para ser enviado no momento que você estiver na festa/apresentação. (Dica do Tiago Dória)

Como escrever de cabeça pra baixo?

Te mandaram uma mensagem de ponta cabeça? Provavelmente seu amigo usou o Flip. O Flip inverte uma frase e troca os caracteres para parecer que ela foi escrita de ponta cabeça. Você pode usar o Flip para inverter uma mensagem em qualquer lugar (blog, e-mail, etc.) não apenas no twitter.


Texto retirado do site:
http://www.interney.net/?p=9761875


Tags: , ,

Entreterimento

Twitter - Serviço ganhando mais popularidade

by Anderson 1. May 2009 21:30
Depois das divulgações realizadas pelo jornal do sbt, o serviço do site Twitter está se tornando muito mais popular.


Twitter é um serviço para amigos, familiares e colégas de trabalho que gostam de se comunicar através da troca de uma simples pergunta:
O que você está fazendo?


Mais informações a seguir:

O que é Twitter?


Twitter é o nome de um site americano que se enquadra na categoria de “Microblogging“.

 O que é Microblogging?

Microblogging” é um conceito de site de serviço social, que reune os recursos de rede social como perfis de usuários, onde você pode seguir ” follow” ou ser seguido “followed” por amigos, simpatizantes, etc, e um pequeno espaço ( 140 caracteres) para postar alguma coisa. Daí o termo “micro” …blogging. O conceito de “Social bookmarking” também está implementado no “microblogging“.

O que é “Social bookmarkings”? ( Favoritos social )

É o conceito dado aos sites que oferecem os serviços de receber submissão de conteudos favoritos em forma de links-comentários que apontam para os artigos na íntegra, classificando-os por votos ou tags ( etiquetas ).

Favoritos” por que você adiciona um artigo ou link como favorito, e “Social” porque fica disponível para todos lerem e votarem naquela notícia, link, etc, organizadamente. Mas que eu saiba o Twitter não utiliza esse recurso de votação de artigos.

Quando você entra em um site ou blog e vê aqueles tantos botões tipo Ueba, Rec6, Sapo, DiHit, Facebook, Linkto, Digg, Del.icio.us, por aí a fora, significa que você pode enviar aquele artigo da  própria página que você acabou de ler para um desses sites de “Social bookmarkings” e compartilhá-lo com todos. Para isso é preciso que você tenha cadastro naquele serviço.

O Twitter prega mais sua função de as pessoas poderem noticiar em todo o tempo o que estão fazendo. Assim, pessoas seguem pessoas em todo tempo e sabem o que estão fazendo naquele momento.

O que o Google acha do Twitter?

Embora muitos analistas afirmem que o Twitter esteja se tornando uma ameaça ao Google e alimentando uma nova forma de conteúdo online, Eric Schmidt, CEO do Googlerevelou sua visão sobre o serviço quando questionado sobre o fato. Fonte: Googlediscovery.

Falando como um cientista da computação, eu vejo tudo isso como uma espécie de sistema simples de e-mail. Em outras palavras, têm aspecto de um sistema de e-mail, mas não possui algo completo para oferecer.

Críticas à parte, não é mesmo pessoal! A realidade é que, queira sim ou não, o próprio Google se rendeu aos mini-posts de 140 caracteres do Twiter ao criar seu perfil neste canal de mídia e não deixou de fortalecer seu trabalho de SMM!




Endereço do Twitter:
http://twitter.com/

Conteudo do site:
http://www.nuvemseo.net/o-que-e-twitter

Plugin AJDT para Eclipse: AspectJ Development Tools. Completo.

by Anderson 1. May 2009 20:16

Plugin para Programação orientada a Aspectos

AJDT: AspectJ Development Tools. Completo.

Some aspects of system implementation, such as logging, error handling, standards enforcement and feature variations are notoriously difficult to implement in a modular way. The result is that code is tangled across a system and leads to quality, productivity and maintenance problems. Aspect Oriented Software Development enables the clean modularization of these crosscutting concerns. The AspectJ Development Tools (AJDT) project provides Eclipse platform based tool support for AOSD with AspectJ. Our goal is to deliver a user experience that is consistent with the Java Development Tools (JDT) when working with AspectJ projects and resources.

Tags:

Ferramentas | Eclipse | Plugins

Plugin QuantumDB para Eclipse para acesso a banco de dados

by Anderson 1. May 2009 20:12

 QuantumDB: plugin para acesso a banco de dados. Bastante simples, uso apenas para fazer queries.

QuantumDB is a simple but powerful database access plug-in for the Eclipse Development Platform. QuantumDB allows you to:

  • connect to databases using standard JDBC drivers
  • review schemas, tables, views and sequences
  • look up column, index and foreign key information
  • issue ad-hoc queries or other SQL statements against the database
  • manage, edit, and work with SQL files (*.sql)
  • issue updates, deletes, and inserts using simple, easy-to-use wizards

QuantumDB works with any JDBC-complaint database, including:

  • Adabas
  • DB2
  • DB2 on AS400
  • HSQLDB
  • Informix
  • MySQL
  • Oracle
  • Pointbase
  • PostgreSQL
  • Sybase

Plugin Spring IDE para Eclipse

by Anderson 1. May 2009 20:06

 Spring IDE: auxilia projetos que utilizam o Spring. Suporte na edição do beans.xml e mostra um diagrama de dependências entre as classes mapeadas.

Spring IDE is a graphical user interface for the configuration files used by the Spring Framework. It's built as a set of plugins for the Eclipse platform.

 

Plugin GotoFile para Eclipse: facilita a busca de qualquer arquivo no workspace

by Anderson 1. May 2009 20:01


GotoFile: facilita a busca de qualquer arquivo no workspace. Apesar do Eclipse ter também implementado a melhor feature dele.

Plugin Jetty Launcher para Eclipse: como o Tomcat Sysdeo. Para start/restart/stop do jetty. Simples e funcional

by Anderson 1. May 2009 19:56



 Jetty Launcher: como o Tomcat Sysdeo. Para start/restart/stop do jetty. Simples e funcional.

  • Run and Debug Java Web applications directly within the Eclipse workbench (without the need to export a war file).
  • Get apps running quickly using built in configuration options; or
  • Retain complete control of your Jetty environment by using Jetty XML configurations
  • Support includes Jetty 5 and JettyPlus
  • Optional 3rd Party plug-in intergration makes it easy to profile your web applications (see documentation).

 

 

 

Plugin Resource Bundle Editor para Eclipse. Melhor editor de ResourceBundle. Completo.

by Anderson 1. May 2009 19:36

Para Eclipse 3.x

Resource Bundle Editor: Melhor editor de ResourceBundle. Completo.

Eclipse plugin para edição de Java recurso feixes. Permite-lhe administrar todas as propriedades localizadas em uma tela arquivos. Algumas características: chaves ordenadas, a advertência sobre ícones faltando chaves / valores, conversão de / para o Unicode, exibição hierárquica de chaves


Eclipse plugin for editing Java resource bundles. Lets you manage all localized properties files in one screen. Some features: sorted keys, warning icons on missing keys/values, conversion to/from Unicode, hierarchical view of keys

Método IsNullOrEmpty - Qual sua utilidade?

by Anderson 30. April 2009 20:37

Essa é uma das funcionalidade imbutidas .NET, interessante pela razão de não termos a nescessidade de utilizar duas consultas para efetuar a mesma funcionalidade, como por exemplo:

ao invés de:

if ((variavel != "") && (variavel != null)){
...
}

Você faz:
if (!String.IsNullOrEmpty(s)){
...
}


Indica se o objeto String especificado é uma referência nula (Nothing no Visual Basic) ou uma seqüência vazia (Empty string).


Qualquer dúvida mais detalhes aqui:
http://msdn.microsoft.com/pt-br/library/system.string.isnullorempty.aspx

Tags: , ,

C Sharp | Linguagens de programação | Visual Basic

Herança de configurações no Web.Config

by Anderson 30. April 2009 17:51

O nosso dia a dia é sempre cheio de novidades e isso que deixa os nossos projetos cada vez mais divertidos. Hoje eu tive que fazer alguns ajustes em uma aplicação que está rodando no root do servidor web e possui outras aplicações rodando em baixo dessa mesma pasta.

A grande questão envolvida é que as configurações que inserimos no Web.Config da aplicação principal são propagadas para a aplicação que está em baixo da mesma estrutura de diretório conforme o modelo:

APP00 (Root) (Web.config)
+-----App01 (Web.config)
+-----App02 (Web.config)

Então de uma forma natural você acaba injetando dependências nas outras aplicações que está em baixo dessa mesma estrutura de diretório. Para resolver isso você precisa agir no Web.Config da aplicação principal e adicionar o atributo location com o parâmetro inheritInChildApplications="false" para impedir que configurações sejam propagadas para as outras aplicações. Essa necessidade se torna muito visível principalmente quando você adiciona referencias para módulos http em <system.Web>

<location path="." inheritInChildApplications="false">
    <system.web>
   </system.web>  
</location>


- How to disable web.config Inheritance for Child Applications in Subfolders in ASP.NET
- Bloqueando herança do web.config

 

Fonte:http://www.ramonduraes.net/post/Heranca-de-configuracoes-no-WebConfig.aspx
[],
Ramon Durães
MVP, Especialista em Visual Studio Team System

Exemplo de projeto Silverlight no Visual Studio 2008

by Anderson 29. April 2009 03:24

 

Download completo do exemplo

1- Para construirmos nosso exemplo vamos precisar ter instalado em nosso computador:- Microsoft Visual Studio 2008
- Microsoft Silverlight Tools
- E claro o plug-in Silvelight 1.1 Alpha

2- Abra o Visual Studio 2008 beta 2 vá no menu
File -> New -> Project -> Visual Basic -> Silverlight -> SilverLight Project e dê o nome testsilverlight para o projeto.

tutorial4_1.jpg
Figura: Criando um projeto Silverlight no Visual Studio 2008

3- Quando um novo projeto Silverlight é criado no Visual Studio 2008 ele cria automaticamente os seguintes arquivos:

3.a- Arquivo HTML: O Visual Studio dá o nome TestPage.html, esse arquivo serve como ponto de partida para o browser carregar o projeto Silvelight e também pode conter outros conteúdo junto com o Silverlight. Veja que ele faz referencia aos arquivos TestPage.html.js e Silverlight.js.

3.b- Arquivo TestPage.html.js: Esse arquivo javascript contém o método createSilverlight que é um modelo para chamar os métodos createObject ou createObjectEx definidos no Silverlight.js

3.c- Arquivo Silverlight.js: Esse arquivo javascript define os métodos createObject e createObjectEx que servem para inicializar o controle Silverlight além de fornecer recursos de instalação do Silvelight para o usuário caso ele não possua o Silverlight instalado.

3.d- Arquivo Page.xaml: Esse arquivo XAML é definido como o parametro “source” nos métodos createSilverlight ou createSilverlightEx e contém o contéudo da interface do projeto Silverlight.

3.e- Arquivo Page.xaml.vb: Esse arquivo VB ou C# serve para gerenciar em tempo de execução os eventos do projeto Silverlight. O código utiliza a mesma classe que foi definida no atributo x:Class do Page.xaml.

tutorial4_2.jpg
Figura: Arquivos do projeto Silverlight

4- Abra o arquivo Page.xaml e insira o seguinte código antes de </Canvas>:

<Canvas x:Name=”Button1″ Canvas.Top=”50″ Width=”100″ Height=”30″ Background=”Gray”>
    <TextBlock>
        <Run Text=”Enter mouse”></Run>
    </TextBlock>
</Canvas>

Esse código XAML nada mais é do que um Texto criado com o TextBlock e agrupado sozinho através do Canvas com o nome Button1.

tutorial4_3.jpg
Figura: Código XAML

5- Abra o Page.xaml.vb e insira o código após o End Sub:

    Private Sub Button1_MouseEnter(ByVal sender As Object, _
    ByVal e As System.Windows.Input.MouseEventArgs) Handles Button1.MouseEnter
        Dim buttonBrush As New SolidColorBrush
        buttonBrush.Color = Colors.Red
        Me.Button1.Background = buttonBrush
        Dim tb As TextBlock = Me.Button1.Children(0)
        tb.Text = “Mouse…”
    End Sub

    Private Sub Button1_MouseLeave(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles Button1.MouseLeave
        Dim buttonBrush As New SolidColorBrush
        buttonBrush.Color = Colors.Gray
        Me.Button1.Background = buttonBrush
        Dim tb As TextBlock = Me.Button1.Children(0)
        tb.Text = “Enter mouse”
    End Sub
   
Esse código representa as ações para os eventos MouseEnter e MouseLeave do Button1 declarado no XAML. Quando o cursor do mouse entra na área do texto o texto é alterado para “Mouse…” e a cor do fundo é alterada. E quando o cursor do mouse sai da área do texto o texto volta para “Enter Mouse” e a cor de fundo volta ao que era.

tutorial4_4.jpg
Figura: Código VB

6- Teste o projeto com menu Debug -> Start Without Debugging (Ctrl + F5), passe o mouse sobre o texto e veja o resultado 

tutorial4_5.jpg
Figura: Testando o projeto


Refêrencia: http://euclideschuma.wordpress.com/2007/10/16/tutorial-3-primeiro-exemplo-de-projeto-silverlight-no-visual-studio-2008/

 

Visual C# 2008 - Primeiro Projeto, Parte 2 de 2

by Anderson 19. April 2009 21:41

Demonstração de um primeiro projeto em Visual C# 2008 Express Edition usando Console Application. Parte 2 de 2.

Visual C# 2008 - Primeiro Projeto, Parte 1 de 2

by Anderson 19. April 2009 21:32

Demonstração de um primeiro projeto em Visual C# 2008 Express Edition usando Console Application. Parte 1 de 2.

Oracle compra Sun

by Anderson 19. April 2009 20:29

Foi confirmado a compra da Sun pela Oracle.


On April 20, 2009, Sun and Oracle announced a definitive agreement under which Oracle will acquire Sun common stock for $9.50 per share in cash. The transaction is valued at approximately $7.4 billion, or $5.6 billion net of Sun's cash and debt. The proposed transaction is subject to Sun stockholder approval, certain regulatory approvals and customary closing conditions. Until the deal closes, each company will continue to operate independently, and it is business as usual.

 

The acquisition combines best-in-class enterprise software and mission-critical computing systems. Oracle plans to engineer and deliver an integrated system—applications to disk—where all the pieces fit and work together so customers do not have to do it themselves. Customers benefit as their system integration costs go down while system performance, reliability and security go up.


Nova York, 20 abr (EFE).- A Oracle, um dos maiores fabricantes de programas e aplicativos de informática do mundo, anunciou hoje que acertou a compra da Sun Microsystems por US$ 7,4 bilhões, apenas duas semanas depois que a IBM retirou a oferta pela mesma companhia.

 

A companhia americana de software informou desse acordo de compra alcançado entre as empresas e pelo qual a Oracle oferecerá US$ 9,5 por título a cada acionista da Sun.

 

Isso representa uma valorização de 42% em relação aos US$ 6,69 ao qual cada papel da Sun fechou no Nasdaq, o mercado onde a empresa, com sede em Santa Clara, Califórnia, cota.

 

"A compra de Sun transforma o setor das tecnologias da informação. A Oracle será a única companhia que poderá desenhar um sistema integrado onde todas as peças casam e funcionam juntas, de modo que os clientes não terão que uni-las eles mesmos", assegurou o executivo-chefe da empresa, Larry Ellison, em comunicado.

 

Já o presidente da Oracle, Safra Catz, afirmou que o acordo poderia fornecer ao lucro da companhia pelo menos US$ 0,15 por ação um ano após o fim da operação, o que transformaria a compra em uma transação mais rentável que as de BEA Systems, Peoplesoft e Siebel juntas. EFE





Segue referência

http://www.sun.com/third-party/global/oracle/index.jsp
http://g1.globo.com/Noticias/Mundo/0,,MUL1091630-5602,00-ORACLE+COMPRA+SUN+MICROSYSTEMS+POR+US+BILHOES.html

Introdução ao RMI

by Anderson 17. April 2009 15:27
Introdução á Computação Distribuida com RMI

A tecnologia RMI - Remote Method Invocation (Invocação de Métodos Remotos), foi primeiramente introduzida no Java, no JDK versão 1.1, elevando a programação para redes em um patamar mais elevado. Apesar do RMI ser relativamente fácil, ele põe o desenvolvedor Java frente à um novo paradigma, o mundo da computação de objetos distribuídos. Este guia prático vai lhe introduzir à esta tecnologia versátil, que melhorou muito desde sua primeira versão.

Objetivo

O principal objetivo para os criadores (designers) do RMI era permitir os programadores a desenvolverem programas distribuídos em Java com a mesma sintaxe e semântica usada em programas não-distribuídos. Para isso, eles tiveram que mapear cuidadosamente como classes Java e objetos trabalham em uma única Java Virtual Machine (JVM) para um novo modelo de como as classes e objetos trabalhariam num ambiente distribuído de computação (múltiplas JVMs). Os arquitetos do RMI tentaram fazer com que o uso dos objetos distribuídos em Java fosse similar ao uso de objetos Java locais. Esta seção introduz a arquitetura RMI da perspectiva dos objetos Java remotos distribuídos, e explora as diferenças de comportamento com objetos locais. A arquitetura RMI define como os objetos se comportam, como e quando exceções podem ocorrer, como a memória é gerenciada e como os parâmetros são passados e retornados de métodos remotos.

Arquitetura Java RMI

A arquitetura RMI estende a segurança e robustez da arquitetura Java para o mundo da computação distribuída.

Interfaces: O coração do RMI

A arquitetura RMI é baseada em um importante princípio: a definição do comportamento e a implementação do comportamento são conceitos separados. RMI permite que o código que define o comportamento e o código que implementa o comportamento permanecerem separados e rodarem em JVMs separadas. Em RMI, a definição do serviço remoto é codificada usando uma interface Java. A implementação do serviço remoto é codificada em uma classe. Logo, a chave para se entender o RMI é lembrar que as interfaces definem o comportamento e as classes definem a implementação. A classe que implementa o comportamento roda do lado do servidor RMI. A classe que roda no cliente atua como um Proxy para o serviço remoto. Veja o seguinte diagrama: O programa cliente faz chamadas de métodos pelo objeto Proxy, o RMI envia a requisição para a JVM remota e redireciona para a implementação. Qualquer valor retornado pela implementação é devolvido ao Proxy e então ao programa cliente.

Arquitetura de Camadas do RMI

Com o entendimento da arquitetura RMI num alto nível, vamos dar uma breve olhada na sua implementação. A implementação do RMI é essencialmente feita de três camadas de abstração. A camada Stub e Skeleton está abaixo dos olhos do desenvolvedor. Esta camada intercepta as chamadas de métodos feitas pelo cliente para que a variável de referência da interface redirecione essas chamadas para o serviço RMI remoto. A próxima camada é a Remote Reference Layer. Esta camada sabe como interpretar e gerencias referências feitas dos clientes para os objetos do serviço remoto. A conexão do cliente ao servidor é Unicast (uma-para-um). A camada de transporte é baseada nas conexões TCP/IP entre as maquinas em uma rede. Usando essa arquitetura de camadas, cada uma das camadas poderia ser facilmente melhorada ou substituída sem afetar o resto do sistema. Por exemplo, a camada de transporte poderia ser substituída por uma camada que implemente conexões UDP/IP, sem afetar as camadas superiores.

Nomeando Objetos Remotos

Como um cliente acha o serviço remoto RMI? Os clientes acham os serviços remotos usando o serviço de nomeação ou diretório (naming or directory). Isso parece um pouco redundante, mas o serviço de nomeação ou diretório roda como um endereço bem formado (host:port). O RMI pode usar diferentes tipos de serviços de diretório, incluindo o JNDI. O próprio RMI inclue um simples serviço, chamado de RMI Registry. O RMI Registry roda em cada maquina que hospeda o serviço remoto, por definição na porta 1099. Numa máquina host, um programa servidor cria um serviço remoto, primeiramente criando o objeto que implemente aquele serviço. Em seguida ele exporta aquele objeto para o RMI. Quando o objeto é exportado o RMI cria um serviço que aguarda as conexões do cliente. O servidor registra o objeto no RMI Registry, com um nome público. No lado do cliente o RMI Registry é acessado através da classe estática Naming. Ela provém o método lookup( ), que o cliente usa para requisitar o registro. Esse método aceita a URL que especifica o nome do servidor e o nome do serviço desejado. O método retorna uma referência remota para o objeto do serviço. A URL é formada como seguinte:

rmi://<host_name>[:port_number]/<service_name>  

Usando o RMI

Agora vamos trabalhar com um sistema que realmente implementa um sistema com RMI. Vamos criar um aplicativo simples, cliente e servidor, que executa métodos do objeto remoto. Para tanto não necessitamos de duas máquinas distintas ou com IP distintos. O exemplo pode ser rodado na mesma máquina, pois o RMI sabe como trabalhar com isso, mesmo que o host e o cliente sejam na mesma localidade. Um sistema RMI é composto de várias partes:

  • Definição das interfaces para os serviços remotos
  • Implementações dos serviços remotos
  • Arquivos de Stub e Skeletons
  • Um servidor para hospedar os serviços remotos
  • Um serviço de RMI Naming que permite o cliente achar os serviços remotos
  • Um provedor de arquivos de classes (servidor http ou ftp)
  • Um programa cliente que necessita os serviços remotos
    Criando seu aplicativo com RMI
    Agora iremos, de fato, criar um sistema que implemente o RMI, utilizando-se de um programa cliente e um programa servidor. Não utilizaremos um servidor FTP ou HTTP, no entanto utilizaremos os programas na mesma máquina e uma mesma estrutura de diretórios. Os passos a serem seguidos agora são:
  • Escrever e compilar o código Java da interface
  • Escrever e compilar o código Java das implementações das classes
  • Gerar as classes Stub e Skeleton das classes de implementação Crie um diretório para salvar todos os seus arquivos de projeto. Você pode fazer o download do código fonte usado nesse tutorial.
    Interfaces
    O primeiro passo, como dito, será criar a interface e compilá-la. A interface define todas as funcionalidades remotas oferecidas pelo serviço. Nomeio o arquivo como: Mensageiro.java.
    1. import java.rmi.Remote;   
    2. import java.rmi.RemoteException;   
    3.   
    4. public interface Mensageiro extends Remote {   
    5.   
    6.     public void enviarMensagem( String msg ) throws RemoteException;   
    7.     public String lerMensagem() throws RemoteException;   
    8. }  

    Perceba que esta interface estende a classe Remote, e cada assinatura de método declara as funcionalidades do serviço, e que podem gerar uma exceção RemoteException. Salve este arquivo (Mensageiro.java) no seu diretório e compile, com a seguinte linha de comando:
    1. javac Mensageiro.java  

    Implementação
    Agora, você deverá escrever a implementação para o serviço remoto, ou seja, o código a ser executado no ambiente remoto. Nomeia o arquivo como: MensageiroImpl.java.
    1. import java.rmi.RemoteException;   
    2. import java.rmi.server.UnicastRemoteObject;   
    3.   
    4. public class MensageiroImpl extends UnicastRemoteObject implements Mensageiro {   
    5.   
    6.     public MensageiroImpl() throws RemoteException {   
    7.         super();   
    8.     }   
    9.   
    10.     public void enviarMensagem( String msg ) throws RemoteException {   
    11.         System.out.println( msg );   
    12.     }   
    13.   
    14.     public String lerMensagem() throws RemoteException {   
    15.         return "This is not a Hello World! message";   
    16.     }   
    17. }  

    Salve este arquivo (MensageiroImpl.java) no seu diretório e compile, com a seguinte linha de comando:
    1. javac MensageiroImpl.java  

    Observe que a classe se utiliza (estende) da classe UnicastRemoteObject para linkar com o sistema RMI. Neste exemplo a classe estende a classe UnicastRemoteObject diretamente. Isto não é realmente necessário, mas essa discusão fica para uma próxima etapa. Quando uma classe estende a classe UnicastRemoteObject, ele deve prover um construtor que declare que ele pode lançar uma exceção RemoteException, pois quando o método super( ) é chamado, ele ativa o código em UnicastRemoteObject, que executa o link RMI e a iniciação do objeto remoto.
    Stubs e Skeletons
    Gere os arquivos Stubs e Skeletons da classe de implementação que roda no servidor. Para tanto, execute o comando rmic, compilador RMI do JDK.
    1. rmic MensageiroImpl  

    Após a execução deste comando, você deveria ver no seu diretório os arquivos Mensageiro_Stub.class, Mensageiro_Skeleton.class. Servidor O serviço remoto RMI deve ser hospedado em um processo servidor. A classe MensageiroServer é um servidor bem simples, que provê serviços essenciais. Salve o arquivo como: MensageiroServer.java.
    1. import java.rmi.Naming;   
    2.   
    3. public class MensageiroServer {   
    4.   
    5.     public MensageiroServer() {   
    6.         try {   
    7.             Mensageiro m = new MensageiroImpl();   
    8.             Naming.rebind("rmi://localhost:1099/MensageiroService", m);   
    9.         }   
    10.         catch( Exception e ) {   
    11.             System.out.println( "Trouble: " + e );   
    12.         }   
    13.     }   
    14.   
    15.     public static void main(String[] args) {   
    16.         new MensageiroServer();   
    17.     }   
    18. }  

    Salve este arquivo (MensageiroServer.java) no seu diretório e compile, com a seguinte linha de comando: > javac MensageiroServer.java
    Cliente
    O código fonte para o cliente é o seguinte. Salve o arquivo como: MensageiroClient.java.
    1. import java.rmi.Naming;   
    2. import java.rmi.RemoteException;   
    3. import java.rmi.NotBoundException;   
    4. import java.net.MalformedURLException;   
    5.   
    6. public class MensageiroClient {   
    7.   
    8.     public static void main( String args[] ) {   
    9.         try {   
    10.             Mensageiro m = (Mensageiro) Naming.lookup( "rmi://localhost/MensageiroService" );   
    11.             System.out.println( m.lerMensagem() );   
    12.             m.enviarMensagem( "Hello World!" );   
    13.         }   
    14.         catch( MalformedURLException e ) {   
    15.             System.out.println();   
    16.             System.out.println( "MalformedURLException: " + e.toString() );   
    17.         }   
    18.         catch( RemoteException e ) {   
    19.             System.out.println();   
    20.             System.out.println( "RemoteException: " + e.toString() );   
    21.         }   
    22.         catch( NotBoundException e ) {   
    23.             System.out.println();   
    24.             System.out.println( "NotBoundException: " + e.toString() );   
    25.         }   
    26.         catch( Exception e ) {   
    27.             System.out.println();   
    28.             System.out.println( "Exception: " + e.toString() );   
    29.         }   
    30.     }   
    31. }  

    Salve este arquivo (MensageiroClient.java) no seu diretório e compile, com a seguinte linha de comando:
    1. javac MensageiroClient.java  

    Rodando o sistema RMI
    Agora que todos os arquivos do projeto de exemplo foram criados e devidamente compilados, estamos prontos para rodar o sistema! Você precisará abrir três diferentes consoles do MS-DOS no seu Windows, ou outro, caso utilize um diferente sistema operacional. Em um dos consoles vai rodar o programa servidor, no outro o cliente e no terceiro o RMI Registry. Inicie com o RMI Registry. Você deve estar no mesmo diretório em que estão gravados seus arquivos para rodar o aplicativo. Execute a seguinte linha de comando:
    1. rmiregistry  

    Isso irá iniciar o RMI Registry e rodá-lo. No segundo console vamos executar o programa servidor. Você deve estar no mesmo diretório em que estão gravados seus arquivos para rodar o aplicativo. Execute o seguinte comando:
    1. java MensageiroServer  

    Isso irá iniciar, carregar a implementação na memória e esperar pela conexão cliente. No último console, rode o programa cliente. Você deve estar no mesmo diretório em que estão gravados seus arquivos para rodar o aplicativo. Excute o comando:
    1. java MensageiroClient  

    Se tudo correr bem, que é o que esperamos e o que deveria acontecer, a seguinte saída será gerada nos consoles 2 (servidor) e 3 (cliente). No console 2 (servidor):
    1. Hellow World!  

    No console 3 (cliente):
    1. This is not a Hello World! message  

    É isso aí. Você acabou de criar um sistema utilizando a tecnologia RMI. Apesar de você ter rodado os programas na mesma máquina, o RMI usa a pilha de rede TCP/IP para se comunicar entre as três diferentes instâncias da JVM. Espero que tenham gostado e aprendido com esse pequeno exemplo de como se usar o RMI.

  • Fonte:Daniel Destro

    Tags: , ,

    Artigos | Java | Linguagens de programação

    XStream: Trabalhando com facilmente XML em Java

    by Anderson 17. April 2009 15:15
    Introdução

    Partindo do pressuposto que o leitor já conhece XML e sua importância, este artigo pretende abordar como usar XStream para realizar mapeamento de objetos Java para Documentos XML e vice-versa. Também serão citadas as vantagens e limitações desta ferramenta.

    Caminhos para trabalhar com Java e XML

    Existem diversas formas de se trabalhar com XML e Java, dentre elas, SAX, DOM, Digester. Cada uma serve ao seu propósito. Por exemplo, SAX é estremamente eficiente na leitura de arquivos. DOM, por sua vez oferece um melhor controle da estrutura hierárquica dos documentos XML, sendo mais adequado para a escrita de documentos para os quais não se tem total domínio da estrutura (esquema). Finalmente, Digester oferece uma forma interessante de mapear documentos XML para objetos Java e vice-versa. Entretanto, exige que o mapeamento seja manualmente configurado. E com vocês, XStream! XStream é uma outra forma de realiazar pontes XML-Java. Suas principais características, citadas na página oficial, são:

  • Facilidade de uso. Geralmente só se precisa conhecer uma classe.
  • Não é necessário configurar o mapeamento manualmente. XStream se baseia no mecanismo de Reflection pelo qual é possivel descobir dinamicamente quais os atributos de uma classe Java e os respectivos valores de seus objetos.
  • XML legível e mais compacto que a serialização nativa de Java.
  • Não exige que os objetos sigam alguma regra em particular.
  • Suporta referências duplicadas e circulares dos objetos.
  • Pode ser integrada com outras APIs.
  • A estratégia de conversão pode ser configurada.
  • Realiza uma avaliação prévia se o documento XML não está mal-formado, exibindo eventuais mensagens de erros. A próxima seção abordará um exemplo de como XStream pode ser usado.
    Exemplo passo a passo
    Inicialmente é necessário baixar o arquivo xstream*.jar e o xpp3*.jar em aqui. Na época que este artigo foi escrito, a versões mais novas eram a xstream-1.01 e xpp3-1.1.3.3_min respectivamente. Já mandou baixar? Ótimo. Enquanto você espera o download, pode dar uma expiadinha do problema a ser ilustrado. Suponha que se queira construir uma Agenda Eletrônica Pessoal. Imagine uma agenda para celular. Deseja-se facilidade, eficiência, portabilidade, integração com outros sistemas, e tal. Decide-se então guardar os contatos em XML. Esses contatos são lista de pessoas, que possuem nome, email e um telefone comercial. Esse telefone comercial contém um número para o DDD e o número local. Passa isso, constrói-se as seguintes classes Java:
    1. public class Pessoa {   
    2.     private String nome;   
    3.     private String email;   
    4.     private Telefone foneComercial;   
    5.            
    6.         // métodos Setters e Getters   
    7. }   
    8.   
    9. public class Telefone {   
    10.     int ddd;   
    11.     String numero;          
    12.         // métodos Setters e Getters    
    13. }  

    Ok, até aqui tudo bem. Mas e aí, como uso XStream? Tá saltando uma resposta quentinha na próxima seção. A essas horas, mesmo usando modem, é provável que já tenha terminado de baixar os arquivos. Coloque-os em seu classpath e volte aqui.
    Exemplo passo a passo

    1. import java.util.ArrayList;   
    2. import java.util.List;   
    3.   
    4. import com.thoughtworks.xstream.XStream;   
    5.   
    6. public class TesteXStream {   
    7.     public static void main(String[] args) {   
    8.         // Criando um objeto XStream           
    9.         XStream xstream = new XStream();   
    10.   
    11.         // Criando alguns dados   
    12.         Pessoa vinci = new Pessoa();   
    13.         vinci.setNome("Vinci Pegoretti Amorim");   
    14.         vinci.setEmail("vinci_amorim@yahoo.com.br");   
    15.   
    16.         Telefone foneDoVinci = new Telefone();   
    17.         foneDoVinci.setDdd(55);   
    18.         foneDoVinci.setNumero("5555 5555");   
    19.   
    20.         vinci.setFoneComercial(foneDoVinci);   
    21.         List contatos = new ArrayList(1);   
    22.         contatos.add(vinci);   
    23.   
    24.         // Passando os dados de Objetos Java para XML   
    25.         String contatosEmXML = xstream.toXML(contatos);   
    26.   
    27.         System.out.println("\nContatos em XML:");   
    28.         System.out.println(contatosEmXML);   
    29.   
    30.         // Passando os dados de XML para Objetos Java   
    31.         List amigos = (List) xstream.fromXML(contatosEmXML);   
    32.         Pessoa amigo = (Pessoa) amigos.get(0);   
    33.         Telefone foneDoAmigo = amigo.getFoneComercial();   
    34.   
    35.         System.out.println("\nAmigo como Objeto Java:");   
    36.         System.out.println("Nome: " + amigo.getNome());   
    37.         System.out.println(   
    38.             "Fone Comercial: ("  
    39.                 + foneDoAmigo.getDdd()   
    40.                 + ") "  
    41.                 + foneDoAmigo.getNumero());   
    42.     }   
    43. }  

    Primeiro é necessário importar a classe com.thoughtworks.xstream.XStream e criar um objeto para ela. Depois, deve-se implementar um código como o seguinte:
    1. String mensagemEmXML = xstream.toXML(objetoRaiz);  

    Feito isso, seus dados são passados para XML. Rodando o testeXStream espera-se obter a saída abaixo:
    1. Contatos em XML:   
    2. <list>   
    3.   <Pessoa>   
    4.     <email>vinci_amorim@yahoo.com.br</email>   
    5.     <foneComercial class="Telefone">   
    6.       <ddd>55</ddd>   
    7.       <numero>5555 5555</numero>   
    8.     </foneComercial>   
    9.     <nome>Vinci Pegoretti Amorim</nome>   
    10.   </Pessoa>   
    11. </list>   
    12.   
    13. Amigo como Objeto Java:   
    14. Nome: Vinci Pegoretti Amorim   
    15. Fone Comercial: (555555 5555  

    Se você já conhece outras formas de mapeamento Java-XML certamente estará impressionado com a facilidade de XStream. Mas algumas vezes você pode querer mapear nomes para as tags diferentes do nome da classe. Para fazer isso com XStream basta, após a criação do seu objeto da classe XStream, escrever:
    1. xstream.alias("nomeDoObjetoEmXML", NomeDoObjetoEmJava);  

    Para este caso podería-se fazer algo como:
    1. xstream.alias("contato", Pessoa.class);   
    2. xstream.alias("telefone", Telefone.class);   
    3. xstream.alias("lista", ArrayList.class);  

    A nova saída seria:
    1. Contatos em XML:   
    2. <lista>   
    3.   <contato>   
    4.     <email>vinci_amorim@yahoo.com.br</email>   
    5.     <foneComercial>   
    6.       <ddd>55</ddd>   
    7.       <numero>5555 5555</numero>   
    8.     </foneComercial>   
    9.     <nome>Vinci Pegoretti Amorim</nome>   
    10.   </contato>   
    11. </lista>   
    12.   
    13. Amigo como Objeto Java:   
    14. Nome: Vinci Pegoretti Amorim   
    15. Fone Comercial: (555555 5555  

    Para a maioria dos casos, este conhecimento já é o suficiente. Mas uma visita ao site oficial sempre é recomendado.
    Conclusões
    Como nem tudo são flores, XStream possui algumas limitações. Por exemplo, o texto "Blá" e os atributos do XML abaixo são simplesmente igorados.
    1. <pessoa id="5" sexo="masculino"> Blá   
    2.   <email>vinci_amorim@yahoo.com.br</email>   
    3.   <foneComercial>   
    4.     <ddd>31</ddd>   
    5.     <numero>3899 1994</numero>   
    6.   </foneComercial>   
    7.   <nome>Vinci Pegoretti Amorim</nome>   
    8. </pessoa>  

    Entretando, em situações onde se tem domínio sobre a estrutura a ser usada, isso não representa grandes problemas. Vai trabalhar com XML? A sugestão é: tente usar XStream. Se não for possível, tente outra. Se você entendeu como usar XStream e onde é recomendado o seu uso, a missão foi cumprida. Abraços e até a próxima.
  •  


    Fonte:www.guj.com.br - Vinci Pegoretti Amorim

    Tags: , ,

    Linguagens de programação | Java | Artigos | Linguagens de programação | Java | Artigos

    Vazamento de memória no Java

    by Anderson 17. April 2009 14:57
    Introdução

    Garbage Collector == adeus vazamento de memória? Neste pequenino artigo, vamos mostrar como o Garbage Collector não tem como perceber sempre que você não está usando alguma coisa! Isto é, vai ocorrer um "pseudo" vazamento de memória, ou como conhecemos, memory leak. Claro que esse memory leak pode ser evitado. Aqui você vai aprender a ter um poquinho mais de cautela!

    Código

    Vou direto para o exemplo mais clássico! Simulando uma pilha com array de Objects!

    Sutil. não? Imagine que você populou a sua pilha com 1000 objetos. Depois você começou a dar pop, até esvaziar! Tudo ok? Como você viu, não! Você NÃO está mais utilizando aqueles elementos da pilha, e quem esta utilizando a sua classe provavelmente também não está mais, mas mesmo assim você tem referência para aqueles 1000 objetos, enforcando a memória da sua virtual machine, e fazendo o garbage collector de bobo! Para corrigir isso, é mais que óbvio:

    Com este null, o objeto pode ser coletado! Você acha que isto só acontece com arrays, e que você esta a salvo já que usa a poderosa collections framework? Doce ilusão!

    Ok, ok, sei que você poderia usar aqui o java.util.Stack, mas o que eu queria era ilustrar que você não está salvo disto acontecer, especialmente quando mexe com coleções e arrays! Sei que este exemplo que acabo de dar, o cara teria de ser beeeem descuidado, já que o push dele não sobreescreve um elemento que já existir, ele faz pior, ele adiciona no meio!!!!! Quem conhece a ArrayList sabe disso! Portanto, muito cuidado! Se você está mexendo em uma coleção, e utilizando algo para apontar um dos objetos, pense se você precisa manter os outros na coleção!

    Conclusão

    O Garbage Collector é o seu melhor amigo, mas pode deixar você com alguns vícios. Este tipo de problema aparece em inúmeras situações. Você já pode ter implementado algo que "vazasse" memória assim, e nunca percebeu, já que era pequeno. Em uma aplicação grande, isso pode matar a sua JVM! Em um futuro próximo, estamos lançando o tutorial sobre o Garbage Collector básico. E mais para frente, um sobre Weak, Soft e Phantom references do pacote java.lang.ref. É um tópico MUITO interessante para quem gosta de saber como o java realmente funciona!


    Fonte: www.guj.com.br - Paulo Silveira

    Tags: , ,

    Linguagens de programação | Java | Artigos

    Como fazer seus visitantes comentarem seu blog

    by Anderson 16. April 2009 21:03

    Nada me deixa mais contente que visitar outros blogs e, econtrar uma referência ou até mesmo um elogio ao Professional Blogger. Porém o motivo de escrever este artigo, não apenas um simples Link Love, mas sim um exemplo claro de como levar seus leitores e\ou paraquedistas do Google diretamente para o formulário de comentário no blog.

    O Pedro Turambar do blog O Crepúsculo escreveu um artigo muito interessante sobre Dicas para entender os homens. O autor aplicou uma das técnicas que escrevi anteriormente, “se os usuários estão pesquisando sobre o Google Chrome e chegam ao seu blog, por que você não escreve um artigo sobre isso para aumentar a relevância?”. Pois, o Pedro fez mais do que isso, além de aproveitar a oportunidade que as buscas lhe ofereceram, ele ainda abordou um assunto que possui um volume de pesquisa considerável, e mais, moldou o assunto com muito humor e não precisou ser apelativo e\ou ofensivo nas palavras.

    O resultado do artigo é que ao final do texto, o seu subconsciente praticamente obriga os seus dedos para escrever um comentário, por isso não posso deixar de colocar em um nível mais detalhado, como você vai fazer seus leiores comentarem no blog?

    Toda ação tem um reação

     O usuário é seu foco, pelo menos é o que deveria, por isso, quando o assunto é humanos, trate de mexer com os sentimentos deles. No exemplo do blog O Crepúsculo, o Pedro mexeu com sensibilidade humorística das pessoas, por isso foi inevitável passar por aquele artigo e não deixar um comentário. Portanto se você quer uma reação, precisa provocar um ação.

    No artigo Afiliados por clique, eles ganham, você perde! gerei uma enorme reação ao confrontar alguns programas de afiliados, se ler o artigo e observar os comentários, irá perceber como alguns parágrafos conseguem dividir opiniões, acontece que a “polêmica” é válida, mas deve ser usada com algo chamado “respeito”, você pode fazer “barulho” na Blogosfera, mas não pode ofender ninguém.

    Quanto mais “ação” o seu artigo contém, mas comentários o seu artigo terá!

    Artigos Completos não são os melhores

    Algumas vezes leio artigos tão completos na blogosfera que, é praticamente impossível escrever um comentário para tal. Por mais que você queira apresentar um Conteúdo de Qualidade, mesmo assim não pode esquecer que quantidade não é qualidade, recomendo que você divida artigos grandes em várias partes, neste caso você fará que seus leitores retornem ao blog para ler a continuação do artigo, isso se eles não assinarem os feeds.

    Outro efeito colateral dos artigos completos é sentimento de cansaço que os usuários sentem ao ler aquele artigo com mais várias linhas e um milhão de parágrafos, é incrível o fato de muitos bloggers esquecerem que os buscadores analisam “palavras-chave” ao invés de “artigos-chave”, a relevância custa muito menos do que muitos imaginam, para provar isso, é só digitar imposto sobre férias no Google e veja como consegui relevância em um assunto totalmente diferente do blog.

    Seu artigo é uma pergunta?

    Os usuários precisam ter liberdade para analizar, duvidar, gostar e até criticar o seu artigo, por isso você precia escrever de forma que esses espaços sejam evidentes. As vezes é necessário gerar dúvida, apresentar dois pontos diferentes para que os usuários possam se identificar com uma ou outra afirmação e então decida comentar sobre aquilo.

    Para finalizar, uma das maneiras mais interessantes de abrir espaço para os usuários é realizar perguntas, principalmente no final do artigo, para que eles entendam que o artigo foi concluído, mas existem um caminho para eles complementarem o artigo.

    E você, sabe outra forma de aumentar o número de comentários do blog? 


    Fonte:http://www.professionalblogger.com.br

    Tags:

    Geral

    Aplicativo Google para legendar vídeos

    by Anderson 16. April 2009 20:13

    O Google liberou o acesso a um aplicativo online, ainda em fase beta, que permite colocar legendas em cima de vídeos postados no YouTube.

    Das 13 horas de vídeo que o serviço recebe em upload por minuto, a maior parte tem áudio em inglês. Há ainda um volume crescente de vídeos produzidos num idioma e assistido por gente que fala outra língua.

    De acordo com o blog do YouTube, ferramentas para legendar vídeos disponíveis na web muitas vezes esbarram em problemas de compatibilidade com diferentes formatos de vídeo e de arquivos de texto. A proposta do CaptionTube é tornar-se um

    a espécie de “editor de legendas” oficial para vídeos postados no YouTube.

    Para usar o editor, é necessário ter uma conta do Google. O editor suporta dezenas de línguas e exporta os arquivos gerados direto para a conta do usuário no YouTube.


    Fonte:http://info.abril.com.br

    HTML5 a nova versão da web

    by Anderson 16. April 2009 19:58

    Quem acessa a internet desde seu início comercial – meados dos anos 90 – acompanhou a evolução da rede mundial em diversos aspectos. Um dos pontos que mais sofreu mutações foi a interface: de páginas estáticas e meramente informativas, até interações complexas permitidas por meio de tecnologias como o Ajax. Por trás de todo esse desenvolvimento, está uma linguagem que poucos vêem, mas que é a base de um mundo de páginas da web: o HTML, casamento entre os padrões HyTime e SGML, que surgiu no início dos anos 90.

    Depois de mais de dez anos do lançamento da última versão da linguagem, o HTML 4, o Web Hypertext Application Technology Working Group está dando os últimos passos para anunciar a tão esperada versão 5. A último draft foi anunciado no início do ano e as cerca de 500 empresas que participam do grupo devem enviar suas correções e sugestões até o final de junho de 2009. A partir daí, cria-se o padrão de fato para que aplicações e browsers possam se adequar às novas funcionalidades.

    Novas funções
    “A ideia é que ele seja liberado em 2010. O principal destaque do HTML 5 é a possibilidade de agregar no código comando para áudio e vídeo”, afirma Vagner Diniz, gerente geral do W3C Escritório Brasil, consórcio que define os padrões técnicos a serem utilizados na web. São comandos específicos no lugar das tags quebra-galhos usadas hoje em dia. As famosas object e embed poderão ser substituídas pelas etiquetas e , para inclusão dos respectivos objetos multimídia.

    As novas tags trazem funções interessantes de maneira nativa, excluindo a necessidade de embutir elementos externos nas páginas. Funções obtidas com o uso de Ajax, como os movimentos de arrastar-e-soltar itens de uma página, poderão ser chamadas direto do código HTML. “O Javascript faz referência a elementos do HTML. Como o HTML terá novos elementos, então o Ajax também será aprimorado”, afirma Carlos Ceccone, analista de projetos do W3C.

    Aplicações baseadas na web também serão mais ágeis, pois menos dados serão requisitados de servidores. O HTML 5 inclui a possibilidade de inserir APIs dentro do código. O acesso local às informações facilitará funções de cache, busca e o acesso off-line de serviços da web. O plugin Google Gears, por exemplo, já é compatível com HTML 5, assim como o Adobe Air. Mas o grande burburinho começou após a apresentação do novo Gmail para dispostivos móveis que já utiliza recursos do HTML5, como pode ser visto na apresentação do VP de engenharia do Google, Vic gundotra.

    Diniz também atenta para a limpeza do código. Uma mesma página escrita em HTML 5 será bem mais simples do que a em HTML 4. Para o desenvolvedor, ficará muito mais simples de programar. É possível ver uma comparação de uma página de um blog escrita nas duas versões da linguagem no site Hobo Web.

    Outra novidade é a incorporação de funcionalidades de tecnologias para gráficos dinâmicos, como o Flash e o Silverlight. Será possível criar animações com gráficos vetoriais diretamente no código, com o uso da tag <canvas&gt. A web semântica também começa a aparecer no HTML 5 – em vez de enxergar um elemento título, legenda ou parágrafo, a linguagem conseguirá interpretar o conteúdo que está naquela caixa de texto.

    Navegadores compatíveis
    Mas não basta o padrão HTML chegar em sua versão 5 e os browsers não se adequerem para conseguir a renderização completa das novas funcionalidades. A página na Wikipedia lista não só as novidades do HTML 5, como mostra qual ferramenta já faz a renderização adequada das novidades.

    Cada browser tem seu engine ou adota um já existente. O Internet Explorer, inclusive na recente versão 8, utiliza o Trident. O Gecko, da fundação Mozilla, é utilizado pelo browser Firefox, entre outros; o WebKit, desenvolvido pela Apple a partir do engine de código aberto KHTML, é usado no Safári, no Google Chrome e nos celulares Nokia. Já o Presto é a ferramenta do Opera.

    O W3C disponibiliza regurlarmente um estudo com comparações entre HTML 4 e 5, na medida em que a recomendação HTML 5 avança.


    Fonte:http://info.abril.com.br

    Tags: , , , , , , , , ,

    Geral | Geral

    Anatel regulamenta internet banda larga pela rede elétrica

    by Anderson 16. April 2009 19:01

    RIO - A internet de banda larga, com alta velocidade, é um dos grandes sonhos de todo internauta. O problema é que ela ainda é cara e não está disponível em todos os lugares. Nesta segunda-feira, no entanto, esse sonho ficou mais próximo da realidade com a regulamentação, pela Anatel, da internet pela rede elétrica.

    O analista de sistemas Jeferson Teixeira depende da internet para trabalhar, mas desde que se mudou para a casa nova em São Gonçalo, há três meses, não conseguiu ter o serviço de banda larga. E se houvesse internet na tomada da energia elétrica?

    - Eu acho que seria a solução, eu poderia colocar em qualquer parte da casa.

    O sistema já existe e funciona mais ou menos como uma TV a cabo. A empresa que fornece o serviço de internet libera o sinal para rede de energia elétrica. Esse sinal viaja pelos fios até a casa do usuário. Lá ele vai precisar de um aparelho, um modem, ligado a qualquer tomada da casa que vai permitir o acesso á internet rápida.

    No Brasil o sistema já está sendo testado em Barreirinhas no Maranhão, em Goiânia, São Paulo, Santo Antônio da Platina no Paraná e em Porto Alegre.

    O internauta brasileiro vai ter que esperar um pouco mais essa nova internet. Ela só vai estar disponível depois de um acordo entre as empresas de telecomunicações e as concessionárias de energia elétrica. A Aneel (Agência Nacional de Energia Elétrica) já esta estudando o assunto para criar as regras de exploração do serviço.

    Em São Paulo, o Engenheiro Clinton Namur participa dos testes da internet via rede elétrica. Ele acessa a web de onde quiser, de qualquer parte da casa que tenha uma tomada.

    - Se eu quero assistir um joguinho, por exemplo, eu assisto aqui, se eu quero ler como se fosse um livro, eu levo para o quarto - diz.

    Clinton diz que a velocidade ficou bem mais rápida.

    - Eu achei fantástica essa idéia, que eu abracei desde o começo e acho que para mim está atendendo perfeitamente, maravilhoso - complementa.


    Fonte:http://oglobo.globo.com

     

    Tags: ,

    Notícias

    Visual Basic .NET

    by Anderson 15. April 2009 16:30

    Visual Basic.NET é uma linguagem de programação totalmente orientada a objetos e com suporte total a UML, criada pela Microsoft e distribuída com o Visual Studio .NET (Versão seguinte ao Visual Basic 6.0), embora hoje já haja o Visual Basic 2008.

    O Visual Basic.NET é um produto extremamente diferente do antigo Visual Basic 6.0, não podendo ser considerada uma versão seguinte. Não apenas a maneira de programar foi alterada, mas todo conceito de orientação a objetos trouxe poder para a linguagem. A Microsoft simplesmente descontinuou o antigo Visual Basic 6.0 tornando o produto parecido com as demais linguagens do Visual Studio, parecido em questões de recursos e portabilidade pois o Visual Basic.NET ainda é muito diferentes de liguagens como o Visual C++, C#, etc. Porém esta nova versão aproximou o Visual Basic.NET das grandes linguagens de programação, aumentando a aceitação dos programadores Java e até mesmo C++, embora programadores Java caso tenham que migrar para plataforma Microsoft preferem o C#. Apesar da linguagem ser parecida com o antigo Visual Basic 6.0 a migração destes programadores para a nova plataforma e utilização do Visual Basic.NET é mais fácil para programadores que utilizam linguagens orientada a objeto por causa da grande diferença. Os programadores do antigo Visual Basic 6.0 acostumados com a orientação a eventos encontram dificuldades para utilizar o Visual Basic.NET.

    Sintaxe VB.NET e VB

    O seguinte exemplo simples demonstra a similaridade entre sintaxe VB.NET e VB. Ambos os exemplos aparecer uma caixa de mensagem dizendo "Olá, Mundo" com um botão OK.

    Clássico VB exemplo:

           Private Sub Command1_Click () MsgBox "Olá, Mundo" End Sub 

    VB.NET Um exemplo:

           Private Sub Button1_Click (ByVal remetente Como System. Object, ByVal e Como System.
    EventArgs) _ Handles Button1. Clique MessageBox. Show ( "Olá, Mundo") 'MsgBox
    "Olá, Mundo") pode ser usado como bem End Sub

    Note que todas as chamadas procedimento deve ser feita com parêntesis em VB.NET, enquanto, no VB6 houve diferentes convenções para funções (parênteses necessário) e subcategorias (sem parênteses permitida, a não ser chamada utilizando a palavra-chave Call). Além disso, note que os nomes comando1 e Button1 não são obrigatórias. No entanto, esses são nomes padrão para um botão de comando VB6 e VB.NET, respectivamente. Existe uma função chamada MsgBox no namespace Microsoft.VisualBasic, que pode ser usado do mesmo modo que a função correspondente no VB6. Existe uma controvérsia sobre qual função para usar como uma melhor prática (não apenas restrito a mensagem mostrando caixas, mas também a outras características do namespace Microsoft.VisualBasic). Alguns programadores preferem e defendem que, usando linguagem de código características específicas torna mais legíveis (por exemplo, utilizando int (C #) ou Integer (VB.NET) em vez de System.Int32). O exemplo a seguir mostra uma diferença entre VB6 e VB.NET. Ambos os exemplos descarregar a janela ativa. Clássico VB exemplo:

          Private Sub cmdClose_Click () Esvaziar Me End Sub

    VB.NET Um exemplo:

          Private Sub btnClose_Click (ByVal remetente Como System. Object, ByVal e Como System.
    EventArgs) _ Handles btnClose. Clique em mim. Close () End Sub

    Nota o "cmd" sendo substituídos com o prefixo 'btn' prefixo, conformes à nova convenção anteriormente mencionados. Os seguintes são equivalentes: VB6 Exemplo:

           Private Sub Timer1_Timer () mim. Altura = Me. Altura - 1 End Sub

    VB.NET exemplo:

           Private Sub Timer1_Tick (ByVal remetente Como System. Object, ByVal e Como System.
    EventArgs) _ Handles Timer1. Tick mim. Altura -= 1 End Sub

    Limitações

    - As versões anteriores do VB tinham várias limitações no código:

    - Nº de variáveis usadas no mesmo código.

    - Nº de arquivos abertos no mesmo código.

    - Nº de janelas abertas no mesmo código, dentre outras.

    No VB .NET existem limitações físicas, segundo a Microsoft, mas são tão altas que não há chances de serem atingidas pelo desenvolvedor, a ponto de não serem nem documentadas oficialmente.

    Arquivos Gerados

    Arquivos com extensão .vb e outros que podem ser incluídos no projeto, tais como ASP (extensão .aspx), XML (extensão .xml), arquivos HTML (extensão .html), etc. Não há distinção de arquivos de classes, janelas, controles e outros, pois todos terão a extensão .vb.


    Fonte: Wikipédia

    Tags: , ,

    Visual Basic

    Visual Basic

    by Anderson 15. April 2009 16:22

    O Visual Basic é uma linguagem de programação produzida pela empresa Microsoft, e é parte integrante do pacote Microsoft Visual Studio. Sua versão mais recente faz parte do pacote Visual Studio .NET, voltada para aplicações .Net. Sua versão anterior fez parte do Microsoft Visual Studio 6.0, ainda muito utilizado atualmente.

    Um aperfeiçoamento do BASIC, a linguagem é dirigida por eventos (event driven), e possui também um ambiente de desenvolvimento integrado (IDE - Integrated Development Environment) totalmente gráfico, facilitando enormemente a construção da interface das aplicações (GUI - Graphical User Interface), daí o nome "Visual". Em suas primeiras versões, o Visual Basic não permitia acesso a bancos de dados, sendo portanto voltado apenas para iniciantes, mas devido ao sucesso entre as empresas - que faziam uso de componentes adicionais fabricados por terceiros para acesso a dados - a linguagem logo adotou tecnologias como DAO, RDO, e ADO, também da Microsoft, permitindo fácil acesso a bases de dados. Mais tarde foi adicionada também a possibilidade de criação de controles ActiveX, e, com a chegada do Visual Studio .NET, o Visual Basic - que era pseudo-orientada a objetos - tornou-se uma linguagem totalmente orientada a objetos (OO).

    Existem várias linguagens derivadas, entre as quais:

    • VBScript é a linguagem default (por definição) para Active Server Pages e pode ser usada no scripting (programação) de Windows e de páginas da Internet.
    • Visual Basic .NET é a nova versão do Visual Basic, que é parte integrante da plataforma Microsoft .NET. Essa versão nao é totalmente compatível com as versões anteriores, mas existe a possibilidade de converter códigos antigos, que após uma revisão podem ser usados no Visual Basic .NET. Para fins de comparação, essa linguagem usa o paradigma de Orientação a Objeto e você encontrará muita semelhança com o Java.
    • Visual Basic for Applications (VBA) permite a criação de macros, e está integrado em todos os produtos da família de produtos Microsoft Office, e também em outros produtos de terceiros tais como Visio (agora pertencente à Microsoft) e WordPerfect Office 2002.

     

    Sintaxe Modificada

    A partir de 2003 a sintaxe do Visual Basic mudou em vários aspéctos, apesar de ter o mesmo padrão, em vários objetos, métodos e funções como por exemplo a maneira de acesso a arquivos ficou voltada as liguagens recentes da Microsoft como ASP, ASP.NET.

    Exemplo de um programa em Visual Basic:


    Nesse exemplo, gera-se parábolas de tamanho e cores aleatórias, gerando um efeito psicodélico. A velocidade de mudança das cores pode ser alterada, mudando-se a propriedade "interval" em milissegundos.

      Private Sub DrawShape()
    Dim X As Single
    Dim Y As Single
    Dim tRadianos As Single
    Dim R As Single
    Dim A As Single
    Dim Teta As Single

      Call Randomize
    Scale (3, -3)-(-3, 3) 'Muda a Escala
    tRadianos = 25 * Atn(1) 'Círculo
    ForeColor = QBColor(Rnd() * 15) 'Muda a cor da parábola aleatóriamente

    A = 3 * Rnd() 'Aleatório usado

    For Teta = 0 To tRadianos Step 0.01 'Laço de repetição for - executa todos os comandos entre
    'For e Next um limite inicial e final definido pelo programador
    R = A * Sin(10 * Teta) 'Efeito do raio aleatório
    X = R * Cos(Teta) 'Coordenada X
    Y = R * Sin(Teta) 'Coordenada y
    PSet (X, Y)
    Next Teta

    End Sub


    Private Sub tmrTimer_Timer()
    Call DrawShape 'Evento que chama a função de tempos em tempos
    End Sub

    Tags: , ,

    Visual Basic

    Ruby on Rails - História, Características

    by Anderson 15. April 2009 14:31

    Ruby é uma Linguagem de programação interpretada, com tipagem dinâmica e forte, orientada a objetos e, com várias semelhanças com Perl, Python e SmallTalk.

    Projetada tanto para a programação em grande escala quanto para codificação rápida, tem um suporte a orientação a objetos simples e prático. A linguagem foi criada pelo japonês Yukihiro Matsumoto, que aproveitou as melhores idéias das outras linguagens da época.

    Esta linguagem possui vastos repositórios de bibliotecas disponíveis em sites como Ruby Forge e Ruby Application Archive (RAA). Existe, ainda, uma ferramenta bastante útil para instalação de bibliotecas, chamada Ruby Gems, o software mais famoso desenvolvido em Ruby é o Ruby on Rails.

     

    História


    Ruby se tornou reconhecida no meio especializado desde que Dave Thomas, conhecido como um dos "Programadores Pragmáticos", adotou-o como uma de suas linguagens preferidas e acabou por escrever um dos mais completos livros sobre a linguagem, o Programming Ruby. Com o advento desta publicação, a linguagem passou a contar com uma boa fonte de iniciação e referência em inglês, aumentando consequentemente o número de adeptos da linguagem no Ocidente.

    Ultimamente, devido a grande exposição de um framework web feito em Ruby, o Ruby on Rails desenvolvido por David Heinemeier Hansson, a linguagem tem sido foco da mídia especializada justamente pela sua praticidade.

    Esta mesma praticidade inclusive é um dos conceitos básicos desta linguagem. É possível fazer algoritmos que resolvam seus problemas, não necessitando se preocupar com as limitações da linguagem ou do interpretador.

    Características


    Para manter a praticidade, a linguagem possui algumas características interessantes:

    • A sintaxe é enxuta, quase não havendo necessidade de colchetes e outros caracteres.
    • Todas as variáveis são objetos, onde até os "tipos primitivos" (tais como inteiro, real, entre outros) são classes.
    • Estão disponíveis diversos métodos de geração de código em tempo real, como os "attribute accessors".
    • Através do Ruby Gems, é possível instalar e atualizar bibliotecas com uma linha de comando, de maneira similar ao APT do Debian Linux.
    • Code blocks (blocos de código), ajudam o programador a passar um trecho de instruções para um método. A idéia é semelhante aos "callbacks" do Java, mas de uma forma extremamente simples e bem implementada.
    • Mixins, uma forma de emular a herança múltipla, sem cair nos seus problemas.
    • Tipagem dinâmica, mas forte. Isso significa que todas as variáveis devem ter um tipo (fazer parte de uma classe), mas a classe pode ser alterada dinamicamente. Os "atalhos" citados acima, por exemplo, se beneficiam da tipagem dinâmica para criar os métodos de acesso/alteração das propriedades.



    Ruby está disponível para diversas plataformas, como Microsoft Windows, .NET, Linux, Solaris e Mac OS X, além de também ser executável em cima da máquina virtual do Java (através do JRuby).

    Orientação a objetos


    Muitos programadores consideram o Ruby uma linguagem de programação totalmente orientada a objetos (de maneira similar ao SmallTalk), porém devido a inexistência de conceitos padrões para especificação de linguagens OO, isto não pode ser provado.

    Ruby não possui tipos primitivos, mas sim todos tipos são classes, assim como todas variáveis são objetos. Como exemplo, conjunto de caracteres é uma instância da classe String, inteiro é da Fixnum e matriz é Array.

    Um conceito interessante também é que a maioria dos operadores binários e unários são, na realidade, métodos. Ou seja, podem ser alterados da mesma forma que os operadores em C++. Exemplo:

    class MeuNumero < Fixnum
      def +(numero)
        42
      end
    end


    numero = MeuNumero.new(1)
    # Repare como um operador de soma é um método em ruby, ao contrário de outras linguagens
    puts numero + 2 # 1+2 = 42 ??? Sim, sobrescrevemos o método de soma para retornar 42 sempre.

    Quem está por trás do Ruby?


    Ainda hoje, Matz é o responsável por todas as decisões não-consensuais do Ruby. Ou seja, qualquer divergência quanto à implementação de uma nova funcionalidade é resolvida pelo "ditador benevolente". Apesar desta "dependência", a comunidade é forte a ponto de sobreviver "caso o Matz seja atropelado por um ônibus espacial". Existem pessoas que estão tão inteiradas com o código quanto o próprio Matz. Diferentemente de outras tecnologias opensource, não existe uma empresa por trás de suas operações, bancando os custos. O projeto sobrevive de doações feitas pelos usuários satisfeitos e por empresas que conseguiram aumentar sua produtividade utilizando Ruby.

    Links externos

     



    Fonte: Wikipédia

    Tags: , , , ,

    Ruby on Rails

    Programação Orientada a Objetos usando Java

    by Anderson 14. April 2009 11:41

    Pessoal segue o Link

    http://www.argonavis.com.br/cursos/java/j100/index.html

    Tem muita coisa boa para quem tem interesse.

    Tags: , , ,

    Linguagens de programação | Java

    Curso Básico de C# - parte 1

    by Anderson 14. April 2009 10:51

    Introdução

    Este curso destina-se aqueles que desejam iniciar o aprendizado na linguagem C# desenvolvida especialmente para a plataforma .NET. Ao acompanhar este artigo você aprenderá a criar pequenos aplicativos para desktop. Veremos aqui os conceitos básicos da linguagem C# e a IDE Visual Studio, para um melhor aproveitamento do .NET Framework. Para um melhor entendimento dos artigos que se seguem, é importante conhecimento em lógica de programação.

    A linguagem

    A linguagem de programação C# (lê-se C Sharp) surge como uma evolução da linguagem "C" e destina-se a aplicações utilizando o .NET Framework, utilizando os novos conceitos de Orientação a Objetos (OO).

    O .NET Framework

    Basicamente definido como um componente integral do Windows responsável por fornecer os serviços necessários, para construção e carregamento de aplicações para Windows e Web.

    O . NET Framework utiliza o CLR (Common Language Run Time) sendo uma base para o .NET Framework, disponibilizando:

    • Interoperabilidade de linguagem;
    • Suporte de versões aprimorado;
    • Segurança aprimorada;
    • Garbage Colection.



    Também utiliza o Framework Class Library (Biblioteca de Classes) e tem como agente um serviço de Run Time que gerencia o código durante a execução do aplicativo.

    Definição de variáveis

    Veremos aqui os tipos de variáveis mais utilizadas no desenvolvimento de softwares. Variáveis são definidas como locais de armazenamento temporário de diferentes tipos como: números, palavras, datas e outros, que podem receber resultados de cálculos ou entrada de dados pelo usuário.

    As variáveis devem receber um nome único (dentro de um escopo), para que seja usado como referência ao decorrer do desenvolvimento e deve ter um nome curto e de fácil memorização, não sendo recomendado utilizar variáveis com o mesmo nome diferenciando-as somente por maiúsculas e minúsculas.

    Exemplo:
    nomecliente
    nomeCliente

        
    Isso pode causar confusão para o desenvolvedor, ou seja, usualmente as variáveis são escritas com a primeira letra minúscula e se tiver mais de uma palavra a segunda palavra com a primeira letra maiúscula.

    Exemplo:
    nomeCliente
    sobrenomeCliente
    idadeCliente

        
    Outra prática muito utilizada hoje pelas empresas para um melhor entendimento das variáveis e também para facilitar a manutenção do seu código é no início de cada variável inserir letras minúsculas indicando o tipo da variável que você declarou no inicio do código.

    Exemplo:
    strNomeCliente (variável do tipo string)
    intIdadeCliente (variável do tipo int)

        
    Veja abaixo as variáveis mais utilizadas no desenvolvimento de softwares em C#:

    Descrição dos tipos de dados:
    int = Números inteiros (32 bits por padrão)
    long = Números inteiros (64 bits por padrão)
    float = Números de ponto flutuante (32 bits por padrão)
    double = Números de ponto flutuante (63 bits por padrão)
    decimal = Valores monetários (128 bits por padrão)
    string = Para seqüências de caracteres (16 bits por caractere)
    char = Para somente um caractere (16 bits)
    bool = Valor booleano que pode ser (true) ou (false)

    Para atribuição de valores as variáveis citadas acima você deve utilizar o sinal de (=) que se trata de um operador lógico que veremos nas próximas aulas.

    Exemplos de uso das variáveis:
    int intIdade = 10;
    bool booFumante = false;
    decimal decPagamento = 1000;
    double dblComissão = 1.27;
    char chrSexo = M;
    string strNome = "Einstein";

        
    Ao término da declaração de cada variável deve-se usar (;) para que o Visual Studio entenda que ali se encerra a declaração da variável.

    Conclusão

    Este é o primeiro de uma série de artigos para iniciantes da linguagem C# deixando aberto a idéias e dúvidas através do e-mail: carlos.andrade@fcamara.com.br.
    No próximo artigo iremos aprender sobre operadores lógicos e sua utilização.
    Criado por: Carlos Andrade
    REF:http://www.oficinadanet.com.br

    Veja parte 2 em Curso Básico de C# - Parte 2 - Operadores

    Tags: , ,

    Linguagens de programação | C Sharp

    Componente Login do Visual Studio com Firebird

    by Anderson 4. April 2009 09:32

    Duas classes são nescessarias:

    FirebirdSql.Web.Providers.FbMembershipProvider e FirebirdSql.Web.Providers.FbProfileProvider

    quem estarão presentes na biblioteca do firebird.

    Depois será nescessário ter a estrutura do banco de dados:

    Baixe aqui o Script script.sql (50,91 kb)

    Configure o Web.Config para receber a nova estrutura:

    ...
    <membership defaultProvider="FireBirdMembershipProvider">

        <providers>

            <clear/>

            <add name="FireBirdMembershipProvider" connectionStringName="AspNetSecurity" applicationName="/" type="FirebirdSql.Web.Providers.FbMembershipProvider" passwordFormat="Clear"/>


        </providers>


    </membership>


    <profile defaultProvider="FireBirdProfileProvider" enabled="true">

        <properties>

            <add name="Age" type="Int32"/>

            <add name="Country" type="String"/>

        </properties>

        <providers>

            <clear/>

            <add name="FireBirdProfileProvider" connectionStringName="AspNetSecurity" applicationName="/" type="FirebirdSql.Web.Providers.FbProfileProvider"/>

        </providers>

    </profile>

    <roleManager defaultProvider="FireBirdRoleProvider" enabled="true">

        <providers>

            <clear/>

            <add name="FireBirdRoleProvider" connectionStringName="AspNetSecurity" applicationName="/" type="FirebirdSql.Web.Providers.FbRoleProvider"/>

        </providers>

    </roleManager> 

    ...
    Acho que é isso pessoal, qualquer dúvida deixe uma mensagem ai que respondo.

    Plugin Suporte Struts 2 para NetBeans IDE - Support for Struts 2 in NetBeans IDE

    by Anderson 3. April 2009 21:13

    Plugins Netbeans para suporte ao Framework Struts 2

    Support for Struts 2 in NetBeans IDE

    NetBeans Logo Struts2 Logo

    The main goal of this project is create support for Struts2 in NetBeans IDE.

    Releases

    05/20/2007 - There is a list of possible features. Please comment, suggest new features in the forum.

    02/07/2007 - The initial source code is available now. There is not a binary distro yet. The functionality is limited and basically you can only extend a new web project with the library and setup for Struts 2 framework.

    03/28/2008 - A binary distro is now available for testing. Installation instructions for the same can be found here. Please note that this is not an official release and should only be used by people interested in testing the module before it is released.

    06/23/2008 - The plugin for supporting Struts2 in NetBeans 6.1  is released. And the binary distro is available over here. The feature list is available over here.



    Retirado do Site do Projeto:
    https://nbstruts2support.dev.java.net/

     

     

    Tags: ,

    Ferramentas | Plugins

    Comunidade Colégio Dom Bosco Campo Mourão

    by Anderson 30. March 2009 22:11

    Comunidade do Colégio onde tive o prazer de estudar, a uns 10 anos atrás em Campo Mourão no Paraná.

    Segue o link abaixo:


    http://www.orkut.com.br/Main#Community.aspx?cmm=2480144

     

     

    Musicadas e músicas

    by Anderson 21. December 2008 05:54

    Qual o significado e música e musicada. Alguém sabe?

    Segue o link que pode ajudar.

    www.musicada.com.br

    Tags:

    Musicadas e músicas

    by Anderson 21. December 2008 05:54

    Qual o significado e música e musicada. Alguém sabe?

    Segue o link que pode ajudar.

    www.musicada.com.br

    Tags:

    HANDS OF LOVE - DANCE TO DANCE

    by Anderson 30. September 2000 05:30

    Tags: , ,

    Vídeos

    Powered by BlogEngine.NET 1.5.0.7
    Theme by Mads Kristensen

    Compartilhe aqui!

    .


    Compartilhe

    Anderson Damasio

    Desenvolvedor Java e .Net C# atuando na área desde 2004.

    Tags para Pesquisa

    Seja um membro