[UWP]涨姿势UWP源码——极简的RSS阅读器
涨姿势UWP,一个开源的RSS阅读器,一个纯粹的项目,一个有道德的APP,一个脱离了低级趣味的作者,一些有益于人民的代码。骚年,还等什么,来涨点姿势吧!
该项目代码可能会引起部分人群的不适,敏感人群请在父母陪同下阅读。
看到第三段的骚年们,我想你们是对这个RSS的阅读器感兴趣了,该项目是一个极为简单的UWP的工程,代码托管在GitHub上,供有兴趣学习UWP APP开发的童鞋们参考。工程主要包括以下几个文件:
|
工程 |
文件 |
备注 |
|
ZhangZiShiRssRead |
RssReader.cs |
负责RSS内容的读取和解析 |
|
FileStoreHelper.cs |
将RSS内容存储成本地XML文件,以及读取本地储存的XML文件 |
|
|
Item.cs |
对应每一篇文章的Model |
|
|
MainViewModel.cs |
ViewModel,该APP是一个单页面程序,仅有一个ViewModel |
|
|
MainPage.xaml |
UI对应的XAML文件 |
|
|
ViewModelLocator.cs |
提供MainViewModel的Singleton对象 |
|
|
WebViewEx.cs |
通过附加属性让WebView可以绑定HTML字符串 |
|
|
ZhangZiShiRssRead.UTTest |
一些简单的UT |
项目总体来看非常容易理解,首先通过RssReader类从涨姿势网站获取RSS内容,然后进行解析,成功后通过FileStoreHelper类将内容储存为本地文件,同时将RSS文件的内容映射到类Item这个Model对象中。MainViewModel中会组织Item的集合,提供一个界面的抽象供View使用。
MainPage就是真正的UI界面,通过控件绘制UI,引用其他一些资源文件等等,再将DataContext设置为MainView的实例,通过Binding来进行关联。
唯一使用的第三方框架只有MvvmLight,用到了Binding,Command和Messenger等一些内容,也比较简单,可以参考之前写的MvvmLight框架使用入门(一)。
后续会就这个APP的代码,写几篇博客讲讲开发中的心得体会,简单分析一下代码,请各位轻拍。
第一版比较粗糙,无论是功能还是UI样式都没有复杂的内容,目的就是希望能够创建一个容易上手的Hello World APP,同时又有一定的实用性。欢迎各位对发现的bug提交pull request。开源的代码可以拿去随意使用,只是不要原样Copy整个项目然后连名字都不改就提交到商店……
晒几张APP的截图,首先是desktop:

如果是手机的话,会将左右内容分开显示,以适应手机屏幕:

Git的使用方法可以参考这篇:
UWP开发入门(十九)——10分钟学会在VS2015中使用Git
接下来还会做进一步的维护,修修bug,增加些功能。毕竟我自己也要用这个来涨姿势……
最后把项目在GitHub上的地址贴一下:
https://github.com/manupstairs/ZhangZiShiRSSRead
[UWP]涨姿势UWP源码——极简的RSS阅读器的更多相关文章
- UWP 推荐 - 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10
文/云之幻 前不久,博客作者 Bravo Yeung 写了一篇还算略受欢迎的关于 RSS 的文章 .Net开发者必知的技术类RSS订阅指南. RSS 现在用的人很少了,而且就算是我,也不过是在一周前才 ...
- Spring源码情操陶冶#task:scheduled-tasks解析器
承接前文Spring源码情操陶冶#task:executor解析器,在前文基础上解析我们常用的spring中的定时任务的节点配置.备注:此文建立在spring的4.2.3.RELEASE版本 附例 S ...
- springMVC源码分析--HandlerMethodReturnValueHandlerComposite返回值解析器集合(二)
在上一篇博客springMVC源码分析--HandlerMethodReturnValueHandler返回值解析器(一)我们介绍了返回值解析器HandlerMethodReturnValueHand ...
- Spring AOP 源码分析 - 筛选合适的通知器
1.简介 从本篇文章开始,我将会对 Spring AOP 部分的源码进行分析.本文是 Spring AOP 源码分析系列文章的第二篇,本文主要分析 Spring AOP 是如何为目标 bean 筛选出 ...
- Tomcat源码分析(类加载与类加载器)
Tomcat的挑战 Tomcat上可以部署多个项目 Tomcat的一般部署,可以通过多种方式启动一个Tomcat部署多个项目,那么Tomcat在设计时会遇到什么挑战呢? Tomcat运行时需要加载哪些 ...
- [UWP]涨姿势UWP源码——IsolatedStorage
前一篇涨姿势UWP源码分析从数据源着手,解释了RSS feed的获取和解析,本篇则会就数据源的保存和读取进行举例. 和之前的Windows Runtime一样,UWP采用IsolatedStorage ...
- [UWP]涨姿势UWP源码——Unit Test
之前我们讨论了涨姿势UWP的RSS数据源获取,以及作为文件存储到本地,再将数据转化成Model对象.这部分非UI的内容非常适合添加Unit Test.不涉及UI的话,UT写起来简单高效,很是值得投入一 ...
- [UWP]涨姿势UWP源码——RSS feed的获取和解析
本篇开始具体分析涨姿势UWP这个APP的代码,首先从数据的源头着手,即RSS feed的获取和解析,相关的类为RssReader,所有和数据相关的操作均放在里面. 涨姿势网站提供的RSS feed地址 ...
- [UWP]涨姿势UWP源码——UI布局
懒癌晚期兼正月里都是过年,一直拖到今天才继续更新.之前的几篇介绍了数据的来源,属于准备工作.本篇我们正式开始构建涨姿势UWP程序的UI界面. 我们这个Hello World程序比较简单,总共只有一个页 ...
随机推荐
- 一个事务复制的bug--更新丢失 续
阅读本文之前请参考http://www.cnblogs.com/stswordman/p/3258897.html 最近又做了一个case,环境是sql server 2008 R2. 客户添加了一个 ...
- entityframework使用oracle的几个小问题
问题一:Operation is not valid due to the current state of the object 生成的edmx文件有问题,解决方法参考链接 问题二:InvalidO ...
- C#中virtual与abstract的区别
C#中virtual与abstract的区别 C#的virtual & abstract经常让人混淆,这两个限定词都是为了让子类进行重新定义,覆盖父类的定义.但是用法上差别很大. a) ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V1.8(源码)
距离的GG 1.0发布已经三周了,这三周内,我利用业余时间为GG增加了视频聊天的功能.个人觉得进展有些缓慢,主要是因为大多数时间都花在了UI上.由于本人不会PS,所以图片素材都是从网上一个一个搜下来的 ...
- 安装金山WPS2013造成的HTML5 file.type值异常
处理代码的兼容性是前端攻城师们的家常便饭了,一般是对各种浏览器进行兼容性处理.但是有时候我们也会遭遇到浏览器以外的影响因素,这个是经常会被忽视掉的内容.比如前几天就听说客户端安装迅雷.暴风影音等软件会 ...
- FusionCharts简单教程(六)------加载外部Logo
一.加载外部文件Logo 在使用FusionCharts时,我们可能需要在加载图像的时候需要在图表中显示标识.图片等等.这里我们可以使用logoURL属性来实现.如: <chart ...
- 异步编程之Javascript Promises 规范介绍
什么是 Promises Promises是一种关于异步编程的规范,目的是将异步处理对象和处理规则进行规范化,为异步编程提供统一接口. 传统的回调函数 说到JavaScript的异步编程处理,通常我们 ...
- osgi 1
Helloworld入门 准备: eclipse 3.4 需要jar,—— eclipse 自带的,plugin下面有很多,抛开里面的jar,很多都是当前项目不需要的,如果不适用eclipse而是直接 ...
- MVVM架构~Knockoutjs系列之text,value,attr,visible,with的数据绑定
返回目录 Knockoutjs是微软mvc4里一个新东西,用这在MVC环境里实现MVVM,小微这次没有大张旗鼓,而是愉愉的为我们开发者嵌入了一个实现MVVM的插件,这下面的几篇文章中,我和大家将一起去 ...
- 基础才是重中之重~C#中标准的IDispose模式
回到目录 IDispose模式在C++中用的很多,用来清理资源,而在C#里,资源分为托管和非托管两种,托管资源是由C#的CLR帮助我们清理的,它是通过调用对象的析构函数完成的对象释放工作,而对于非托管 ...