在网上现在几乎搜索不到可用的Asp.net MVC的用户系统,php的倒有康盛的Ucenter可用。现在计划自己开发,并倾向与走开源开发的模式。即一开始就开源,包括设计文档和所有代码。
欢迎对asp.net mvc 和用户系统有兴趣的朋友参加一起开发,创造一个有用的开源程序出来。
【蓝图】
最终蓝图是创建一个有用,易整合的开源用户中心。最终目标就是.net阵容的开发人员想创业了,不需浪费太多时间在重复造轮子,集中精力做核心功能。
有用是指功能上的完善,常用的的用户中心,大家可以参看博客园的,Discuz的(csdn采用),雪球财经的,豆瓣网的等等功能都类似,后续有简单的功能列表
易整合是相对.net程序员来说的,容易和应用系统整合,包括使用现有功能和扩展新功能都需要很容易。
【技术】
技术上的整体思路是在Asp.net MemberShip的基础上开发,账户系统沿用MemberShip。主要原因是节约开发时间和沿用asp.net 自带的安全基础设施。
开发工具上采用Asp.net mvc 2或asp.net mvc 3开发,数据库采用sql server 2005。ORM技术采用Linq to sql 和手写sql/存储过程相结合的方案。参照
架构上依照互联网开发的习惯,以开发快速和容易变更为本,初期不会有太多分层。
【背景介绍】
我们网站是一个以数码产品评论为主的社区,和豆瓣读书、大众点评网类似的SNS站点。由于对技术的熟悉程度和开发速度上的考量,整个网站采用Asp.net mvc 开发,相较php,合适的可用的Asp.net mvc的开源用户中心目前没有。因此我们反正是要开发,经过讨论决定走开源路线,在产品开发的过程中就开源,避免以后的开发者和公司遇到同样的问题。如果以后你想创业,就可以节约大把时间了。留下精力去做最核心的功能。
用户中心看似简单,实际其实很复杂,可以说是SNS网站最重要的模块之一。
【功能点】
我在初步分析之后,有以下功能需要开发。
一 基本资料
基本资料一般是根据网站特性有多有少。我们计划包含以下资料
- 1.用户名
- 2.显示名称(昵称),30天只能修改一次
- 3.居住城市
- 4.邮箱
- 5.性别
- 6.生日
- 7.头像
- 8.签名
- 9.个人简介
二 个人活动和成就
1.发表的评论
2.想要的产品
3.拥有的产品
4.收藏夹
5.产品列表(相关的产品列在一块,比如旅游镜头组合)
三 偏好(推荐产品时使用)
1.喜欢的产品
2.不喜欢的商品(不显示,但需要在推荐数据时做为过滤条件)
3.用户登录时推荐给用户是需要使用这些数据
四 好友列表
好友列表我决定采用微博的方式,即只有粉与被粉这种轻关系。
五 用户群组
我的群组
六 共同喜好
浏览者访问该用户时,如果有共同喜欢的物品,就将它列出来。
七 消息系统
1.评论被回复,被其它用户关注的通知
2.系统通知,比如有什么新活动推荐
3.用户之间发送的短消息
八 留言本
公开的留言本,可回复
九 勋章、积分、等级系统
积分规则
积分事件接口
等级规则
勋章规则
九 Neews Feed
News Feed和timeline功能太复杂,不放在用户中心,但用户中心提供接口。
【常见问题】
关于MVC 3 还是MVC 2
@Richwong
@坚持枪手
其实虚拟主机支持MVC 2的也非常少,现在还没确定用mvc 3还是2,还需要确定下MVC 3的开发和部署之后
关于“烂尾楼”
@IT Giant
这点是肯定不会,我们会使用在产品中,肯定要完成并达到商用级别。
关于开发必要性
@Dozer
@(张超)
Discuz 的Ucenter确实不错,但整合并不十分方便。首先是php开发的,不是每个人都熟悉。其次它提供的主要接口就是验证登录,想进一步整合是非常麻烦的。
关于使用MemberShip
首先降低开发难度以及不重复造轮子。MemberShip在asp.net/asp.net mvc网站是非常容易整合的,在所有服务端都能直接读到。