我正在开发一个处理在线考试的网络应用程序。要求是:
我正在寻求社区投票,有人会如何设计应用程序以满足所有这些标准?应该使用哪些模式?哪些组件可以帮助缩短开发时间等。
我的技术堆栈是C#,ASP.NET MVC或带有SQL Server的ASP.NET。
提前致谢!!!
答案 0 :(得分:4)
您应该查看开源DotNetNuke等解决方案,而不是重新发明轮子,并购买/构建特定于您的方案的部分的扩展。
我认为对于用户应用程序,您应该考虑使用Silverlight应用程序,因为这将为您提供对体验的精确和安全控制。
总的来说,解决方案是这样的:总的来说,这样的解决方案可以让您高度控制用户体验,同时使您能够专注于特定于您的情况的时间/资源,同时利用现有的,强大且流行的解决方案来构建您的解决方案
(完全披露:我是管理DotNetNuke的公司的联合创始人之一。公平地说,你可以用Orchard或Umbraco取代我对DotNetNuke的建议,解决方案同样有效。)
答案 1 :(得分:2)
对于数据库方面你需要的东西:
Table Exams (ExamID, ExamName) //to hold all exams
Table Users(UserID, Username, Login, Password) //to hold all users
Table OpenExams(Exam_ID, User_ID) //to hold open exams
Table ExamSections(SectionID, Exam_ID, SectionName) //to hold sections of exams
Table Questions(QuestionID, Section_ID, QuestionName, Question, Answer) //to hold questions
这当然是最基本的,只有很多的一种方法。您需要在必要时添加字段。
对于第2项,我可能会在应用层(或VS)中进行。我在web开发方面没有太多经验,但我认为ASP可以解决这个问题。对于第3项,如果尝试访问考试的用户正在参加考试,您可以运行一个简单的SQl语句。
答案 2 :(得分:1)
让我们也开始映射进程: 用户: 1.用户登录(以防止一个用户进行多次检查)。 2.用户“开始”考试 - >服务器端记录时间,客户端触发定时器。用户获得动态考试页面1。 3.用户完成第1页,点击下一步 - > Ajax-重新加载页面内容(问题部分)。第2页的计时器已启动(服务器端和客户端) 3.a)检测到来自不同IP的登录 - 会话被破坏,用户被标记为骗子:)或者登录被拒绝。
这需要做很多工作,但是如果你有了这个,你就会知道你需要在设计中加入什么。