【基本情况】
1、非专业编程人员,业余爱好者,被赶鸭子上架做这个事情,无法推脱。此前有Apache2+MySQL+php开发网站的经验,没有接触过ASP.NET MVC4。C#基本没基础。。。以前用过很长时间C++,但水平也有限。
2、已经使用Apache2+MySQL+php (Codeigniter框架)完整地实现了需要做的用户系统,并得到认可,但要正式使用,必须转到ASP.NET MVC 4环境下,与一个已有的ASP.NET MVC 4开发的网站融合。
3、ASP.NET MVC 4新建项目自带一个用户系统,但过于简单。需要改进或者另起炉灶,实现我们需要的功能。具体需求见下文
4、时间较紧急,需要快猛糙地实现,希望大家能推荐一些相关度较高的书籍、教程、案例给我学习。
谢谢大家!
【用户系统要求】
1、注册要求填写邀请码,与数据库内已有邀请码匹配才可以注册。
2、有三个等级的帐号:Root、administrator、user。user帐号可以使用该网站提供的一些计算服务,供一般用户注册。administrator账户用于管理user帐号、生成邀请码,一些大客户可用需要注册此类账户。user帐号帐号和administrator账户有从属关系。Root帐号是网站的唯一超级权限管理员,可管理user、administrator两种账户。administrator、user都不具有唯一性,各需要一张数据表记录已有的帐号(当然也可以勉强做到一张表内)。
【目前遇到的问题】
一、感觉MVC不够自由,虽然提供了非常强大的支持,但想写一点自定义的东西则不知从何下手。可能是我不够熟悉所致错觉。
比如,同样是MVC的框架,但Codeigniter和ASP.NET MVC4似乎还是有所区别,前者对数据的操作、逻辑判断均写在Model内,而ASP.NET MVC4的Model似乎只是提供数据类型,只是一个壳子,不涉及具体的操作与逻辑判断。这让我有点不知如何处理那些本该写在Model内的逻辑。
举个例子,对于我的需求,注册用户时判断邀请码是否符合要求,如果符合在数据库内添加该用户填写的信息,这个操作是写在Model内的。而我阅读ASP.NET MVC4默认的用户系统,发现Model只有一堆这样的代码:public XXType XXAttri { get; set; },用户注册的数据操作与逻辑判断是在WebMatrix.WebData.WebSecurity中实现的。我无法直接读到该类的源码,更无法修改。但我需要做很多修改,比如判断邀请码是否符合要求。这要如何实现呢?自己写一个WebSecurity类,然后引用自己的类,不管系统自带的?如果是这样放在项目哪个位置,如何引用呢?
二、文档不够完善。我甚至没有找到完整详细介绍如何操作数据库和session的文档。只能在零碎的例子和论坛上一点点学,非常不系统。相较之下,Codeigniter做得好多了:
http://codeigniter.org.cn/user_guide/database/index.html
http://codeigniter.org.cn/user_guide/libraries/sessions.html
可能我搜索技术太烂,没有找到,麻烦大家给个类似的介绍ASP.NET MVC4相关知识的链接。数据库操作的重要性无需多说,而session我需要用它记录登录用户角色,以便登录后跳转到不同的网页,还需要根据角色的不同,生成不同的导航栏(也许有不用session的解决方案,欢迎介绍)。
三、一个题外问题:我刚接触C#和lambda表达式,看到ASP.NET MVC4中大量用到了model=>model.name这样的表达式,我理解这个表达式返回值就等于model.name,为什么不直接写model.name?
谢谢大家!
--
FROM 128.113.44.*