ASP.NET MVC5 lograr sistema de gestión de fondo Distribución de Mango (a): sistema de diseño de arquitectura, AutoMapper integración, Log4net

Tras la finalización de la idea del pensamiento sistémico mapa del cerebro, intestino tinta volvió a casa, comenzó preparando el trabajo de desarrollo. Para la rápida finalización del desarrollo del sistema, el diseño del sistema y la preparación previa es particularmente importante porque la tinta pequeña hace demasiados sistemas de negocios grandes y pequeños, el trabajo de preparación es también muy suave.

Arquitectura del sistema

archivo

A medida que la estructura de todo el proyecto, basado en el modelo tradicional de arquitectura de tres capas (ir y no entienden el estudio intensivo)

  • Web: Basado en el modelo de proyecto MVC para construir el modelo del sistema, vista, controlador
  • Servicio: Negocios
  • Repositorio: capa de persistencia, ADO.NET Entity Framework integrado
  • Seguimiento: Entrar componente de integración Log4net
  • CommonUtils: Herramienta público que proporciona cifrado y descifrado / proceso de serialización / Excel, proporcionado a la administración Castillo Ioc

Hombre de pocas palabras, dijo, directamente en la seca

Log4net integrada

Aunque el sistema de negocios de mango de Li es tan simple, que siempre ha tenido varias características arquitectónicas pequeño sistema de tinta de planificación todavía TOC rítmica, las cosas pequeñas son estilo constante de tinta perfecta. Registros que pueden ahorrar, por supuesto que no! La siguiente Log4net integración.

Descargar Nuget

Aquí búsqueda directa de soluciones Nuget Log4net, instalar la última versión 5.2.7

archivo

perfil de registro

            <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>

Algunos necesidad de explicar:

        <file value="Logs/Log" /> 配置logs打印路径
        <staticLogFileName value="false" />  配置Log文件名非静态,因为小墨想每天生成一个Log文件
        <datePattern value="_yyyy.MM.dd.'log'" /> 日志文件格式 Log_2020.03.20.log

Inicia sesión para iniciar la configuración 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);
                    }

            }

A continuación, puede utilizar el elegante registro de él!

// declara

    ILog logger = log4net.LogManager.GetLogger(typeof(MvcApplication));

// uso

    logger.Info("大青芒管理系统已启动.");

ILOG aquí de nuevo el paquete, es compatible con registro de impresión paramétrico puede ser optimizado bajo.

AutoMapper integrada

En primer modelo en todo el sistema, Dto, Entidad, de acuerdo con las necesidades del negocio debe definirse es relativamente simple, dividido en usuario (tabla proxy), la tabla de pedidos, por lo que
UserModel / información del usuario / userEntity
OrderModel / OrdeDto / OrderEntity
archivo

archivo

Aquí inevitable transformación utiliza diversos objetos entre sí, por supuesto, no vamos a desplegar una a una asignación, débil, aquí usamos con AutoMapper, porque Él es ampliamente utilizado en los negocios después de nosotros en.

Nuget introdujo AutoMapper

archivo

Configuración AutoMapper

archivo

Porque aquí, con mi Dto Entidad son tipos simples, y el tipo son los mismos, por lo que puede asignar directamente, pero por lo general ligeramente más complejo de negocios, a menudo anidan en Dto Dto otra, o no coincide con el tipo de campo es utilizamos principalmente los dos métodos siguientes AutoMapper para hacer la conversión, el ejemplo aquí, no lo hago.

ForMember
ResolveUsing
    

Cuando Global.asax.cs el inicio del sistema, la configuración de inicio Mapa. Aquí la introducción de una capa de servicio de clase AutoMapperInit, sobre la transición llama al método de inicialización del repositorio, y no quieren capa en paquetes de servicios AutoMapper, todos con Dto proceso de conversión de la entidad en el Repositorio

    AutoMapperInit.Init();
    

uso AutoMapper
archivo

Gracias por leer!

archivo

Este artículo del blog un texto de masas múltiples herramientas como plataforma operativa OpenWrite liberación

Supongo que te gusta

Origin www.cnblogs.com/dalianmaodada/p/12536429.html
Recomendado
Clasificación