dinghao

记录成长点滴

 

silverlight阅读器——面向领域的浏览器(二)——Silverlight阅读器架构

 

读者最关心的是阅读的内容而不是内容的来源,同一本图,网上有图片版也有文字版本,阅读器可根据用户阅读习惯(比如用户只希望阅读图片章节)自动从网络找到相关图书内容。

阅读器核心价值是提供比浏览器更好的用户体验:

1、 无广告,没弹出窗口

2、 根据用户习惯预加载,阅读无延迟

3、 章节更新通知

4、 统一UI、阅读方便

5、 用户收藏图书保存到开放平台,可以通过开放平台阅读。如:把收藏图书保存到qq空间。

6、 更安全,基于Silverlight,恶意代码在解析器已经被过滤比Html更安全。

以上功能都是浏览器无法提供的。

主要业务流程

阅读器核心的功能是为用户提供方便、友好的阅读方式,以用户阅读小说:凡人修仙传图片章节为例说明阅读流程。

image

核心业务功能

核心功能:提供用户友好的阅读方式。

非核心功能:电子书制作,以插件方式提供。

image

核心系统功能

为提供友好阅读体验,完成业务功能,阅读器需要如下系统功能支持。

核心系统功能:

灵活高效的Html解析功能。HTML解析模块能支持任意html解析,并且可以自动将解析结果生成xaml或领域对象。

自定义解析站点,用户只需把自定义解析文件放到阅读器指定目录就可以自动增加解析站点。

缓存机制、预加载机制可以满足在线阅读无延迟。

MVVM模式、MEF提供扩展性与可移植性。

自动解析测试,在站点改版后可以自动到服务器下载新解析文件。

URI生成:可以根据现有URI生成目标URI,减少一次网络通信(非核心)

image

约束

目前浏览器基于Silverlight实现,下面一些问题限制了浏览器的功能。尤其最近百度文库的问题吵的沸沸扬扬,阅读器在设计之初,即考虑到只做单纯的浏览器使用,只是根据阅读习惯把来自web的内容以更好的方式展现出来。

图书不保存到服务器,不通过强大的服务器支持阅读。而通过增强缓存功能、预读取功能来实现阅读流畅。

image

阅读器开发架构

阅读器由三部分组成,阅读器程序(UI)、Html解析器、聚焦爬虫。

目前聚焦爬虫未实现,这一部分输出的小说网址通过配置文件实现。

image

阅读器UI部分架构

阅读器架构的最上层UI部分,采用MVVM架构,为调整UI、移植到其他平台提供方便。

image

功能路线图

目前阅读器是第二个版本,(如果从最开始算起是第三个版本)

1. 最初版本,使用SilverlightToolkitUI,测试版

http://www.cnblogs.com/bluewater/archive/2010/07/06/1772466.html

2. 第二版本,新UI,类似iPod界面(V1)

http://www.cnblogs.com/bluewater/archive/2010/12/20/1911769.html

3. 第三版本,主要是非功能方面的改进

http://www.cnblogs.com/bluewater/archive/2011/04/07/2007913.html

image

posted on 2011-04-07 16:23 思无邪 阅读(1183) 评论(8) 编辑 收藏

评论

#1楼 2011-04-07 16:40 MagicHu      

第一,领域专家不参与,这个没有办法做。
第二,有效数据的列表的维护,需要时间和精力。
第三,iReader这样的只是针对小说,如果有其他领域的话,是不是除了框架之外,都要改写呢?UI,数据绑定,各种策略等等。
第四,怎么保证有效数据的公正性和权威性,我可不想看到另一个百度。推广的东西居然占了笔记本的全部。。。。
 回复 引用 查看   

#2楼 2011-04-07 16:41 huyong      

Good.  回复 引用 查看   

#3楼 2011-04-07 16:55 韦恩卑鄙 v-zhewg @waynebaby      

支持 感觉很靠谱  回复 引用 查看   

#4楼[楼主] 2011-04-07 17:07 思无邪      

@MagicHu
你提的几点,可说是一针见血。都是领域浏览器需要面对的问题。
不同领域,需要不同的UI,如果相同都有html就好,这东西就没有必要存在了。
第二点,可以通过自动测试保证,但仍然需要精力,毕竟不是调用公开的API
第三点,现在只是针对小说。如果针对其他领域,这个浏览器只是提供框架。
如缓存、历史记录、解析引擎。
如何展现、策略可以打包到新的xap中,动态加载。
第四点,有两种可能的解决办法
1、只有认证的插件才能加载到浏览器,只是提供框架,如果觉得不好可以不适用某个插件。像firefox插件很多,但你可以选择的使用。
2、数据的公正性,这就难了。也许只能加上服务器端支持,根据用户评分,来确定数据的公正性。

 回复 引用 查看   

#5楼 2011-04-07 17:10 风云      

强!  回复 引用 查看   

#6楼 2011-04-07 17:11 MagicHu      

有没有想过移植到Android系统,或者iOS,或者WP7?  回复 引用 查看   

#7楼[楼主] 2011-04-07 17:28 思无邪      

@MagicHu
wp7移植会比较容易,基于MVVM,只需重写View其他模块改动较小。有时间会移植。
其他平台,Mono或许会简便些,暂无计划。
 回复 引用 查看   

#8楼 2011-04-15 11:53 清风翠竹      

佩服,sl5之后应该会又一次做大的调整吧  回复 引用 查看   

导航

统计

公告

昵称:思无邪
园龄:6年1个月
粉丝:20
关注:0

搜索

 
 

常用链接

我的标签

随笔分类

随笔档案

收藏站点

文章收藏

积分与排名

最新评论

阅读排行榜