Compartilhar via


Visão Geral sobre os Designers de Controle do ASP.NET

O ASP.NET inclui suporte avançado para criação de designers para controles de servidor Web.Designers permitem que você crie uma interface do usuário em tempo de design para um controle, para que os desenvolvedores possam configurar propriedades e o conteúdo do seu controle em uma ferramenta de design visual tal como Visual Studio.Para obter informações detalhadas sobre a arquitetura de tempo de design e recursos fornecidos pelo .NET Framework, consulte Estendendo suporte em tempo de design.

Esta introdução explica os recursos do designers de controle ASP.NET , classes básicas de designer e suas funcionalidade, e cenários para trabalhar com projetistas.

Recursos de designer

Enquanto ASP.NET continua a oferecer suporte a arquitetura de designer de controle das versões anteriores, ele tem adicionado melhorias significativas.

  • Edição com base em região .Áreas são editáveis no modo de exibição de tempo de design de um controle.Esse recurso oferece edição WYSIWYG do conteúdo de um controle em tempo de design.

  • Listas de ação.Listas de ações são menus das tarefas que o desenvolvedor de página de um controle pode usar na interface do usuário de tempo de design.Por exemplo, a exibição em tempo de design do seu controle pode fornecer um menu de tarefas disponível, incluindo uma tarefa para formatar o controle automaticamente.

  • Fonte de dados e designers ligados a dados.Designers de controle da fonte de dados permitem que o desenvolvedor de página configure controles de fonte de dados.Designers de controle associado a dados permitem que o desenvolvedor de página configure controles associado a dados.Os recursos estão disponíveis para implementar a comunicação entre a fonte de dados e designers ligados a dados.Para obter um exemplo de um designer controle da fonte de dados, consulte DataSourceDesigner.Para obter um exemplo de um designer controle associado a dados, consulte HierarchicalDataBoundControlDesigner.

  • Edição do modelo simplificada. O modelo para criar uma interface do usuário para edição em tempo de design de controles modelos (como GridView) foi radicalmente simplificado e modificado para que o desenvolvedor de controle possa optar por executar sua própria edição do modelo com regiões.Para um exemplo, consulte Exemplo de Modelo de Controle de Servidor.

  • Modelo de objeto simplificado .O modelo de objeto para trabalhar comprocessamento em tempo de design é simplificado, de modo que a única questão significativaque um desenvolvedor tem que se preocupar é em produzir HTML em tempo de design.Várias novas classes base oferecer acesso ao modelo de objeto simplificada: ControlDesigner, ContainerControlDesigner, e CompositeControlDesigner.

  • Inscrição para hospedar serviços. Um designer de controle pode se inscrever e usar vários serviços fornecidos pelo ambiente de host.Por exemplo, um controle de designer pode usar serviços Visual Studio 2005 para fornecer acesso a dados, fornecer acesso à configuração, adicionar controles a uma página por meio de programação em tempo de design, tratar eventos de click no designer, pintar sobre a superfície de design e acessar outros serviços, como designer-state.

Classes de designer

Um designer de controle permite processamento em tempo de design de uma controle de servidor Web agindo como um mediador entre o controle em tempo de execução e o ambiente de host.No ambiente de host, designers fornecem a funcionalidade a seguir para ajudá-lo a criar uma interface do usuário em tempo de design para usuários de seus controles:

  • Processamento de tempo de design e conteúdo. Um designer de controle permite vários tipos de processamento, simples e complexo.Edição baseada en região e a edição do modelo são exemplos dos tipos de interface do usuário em tempo de design que você pode fornecer para um controle.Você também pode fornecer edição de coluna ou várias exibições de tempo de execução em um controle, para que um desenvolvedor trabalhando com o controle ao tempo de design possa escolher a partir de um conjunto de opções como o controle será processado em tempo de execução.

  • Outras classes de tempo de design. Além de classes de designer, há classes conversor de tipos que associam um tipo ou propriedade e executam conversões de tipos (como sequência de caracteres para valor).Há também uma classes de interface do usuário editor de tipo que fornecem um interface do usuário especializada para editar uma propriedade.Por exemplo, a lista suspensa do selecionador de cores em uma grade de propriedade permite que você selecione uma cor para uma propriedade de cor em um controle da Web.Você também pode criar um editor de componente especializado, que é uma classe que fornece a edição para as propriedades de um controle como um todo.

  • Persistência de dados do controle associado.A propriedades internas e conteúdo de um controle podem ser persistentes, para que o controle e seus controles filho mantenham o estado no ambiente de tempo de design.Isso é controlado da forma que o controle configurado é definido na marcação.

Quando você cria designers de controle para os controles servidor Web, existem várias classes base que você é possível de usar:

  • ControlDesigner

    Classe base que fornece suporte em tempo de design para controles servidor Web.

  • ContainerControlDesigner

    Classe base para um controle de confinamento simples que fornece a edição para um controle da coleção de controles filho.Este criador fornece uma área editável gratuitamente, e o host (como Visual Studio 2005) fornece todos os processamento automaticamente.

  • CompositeControlDesigner

    Classe base que fornece suporte em tempo de design para controles de servidor Web.Ele fornece um controle programado sobre o processamento de controles filho.

  • DataSourceDesigner[BaseDataBoundControlDesigner, e HierarchicalDataSourceDesigner.

    Essas classes base fornecem suporte em tempo de design para fonte de dados e os controles ligados a dados.Eles são criados para se comunicarem entre si.

Cenários para trabalhar com Designers

Há dois cenários comuns na qual você pode trabalha com os designers de controle: Desenvolvendo controles personalizados e desenvolvimento de ferramentas de design visual.

Se você desenvolver controles personalizados de servidor Web, você pode criar um designer associado para aprimorar uma página de um desenvolvedor para configurar o controle em tempo de design.Esse cenário é especialmente útil se o controle pode ser reutilizado por um número de desenvolvedores de página.Por exemplo, você pode criar um controle de gráfico personalizado.Se você fornecer um designer de controle associado, cada desenvolvedor de página diferente da intranet poderia configurar um controle em uma página com um estilo diferente.

Se você desenvolver uma ferramenta de design visual da Web, semelhante a Visual Studio 2005 ou o Microsoft FrontPage, você pode utilizar o designer de controle que hospeda componentes.Isso permite que a ferramenta forneça serviços e interaja com criadores de controle, para fornecer processamento em tempo de design para controles personalizados.

Para obter mais informações sobre a arquitetura do .NET estrutura designer, consulte Arquitetura de tempo de design. Para obter detalhes sobre como criar seu próprio designer para um controle de servidor Web personalizado, consulte Demonstra Passo a passo: Criando um criador controle básico para um controle de servidor Web.Para obter detalhes sobre a criação um designer de controle personalizado com serviços e listas de ação para fornecer um interface do usuário em tempo de design, consulte Designer de controle de amostra com listas de ação e serviços.

Protegendo um designer de controle personalizado

Quando um controle está no modo de design, o componente de designer processa as alterações de propriedade e processa marcação no host de design (por example, Visual Studio).Em tempo de design, o componente de designer de um controle personalizado executa com o mesmo nível de confiança que seu host de design.Componentes de designer podem potencialmente acessar bancos de dados, fazer chamadas para sites da Web em um servidor remoto, criar e gravar arquivos para o desenvolvedor do computador, enviar e-mail e executar código em outros conjuntos.

As informações desta sessão descrevem as práticas recomendadas que ajudarão a melhorar a segurança dos recursos de designer de controle.

Além de seguir práticas recomendadas de codificação e de configuração para ajudar a melhorar a segurança de um aplicativo, certifique-se que você continuamente mantem o servidor de aplicativos atualizado com as atualizações de segurança mais recentes para o Microsoft Windows e Serviços de Informações da Internet (IIS).Você também deve verificar se você tem as versões mais recentes de quaisquer pacotes comerciais de controle personalizado que você possui instalados no seu computador.

Você encontrará informações mais detalhadas sobre as práticas recomendadas para escrever código seguro e para proteger aplicativos no livro "Writing Secure Code" de Michael Howard e David LeBlanc.Para obter orientação adicional, consulte o Padrões e práticas da Microsoft Site da Web e Diretrizes e práticas recomendadas.

Problemas de segurança para Usuários de Controle Personalizado

Você deve conhecer que controles personalizados de fontes desconhecidas podem conter os designers que expõem dados confidenciais do seu computador para a Web, ou que execute código mal-intencionado em tempo de design.Você não pode usar a configuração de acesso de código para limitar o acesso para designers de controle desde que eles devem sempre serem executados no host do design com confiança total.Para obter mais informações sobre níveis de confiança, consulte Níveis de confiança ASP.NET e arquivos de diretiva.Para obter mais informações sobre segurança do acesso ao código, consulte Introdução à segurança do Acessar ao código.

Problemas de segurança para Usuários de Controle Personalizado

Usar atributos de configuração para as classes e membros para limitar as permissões para o nível mínimo necessário para a funcionalidade do controle não é uma medida de segurança suficiente para componentes do Designer, porque eles devem ser executado no host do design com confiança total.

Se possível, não use dados ao vivo de um banco de dados para exibir estruturas exemplo para visualizações dos controles de dados, como o GridView controle.Isso pode expor potencialmente os dados confidenciais do banco de dados.Em vez disso, use exemplo estruturas de dados para criar dados para visualizações.

Questões de segurança para Desenvolvedores de Host de Design

Se você desenvolve um design de host (como Visual Studio), você deve verificar a marcação HTML, texto e outros dados retornados do designer por riscos de segurança antes de exibi-lo.Além disso, limitar o tamanho de sequências de caracteres da marcação HTML e regiões de designer para dimensões gerenciáveis.Para obter mais informações sobre validação HTML, consulte Validando Entrada de Usuário em Páginas da Web ASP.NET

Suporte a várias ferramentas de desenvolvimento

Microsoft Visual Web Developer oferece suporte a todos os recursos abordados neste tópico, mas outras ferramentas do desenvolvedor podem ser que não.Alguns exemplos dos recursos que não podem ser suportados são:

  • Regiões.Desenvolvedores de controle podem examinar a propriedade SupportsRegions e modificar o comportamento do designer do controle de forma apropriada.

  • Hospedar serviços.Desenvolvedores de controle podem examinar o valor de retorno do método GetService antes de usar o serviço.Para um exemplo, consulte Como: Usar serviços e listas de ação com os designers de controle.

  • Coleções de região.As duas versões do método GetDesignTimeHtml devem ser substituídas, quando algumas ferramentas de desenvolvimento não têm suporte para conjuntos de região.

Consulte também

Conceitos

Arquitetura de tempo de design

Designer de controle de amostra com listas de ação e serviços

Outros recursos

Suporte ao Design-Time para páginas da Web ASP.NET

Estendendo suporte em tempo de design