Javascript模块化,基于服务器的MVC和业务现实
我知道这是一个非常广泛的问题,但是我已经分别处理了该问题的各个方面,并且正在努力将所有概念和技术结合在一起。 我想指定答案应包括以下技术: C# 带剃刀的MVC 3 带有jQuery的Javascript 如果这些内容有助于回答以下问题,则欢迎将其视为超越建议的建议(例如Backbone.js,Entity Framework等): 使用上面列出的技术,在组织代码和逻辑,同时保持可伸缩性和创建丰富,快速,干净的UI的能力方面,什么是最佳策略? 理想情况下,应将重点放在部署在企业/企业环境中的解决方案上。请注意,上面的技术列表不会更改,因此请不要提供“您应该使用xxx而不是现在使用的yyy ”的解决方案。 背景 我每天都使用jQuery,已经采用ASP.NET的MVC,并且已经使用C#很长时间了。因此,您可以假设这些技术的中高级知识来提出解决方案。 我将问题分成较小的部分,以使其更易于回答: 1.项目结构 鉴于我正在使用ASP.NET MVC(在Visual Studio 2010中),我想要一个目录结构解决方案,该解决方案可以接受这种类型的应用程序的主要布局。我猜想像早午餐一样,但是每个文件夹将包含什么以及它如何与应用程序的其他区域一起工作的更多细节。 2.数据访问 我想使用一种API类型的结构来尽可能地模块化我的数据访问。你可以假设很多POCO对象(的User,UserGroup,Customer,OrderHeader,OrderDetails,等),但也会有一些复杂的报表需要数据密集型的SQL和精心UI渲染。 EF + LINQ对于前者而言非常出色,但对于后者则不那么理想。在没有过于复杂或过于简单的情况下,我找不到适合两种情况的东西。 3.客户端代码组织和UI渲染 像大多数开发人员最先使用jQuery一样,我陷入了将代码混在一起的陷阱,但是很快发现它堆积并变得丑陋。尽管从那时起我就突飞猛进,但我仍在努力使代码模块化以及在不重复代码的情况下使用UI的各个部分。 举例来说,我可能会编写的典型代码看起来像这样,我评论了困扰我的东西(请注意,此后我已更改为使用延迟的AJAX调用,并从DOM操作中分离了实际的数据请求): $('#doSomethingDangerous').click(function () { // maybe confirm something first if (confirm('Are you sure you want to do this?')) { // show a spinner? something …