Integrando seu serviço na nuvem com os contratos do seletor de arquivos

Blog do desenvolvedor de aplicativos do Windows 8

Ideias sobre a criação de aplicativos com o estilo Metro para o Windows 8, da equipe de engenharia do Windows 8

Integrando seu serviço na nuvem com os contratos do seletor de arquivos

  • Comments 0

Antes, os usuários organizavam, compartilhavam e mantinham seus documentos, fotos, vídeos e músicas no PC local. Mas a nuvem está rapidamente oferecendo aos usuários maneiras mais sofisticadas de acessar, usar e gerenciar os arquivos importantes. O Windows 8 abrange esses novos cenários permitindo que você integre por completo os serviços na nuvem diretamente nos seus aplicativos para criar experiências totalmente novas que antes não eram possíveis.

Você pode ver muitos desses cenários destacados no aplicativo SkyDrive, que usa os contratos do seletor de arquivos. Os contratos do seletor de arquivos foram desenvolvidos para disponibilizar para todos os outros aplicativos do Windows 8, os documentos, fotos, vídeos e músicas armazenados no seu aplicativo. Nesta postagem, usamos o aplicativo SkyDrive (que implementa todos os três contratos do seletor de arquivos, como apresentado na postagem Conectando seus aplicativos, arquivos, PCs e dispositivos à nuvem com o SkyDrive e o Windows 8) para mostrar:

  • O que são os contratos do seletor de arquivos e como você pode usá-los para levar um novo conjunto de experiências ao seu aplicativo
  • Como escolher o(s) contrato(s) do seletor de arquivos para o seu aplicativo
  • Dicas e sugestões para a implementação dos contratos do seletor de arquivos

Suporte ao Seletor de Abertura de Arquivos no aplicativo SkyDrive

Suporte ao Seletor de abertura de arquivos no aplicativo SkyDrive

Visão geral dos contratos do seletor de arquivos

Como o nome indica, os contratos do seletor de arquivos ampliam o seletor de arquivos, permitindo que os aplicativos do Windows 8 ofereçam arquivos, salvem locais e iniciem atualizações de todos os aplicativos do Windows 8. Por exemplo, você pode ver na captura de tela acima que todos os meus arquivos do SkyDrive podem ser acessados diretamente no seletor de arquivos.

Os contratos do seletor de arquivos consistem em 3 contratos independentes: o Seletor de Abertura de Arquivos, o Seletor de Salvamento de Arquivos e o Atualizador de Arquivos em Cache. Você precisa implementar somente os que façam sentido para o seu aplicativo. Ao pensar sobre quais contratos implementar, oriente-se pelo seguinte:

  • Seletor de Abertura de Arquivos: Use se o aplicativo oferecer uma nova e/ou sofisticada exibição de arquivos que não possam ser facilmente acessados de outra forma. Por exemplo, o aplicativo SkyDrive implementa esse contrato para que possa oferecer todos os aplicativos do Windows 8 com acesso aos arquivos que estão armazenados em seu serviço.
  • Seletor de salvamento de arquivos: Se o seu aplicativo der suporte ao contrato do Seletor de Abertura de Arquivos, use esse contrato se os usuários também desejarem poder salvar arquivos no seu aplicativo. Por exemplo, o aplicativo SkyDrive implementa esse contrato para que os usuários possam salvar facilmente em seu serviço arquivos de qualquer aplicativo do Windows 8. Em alguns aplicativos, você precisará decidir entre implementar o Seletor de Salvamento de Arquivos ou o Compartilhamento de Destino (ou ambos) para mover dados para o aplicativo. O tópico Sharing and exchanging data (Compartilhando e trocando dados) pode ajudá-lo a tomar essa decisão.
  • Atualizador de arquivos em cache: Use esse contrato caso o seu aplicativo também acompanhe e atualize arquivos automaticamente para mantê-los sincronizados com o repositório central do seu aplicativo. O aplicativo SkyDrive implementa esse contrato para que qualquer arquivo que seja selecionado/salvo no aplicativo SkyDrive possa ser facilmente atualizado ou renovado sem que o usuário precise passar pelo seletor de arquivos. Por exemplo, usando o meu aplicativo de fotos favorito, posso abrir uma imagem no SkyDrive e todas as alterações feitas nessa imagem serão automaticamente enviadas novamente para o SkyDrive (sem que eu precise passar pelo seletor de arquivos).

Ajuda pensarmos nesses contratos como uma progressão. Por exemplo, recomendamos que os aplicativos do Windows 8 implementem o contrato do Seletor de Abertura de Arquivos primeiro e, então, determinem se faz sentido implementar o contrato do Seletor de Salvamento de Arquivos e assim por diante.

 

Progressão dos contratos do seletor de arquivos

Progressão dos contratos do seletor de arquivos

Agora que apresentei uma visão geral dos contratos, vamos analisar como cada um deles pode ser implementado. Para ajudar a ilustrar os conceitos, continuaremos usando o aplicativo SkyDrive como exemplo.

Cenário 1: Contrato do Seletor de Abertura de Arquivos

O contrato do Seletor de Abertura de Arquivos é a maneira como os usuários podem usar os arquivos que armazenam, criam e gerenciam no seu aplicativo em outros aplicativos do Windows 8. Por exemplo, com a implementação do contrato do Seletor de Abertura de Arquivos pelo SkyDrive, tenho acesso a todos os meus arquivos do SkyDrive em todos os outros aplicativos do Windows 8. Desde definir a imagem da minha conta até abrir um documento no SkyDrive, todo o meu conteúdo do SkyDrive fica acessível independentemente do que eu estiver fazendo ou de qual aplicativo do Windows 8 estiver usando!

Quando o seu aplicativo implementa o contrato, ele pode ser iniciado e exibido no modo aberto do seletor de arquivos. Um ponto de entrada para o seu aplicativo é exibido no menu do seletor de arquivos sempre que o usuário estiver selecionando um tipo de arquivo oferecido pelo seu aplicativo:

Seletor de abertura de arquivos

SkyDrive no menu do seletor de arquivos

Ao ser iniciado, o seu aplicativo é colocado na área de exibição do seletor de arquivos e o quadro desse seletor assume o esquema de cores especificado no seu manifesto:

skydrive_thailand

Aplicativo SkyDrive hospedado no seletor de arquivos do contrato do Seletor de Abertura de Arquivos

Implementando o contrato

Você pode incorporar o contrato do Seletor de Abertura de Arquivos no seu aplicativo seguindo o Guia de início rápido. Depois que o seu aplicativo incorporar o contrato, a próxima etapa será configurar o aplicativo para exibir arquivos que o usuário possa selecionar. Você pode usar o modelo do Visual Studio interno para criar a sua exibição de seleção depois de adicionar o contrato do Seletor de Abertura de Arquivos ao seu manifesto. Caso você já tenha criado uma exibição no seu aplicativo principal, ela também poderá ser usada como base para a sua exibição de seleção. Conforme mostrado a seguir, o SkyDrive reutiliza sua exibição existente no aplicativo principal, o que economiza tempo e também gera consistência com a exibição do aplicativo principal.

skydrive_view1O aplicativo SkyDrive oferece modelos de navegação e exibições semelhantes

O aplicativo SkyDrive oferece modelos de navegação e exibições semelhantes
entre a versão hospedada e a principal do aplicativo

Além disso, como os usuários selecionarão arquivos no seu aplicativo, é importante que ele ofereça um mecanismo de seleção. Se você já estiver usando os controles ListView em HTML ou GridView em XAML, os mecanismos de seleção e elementos visuais já estão integrados aos controles.

Elemento visual de seleção no aplicativo SkyDrive

Elemento visual de seleção no aplicativo SkyDrive

Depois que o usuário seleciona um arquivo, você precisa passar um StorageFile para o seletor de arquivos para que ele possa ser exibido na cesta do seletor de arquivos. Com base no seu cenário, você pode usar um StorageFile com suporte local ou com suporte do URI ou do Stream. StorageFiles com suporte do URI e do Stream funcionam melhor com arquivos que não estejam no computador local porque eles permitem que o download do arquivo seja adiado até que o aplicativo que estiver consumindo o arquivo possa acessá-lo. A escolha de qual deles usar depende da implementação do seu aplicativo. O URI é uma abordagem sem interferência e o suporte do Stream permite que você configure como o arquivo é baixado quando o arquivo é acessado. Por exemplo, se o arquivo não puder ser acessado publicamente por meio de um URI e exigir uma forma de autenticação, a solução com suporte do Stream permitiria a transmissão das credenciais necessárias. Veja aqui um exemplo rápido de adição de um StorageFile com suporte do URI para a cesta do seletor de arquivos:

JavaScript

// Create thumbnail for the file
var thumbnailSource = Windows.Storage.Streams.RandomAccessStreamReference.createFromUri(new Windows.Foundation.Uri
(selectedItem.fileThumbnailUri));
// Add a file to the FileOpenPickerUI that is downloaded using BackgroundTransfer
Windows.Storage.StorageFile.createStreamedFileAsync(selectedItem.name, onDataRequested, thumbnailSource).done
(function (streamedFile) { pickerUI.addFile(selectedItem.id, streamedFile);
});

function onDataRequested(outputStream) {
var downloader = new Windows.Networking.BackgroundTransfer.BackgroundDownloader();
var download = downloader.createDownload(new Windows.Foundation.Uri(selectedItem.fileUri), null);
download.startAsync().done();
var inputStream = download.getResultStreamAt(0);
Windows.Storage.Streams.RandomAccessStream.copyAndCloseAsync(inputStream, outputStream).done(function () {
inputStream.close();
});
}

C#

// Create thumbnail for the file
var thumbnailSource = RandomAccessStreamReference.CreateFromUri(new Uri(selectedItem.FileThumbnailUri));
// Add a file to the FileOpenPickerUI that is downloaded using BackgroundTransfer
StorageFile file = await StorageFile.CreateStreamedFileAsync(selectedItem.Name, OnDataRequested, thumbnailSource);
_openUI.AddFile(selectedItem.Id, file);

protected async void OnDataRequested(StreamedFileDataRequest outputStream)
{
var downloader = new Windows.Networking.BackgroundTransfer.BackgroundDownloader();
var download = downloader.CreateDownload(new Uri(_selectedItem.FileUri), null);
var downloadTask = download.StartAsync();
using (var inputStream = download.GetResultStreamAt(0))
{
await RandomAccessStream.CopyAndCloseAsync(inputStream, outputStream);
}
await downloadTask;
}

Criando uma experiência de seleção para o usuário

Uma parte importante da assinatura do contrato do Seletor de Abertura de Arquivos é oferecer uma experiência de seleção que seja personalizada, focada na seleção e alinhada à personalidade e design do seu aplicativo principal. As Diretrizes e lista de verificação de seletores de arquivos descrevem as áreas principais a serem enfocadas ao projetar essa experiência.

Em termos de implementação, veja aqui algumas maneiras rápidas de seguir as diretrizes facilmente:

  • Comando: Como o seletor de arquivos não dá suporte à barra de aplicativos, use a linha de comando interna fornecida pelo modelo do Visual Studio. Indicado por 1 no diagrama a seguir.
  • Navegação: Alinhe o seu modelo de navegação e affordances ao que você já usa no seu aplicativo principal. Além disso, defina o conteúdo da propriedade Title de maneira consistente com o modo como você mostra a localização atual no seu aplicativo. Indicado por 2 no diagrama abaixo.
  • Seleção: Como o seletor de arquivos dá suporte às seleções única e múltipla, use a propriedade SelectionMode para determinar se o seu aplicativo deve permitir a seleção de vários arquivos. Indicado por 3 no diagrama abaixo.
  • Filtragem de exibição: Use a propriedade AllowedFileTypes para filtrar a sua exibição e mostrar somente os tipos de arquivos que o usuário pode selecionar.
  • Inicialização: Use a propriedade SettingsIdentifier para iniciar o seu aplicativo no local de navegação em que ele se encontrava na última vez que o usuário selecionou um arquivo no seu aplicativo.
  • Autenticação: Se necessário, permita que o usuário faça logon no seu aplicativo usando um método consistente com o seu aplicativo principal.
  • Organização: Organize e exiba arquivos a serem otimizados para conteúdo de navegação. Use o Zoom Semântico e filtros leves em vez de mais affordances pesados (exemplo: pesquisa) se possível.

Visão geral da interface do usuário do aplicativo SkyDrive implementando o contrato do Seletor de Abertura de Arquivos

Visão geral da interface do usuário do aplicativo SkyDrive implementando o contrato do Seletor de Abertura de Arquivos

Fluxo completo

Para resumir, temos uma visão geral do fluxo completo do Seletor de Abertura de Arquivos. Neste diagrama, o aplicativo que implementa o contrato do Seletor de Abertura de Arquivos (por exemplo, SkyDrive) está identificado como "Providing app" (Aplicativo fornecedor).

Fluxo completo do Seletor de Abertura de Arquivos

Cenário 2: Contrato do Seletor de salvamento de arquivos

O contrato do Seletor de Salvamento de Arquivos permite que o seu aplicativo seja um local para salvar os aplicativos do Windows 8. Por exemplo, com a implementação do contrato do Seletor de Salvamento de Arquivos pelo SkyDrive, posso salvar arquivos de qualquer outro aplicativo do Windows 8 diretamente no SkyDrive. Dessa forma, posso adicionar arquivos ao SkyDrive estando no aplicativo que estou usando no momento, além de colocar arquivos no SkyDrive que não possam ser acessados pelo próprio aplicativo do SkyDrive (porque o SkyDrive pode não ter acesso ao local que um determinado aplicativo está usando para armazenar arquivos).

Como mencionado acima, quando se pensa em implementar o contrato do Seletor de Salvamento de Arquivos, o seu aplicativo já deve implementar o contrato do Seletor de Abertura de Arquivos, o que garante que o usuário possa selecionar arquivos dos mesmos locais em que podem ser salvos.

Depois de incorporado o contrato do Seletor de Salvamento de Arquivos no seu aplicativo, o aplicativo pode ser iniciado e exibido no modo de segurança do seletor de arquivos. Um ponto de entrada para o seu aplicativo é exibido no menu do seletor de arquivos sempre que o usuário estiver salvando um tipo de arquivo com suporte do seu aplicativo: Assim como ocorre com o contrato do Seletor de Abertura de Arquivos, o seu aplicativo é colocado na área de exibição do seletor de arquivos quando iniciado:

Aplicativo SkyDrive hospedado no seletor de arquivos do contrato do Seletor de Salvamento de Arquivos

Aplicativo SkyDrive hospedado no seletor de arquivos do contrato do Seletor de Salvamento de Arquivos

Implementando o contrato

A implementação do contrato do Seletor de Abertura de Arquivos é muito semelhante à implementação do contrato do Seletor de Abertura de Arquivos (eles compartilham o mesmo Guia de Início rápido). A primeira etapa é configurar o aplicativo para exibir locais em que o usuário possa salvar arquivos. A reutilização da exibição existente que você criou para o contrato do Seletor de Abertura de Arquivos economiza tempo e também gera consistência com as exibições do seu outro aplicativo. De fato, a maneira mais fácil de fazer isso é simplesmente reutilizar a exibição do seu Seletor de Abertura de Arquivos e remover o código da cesta.

skydrive_documents

Aplicativo SkyDrive usando a mesma exibição do aplicativo principal do Seletor de Salvamento de Arquivos

Depois que o usuário salvar o arquivo (você receberá o evento TargetFileRequested), valide o nome do arquivo e a extensão (usando a propriedade FileName) para garantir que ele seja válido para o seu aplicativo. Caso não seja, você poderá apresentar ao usuário um erro conforme as diretrizes de UX . Caso seja válido, crie um novo StorageFile e retorne-o novamente para o seletor de arquivos que o transferirá para o aplicativo que escreve o conteúdo (isto é, o aplicativo que chamou o seletor de arquivos). Vejamos aqui um trecho de código rápido que ilustra o conceito:

JavaScript

function onTargetFileRequested (e) {
var request = e.request;
var deferral = e.request.getDeferral();
if (doesfileExist(saveUI.fileName)) {
var dialog = new Windows.UI.Popups.MessageDialog("The location already has a file named " + saveUI.fileName + ".", "Replace the existing file?");
dialog.commands.append(new Windows.UI.Popups.UICommand("Replace", function () {
createFileAndFinishRequest(request, deferral)
}));
dialog.commands.append(new Windows.UI.Popups.UICommand("Cancel", function () {
// Cancel save by setting targetFile to null
request.targetFile = null;
deferral.complete();
}));
dialog.showAsync().done();
} else {
createFileAndFinishRequest(request, deferral);
}
}
function createFileAndFinishRequest(request, deferral) {
_currentLocalFolder.createFileAsync(saveUI.fileName, Windows.Storage.CreationCollisionOption.replaceExisting).done
(function (newFile) {
// Return the empty placeholder file so the calling app can add the file contents
request.targetFile = newFile;
deferral.complete();
});
}

C#

async void OnTargetFileRequested(FileSavePickerUI sender, TargetFileRequestedEventArgs args)
{
var request = args.Request;
var deferral = request.GetDeferral();
if (DoesFileExist(_saveUI.FileName))
{
var dialog = new MessageDialog("The location already has a file named " + _saveUI.FileName + ".", "Replace
the existing file?"
); dialog.Commands.Add(new UICommand("Replace", (command) =>
{
CreateFileAndFinishRequest(request, deferral);
}));
dialog.Commands.Add(new UICommand("Cancel", (command) =>
{
request.TargetFile = null;
deferral.Complete();
}));
await dialog.ShowAsync();
}
else
{
CreateFileAndFinishRequest(request, deferral);
}
}
async void CreateFileAndFinishRequest(TargetFileRequest request, TargetFileRequestDeferral deferral)
{
request.TargetFile = await _currentFolder.CreateFileAsync(_fileSavePickerUI.FileName, CreationCollisionOption.
ReplaceExisting); deferral.Complete();
}

Criando uma experiência de salvamento para o usuário

Assim como ocorre com o contrato do Seletor de Abertura de Arquivos, uma parte importante da assinatura do contrato do Seletor de Salvamento de Arquivos é oferecer uma experiência que seja personalizada, focada e alinhada à personalidade e design do seu aplicativo principal. Veja aqui algumas maneiras rápidas de alinhar as suas implementações do contrato do Seletor de Salvamento de Arquivos com as diretrizes:

  • Exibição de filtro: Se o usuário alterar o tipo de arquivo na lista de tipos de arquivos do seletor de arquivos (você receberá um evento FileNameChanged), atualize a sua exibição para que mostre somente arquivos que correspondam ao tipo de arquivo selecionado. Indicado por 1 no diagrama a seguir.
  • Tratamento de erro: Verifique se o nome do arquivo, o tipo e o local em que o usuário está salvando os arquivos são válidos. Se não forem, exiba um erro e permita que o usuário corrija o problema. Mostre os erros com o mesmo estilo e personalidade dos erros do aplicativo principal que já deverá seguir as diretrizes de erro). Indicado por 2 no diagrama a seguir.
  • Nome do arquivo: Preenche o nome do arquivo automaticamente (pelo método TrySetFileName) quando um usuário seleciona um arquivo na sua página de salvamento. Indicado por 3 no diagrama a seguir.

Visão geral do UX do aplicativo SkyDrive implementando o contrato do Seletor de Salvamento de Arquivos

Visão geral do UX do aplicativo SkyDrive implementando o contrato do Seletor de Salvamento de Arquivos

Fluxo completo

Para resumir, temos uma visão geral do fluxo completo do Seletor de Salvamento de Arquivos. Assim como no diagrama do Seletor de Abertura de Arquivos, o aplicativo que implementa o contrato do seletor de arquivos (por exemplo, SkyDrive) está identificado como "Providing app" (Aplicativo fornecedor).

Visão geral do fluxo completo do Seletor de Salvamento de Arquivos

Cenário 3: Contrato do Atualizador de Arquivos em Cache

O contrato do Atualizador de Arquivos em Cache é a maneira como o seu aplicativo pode manter atualizados os arquivos mantidos por você quando atualizados por outros aplicativos do Windows 8. O que isso significa? Vejamos novamente no aplicativo SkyDrive. Com a implementação do contrato do Atualizador de Arquivos em Cache pelo SkyDrive, é possível garantir que qualquer arquivo que eu estiver usando (que esteja no SkyDrive) seja atualizado e quaisquer alterações que eu fizer sejam carregadas para o SkyDrive. Vamos supor que estou usando o meu aplicativo de edição de fotos favorito e desejo remover os olhos vermelhos de uma foto que armazenei no SkyDrive. No aplicativo de edição de fotos, abro o seletor de arquivos e seleciono uma foto no aplicativo SkyDrive. Removo os olhos vermelhos e o aplicativo de edição de fotos salva as minhas alterações. Por meio do contrato do Atualizador de Arquivos em Cache, essas alterações são automaticamente enviadas de volta para o SkyDrive. De fato, quaisquer atualizações adicionais que eu fizer no arquivo continuarão sendo enviadas para o SkyDrive durante o tempo de vida desse arquivo. Nunca preciso exportar manualmente ou carregar as minhas alterações para o SkyDrive — o contrato do Atualizador de Arquivos em Cache permite que os arquivos armazenados no SkyDrive sejam iguais aos arquivos armazenados no meu PC local, onde eu sempre tenho as últimas cópias, que podem ser atualizadas a qualquer momento.

Esse contrato é especificamente voltado para os aplicativos que funcionam como um local de armazenamento principal em que os usuários salvam e acessam arquivos regularmente. A maioria dos aplicativos não exige o contrato do Atualizador de Arquivos em Cache. Esse contrato exige muito gerenciamento de estado, manipulação de fluxos de dados complexos, resolução de conflitos e trabalho da interface do usuário a serem habilitados para que a implementação não seja trivial. Se os contratos tivessem uma classificação, a desse seria avançada.

Depois que você incorporar o contrato, o seu aplicativo será ativado (mas não necessariamente exibido ao usuário) sempre que um arquivo mantido por você precisar ser renovado ou atualizado. O seu aplicativo pode ser ativado a qualquer momento com essa finalidade, mas todas as ativações de aplicativos são gerenciadas pelo sistema e não diretamente pelo usuário. Por exemplo, se o usuário salva dados em um arquivo mantido pelo seu aplicativo, o sistema ativa o aplicativo para que você possa manipulá-lo de forma apropriada (por exemplo, carrega as alterações para o seu serviço na nuvem).

Implementando o contrato

Você pode iniciar a implementação do contrato do Atualizador de Arquivos em Cache seguindo o Guia de início rápido. Depois que o seu aplicativo implementar o contrato, ele será ativado automaticamente para manipular as alterações nos arquivos mantidos por você.

É necessário informar ao sistema quais StorageFiles você mantém. Usando o método setUpdateInformation, é possível definir permissões de leitura/gravação e controlar como e quando o seu aplicativo é ativado para manter o arquivo. Em geral, é melhor definir essa informação em qualquer arquivo selecionado pelo usuário no seu aplicativo usando o contrato do Seletor de Abertura de Arquivos ou salvo no seu aplicativo usando o contrato do Seletor de Salvamento de Arquivos. Você pode localizar os códigos JavaScript, C# e C++ para dar suporte ao contrato do Atualizador de Arquivos em Cache na nossa amostra do SDK dos Contratos do Seletor de Arquivos.

Além disso, ao implementar o contrato do Atualizador de Arquivos em Cache, você pode precisar solicitar que o usuário ofereça credenciais ou resolva um conflito de versões para que possa manter o arquivo. Nesses casos, você pode informar ao sistema que é necessária uma interface do usuário e que o seu aplicativo será iniciado no seletor de arquivos.

skydrive_creds

Aplicativo SkyDrive solicitando credenciais durante uma operação do Atualizador de Arquivos em Cache

Além das opções definidas pelo seu aplicativo, a solicitação de uma atualização ou o salvamento do arquivo pelo aplicativo podem controlar parte do fluxo do contrato do Atualizador de Arquivos em Cache. Especificamente, o aplicativo de chamada pode impedir que o seu aplicativo mostre a interface do usuário em alguns casos. Essa opção não surge para seu aplicativo, simplesmente há falha na chamada quando o aplicativo de chamada deseja atualizar ou salvar um arquivo e o seu aplicativo precisa mostrar a interface do usuário para concluir a solicitação.

Em todo o processo, você pode usar a enumeração UIStatus para saber qual etapa você está processando.

Criando uma experiência de atualização e salvamento para o usuário

Embora a parte de interface do usuário do contrato do Atualizador de Arquivos em Cache seja limitada, alinhe o seu aplicativo às diretrizes:

  • Mostrando a interface do usuário: Solicite a interface do usuário somente nos casos em que a intervenção do usuário (credenciais, conflitos de arquivos etc.) seja realmente necessária. Retorne os casos de falha para o aplicativo de chamada que informará ao usuário que a atualização ou salvamento não foram bem-sucedidos. Além disso, mostre mensagens informativas (por exemplo, "Arquivo salvo com êxito") somente no seu aplicativo principal (se necessário) na próxima vez que ele for iniciado e não na interface do usuário do seletor de arquivos ou outras superfícies de IU (por exemplo, notificações do sistema).
  • Status: Se o seu aplicativo manipular um grande número de atualizações e salvamentos, considere mostrar o andamento para cada tarefa na interface do usuário do seu aplicativo principal. Dessa forma, os usuários podem acompanhar o progresso e resolver problemas.

Fluxo completo

Para resumir, temos uma visão geral do fluxo completo do Atualizador de Arquivos em Cache. Assim como nos diagramas anteriores, o aplicativo que implementa o contrato do seletor de arquivos (por exemplo, SkyDrive) está identificado como "Providing app" (Aplicativo fornecedor).

fluxo completo do atualizador de arquivos em cache

Resumo

Nesta postagem, apresentei os contratos do seletor de arquivos e mostrei como você pode usá-los para que o seu aplicativo crie novas experiências no Windows 8. O contrato do Seletor de Abertura de Arquivos oferece um ótimo ponto de partida que permite que os usuários utilizem os arquivos que armazenam, criam e gerenciam no seu aplicativo em outros aplicativos do Windows 8. Conforme o seu aplicativo oferecer funcionalidades mais avançadas, os contratos do Atualizador de Arquivos em Cache e Seletor de Salvamento de Arquivos oferecerão uma progressão que permitirá que o seu aplicativo faça parte de mais cenários do Windows 8.

O que é importante de se lembrar:

  • Os contratos do seletor de arquivos são desenvolvidos como parte de uma progressão. Comece pelo contrato do Seletor de Abertura de Arquivos, passe pelo Seletor de Salvamento de Arquivos e, em seguida, vá para os contratos do Atualizador de Arquivos em Cache, se desejar.
  • Permita que a personalidade do seu aplicativo brilhe! Os usuários estarão familiarizados com a versão normal do aplicativo, portanto, traga a personalidade, a aparência e os affordances de navegação para a versão hospedada no seletor de arquivos.
  • Siga as diretrizes de UX que permitem que o aplicativo mostre sua personalidade, usando, ao mesmo tempo todos os affordances oferecidos pelo seletor de arquivos. Dessa forma, os usuários têm uma experiência consistente e de primeira classe ao usar o seu aplicativo no seletor de arquivos.

Para saber mais sobre os contratos do seletor de arquivos no Windows 8, siga este links ou faça perguntas nos nossos fóruns.

Link

Tipo

Destaques

Diretrizes e lista de verificação dos contratos do seletor de arquivos

Diretrizes de UX

Diretrizes para a implementação dos contratos do seletor de arquivos

Guia de início rápido: integrando com contratos de seletor de arquivos (aplicativos estilo Metro)

Guia de início rápido

Explica como incorporar os contratos do seletor de arquivos no seu aplicativo

Windows.Storage.Pickers.Provider

Referência à API

Documentação de referência dos contratos do Seletor de Abertura de Arquivos e do Seletor de Salvamento de Arquivos

Namespace Windows.Storage.Provider

Referência à API

Documentação de referência do contrato do Atualizador de Arquivos em Cache

Contratos do seletor de arquivos

Exemplo de código

Demonstra o uso dos contratos do Seletor de Abertura de Arquivos, do Seletor de Salvamento de Arquivos e do Atualizador de Arquivos em Cache

Obrigado,

--Scott Hoogerwerf, gerente de programas sênior, experiência do usuário do Windows

Com a contribuição de: Derek Gebhard

  • Loading...
Leave a Comment
  • Please add 1 and 7 and type the answer here:
  • Post