Compilando / incorporando UserControls modelados em ASCX para reutilização em vários aplicativos da Web

Eu estou em um scratcher real aqui ... e parece ser um dos tópicos mais frustrantes do ASP.NET.

Eu tenho um assembly que implementa um monte de coisas personalizadas do Linq, que no seu núcleo tem zero funcionalidade web. Eu tenho um assembly adicional que estende esse assembly com o comportamento específico da web.

O comportamento específico da Web é fornecido com alguns controles de usuário marcados dentro de UserControls modelados pelo ASCX.

Eu estou tendo problemas em colocar um bom acabamento neste assembly para que seja simples de reimplantar para uso em outros aplicativos. Deixe-me ver o que eu tentei até agora:

Copiei os arquivos ASCX para o aplicativo da web consumidor usando eventos de construção;longe do ideal e de um pesadelo de implantação.Implementou um VirtualPathProvider personalizado e incorporou os modelos ASCX no conjunto como recursos incorporados. Infelizmente, ao usar a diretiva Registrar no aplicativo consumidor, ela cria a declaração do designer como um UserControl, em que eu exigiria uma declaração do tipo de controle real;imprevisto (tipicamente) e indesejável.Criado um Projeto de Implantação da Web para compilar UserControls, mas os controles de usuário compilados se tornam parte de outro assembly e não mais descendem das definições de classe em meu assembly da Web.a montagem precisa instanciá-los dependendo do contexto da solicitação.

Então, o número 1 é uma porcaria, o número 2 não me dá o tipo de suporte que desejo e o número 3 acho que estou prestes a produzir uma solução razoável com:

Agrupar todas as classes sem controle noApp_Code pasta, prepare uma classe de fábrica que irá construir um objeto do tipo de controle desejado usando reflexão e a expectativa de que o tipo que está sendo refletido estará presente na saída de implementação (esperançosamente garantido pela presença doClassName atributo noControl directiva).

Há também sempre a outra opção de reescrever os controles ASCX em controles personalizados, mas simplesmente não temos os recursos para considerá-los no momento, e não temos experiência em fazer isso, e eles funcionam bem como UserControls.

Estou faltando alguma coisa óbvia, algo talvez muito mais simples, ou isso é apenas propositalmente difícil? Eu li histórias do processo de compilação do asp.net sendo muito infeliz em seu design em minhas viagens através deste tópico.

questionAnswers(1)

yourAnswerToTheQuestion