我有一個頁面,用戶可以在其中輸入他的名字並附上圖像。從墓碑歸來時的應用認證要求
從墓碑狀態返回時,我的應用程序是否強制還原圖像?
是否是應用程序認證要求,沒有這個要求,我的應用程序不會通過認證?或者它是推薦的模式?
同樣的問題,當我有一個主要的例子,是否強制保存所選數據透視表的索引,並恢復從墓碑激活時的選擇?
沒必要: 是否有一個通俗圖書館\框架來幫助我,立碑和序列化對象,圖像等?
我有一個頁面,用戶可以在其中輸入他的名字並附上圖像。從墓碑歸來時的應用認證要求
從墓碑狀態返回時,我的應用程序是否強制還原圖像?
是否是應用程序認證要求,沒有這個要求,我的應用程序不會通過認證?或者它是推薦的模式?
同樣的問題,當我有一個主要的例子,是否強制保存所選數據透視表的索引,並恢復從墓碑激活時的選擇?
沒必要: 是否有一個通俗圖書館\框架來幫助我,立碑和序列化對象,圖像等?
按照Technical certification requirements for Windows Phone,唯一的要求是:當用戶按下開始按鈕或
一個Windows Phone應用程序被關閉,如果該設備超時導致鎖屏搞。 Windows Phone應用程序也會停用,並調用Launcher或Chooser API。
Windows Phone OS 7.0應用程序在停用時被邏輯刪除(終止)。 Windows Phone OS 7.1或更高版本的應用程序在停用時會變爲休眠狀態,但在資源使用策略導致邏輯刪除時可以由系統終止。
當終止後激活時,應用程序必須符合第5.2.1節 - 啓動時間的要求。
由於第5.2.1節「啓動時間」僅涉及啓動性能和響應能力,因此您沒有針對問題的認證要求。但是,如果用戶輸入數據(附加圖像等),並假設它接聽電話,做了其他一些事情並回到應用程序,然後他輸入的數據丟失了......它肯定會贏得不欣賞它。這看起來更像是缺陷/錯誤。
關於您的狀態的序列化,我建議您使用二進制序列化,因爲性能至少比使用Json,Xml或任何其他格式高10倍。
就個人而言,我實現一個自定義界面,IBinarySerializable我的 「狀態」 相關的類和使用的BinaryWriter擴展類來幫助編寫序列化代碼:
using System.IO;
namespace MyCompany.Utilities
{
public interface IBinarySerializable
{
void Write(BinaryWriter writer);
void Read(BinaryReader reader);
}
}
using System;
using System.Collections.Generic;
using System.IO;
namespace MyCompany.Utilities
{
public static class BinaryWriterExtensions
{
public static void Write<T>(this BinaryWriter writer, T value) where T : IBinarySerializable
{
if (value == null)
{
writer.Write(false);
return;
}
writer.Write(true);
value.Write(writer);
}
public static T Read<T>(this BinaryReader reader) where T : IBinarySerializable, new()
{
if (reader.ReadBoolean())
{
T result = new T();
result.Read(reader);
return result;
}
return default(T);
}
public static void WriteList<T>(this BinaryWriter writer, IList<T> list) where T : IBinarySerializable
{
if (list == null)
{
writer.Write(false);
return;
}
writer.Write(true);
writer.Write(list.Count);
foreach (T item in list)
{
item.Write(writer);
}
}
public static List<T> ReadList<T>(this BinaryReader reader) where T : IBinarySerializable, new()
{
bool hasValue = reader.ReadBoolean();
if (hasValue)
{
int count = reader.ReadInt32();
List<T> list = new List<T>(count);
if (count > 0)
{
for (int i = 0; i < count; i++)
{
T item = new T();
item.Read(reader);
list.Add(item);
}
return list;
}
}
return null;
}
public static void WriteListOfString(this BinaryWriter writer, IList<string> list)
{
if (list == null)
{
writer.Write(false);
return;
}
writer.Write(true);
writer.Write(list.Count);
foreach (string item in list)
{
writer.WriteSafeString(item);
}
}
public static List<string> ReadListOfString(this BinaryReader reader)
{
bool hasValue = reader.ReadBoolean();
if (hasValue)
{
int count = reader.ReadInt32();
List<string> list = new List<string>(count);
if (count > 0)
{
for (int i = 0; i < count; i++)
{
list.Add(reader.ReadSafeString());
}
return list;
}
}
return null;
}
public static void WriteSafeString(this BinaryWriter writer, string value)
{
if (value == null)
{
writer.Write(false);
return;
}
writer.Write(true);
writer.Write(value);
}
public static string ReadSafeString(this BinaryReader reader)
{
bool hasValue = reader.ReadBoolean();
if (hasValue)
return reader.ReadString();
return null;
}
public static void WriteDateTime(this BinaryWriter writer, DateTime value)
{
writer.Write(value.Ticks);
}
public static DateTime ReadDateTime(this BinaryReader reader)
{
var int64 = reader.ReadInt64();
return new DateTime(int64);
}
}
}
OK,所以這不是通過認證的要求。我非常着急發佈應用程序,我會在更新中解決問題。 – 2013-02-25 16:44:19