【WP7】布丁优惠券技术讲解

【摘要】

今天,WP7版布丁优惠券V1.0版在将近一个月的开发中终于上架了。大家可以在wp7商城免费下载,免费使用O(∩_∩)O~ 

网页下载链接:http://www.windowsphone.com/zh-CN/apps/294b3ba9-43f4-4c20-850e-28baf5c11a2c

当然,V1.0版还有很多小缺陷,现在也正在弥补,相信不久就会更新,到时候惠请大家更新哦。

【截图】

【WP7】布丁优惠券技术讲解

【WP7】布丁优惠券技术讲解

【WP7】布丁优惠券技术讲解

【看完图之后,几句寒暄】

希望看完截图,大家有兴趣去下载哈,的确可以给大家的生活省下不少钱哦,有异性朋友的那就更加要下载,不过目前国内拥有wp7手机的用户的确不多,

不过我相信以后会多起来的,不喜欢安卓的卡机,死机同学这个手机是个不错的选择。

【技术要点】

1.图片缓存,图片异步下载

在显示商家优惠券列表的时候,我是使用ListBox来包含所有的优惠券的信息,主要就是显示优惠券的小图片,标题,价格这些内容,当然首次加载的时候,

肯定要从服务器获取数据,对于文字信息好办,直接绑定就可以了,而对于图片,则需要做优化处理,我当时是参见如下,大家可以看看,写的很详细。

http://www.cnblogs.com/alexis/archive/2011/11/17/2253202.html  

 

2.页面传值

对于页面传值的方式,网上有很多资料,当时我觉得用户比较多的是

(1.通过参数传值,类似http 中的get方式

(2.State保存应用程序临时值

  PhoneApplicationService.Current.State["currentUserViewFav"] as CouponList;

(3.App中全局变量

3.MVVM

我主要使用的是MVVMlight.大家可以在这去学习下:http://www.galasoft.ch/mvvm/

4.为用户节省流量

这就需要应用对从网上获取的数据有缓存,使用独立存储,本地数据库都可以,当前,我简化了应用,使用的

独立存储,具体使用方式,我可以给出本系统中主要的函数,这些方法大家都可以直接用的。

 

  public static void WriteFileToIso(string fileContent, string folderName, string fileName)
{
try
{
using (var myStore = IsolatedStorageFile.GetUserStoreForApplication())
{
string filePath = Path.Combine(folderName, fileName);
if (!myStore.DirectoryExists(folderName))
{
myStore.CreateDirectory(folderName);
}

using (IsolatedStorageFileStream myFileStream = new IsolatedStorageFileStream(filePath, FileMode.OpenOrCreate, myStore))
{
using (var isoFileWriter = new StreamWriter(myFileStream))
{
isoFileWriter.WriteLine(fileContent);
}
myFileStream.Close();
}
}
}
catch (Exception e)
{

//throw;
}

}

public static string ReadFileFromIso(string folderName, string fileName)
{
using (IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication())
{
try
{
// Specify the file path and options.
string filePath = Path.Combine(folderName, fileName);
string readcontent = null;
using (var isoFileStream = new IsolatedStorageFileStream(filePath, FileMode.Open, myStore))
{
// Read the data.
using (var isoFileReader = new StreamReader(isoFileStream))
{
readcontent = isoFileReader.ReadToEnd();
isoFileReader.Close();
if (readcontent != null)
return readcontent;
else
return null;
}
}

}
catch
{
// Handle the case when the user attempts to click the Read button first.
return null;
}
}

}

public static bool IsFileCached(string folderName, string fileName)
{
using (var myStore = IsolatedStorageFile.GetUserStoreForApplication())
{
string filePath = Path.Combine(folderName, fileName);
if (myStore.FileExists(filePath))
{
return true;
}
else
return false;
}
}

public static bool DeleteFileByFileName(string folderName, string fileName)
{
using (var myStore = IsolatedStorageFile.GetUserStoreForApplication())
{
string filePath = Path.Combine(folderName, fileName);
if (myStore.FileExists(filePath))
{
myStore.DeleteFile(filePath);
}
if (myStore.FileExists(filePath))
{
return false;
}
else
return true; //表示已经删除
}
}

5.了解发布到微软商城的协议

比如在使用GPS定位之前,需要向用户询问是否允许应用使用GPS. 了解这些其实也是为一次性通过微软审核做出准备,不然最后浪费的时间还是自己

的,每次的提交都需要近一个礼拜的等待。

我自己也上传了几个小应用,大致总结下,微软主要审核的内容

(1.语言,就是开发应用使用的语言要和你上传应用目标所在地的语言一致,不然不让通过,PS:当然可以使用本地化

(2.飞行模式测试,如果应用需要从网络上获取资源,要先判断用户当前网络状态

(3.使用手机服务提醒,并且需要在设置中拥有“开”“关”按钮。比如前文中的定位服务

(4.手机主题,再更改手机主题之后,应用中控件的可见性

6.保存页面的状态和应用程序的状态

这个可以参见MSDN,比我说的详细:

保存页面的状态:http://msdn.microsoft.com/zh-cn/library/ff967548(v=vs.92).aspx

保存应用程序的状态:http://msdn.microsoft.com/zh-cn/library/ff967547(v=vs.92).aspx

7.待续吧,还有工作没有完成,wp7布丁优惠券下一个版本的开发中...

【总结】
通过这个应用的开发,大概主要技术和要点,在上面说了,大家如果想需要WP7开发,可以先从这几方面入手,通过这几方便的学习,

相信大家就可以开发更好的应用。加油。自己也加油。对于wp7的开发,个人也觉得,微软做了一件好事,只要有ASP.Net或windowfrom或

C#或WPF或silverlight的开发经验来学习这个,真的不难。


你可能感兴趣的:(wp7)