我一直在做 asp.net mvc 一段时间,最近遇到了这个 techdays 教程。
这似乎很有趣,但让我对如何开始做类似的事情感到困惑。
目前我有一个使用
1. Jquery
2. Asp.net mvc 3 razor
3. Nhibernate
我的应用程序基本上是一个带有几个选项卡的页面,一切都由 ajax 和 jquery 模型对话框控制。
我按照这个图案来做我的东西
视图 -> 视图模型 -> 控制器 -> 服务层(在单独的库中)-> nhibernate
[HttpGet]
public ActionResult Courses()
{
// get all courses back from service layer
// automap domain results to view model
return View(vm);
}
[HttpPost]
public ActionResult CreateCourse(CourseFormViewModel vm)
{
// check if data meets basic validation
if (ModelState.IsValid)
{
//map back to domain object
// send to service layer
// return data back view through json.
return Json(data);
}
// return errors back to server
return Json(wrapper);
}
// 我的视图模型包含基本验证
public class CourseFormViewModel
{
public int CourseId { get; set; }
[Required(ErrorMessage = "Course name is required")]
[StringLength(40, ErrorMessage = "Course name cannot be this long.")]
public string CourseName { get; set; }
}
// 看法
我的视图几乎有一些使用视图模型的强类型 html 帮助。
// Javascript
正如我提到的,我使用了很多 Ajax。大多数时候,我会使用 serliazeArray,然后将数据发布到控制器 Action Result(CreateCourse),然后再绑定视图模型的值。
// 服务层
在我的服务层中,我将执行一些业务逻辑,然后在需要时使用 nhibernate 保存到数据库中。如果我觉得有必要,我将制作域传输对象,否则我将只使用我的域对象。
我最近一直在研究 jquery 手机和手机的差距,因为我被安排在一个使用这种技术的项目上,它们看起来非常有用。由于我对 asp.net mvc 非常熟悉,因此我开始考虑是否可以在混合中使用 mvc,那时我看到了我在这篇文章顶部发布的视频。
我仍然不是 100% 在单页应用程序上销售,例如,如果我要查看我正在制作的当前个人项目并想要制作它的移动版本,那么应用程序在向其展示数据时必须完全不同用户。
例如,我的 Web 应用程序有一个表格,它只需要大量空间来显示所有内容,而且在移动设备上可能看起来不太好。这将导致我要么不得不修剪表格,要么考虑以不同的方式显示它(我可能会这样做)。
我喜欢史蒂夫所做的可以在所有移动设备上运行的事实,我想尝试类似于他正在做的事情,但我要制作的版本将只适用于移动设备,也许是小型平板电脑。
我认为可以支持 1024 和更高分辨率的所有其他东西都应该使用当前的 Web 应用程序。
我只是不知道从哪里开始以及如何使它适合我正在使用的东西。
他正在使用 webapi 和实体框架工作,但我如何使用 nhibernate 进行这项工作?
我不再使用视图模型了吗?似乎他只是连接了他的域模型并将其全部发送到视图。我对此并不太疯狂,因为我喜欢视图模型。
他使用 Knockout.js 及其所有绑定内容,例如绑定到他用来将数据发送回服务器的按钮。这很好,但是当您使用 jquery 对话框和生成自己的按钮的东西时会发生什么。在这些情况下,你如何挂钩淘汰赛?
他提到,然后他可以接受他的项目并使用诸如phonegap之类的东西将其投放市场。如果他使用 asp.net mvc 代码作为电话间隙仅支持 html/javascript/css,他怎么能做到这一点?