Artigo .net magazine 71 - Criando controles personalizados no ASP.NET
Neste artigo veremos como criar controles personalizados para o ASP.NET. Criaremos um “ASP.NET Server control”, também conhecido como Web Custom Control. Veremos como adicionar propriedades, funcionalidades no servidor e funcionalidades no cliente com JavaScript.
Artigos.NETArtigo .net magazine 71 - Criando controles personalizados no ASP.NET
Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Do que trata o artigo
Neste
artigo veremos como criar controles
personalizados para o ASP.NET. Criaremos um “ASP.NET Server control”, também
conhecido como Web Custom Control. Veremos como adicionar propriedades,
funcionalidades no servidor e funcionalidades no cliente com JavaScript.
Para que serve
Neste
artigo veremos como criar controles totalmente personalizados, de acordo com suas necessidades de forma inteligente e
reaproveitável. Ao criar controles, estamos reutilizando código, utilizando
boas práticas de programação orientada a objetos (POO), visto que nossa classe
(o controle) poderá ser utilizada em vários projetos, sem replicação de código.
Em que situação o tema é útil
Além
de reaproveitar código de forma eficiente, controles personalizados podem
facilitar a manutenção, e até ser uma fonte de renda adicional. Os
conhecimentos aqui adquiridos são úteis para serem aplicados em qualquer
projeto Web, visto que a criação de um controle independe de outros pontos do
projeto, além de ser uma forma de modularização.
Resumo do DevMan
Frequentemente
necessitamos de controles que tenham um comportamento personalizado, especial
para determinado tipo de aplicação ou ainda um controle que reproduza um
comportamento padronizado em todos os projetos da empresa. Nesse caso o melhor
a fazer é criar controles customizados. Com eles você pode manter a Orientação
a Objetos e utilizá-la para deixar o código mais funcional, mais fácil de ler,
de estender e porque não, mais elegante. As características parametrizáveis do
controle ficam armazenadas em propriedades, da mesma forma utilizada com os
controles padrão do ASP.NET e também possuirá métodos e eventos, com toda a
lógica encapsulada e separada do código da página Web, tornado-a mais limpa.
Criar aplicações inteligentes para web deixou de
ser há um bom tempo apenas formulários HTML com
acesso à base de dados. O nível de interação com
o usuário deve ser grande, para que ele tenha uma boa experiência de uso e
consiga realizar as operações sem pensar e sem treinamento. Além de propiciar
um retorno sobre o investimento, as aplicações quando desenvolvidas devem criar
códigos que possam ser facilmente incorporados em projetos futuros. Isto permite
que a cada aplicação criada, recursos possam ser reaproveitados, e assim, o
custo do projeto tende a diminuir, deixando-o mais rentável e competitivo.
Quando disse que o usuário deve ser capaz de realizar operações sem
pensar, isto não é apenas uma exigência da interface, mas é também uma
exigência do seu usuário interno, e da sua equipe de desenvolvimento. Devemos
pensar ao escrever código que outras pessoas possam ler e dar manutenção. Ao
criar componentes e controles personalizados o mesmo cuidado deve ser tomado.
Um conceito muito importante para os controles
é saber como eles são renderizados. Sabemos que o padrão de desenvolvimento de
software para a internet é o HTML, mas cada plataforma possui seus controles
personalizados, como por exemplo, calendários. Sabemos também que em HTML não
existe um elemento “calendário”, mas certamente já vimos um calendário na web.
O ASP.NET possui um controle padrão de calendário, que se você arrastar para o
modo de design, e rodar a página, um calendário será exibido no navegador. O
que na verdade acontece é que o controle é renderizado
em HTML como tabelas, ou seja, o calendário do ASP.NET possui um processo de
transformação para tabela. Isto acontece com todos os controles. A textbox do
asp.net vira um “<input type=”text”>” do HTML, e assim por diante.
Parte prática
Nesta parte prática, vou mostrar como criar um
controle personalizado, similar a um DropDownList (combo box). A grande
diferença é que este controle pode receber imagens como item, inclusive cores
de fundo. Em projetos com um design mais sofisticado, este controle pode ser de
grande utilidade. A Figura 1 mostra
o resultado que obteremos ao final do artigo.
Figura 1. Controle personalizado
Cada vez mais o programador precisa pensar na
usabilidade e experiência do usuário. Este tipo de controle, se bem aplicado,
pode deixar a experiência do usuário mais rica e intuitiva, diminuindo custo de
treinamento e suporte. É possível inclusive exibir gif animados e outros tipos
de mídia em cada item, deixando a interatividade ainda maior, sem contar o fato
de ser compatível com os principais navegadores.
O foco deste projeto será não somente como
fazê-lo, mas será levado em conta aspectos de criação do controle para que ele
seja efetivamente “plug and play”, ou seja, tudo que for necessário estar
encapsulado em uma .dll, e não com inúmeros arquivos soltos. Veremos também
como criar javascript de forma mais isolada, com menos risco de conflitar com
outros javascripts existentes em outros controles.
Abra o Visual Studio e crie um Asp.Net Server
Control, conforme Figura 2. Para
este exemplo utilizaremos o framework 3.5 e o Visual Studio 2008 com C# para o
controle e Vb.Net para o projeto web.
Figura 2. Crie um projeto do tipo ASP.NET Server Control
Crie um arquivo de classe chamado “Item.cs”,
conforme Listagem 1. Após
referenciar as bibliotecas e definir o namespace para “ASPNetMagazineSC”, vamos
criar uma classe item. Esta classe é bem simples, e terá apenas propriedades,
descritas na Tabela 1. Foram criados
dois construtores, um sem parâmetro e outro com todos os parâmetros.
Note na linha
10 da Listagem 1 que há o
atributo “[Serializable]”, que permite a classe ser serializada. Isto será
utilizado na Listagem 2, quando os
itens serão atribuídos ao ViewState.
Nota do DevMan
View
State é um recurso do ASP.NET que permite que controles servidores possam
manter seu próprio estado durante uma sessão do usuário. Isto é, o controle é
capaz de “lembrar” suas configurações enquanto o usuário navega no site. Essas
informações ficam armazenadas no browser e trafegam a cada requisição.
Nota do DevMan
Atributo
de serialização - [Serializable]
Informar
que uma classe pode ser serializada significa que ela pode ter uma
representação em outro formato, como
texto, por exemplo. Um exemplo muito utilizado é em serviços web, quando uma
classe é serializada em XML, ou seja, sua estrutura passa a ter uma
representação XML. Quando atribuímos a lista ao viewstate, o .net serializa o
objeto, ou seja, precisa converter em um formato texto para enviar junto com a resposta HTML. Quando o formulário é submetido
pelo usuário, ou seja, quando ocorre o postback, o objeto é desserializado,
recuperando seu estado original.
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos o plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.
Compartilhe esse conteúdo com um amigo!
Faça login para ganhar recompensas.
Ou
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.