Eu tenho um site ASP.NET 3.5 (linguagem de estúdio visual), mas o site continua a crescer e parece meio caubói, entre outras coisas. Eu gostaria de ver isso sendo convertido em um aplicativo da Web (namespaces e tudo).
Isso é algo que pode ser feito facilmente no Visual Studio? Se não, existem outras ferramentas por aí que poderiam criar todos os namespaces, etc. de forma automática?
asp.net
visual-studio
web-applications
RSolberg
fonte
fonte
Respostas:
fonte
Passo a passo: Convertendo um projeto de site da Web em um projeto de aplicativo da Web no Visual Studio no MSDN
Se o aplicativo do seu site crescer ... é melhor dividi-lo em vários projetos. A conversão de um projeto de site em um projeto de aplicativo da Web não ajudará muito.
fonte
Se você estiver tendo problemas para construir seu novo projeto de aplicativo da Web, verifique as propriedades do arquivo no Visual Studio de todas as classes 'auxiliares'. Para um projeto que eu estava convertendo, a Ação de construção estava definida como Conteúdo, mas deveria ser Compilar.
fonte
Crie um novo aplicativo Web no VS 2010.
1. Usando o Windows Explorer, copie todos os seus arquivos para a pasta do projeto.
2. No gerenciador de soluções do VS 2010, mostre todos os arquivos.
3. Selecione os arquivos e pastas - clique com o botão direito em incluir no projeto.
4. Clique com o botão direito no explorador de solução do projeto e selecione Converter para aplicativo da web.
Existem algumas pequenas diferenças, como a pasta App_Code será renomeada para old_app_code - que surpreendentemente não causa nenhum erro. O TypeName em suas fontes de dados de objeto e as heranças na tag @Page podem precisar do [ProjectName]. prefixo anexado globalmente. Por exemplo, se o nome do tipo for "BusinessLogic.OrderManager" e o nome do projeto for InventorySystem, você precisará alterá-lo para InventorySystem.BusinessLogic.OrderManager. Além disso, algumas alterações de exibição, como validadores de campo obrigatórios não são mais padronizados para fonte vermelha, mas para preto.
fonte
Eu estava enfrentando os mesmos problemas inicialmente. Depois de seguir o livro Wrox Professional ASP.NET 4.0, encontrei a seguinte solução para o meu caso.
Primeiro criei um novo aplicativo da web. Copiou todos os arquivos do site para a pasta do aplicativo da web. Clique com o botão direito do mouse no aplicativo e clique em converter para aplicativo da web.
Você pode perguntar por que precisa converter um aplicativo da web em um aplicativo da web. A resposta é que, ao criar um site, você simplesmente codifica o arquivo .cs onde for necessário. Um aplicativo da web, entretanto, declara .design.cs (ou .vb) e um arquivo .cs para o código e a seção de design automaticamente.
A SEGUIR: Remova todas as referências manuais, como o atributo 'Inherits' na diretiva PAGE, para outros arquivos em seu site, uma vez que os namespaces IRÃO cuidar de referenciar as classes centralmente.
Também enfrentei um problema, pois não incluí a pasta OBJ e BIN em meu projeto. Se você acha que está faltando as pastas BIN e OBJ, basta clicar no ícone 'Mostrar todos os arquivos' no Gerenciador de Soluções e, a seguir, clicar com o botão direito nas pastas ausentes e adicionar ao projeto. (para garantir que eles compilem com o projeto.)
ATUALIZAÇÃO: Como @deadlychambers aponta nos comentários: Você pode pesquisar em qualquer lugar fazendo "Ctrl + Shift + F" e depois pesquisar
Inherits="(.*?)"
. Isso encontrará todas as ocorrências e provavelmente economizará algum tempo!fonte
Agora migrei com sucesso um projeto de site para um aplicativo da web e ainda há algumas pegadinhas a serem observadas.
Ter o ReSharper à sua disposição ajuda muito na refatoração dos arquivos aspx.
public partial class FolderName_Projectname : Page
se necessário renomear todos os arquivos usando Resharper ou manualmente. Se você encontrar vários erros como"There is already a member Page_Load() defined"
, isso é provavelmente devido a nomes de classe incorretos e duplicaçãoSubstitua
CodeFile
em todas as páginas aspx porCodebehind
e preste atenção especialmente aos arquivos em sua subpasta. Certifique-se deInhertis=""
que não contém o caminho relativo. Seus namespaces cuidam de tudo. Portanto, o formato correto éInherits="Namespace.classname"
. Se sua classe tiver um namespace NaSpa e um nome de arquivo foo.cs, seriaInherits="NaSpa.foo"
Depois de preparar todos os arquivos (não se esqueça das páginas mestras), execute "Converter para aplicativo da web". Se você encontrar erros depois, enxágue e repita. Se você encontrar erros do tipo "TextBoxName não pode ser encontrado, falta uma referência", certifique-se de não esquecer de limpar suas páginas aspx. Um bom indicador é verificar os arquivos de designer gerados automaticamente. Se
TextBoxName
não aparecer lá, a conversão não foi totalmente bem-sucedida.fonte
o espaço de nomes ASP padrão parece não funcionar mais. Portanto, não consigo chamar minhas páginas User Controls.ascx de fora da página. Dar a eles um namespace e mudar o padrão de ASP para meu namespace pareceu funcionar.
fonte