Pergunta

Eu comecei a trabalhar em Porting um aplicativo que escrevi para implantação na App Store do Windows 8.Isso requer que o aplicativo seja escrito contra o subconjunto do .NET Framework.Minha aplicação segue uma arquitetura onde a funcionalidade principal está em sua própria DLL, e coisas como o acesso do sistema de arquivos são feitas através do COI.Basicamente, isso significa que a única dependência para a dll central é o sistema.Por causa disso, pensei que o porting seria uma brisa - configurar meus valores do COI e conectar uma GUI, então eu serei bom para ir.Só não consigo mesmo referência à minha DLL central do aplicativo Windows Store (A.K.A. Metro App).

Eu tenho perdido alguma coisa?Na verdade, tem que reescrever minha dll central apenas para inclusão na App Store do Windows 8?Somos-nos informados de que se você usar uma boa arquitetura, então Porting será uma brisa, e é isso que eu fiz.Tem sido apenas uma grande mentira?

Foi útil?

Solução

Aplicativos Store do Windows (anteriormente chamado de Metro Style App) estão limitados a usar o perfil do núcleo .NET.Eu coloquei alguns detalhes sobre o perfil principal no meu Resposta a esta pergunta .Consulte Convertendo seu código existente do .NET Framework Neste artigo mais detalhes.Não é sua arquitetura, é o subconjunto do .NET Framework que está disponível para um aplicativo Windows Store.Você pode ter que complementar alguns dos tipos que você usa no .NET com tipos Winrt.

Outras dicas

Eu não tenho um amplo conhecimento e tentarei rígido para fatos como eu os entendi. A estrutura do METRO adiciona funcionalidade e limita a funcionalidade. Há restrições de segurança pesadas e grandes segmentos da estrutura .NET completo que não estão disponíveis (por exemplo, você não pode usar o System.Data, alguns dos métodos System.Io e de acesso a arquivos foram alterados drasticamente). Um aplicativo de metrô é isolado, você não poderá recaçar todos os arquivos no disco rígido como você poderia em um aplicativo padrão (minha opinião que é, no topo da segurança pelo isolamento, é um incentivo para o empurrar para o nuvem para necessidades de armazenamento).

A menos que as coisas tenham sido alteradas, o Pinvoke é limitado a métodos "aprovados" do Win32 API.

Veja este link para algumas alternativas para as necessidades comuns da API Win32: http://msdn.microsoft.com/en-us/library/windows/apps/h464945.aspx

Veja este link para aprovado Win32 / COM APIs: http://msdn.microsoft.com/en-us/library/windows/apps/br205762.aspx

É difícil dizer se uma arquitetura "boa" será uma brisa para o porto sem saber o que está no código nessa arquitetura. No meu framework utilitário, tive coisas que portado com muita facilidade (ou pelo menos eram simples) e coisas que eram uma lavagem completa que exigia muita reescrita (a perda de System.Data, por exemplo, é um ponto dolorido para mim). Há coisas que podem ser projetadas bem, mas quando você retira o código subjacente na estrutura ou API, ele foi escrito com ele exigirá reescrever.

Eu tive o mesmo problema: um projeto para o aplicativo Metro não é carregado DLL Criar com estrutura .4.Eu mudei a estrutura de 4 a 3,5 para a DLL e agora o projeto do metrô os vê.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top