nopcommerce商城系统--开发者常遇问题清单
原址:http://www.nopcommerce.com/docs/74/frequently-asked-development-questions.aspx
也介绍了一些nopCommerce开发团队的编码规范。
有什么要求?
nopCommerce技术和系统需求可以在这里找到。
开发者如何为nopCommerce项目做出贡献?
要上传一个扩展信息请在Web浏览器中访问我的帐户页面,选择标有“Your contributions and extensions”选项卡,并单击“Upload a new extension”按钮。
如何报告一个BUG?
nopCommerce使用Codeplex作为官方BUG跟踪系统,如果发现一个BUG,可通过在Codeplex创建一个新的任务来报告给nopCommerce团队。开发者或用户也可以在我们的BUG论坛版块发帖子来告知新发现的BUG。通过这里你有机会验证你的BUG是否已经被提交,这个很重要。因为BUG的重复提交会浪费时间,减少我们在开发新功能和改其他BUG的时间。
数据访问层
NopCommerce采用了流畅的API来完全定制持久性映射。如果想了解更多Code-First请访问这里或这里。
控制反转和依赖注入
控制反转和依赖注入是两个密不可分的方法,用来分离你应用程序中的关注点。控制反转Inversion of Control (IoC)意味着一个对象不会新创建一个对象并依赖着它来完成工作.Autofac类库作为IOC容器。只要你写了一个服务和此服务已实现的适当接口,你应该在实现了IDependencyRegistrar接口(Nop.Core.Infrastructure.DependencyManagement 命名空间)的类里注册它。比如所有nopCommerce的核心服务都在Nop.Web.Framework类库的DependencyRegistrar类中注册了。
1 public class DependencyRegistrar : IDependencyRegistrar 2 { 3 public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) 4 { 5 builder.Register(c => c.Resolve<HttpContextBase>().Request) 6 .As<HttpRequestBase>() 7 .InstancePerHttpRequest(); 8 9 ... 10 } 11 }
你想创建多少依赖注册类都可以。每一个类实现了IDependencyRegistrar接口的类都有一个Order属性,可以用它来替换一个现有的依赖。要覆盖nopcommerce的依赖,设置order属性大于0。Nopcommerce会对依赖排序,并按顺序运行,数字越大你的对象被注册的时间就会被推后。
如何新建一个新的routes
ASP.NET Routes负责接收传入的浏览器请求并把它映射到特定的MVC控制器Action操作上。在这里可以找到关于此路由的详细信息。 Nopcommerce有一个叫IRouteProvider的接口,用于在应用程序开始时注册路由。所有核心路由被注册在位于Nop.Web项目的RouteProvider类。
1 public partial class RouteProvider : IRouteProvider 2 { 3 public void RegisterRoutes(RouteCollection routes) 4 { 5 //home page 6 routes.MapLocalizedRoute("HomePage", 7 "", 8 new { controller = "Home", action = "Index"}, 9 new[] { "Nop.Web.Controllers" }); 10 } 11 }