跨平台的个人知识管理工具设计思路
来源:互联网 发布:淘宝店铺怎么改店名 编辑:程序博客网 时间:2024/04/30 16:25
目的:
为自己开发一款windows/linux下都能用的个人知识管理工具,同时学习linux的编程。因为很多时候在windows下使用,所以一般用MFC做开发比较好,但为了学习linux开发,就做成跨平台的,GUI使用GTK,数据处理使用linux c。
功能:
1、知识点的增删改搜索
2、知识点分类管理
3、知识点编辑要支持文本基本编辑、文本颜色和字体、插入图片
4、多人共享知识点
5、通信录的增删改搜索
6、行程计划管理,需要采用图形进行显示
基本设计思路:
windows上使用cygwin可能编译linux下的代码,但gtk等图形界面依赖于XFree,显示效果很差。可以使用GTK写界面,GTK的代码可以在windows上直接用mingw直接编译。界面和数据处理部件采用socket进行通信,采用TCP协议。数据部件直接使用linux下的代码,到cygwin下编译,而界面的通信代码部分,采用winsock编写。
数据处理部件需要完成的功能:
1、知识点、通信录、行程计划等数据的管理,单机版使用时,不应该额外部署数据库,所以采用sqlite作为本地数据库。
2、数据处理部件要能同时作为服务器和客户端,服务器负责所有用户数据的同步和存储,客户端负责数据同步和查询
3、为了便于后续利用此框架开发其他程序,需要将通信部分独立作为一个模块开发。
4、数据处理部分要支持日志,以便于后续问题定位实用。
5、多用户管理,用户名可以自行定义,但当同步到服务器上时,会自动检测是否重复,如果重复就要求输入密码,如果密码不对,会提示修改用户名以便以新的用户存入数据。
6、GUI连接本部件,可以在不认证的情况下,查询用户名,最多返回10个用户名,不再这10个中的,需要手工输入。
7、为了考虑性能问题,数据处理部件必须支持本地运行,而非做为服务器使用。
通信模块设计思路:
1、采用TCP方式
2、采用多线程结构,主线程负责客户端接入,其余线程负责单个客户端的具体通信。
3、服务器和本地数据处理采用同一种结构,但需要通过标识区分。
- 跨平台的个人知识管理工具设计思路
- zz:我的个人知识管理工具软件
- 我的个人知识管理工具软件
- 个人知识管理工具软件
- 个人知识管理工具试用感想
- 我的个人知识管理工具一览及相关经验技巧
- 我的个人知识管理工具一览及相关经验技巧
- 我的个人知识管理工具一览及相关经验技巧
- 我的个人知识管理工具一览及相关经验技巧
- 我的个人知识管理工具一览及相关经验技巧
- “个人设置”设计思路
- 九款个人知识管理工具介绍
- 个人知识管理工具及相关经验技巧
- 我的知识管理工具
- 麦库:盛大推出的个人知识管理工具(可同步Evernote)
- PKM2 - PKManager (基于内容的个人知识管理工具) 5M 绿色免费
- java的个人思路
- java的个人思路!
- Maven 小结
- 修复 VS2008 asp.net 设计视图 -工具-选项-[Html设计视图]出现"加载此属性页时出错" 解决方案
- google的速度
- 高精度加减乘法
- java中对于混型的方案
- 跨平台的个人知识管理工具设计思路
- 各常见排序算法实践
- 8种人将被淘汰
- java---实现数组的输出
- usaco 1.5.4 Checker Challenge
- Android模拟打电话程序实现
- 1028. Hanoi Tower Sequence (高精,除2)
- 多一分陪伴少一分孤独
- .NET调用osql.exe执行sql脚本创建表和存储过程