blob: c70d00cc755b2142b54a9cced6cb1f8b816c1b55 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= Tutorial de E-commerce do NetBeans: Introdução
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Tutorial de E-commerce do NetBeans: Introdução - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Tutorial de E-commerce do NetBeans: Introdução
1. *Introdução*
2. link:design.html[+Criando a Aplicação+]
3. link:setup-dev-environ.html[+Configurando o Ambiente de Desenvolvimento+]
4. link:data-model.html[+Criando o Modelo de Dados+]
5. link:page-views-controller.html[+Preparando as Views de Página e o Servlet do Controlador+]
6. link:connect-db.html[+Conectando a Aplicação ao Banco de Dados+]
7. link:entity-session.html[+Adicionando Classes de Entidades e Beans de Sessão+]
8. link:manage-sessions.html[+Gerenciando Sessões+]
9. link:transaction.html[+Integrando a Lógica de Negócios Transacional+]
10. link:language.html[+Adicionando o Suporte a Idioma+]
11. link:security.html[+Protegendo a Aplicação+]
12. link:test-profile.html[+Testando e Criando Perfis+]
13. link:conclusion.html[+Conclusão+]
image::../../../../images_www/articles/68/netbeans-stamp-68-69.png[title="O conteúdo desta página se aplica ao NetBeans IDE, versões e 6.8 e 6.9"]
Bem-Vindo ao Tutorial do NetBeans E-commerce. Neste tutorial de várias partes, você aprenderá a criar uma simples, porém eficaz, aplicação de e-commerce que demonstrará várias funcionalidades importantes do desenvolvimento Java Web e EE. Ao fazer isso, você se familiarizará com o NetBeans IDE e poderá aplicá-lo em seus próprios projetos de desenvolvimento.
Ao se dedicar a aprender o IDE, você se tornará mais eficiente e versátil como desenvolvedor. Enquanto avança pelas unidades do tutorial, você aprenderá a usar da melhor forma o recursos e ferramentas do IDE. Entre eles se incluem:
* *Suporte do editor a diferentes idiomas:* destaque de sintaxe, funcionalidade autocompletar código, suporte à documentação de API, atalhos de teclado, recursos de refatoração e modelos de códigos
* *Sistema Windows:* janelas de Projetos, Arquivos e Serviços, janela de Tarefas, janela de Javadoc, monitor HTTP, Navegador e Paleta.
* *Integração com outros serviços: *implantação automática em um servidor registrado, conectividade com banco de dados, interoperabilidade do browser
* *Ferramentas de desenvolvimento:* Depurador, Profiler, Monitor do Servidor HTTP, suporte ao Histórico Local e um Visualizador Gráfico de Diferenciação.
O tutorial é apresentado em módulos, com cada unidade priorizando conceitos, tecnologias e funcionalidades específicos do IDE. Você pode acompanhar, com sucesso, uma unidade do tutorial sozinha, usando as instruções de configuração e os snapshots da aplicação fornecidos (da Unidade 5 em diante). Entretanto, você aproveitará mais se seguir todas as unidades consecutivamente, do início ao fim. Isso também ajudará a ilustrar o processo de desenvolvimento.
A unidade 3, link:setup-dev-environ.html[+Configurando o Ambiente de Desenvolvimento+], apresentará o NetBeans IDE. Lá, você criará um projeto Java Web que será a base para o trabalho realizado nas unidades posteriores do tutorial. Na unidade 4, link:data-model.html[+Criando o Modelo de Dados+], você trabalhará principalmente com o link:http://wb.mysql.com/[+MySQL WorkBench+], uma ferramenta de design visual de banco de dados, para criar um modelo de dados para a aplicação. Cada unidade seguinte do tutorial fornecerá um _snapshot do projeto_ que corresponderá ao estado inicial do projeto naquela unidade específica. Isso permite que você trabalhe em uma única unidade do tutorial, fora do contexto geral do Tutorial de E-commerce. Para usar esses snapshots, faça dowload deles para o computador e abra-os no IDE usando o assistente Abrir Projeto (Ctrl-Shift-O; ⌘-Shift-O no Mac).
Você pode exibir uma demonstração ao vivo da aplicação construída neste tutorial: link:http://dot.netbeans.org:8080/AffableBean/[+Aplicação de Demonstração do Tutorial do NetBeans E-commerce+]
O restante desta unidade aborda algumas informações relevantes ao tutorial, bem como os conceitos básicos necessários para o desenvolvimento Java EE. Certifique-se de entender os conceitos explicados abaixo, antes de prosseguir com o desenvolvimento.
[[about]]
== Sobre este Tutorial
=== Para Quem é este Tutorial
O conteúdo deste tutorial se destina a quatro tipos de pessoas:
* Os desenvolvedores Java interessados em ampliar seu conjunto de habilidades para incluir tecnologias Java EE.
* Novatos em NetBeans IDE que buscam experimentar o ambiente de desenvolvimento.
* Desenvolvedores Web que queiram ver como o Java se compara a outras tecnologias baseadas na Web.
* Estudantes que querem aprender o básico sobre uma aplicação simples de e-commerce, e como seu desenvolvimento pode ser aplicado a um caso da vida real.
Caso você se encaixe em uma dessas categorias, este tutorial será útil para você. Dependendo do que você já conhece e sabe, talvez ache certas unidades deste tutorial mais difíceis do que outras. Entender como as tecnologias funcionam é a chave para aproveitar o IDE para seus objetivos. Sendo assim, caso esteja realmente interessado em aprender as tecnologias envolvidas, você poderá descobrir que este tutorial funciona melhor quando em conjunto com o link:http://download.oracle.com/docs/cd/E17410_01/javaee/6/tutorial/doc/[+Tutorial Java EE+]. Em cada unidade do tutorial, use, da melhor maneira possível, os links fornecidos em áreas relevantes no Tutorial Java EE, bem como em outros recursos úteis.
=== O que este Tutorial Abrange?
A aplicação que você desenvolverá neste tutorial envolve vários conceitos, tecnologias e componentes de ferramentas:
* *Conceitos*
* Desenvolvimento de front-end
* Estrutura do projeto de aplicação Web
* Modelagem de dados
* Conectividade de banco de dados
* Mapeamento relacional de objeto
* Gerenciamento de sessão
* Lógica de negócio transacional
* Validação do lado do servidor e do cliente
* Localização
* Segurança da aplicação Web
* Padrões de design, incluindo link:http://java.sun.com/blueprints/patterns/MVC.html[+Controlador de View de Modelo+] (MVC) e link:http://java.sun.com/blueprints/patterns/SessionFacade.html[+Fachada de Sessão+]
* *Tecnologias*
* HTML, CSS, e tecnologias JavaScript
* Tecnologias Servlet e Páginas JavaServer (JSP)
* Tecnologia Enteprise JavaBeans (EJB)
* Java Persistence API (JPA)
* Biblioteca de Tags JavaServer Pages Standard (JSTL)
* Java Database Connectivity (JDBC)
* *Ferramentas de Desenvolvimento*
* NetBeans IDE
* GlassFish, um servidor de aplicações Java EE
* MySQL, um servidor de gerenciamento de banco de dados relacional (RDBMS)
* MySQL WorkBench, uma ferramenta de design de banco de dados visual
[[whatEcommerce]]
== O que é uma Aplicação de E-commerce?
O termo _e-commerce_, como conhecido hoje, se refere à compra e venda de produtos ou serviços pela Internet. Um exemplo é a link:http://www.amazon.com/[+Amazon+], que fornece serviços de venda on-line em várias categorias de produtos, como livros, música e eletrônicos. Essa forma de e-commerce é conhecida como varejo eletrônico, ou _e-tailing_ e costuma envolver o transporte dos itens físicos. Também é conhecido como _empresa-a-cliente_, ou B2C. Outras formas bem conhecidas incluem:
* *Cliente-a-cliente (C2C): *Transações que acontecem entre indivíduos, normalmente em um site terceirizado, como um leilão on-line. Um exemplo típico de comércio C2C é o link:http://www.ebay.com/[+eBay+].
* *Empresa-a-empresa (B2B): *Comércio entre empresas, por exemplo, entre varejista e atacadista, ou entre atacadista e fabricante.
* *Empresa-a-governo (B2G): *Comércio entre empresas e agências governamentais.
Esse tutorial prioriza o e-commerce empresa-a-cliente (B2C), e utiliza o cenário típico de uma pequena loja de varejo para criar um site que permita aos clientes comprar on-line. O software apropriado para o cenário B2C costuma ser composto por dois componentes:
1. *Frente de Loja:* O site que é acessado pelos clientes, permitindo que comprem produtos pela Internet. Os dados do catálogo da loja costumam ser mantidos em um banco de dados e as páginas que precisam desses dados são geradas dinamicamente.
2. *Console de Administração:* Uma área protegida por senha que é acessada por meio de uma conexão segura pelos funcionários da loja para fins de gerenciamento on-line. Isso costuma envolver acesso CRUD (criar, ler, atualizar, deletar) ao catálogo da loja, gerenciamento de descontos, opções de envio e de pagamento, além da análise dos pedidos dos clientes.
[[whatJava]]
== O que é Java?
Na indústria de software para computadores, o termo Java se refere à _Plataforma Java_ e à _Linguagem de Programação em Java_.
image::images/duke.png[title="Duke, a mascote Java"]
Duke, a mascote Java
=== Java Como Linguagem de Programação
A linguagem Java foi conceitualizada por link:http://en.wikipedia.org/wiki/James_Gosling[+James Gosling+], que começou a trabalhar no projeto em 1991. A linguagem foi criada com 5 princípios de design^<<footnote1,[1]>>^ em mente:
1. *Simples, Orientada a Objetos e Familiar:* A linguagem Java contém um pequeno, porém consistente, núcleo de conceitos fundamentais que podem ser aprendidos rapidamente. Ela foi modelada originalmente seguindo a então popular linguagem C++ para que os programadores pudessem migrar sem problemas para o Java. Além disso, ela adere a um paradigma _orientado a objeto_; os sistemas são compostos de objetos encapsulados que se comunicam por meio do envio de mensagens de um para o outro.
2. *Robusta e Segura:* A linguagem inclui verificação de runtime e de tempo de compilação para garantir que os erros sejam identificados rapidamente. Ela também contém funcionalidades de segurança de acesso a arquivos e à rede para que as aplicações distribuídas não sejam comprometidas por invasões ou por terem sido corrompidas.
3. *Arquitetura Neutra e Portátil:* Uma das principais vantagens do Java é sua _portabilidade_. As aplicações podem ser facilmente transferidas de uma plataforma para outra com pouquíssimas ou nenhuma modificação. O slogan Escreva uma vez, execute em qualquer lugar acompanhou a release Java 1.0 em 1995, e se refere aos benefícios entre plataformas da linguagem.
4. *Alto Desempenho:* As aplicações são executadas de maneira rápida e eficiente, devido Business-to-businessas várias funcionalidades de baixo nível, como permitir que o interpretador Java seja executado independentemente do ambiente de execução e aplicar um coletor automático de lixo para liberar a memória não usada.
5. *Interpretada, Segmentada e Dinâmica:* Com Java, o código fonte de um desenvolvedor é compilado em uma forma interpretada e intermediária, conhecida como _código de bytes_. O conjunto instrucional do código de bytes se refere à linguagem de máquina usada pela Máquina Virtual Java (JVM). Usando um interpretador adequado, essa linguagem pode ser convertida em _código nativo_ para a plataforma em que será executada. O suporte aos recursos de multithreading é oferecido principalmente pela classe `Thread`, permitindo a execução de várias tarefas simultaneamente. A linguagem e o sistema de execução são dinâmicos, de forma que as aplicações possam se adaptar às mudanças do ambiente durante a execução.
Caso deseje saber mais sobre a linguagem Java, consulte link:http://java.sun.com/docs/books/tutorial/[+Tutoriais Java+].
[[platform]]
=== Java como uma Plataforma
A Plataforma Java significa uma plataforma baseada em software que é composta de duas partes:
* *A Máquina Virtual Java (JVM)*: A JVM é um mecanismo que executa instruções geradas pelo compilador Java. A JVM pode ser considerada uma instância do Java Runtime Environment, ou JRE, e é incorporada a diversos produtos, como browsers, servidores e sistemas operacionais.
* *A Java Application Programming Interface (API)*: código pré-escrito, organizado em pacotes de tópicos semelhantes. Por exemplo: os pacotes AWT e Applet incluem classes para criação de fontes, menus e botões.
O Java Development Kit, ou JDK, se refere ao Java SE Edition, enquanto que os outros kits são chamados de SDK”, um termo genérico para kits de desenvolvimento de software”. Por exemplo, o link:http://java.sun.com/javaee/sdk/[+Java EE SDK+].^<<footnote2,[2]>>^
Você pode ver uma representação da plataforma Java ao observar o diagrama conceitual das tecnologias de componentes fornecido na link:http://download.oracle.com/javase/6/docs/index.html[+Documentação do JDK+]. Como mostrado abaixo, o diagrama é interativo, permitindo que você clique em componentes para saber mais sobre cada uma das tecnologias.
image::images/jdk-diagram.png[title="A plataforma Java representada pelo JDK"]
Como indicado pelo diagrama, o JDK inclui o Java Runtime Environment (JRE). Você solicita ao JRE a execução do software, e solicita ao JDK o desenvolvimento do software. Os dois podem ser adquiridos em link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Downloads do Java SE+].
A plataforma Java é oferecida em diversas _edições_, como link:http://java.sun.com/javase/[+Java SE+] (Standard Edition), link:http://java.sun.com/javame/index.jsp[+Java ME+] (Micro Edition) e link:http://java.sun.com/javaee/[+Java EE+] (Enterprise Edition).
=== Java EE
A Plataforma Java, Enterprise Edition (Java EE) se baseia na plataforma Java SE e fornece um conjunto de tecnologias para o desenvolvimento e a execução de aplicações portáteis, robustas, escalonáveis, confiáveis e seguras do lado do servidor.
As tecnologias EE são divididas, de forma geral, em duas categorias:
* link:http://java.sun.com/javaee/technologies/webapps/[+Tecnologias de aplicações Web+]
* link:http://java.sun.com/javaee/technologies/entapps/[+Tecnologias de aplicações do Enterprise+]
Dependendo das suas necessidades, você pode usar certas tecnologias de cada uma das categorias. Por exemplo, este tutorial usa as tecnologias web link:http://java.sun.com/products/servlet/index.jsp[+Servlet+], link:http://java.sun.com/products/jsp/[+JSP/EL+] e link:http://java.sun.com/products/jsp/jstl/[+JSTL+], além das tecnologias “enterprise” link:http://java.sun.com/products/ejb/[+EJB+] e link:http://java.sun.com/javaee/technologies/persistence.jsp[+JPA+].
O Java EE domina atualmente o mercado, especialmente no setor financeiro. O diagrama a seguir foi tirado de uma link:http://docs.google.com/viewer?a=v&q=cache:2NNYG8LtVFIJ:www.sun.com/aboutsun/media/analyst/european_fsa.pdf+european_fsa.pdf&hl=en&pid=bl&srcid=ADGEESi3vpbc32J7GzXFiqk__DvMp7_3deYe9td-HP3_QEXh77yBABi35uvL1z7ytj6o17io7_YFPnRFmhju5PQgrpgjVxt-2qXQSUh8xGUbeNP0k00dDsiq1Tl0DWJLOEH3SNubhit5&sig=AHIEtbTKL5tks3AlgEt57h4Aku_H55OXag[+pesquisa independente dos mercados europeus+], realizada em 2007.
image::images/java-ee-vs-net.png[title="O Java EE domina o mercado financeiro"]
Para obter uma comparação informal e recente entre o Java EE e o .NET, consulte a publicação do blog link:http://www.adam-bien.com/roller/abien/entry/java_ee_or_net_an[+Java EE ou .NET-Uma opinião quase imparcial+] escrita por um ilustre membro da comunidade Java EE.
=== Qual a Diferença Entre...?
Há muitas abreviações e siglas para fazer parsing. Caso você seja novo em tudo isto e ache a explicação acima um tanto confusa, os recursos a seguir poderão ajudá-lo a entender as diferenças entre algumas das terminologias mais usadas.
* link:http://www.java.com/en/download/faq/jre_jdk.xml[+Qual a Diferença entre o JRE e o JDK?+]
* link:http://www.java.com/en/download/faq/java_diff.xml[+Qual a Diferença entre a plataforma Java SE e JRE?+]
* link:http://www.oracle.com/technetwork/java/javaee/javaee-faq-jsp-135209.html#diff[+Qual a Diferença entre Java EE e J2EE?+]
* link:http://java.sun.com/new2java/programming/learn/unravelingjava.html[+Destrinchando a Terminologia Java+]
[[jcp]]
== O que é o Processo da Comunidade Java?
O link:http://jcp.org/[+Processo de Comunidade Java+] (JCP) é um programa que gerencia o desenvolvimento de especificações técnicas padrão para a tecnologia Java. O JCP cataloga Solicitações de Especificação Java (JCP), que são propostas formais que documentam as tecnologias que serão adicionadas à plataforma Java. Os JSRs são executados por um _Grupo de Especialistas_, que é formado normalmente por representantes de empresas que possuem interesse no setor. O JCP permite o crescimento da tecnologia Java, bem como sua adaptação às necessidades e tendências da comunidade.
Os JSRs das tecnologias usadas e referenciadas neste tutorial incluem o seguinte:
* link:http://jcp.org/en/jsr/summary?id=52[+JSR 52: Uma Biblioteca de Tags Padrão para JavaServer Pages+]
* link:http://jcp.org/en/jsr/summary?id=245[+JSR 245: JavaServer Pages 2.1+]
* link:http://jcp.org/en/jsr/summary?id=315[+JSR 315: Java Servlet 3.0+]
* link:http://jcp.org/en/jsr/summary?id=316[+JSR 316: Plataforma Java, Enterprise Edition 6+]
* link:http://jcp.org/en/jsr/summary?id=317[+JSR 317: Java Persistence 2.0+]
* link:http://jcp.org/en/jsr/summary?id=318[+JSR 318: Enterprise JavaBeans 3.1+]
Você pode usar o link:http://jcp.org/[+website do JCP+] para procurar JSRs individuais. Você também pode exibir todas as tecnologias EE atuais (Java EE 6) em:
* link:http://java.sun.com/javaee/technologies/index.jsp[+http://java.sun.com/javaee/technologies/index.jsp+]
As tecnologias Java EE 5 estão listadas em:
* link:http://java.sun.com/javaee/technologies/javaee5.jsp[+http://java.sun.com/javaee/technologies/javaee5.jsp+]
Uma release final do JSR fornece uma _implementação de referência_, que é uma implementação grátis da tecnologia. Neste tutorial, você utilizará essas implementações para desenvolver a aplicação de e-commerce de amostra. Por exemplo, o servidor de aplicações GlassFish v3, que é fornecido com o pacote de download Java padrão para link:https://netbeans.org/downloads/6.8/index.html[+NetBeans 6.8+], é a implementação de referência da especificação da plataforma Java EE 6 (link:http://jcp.org/en/jsr/summary?id=316[+JSR 316+]). Como uma implementação de referência para a plataforma Java EE, ele inclui implementações de referência para as tecnologias incluídas na plataforma, como Servlet, EJB e JPA.
[[ide]]
== Por que usar um IDE?
Em primeiro lugar, o termo _IDE_ significa _ambiente de desenvolvimento integrado_. O propósito de um IDE sempre foi maximizar a produtividade do desenvolvedor ao fornecer ferramentas e suporte como:
* um editor de código fonte
* ferramentas de automação de compilação e um compilador
* um sistema de janelas para exibição de projetos e seus artefatos
* integração a outros serviços comumente usados
* suporte à depuração
* suporte à criação de perfis
Considere o que seria necessário, caso desejasse criar manualmente uma aplicação web baseada em Java. Após instalar o link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java Development Kit (JDK)+], você precisaria configurar seu ambiente de desenvolvimento executando as seguintes etapas.^<<footnote3,[3]>>^
1. Configure a variável de ambiente `PATH` para apontar para a instalação do JDK.
2. Faça download e configure um servidor que implemente as tecnologias que planeja usar.
3. Crie um diretório de desenvolvimento onde você planeja criar e trabalhar na aplicação web. Além disso, você é o responsável por configurar a estrutura de diretórios da aplicação para que ela possa ser entendida pelo servidor. (Por exemplo, consulte link:http://java.sun.com/blueprints/code/projectconventions.html#99632[+Java BluePrints: Estratégias para Aplicações Web+] para obter uma estrutura recomendada.)
4. Defina a variável de ambiente `CLASSPATH` para incluir o diretório de desenvolvimento, além de todos os arquivos JAR necessários.
5. Estabeleça um método de implantação, ou seja, uma forma de copiar recursos do diretório de desenvolvimento para a área de implantação do servidor.
6. Marque ou instale a documentação da API relevante.
Para fins educativos, vale a pena criar e executar manualmente um projeto Java Web para que você aprenda todas as etapas necessárias envolvidas. Chegará uma hora, no entanto, em que você precisará considerar o uso de ferramentas que reduzam ou eliminem a necessidade da realização de tarefas repetitivas e entediantes, permitindo, assim, que você se concentre no desenvolvimento do código que resolverá necessidades de negócios específicas. Um IDE simplifica o processo descrito acima. Como demonstrado na Unidade 3, link:setup-dev-environ.html[+Configurando o Ambiente de Desenvolvimento+], você instalará o NetBeans IDE com o servidor de aplicações GlassFish, e poderá configurar um projeto de aplicação web com uma estrutura de diretórios convencional usando um assistente simples de 3 etapas. Além do mais, o IDE fornece a documentação da API incorporada, que você pode chamar conforme codifica no editor ou manter aberta em uma janela externa.
Um IDE também costuma tratar a implantação e compilação do projeto de uma forma transparente a você como um desenvolvedor. Por exemplo, o projeto Web que você cria no NetBeans inclui um script de construção Ant que é usado para compilar, limpar, encapsular e implantar o projeto. Isso significa que você pode executar seu projeto a partir do IDE e ele será automaticamente compilado e implantado e, depois, será aberto no browser default. Indo um pouco mais além, muitos IDEs oferecem suporte à funcionalidade Implantar ao salvar. Em outras palavras, sempre que alterações forem salvas em seu projeto, a versão implantada no servidor será atualizada automaticamente. Basta mudar para o browser e atualizar a página para que as alterações sejam exibidas.
Os IDEs também fornecem modelos de vários tipos de arquivos e costumam permitir que eles sejam adicionados ao projeto, sugerindo os locais mais comuns e incluindo informações de configuração default onde for necessário.
Além do suporte básico descrito acima, os IDEs costumam fornecer interfaces a serviços e ferramentas externos (ex.: servidores de banco de dados e de aplicações, Web services, recursos de criação de perfis e depuração, e ferramentas de colaboração), que são indispensáveis ao seu trabalho, caso desenvolvimento em Java seja sua profissão.
Por fim, os IDEs geralmente fornecem suporte a editor aprimorado. O editor é onde você provavelmente gastará a maior parte do tempo trabalhando. Os editores IDE costumam incluir destaque de sintaxe, recursos de refatoração, atalhos de teclado, autocompletar código, dicas e mensagens de erro, tudo para ajudá-lo a trabalhar de forma mais eficiente e inteligente.
[[netBeans]]
== Por que usar o NetBeans?
O NetBeans IDE é um ambiente de desenvolvimento integrado e gratuito de código aberto escrito totalmente em Java. Ele oferece uma variedade de ferramentas para criar aplicações profissionais de área de trabalho, empresariais, Web e móveis com a linguagem Java, C/C++ e, até mesmo linguagens de script como PHP, JavaScript, Groovy e Ruby.
Muitas pessoas estão elogiando o NetBeans. Para obter uma lista de opiniões, consulte link:../../../../features/ide/testimonials.html[+Testemunhos sobre o NetBeans IDE+]. Muitos desenvolvedores estão migrando suas aplicações de outros IDEs para o NetBeans. Para saber as razões, leia link:../../../../switch/realstories.html[+Histórias Reais de Pessoas que Migraram para o NetBeans IDE+].
O IDE tem muitas link:../../../../features/web/index.html[+funcionalidades para desenvolvimento na web+], e várias vantagens em relação aos outros IDEs. Eis alguns pontos que merecem destaque:
* *Pronto para Ser Usado:* Basta fazer download, instalar e executar o IDE. Graças ao seu tamanho reduzido, a instalação é simples e rápida. O IDE pode ser executado em muitas plataformas, incluindo Windows, Linux, Mac OS X e Solaris. Todas as ferramentas e funcionalidades do IDE são completamente integradas, não há necessidade de caçar plug-ins e elas trabalham juntas quando o IDE é inicializado.
* *Grátis e Código-Fonte Aberto:* Ao usar o NetBeans IDE, você estará entrando em uma link:../../../../community/index.html[+comunidade de código fonte aberto+], com milhares de usuários prontos para ajudar e contribuir. Há discussões nas link:../../../../community/lists/index.html[+listas de correspondência do projeto NetBeans+], blogs no link:http://www.planetnetbeans.org/[+Planet NetBeans+], além de tutoriais FAQs úteis no link:http://wiki.netbeans.org/[+wiki da comunidade+].
* *Ferramentas de Depuração e Criação de Perfis:* com o link:../../../../features/java/profiler.html[+criador de perfis+] do NetBeans IDE, você tem uma ideia, em tempo real, de uso de memória e possíveis gargalos de desempenho. Além disso, você pode instrumentar partes específicas do código para evitar a degradação do desempenho durante a criação de perfis. A ferramenta link:http://profiler.netbeans.org/docs/help/6.0/heapwalker.html[+HeapWalker+] ajuda a avaliar o conteúdo da pilha Java e a encontrar vazamentos de memória.
* *Projetos Personalizáveis:* por meio do processo de compilação do NetBeans IDE, que se baseia nos padrões da indústria, como link:http://ant.apache.org/[+Apache Ant+], link:http://www.gnu.org/software/make/[+make+], link:http://maven.apache.org/[+Maven+] e link:http://rake.rubyforge.org/[+rake+], em vez de um processo de compilação proprietário, você pode personalizar facilmente projetos e funcionalidades. Você pode compilar, executar e implantar projetos em servidores fora do IDE.
* *Ferramentas de Colaboração:* o IDE fornece suporte incorporado aos sistemas de controle de versão, como CVS, Subversion e Mercurial.
* *Documentação Extensa:* Existe uma grande quantidade de dicas e instruções no conjunto de ajuda incorporada do IDE. Basta pressionar F1 (fn-F1 no Mac) em um componente do IDE para chamar o conjunto de ajuda. Além disso, a link:../../../index.html[+base de conhecimento oficial+] do IDE fornece centenas de tutoriais on-line, artigos e link:../../intro-screencasts.html[+screencasts+] que são frequentemente atualizados.
Para obter uma lista mais extensa das razões pelas quais você deve escolher o NetBeans, consulte link:../../../../switch/why.html[+NetBeans IDE Conecta Desenvolvedores+].
link:/about/contact_form.html?to=3&subject=Feedback: NetBeans E-commerce Tutorial - Introduction[+Envie-nos Seu Feedback+]
[[seeAlso]]
== Consulte Também
=== Recursos On-line
* link:http://java.sun.com/docs/books/tutorial/[+Os Tutoriais Java+]
* link:http://www.oracle.com/technetwork/java/javaee/javaee-faq-jsp-135209.html[+Perguntas Frequentes sobre o Java EE+]
* link:http://java.sun.com/javaee/reference/apis/[+APIs e Documentos do Java EE+]
* link:http://java.sun.com/new2java/programming/learn/unravelingjava.html[+Destrinchando a Terminologia Java+]
* link:http://www.java.com/en/javahistory/index.jsp[+A História da Tecnologia Java+]
* link:http://java.sun.com/new2java/gettingstarted.jsp[+Novo no Centro de Programação Java+]
=== Livros
* link:http://www.apress.com/book/view/1590598954[+Pro NetBeans IDE 6 Rich Client Platform Edition+]
* link:http://www.informit.com/store/product.aspx?isbn=0130092290[+Core Servlets and JavaServer Pages, Volume 1: Core Technologies, 2nd Edition+]
* link:http://www.informit.com/store/product.aspx?isbn=0131482602[+Core Servlets and JavaServer Pages, Volume 2: Advanced Technologies, 2nd Edition+]
* link:http://java.sun.com/docs/books/faq/[+As Perguntas Frequentes sobre Java+]
== Referências
1. <<1,^>> A ficha técnica, link:http://java.sun.com/docs/white/langenv/Intro.doc2.html[+O Ambiente da Linguagem Java+], descreve os 5 princípios de um design.
2. <<2,^>> Os números e nomes da versão atual estão definidos em link:http://download.oracle.com/javase/6/webnotes/version-6.html[+Java SE 6, Nome e Números de Versão da Plataforma+].
3. <<3,^>> Essas etapas se baseiam, em grande parte, nas etapas descritas no Capítulo 2: Instalação e Configuração do Servidor, de link:http://pdf.coreservlets.com/[+Core Servlets e JavaServer Pages+], de Marty Hall e Larry Brown. Este livro está disponível gratuitamente no formato PDF em: link:http://pdf.coreservlets.com/[+http://pdf.coreservlets.com/+]