码迷,mamicode.com
首页 > 移动开发 > 详细

wp8人人监督app开发历程 - (前期调研 > app策划 > 代码编写 >测试 > 上架到商店)

时间:2014-07-30 20:08:34      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:style   http   使用   os   strong   io   数据   问题   

前言

一直想为社会做一点事情,却一直都不知道做什么,策划已久的"人人监督"app终于做了一小半了。

开发了好几款app了,一直没写博文记录在开发app中遇到的问题和技术,这次"人人监督"不能在错过了,一定要坚持把整个开发历程写下来,同大家分享在代码世界中的快乐。

"人人监督" 是一款供民众投诉、检举、监督的一款app,其目的是人人监督以营造和谐的社会!

 

项目技术

开发环境:Windows8  + Visual Studio 2012 + SQl Server 2008

服务器端:EntityFramework6 + WCFService 

客户端:WIndowsPhone8、8.1

框架:MVVM

 

策划

在笔记本上,手写的,有时间再抄下来!

 

开发历程

到目前位置已经完成的功能模块:

(按照开发的顺序)

1.整个APP的服务端

2.客户端信息列表展示

3.省市列表

4.发布检举监督信息(可上传图片)

5.登录

6.注册

 

遇到的问题

起先准备用ashx(一般处理程序)来写服务端的,可一般处理程序就是很一般。

跟朋友交流后,发现问题远远没有我想象的简单,要考虑的问题太多了:比如传输协议用什么,用户信息安全,数据加密,服务端访问权限等等。

考虑再三决定用wcf,因为之前有项目中用过,只会一点点基础用法。

原本以为wcf只是一个类似webservice的很简单的服务,入手后发现仅wcf的配置就够你琢磨一段时间的。

咱们是程序员嘛,不怕,有的是头脑,再三摸索后,发现默认的配置可以供wp使用,唉。

下面就列出遇到的问题:

1.wcf配置问题

在使用wcf的时候一定要为每个操作添加特性,供客户端调用在接口上添加[ServiceContract],行为上添加[OperationContract],如果供web调用,还要加一个特性[WebGet]。

还有wcf的binding,系统提供的绑定以及binding的介绍可以看这里http://msdn.microsoft.com/zh-cn/library/ms730879(v=vs.110).aspx,当时不知道怎么搜关键字,搜了好久才找到。

还有默认binding的属性配置http://msdn.microsoft.com/zh-cn/library/ms731361(v=vs.110).aspx

还有其他的问题已经记不清了,反正当时是写了很多个demo,有asp.net的,wpf的,Console的,sliverlight的各种测试,查阅了csdn和msdn论坛,才搞定的。

还有wcf exception处理还没搞懂,总之有时间一定要把wcf系统性的看一遍。

 

2.wcf的寄宿方式和访问

我用的IIS,发布到IIS后,如果端口不是80,会出现经常访问不了情况。这个时候可以在防火墙添加入站规则,将该端口允许外界访问,这个问题也是折腾了好一番。(具体配置有时间会单独写一篇博文记录:IIS网站配置端口允许外部设备访问)

 

3.wcf返回结果序列化

ef中有个虚拟加载项,一些导航属性不能被序列化,这个时候将延迟加载的对象加上DataContract和DataMember特性就OK了,这里也涉及到了wcf中的契约。(具体情况会单独写一篇博文:wcfservice返回集合对象的序列化)

 

4.wcf的安全性

一切准备就绪,服务写好了,发布到了IIS了,客户端可以正常引用了。可问题又来了,一旦服务器地址泄漏,那别人就不也可以引用的我的wcf么?

经过一番资料查询后,看到了几种解决方案,有两种我觉得是靠谱的,第一个是安全证书,第二个是自己写验证。

安全证书那玩意好像很高级,我选择了第二中,相比后者而言会简单更好理解,就是在每次请求服务器的时候添加一个Header信息,在头部信息中带一个用户名和密码。

到了wcfservice服务器后在进行判断,不匹配就直接抛出一个您没有权限访问的异常。相比

虽然简单,但是这个比较繁琐,要在没个方法内部都进行一个判断。(以后有时间我会研究一下安全证书,研究完后我会写一篇:关于wcfservice的安全认证的博文)

 

5.图片上传

wcfservice接收wp8传过来的图片保存的时候要么拒绝访问,要么找不到目录。这样即可:var path = AppDomain.CurrentDomain.BaseDirectory + "Images";  (有时间会单独写一篇博文:WP8通过WCFService上传图片)

 

未完待续。。。

 

wp8人人监督app开发历程 - (前期调研 > app策划 > 代码编写 >测试 > 上架到商店),布布扣,bubuko.com

wp8人人监督app开发历程 - (前期调研 > app策划 > 代码编写 >测试 > 上架到商店)

标签:style   http   使用   os   strong   io   数据   问题   

原文地址:http://www.cnblogs.com/tonge/p/3878512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!