需求
这一应用由两个网站组成,主网站为员工使用,另一个网站为教练使用,它们使用同一个数据库。来自不同部门的员工负责不同的工作。拿回驾照的整个流程被分为许多步。每个部门负责一部分,完成后再将学员移到下一个部门。
此应用在整个流程中会生成许多发票。司机必须要完成支付才能参加下一项课程。此外,教练也可以为自己的工作向公司开出发票。
截屏
解决方案
ASP.NET MVC
此应用程序要求迅速反应和良好的用户体验,MVC使HTML代码变得更加整洁,并且很容易被Ajax要求使用。此外,我们拥有丰富的ASP.NET MVC经验,并且我们知道对大多数网站来说,它就是最好的解决方案。
Entity Framework & CodeFirst
Entity Framework提供了多条进入数据库的方法: 查询,插入,更新,删除。CodeFirst模式使对数据库的更改简单易行。开发初期,数据库的有很大的可能性会发生变化,多亏了Code First,使得每位开发人员都能通过改变模型很方便地改变数据库。
NDBUnit Test
此应用程序的业务逻辑较复杂。为确保所有的逻辑都正确实施,进行单元测试是一个不错的选择。使用NDBUnit进行单元测试,我们能够在XML文件中编写样本数据,所有的测试都可以使用这些数据。在这一项目中,我们还改进了单元测试的架构,这样使得编写新测试数据和维护已存在数据变得更加容易。
MVC最佳实践
我们使用和改善了许多MVC最佳实践。例如:
- 规范所有Ajax请求,包括HTML, JavaScript和C#规范;
- 规范form表单元素,不写自定义的页面元素;
- 用简单的客户端验证方式来验证表单
- 其他:把所有弹窗统一标准,使用辅助类来做相应功能,使用异步操作的时候最好在页面显示进度条或者一个等待的提示信息。.
- MVC最佳实践细节。
客户的收益
所有功能完成后,客户对我们的工作表示非常满意。虽然业务逻辑复杂,但是所有的需求都准确地实现,并且用户体验也非常不错。
此应用程序数据量非常大,数据库查询复杂,但总体上,性能不错。
此应用程序帮助员工和教练监督驾驶员的课程情况并决定他们的驾照是否可以再次发放。