脳のマップをシステム思考のアイデアが完了した後、小さなインクは、彼が開発作業を準備を進め始めた、家に戻りました。小さなインクがあまりにも多くの大規模および小規模ビジネスシステムを行っているため、システムの開発を迅速に完了するまで、システム設計及び事前準備が特に重要であり、準備作業も非常にスムーズです。
システムアーキテクチャ
伝統的な3層アーキテクチャモデル(移動して、集中的に研究を理解していない)に基づいて、プロジェクト全体の構造として、
- ウェブサイト:システムモデル、ビュー、コントローラを構築するためにMVCプロジェクトテンプレートに基づいて、
- サービス:ビジネス
- リポジトリ:永続層、統合EntityFramework
- 追跡:ログコンポーネント統合log4netの
- CommonUtils:暗号化と復号化/直列化/ Excelのプロセスを提供し、公共のツール、城Iocの管理を提供
いくつかの単語の男は、乾燥に直接、言いました
統合log4netの
李さんマンゴービジネスシステムは非常にシンプルですが、それはリズミカルまだ様々な建築の特徴小さなインクシステム計画OCDを持っていた常にしている、小さなものは完璧なインク一貫したスタイルです。ログには、あなたを救う、当然のことができません!次の統合log4netの。
ダウンロードNuget
右ここソリューションNuget log4netのための直接検索、最新バージョンをインストール5.2.7
ログのプロフィール
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs/Log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<datePattern value="_yyyy.MM.dd.'log'" />
<maxSizeRollBackups value="20" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="DUBEG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
</configuration>
説明するためにいくつかの必要性:
<file value="Logs/Log" /> 配置logs打印路径
<staticLogFileName value="false" /> 配置Log文件名非静态,因为小墨想每天生成一个Log文件
<datePattern value="_yyyy.MM.dd.'log'" /> 日志文件格式 Log_2020.03.20.log
設定Global.asax.csを開始するためにログイン
public class LoggerFactory
{
public static void Config()
{
var baseDir = AppDomain.CurrentDomain.BaseDirectory;
var filePath = Path.Combine(baseDir, "Config\\Log4net.config");
var fileInfo = new FileInfo(filePath);
log4net.Config.XmlConfigurator.Configure(fileInfo);
}
}
そして、あなたは、エレガントなログにそれを使用することができます!
//宣言
ILog logger = log4net.LogManager.GetLogger(typeof(MvcApplication));
//使用
logger.Info("大青芒管理系统已启动.");
ここで再び、次のパッケージアイログが、パラメトリック印刷ログをもとに最適化することができますサポートしています。
統合されたAutoMapper
最初のモデルは、システム全体で、DTOは、企業は、ビジネスに係るユーザ(プロキシテーブル)、Ordersテーブル、そうそこに分け、比較的簡単で定義する必要
UserModel /のUserInfo / userEntity
OrderModel / OrdeDto / OrderEntity
彼は広くで私たちの後にビジネスで使用されているので、ここでは避けられない変換はお互いにさまざまなオブジェクトを使用し、もちろん、私たちは弱いものの割り当て、ずつフィールドではないだろう、ここでは、AutoMapperを使用しています。
NugetはAutoMapperを導入しました
AutoMapper設定
ここでは、私のDTOエンティティでシンプルなタイプであり、あなたが直接マッピングすることができますが、一般的には少し複雑なビジネスので、種類は同じであるが、多くの場合、他のDTO DTOに営巣、またはフィールドの型があると一致しないので私たちは主に変換、ここでは例を行うにはAutoMapper、次の2つのメソッドを使用して、私は行いません。
ForMember
ResolveUsing
ときGlobal.asax.csシステムの起動、スタートアップマップコンフィギュレーション。ここで遷移がリポジトリ内のすべてのDTOエンティティ変換プロセスで、初期化メソッドリポジトリを呼び出し、AutoMapperサービスパッケージに層にしたくない程度AutoMapperInitクラスサービス層の導入、
AutoMapperInit.Init();
使用AutoMapper
読んでくれてありがとう!
こうした運用プラットフォームとしてのブログからこの記事では、大量のテキストを複数のツールOpenWriteをリリース