このプロジェクトは、オープンソースのユーザーは、パークブログで 徐の襟の 基本的な機能を維持するために、電力供給事業に加えて、Nop.Frameworkという名前のオープンソースプロジェクトに基づいて開発フレームワークのリリースnopCommerce B2Cを、。
.NET開発者は、オープンソースと商用ソフトウェアの最高の機能を組み合わせた透明性とよく構造化ソリューション、この有名な高品質のオープンソースプロジェクトのB2Cの-nopCommerce、ベースEntityFrameworkとMVCの開発を、知っている必要があります。公式サイトのアドレス:のhttp://www.nopcommerce.com/、中国のネットます:http://www.nopcn.com/。前後端をダウンロードした後、以下に示します。あなたがプロジェクトを知るしていない場合は、ローカルで動作し、結果を表示した後、公式サイトからコードをダウンロードすることをお勧めします。
著者は、単純な容易にするため、一般的に、多くのプロジェクトをかけて開発フレームワークを使用し、それは多くの共通のコンポーネントと.NET開発の機能を統合しています。必ずそれを共有したいと思ったが、この記事を書くための時間を持っても最近、仕事で忙しい到達しなかった、この記事では、ソース(ベースnopCommerce3.9版)を添付ソースCompact Frameworkのを抽出する方法を紹介します。あなたはフレームを介してプロジェクトを開発するためのフレームワークを知りたい場合は、この記事を読んで貴重なものです。フロント注:このソースフレームワークはGitHubのにアップロードされています。https://github.com/dreling8/Nop.Framework、興味を持っているが(例えば、ユーザ管理など、IWorkContextをそれに加える他のいくつかの共通のモジュールに従います、このプロジェクトに従うことができます作業コンテキスト)、プラグイン機能、タスクモジュール(taskservice)、ロギング、キャッシング、ローカライズ。スターへようこそスターは、あなたのサポートが私のモチベーションです!
まず、プロジェクト構造を理解します
プロジェクト構造チャートから、我々は、私はレベル描いたマップを見て、非常に明確な階層区分のNopを見ることができます
1.プレゼンテーション層(プレゼンテーション)
また、フロントエンドの統合のみに関心、アプリケーション層と呼ばれることも、技術では、任意のロジックの実装を必要としません。この層は、フレームのみが必須である私たちのために示し、およびフレームを抽出するとき、したがって層を除去します。
2.ビジネスサービス層(Nop.Services)
整个系统的服务层,提供了对每个领域的接口和实现。这一层非常重要,提供了程序内对展现层的接口服务,不论展现层使用mvc,还是使用winform,异或是给app调用的webapi接口,都需要该层服务。但该层的服务主要是电商的一些服务,对我们框架无用,因此在这个框架中会删除所有服务,只添加一个测试服务
类和接口,应用到项目中你应该在该层添加接口和服务。
3. 数据层(Nop.Data)
nop在数据层的仓储实现中使用了ef和sqlserver数据库,如果你想扩展,也可以在该层使用其它的ORM映射库和数据库。这一层的大部分功能我们会在框架中将保留。
4. 基础设施层(Nop.Core)
包括缓存的实现、配置、领域模型等等。在框架中会保留一部分功能,并将Domain领域模型移出该层做单独项目,为什么要这样做,因为通常情况下,Domain层的调整会比较多,所以我一般将Domain做单独Project,当然你也可以不调整,但框架做了该调整。
二、删除与业务相关的代码
我们已经对Nop的整个代码层次结构有了了解,基于以下两点开始修改项目源码:1.框架足够精简,没有任何电商业务。2.核心功能保留。建议在开始前先copy一份源码保留。
1. Test项目:Tests文件夹下面是测试项目,不是必需的,将它全部移除,开发具体业务,可以再单独添加测试项目。由于是测试项目,删除后整个项目还能跑起来。
2. Presentation展现层:这里的三个项目,分别是前台,后端和两个项目共用的一些模块。和测试项目一样,这里我们也全部移除。
3. Plugin项目:插件项目,同1、2一样,插件也不是必需的,移除所有的插件项目。现在只剩下三个项目了(欢迎关注该项目的github,后续我会专门写篇文章介绍如何添加插件)。
Nop.Services:业务服务层,这一层是程序集内对外接口层,需要保留。删除所有相关的业务服务类,其中日志、帮助、任务等跟系统相关的都删除,目的是更好的展示整个系统的结构。添加一个测试类,暂时什么都不写。
Nop.Data:数据层项目。这层基本不做调整,只删除EF的Mapping映射相关类。
Nop.Core:基础设施层。删除电商业务相关的Domain,新建项目Nop.Domain。
报错了,IWorkContext(工作上下文,用于获取用户信息等数据)依赖Domain,删除它。这个过程可能要删除不少文件,直到项目不再报错。完成后我们的项目结构如下,注意我们将Nop.Core中的实体基类移到了Nop.Domain中,到这一步,我们的基础框架结构已经大致出来了。
有关该项目的更多说明,请查看作者的博客介绍:http://www.cnblogs.com/dreling/p/6906688.html
作者表示后续将会添加以下这些模块和功能,有兴趣的朋友可关注项目
1.本地化模块 localization
2.用户模块 工作上下文 workcontext
3.任务模块 taskservice
4.日志模块 logservice
5.缓存模块 cache
6.配置模块 config
7.插件功能