搭建一套自己实用的.net架构(1)【概述】

时间:2023-03-09 13:16:26
搭建一套自己实用的.net架构(1)【概述】

入园很久,一直默默的潜水,近来得空想写点什么。

思前想后,那就把自己平时没事干自己摘抄、引用、瞎写的一些东西写出来。帮助自己巩固一下,顺便请高手们指点一二。 我本人很懒 ,一些代码就是直接复制别人的劳动成果,或者加之改动,拼凑起的一些东西。  这些无所谓了 ,能实现最终目的让程序跑起来再说。如果某些代码或者言论侵犯了您的权益,请通知我删除掉。 本文写作目的是为了学习交流……  谢谢。

蛋逼了半天,下面开始说正事。先把解决方案截图贴出来,大家应该一看便知。

核心部分:

aaarticlea/png;base64,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" alt="" />

应用部分:

aaarticlea/png;base64,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" alt="" />

如上截图,

框架:实现了, 缓存、日志、DB、ORM 、Utilities ……

技术方面:MVC  EasyUI   Dapper   Autofac   log4.net  RazorEngine   ajax  js  ……

设计模式:Repository   单例  工厂 抽象工厂   适配器     ……

ORM:采用了比较小巧的 Dapper  加之  DapperExtensions   (个人认为还比较好用、可以支持sqlserver、mysql、Oracle 其它的未测试也可以扩展。

改造了DapperExtensions  可以在一个应用程序域中支持多且多种数据库。)

工作原理:  定义各个通用模块和业务的接口, 根据业务场景的不同, 在应用程序中采用Spring.net注册接口实现方式。(面向接口编程,程序没有将数据层再次分层接口)

UI:UI的话是我的弱项,之前试着用过  LigerUI  DWZ  EasyUI   ,  最终选用了 EasyUI, 这里的原因是 某些UI框架更新bug比较缓慢浏览器兼容性还有待提高,学习成本太高没有时间研究,网上找了个现成的UI,直接改改省时省力。下面接个图(看着眼熟?这就对了)。

aaarticlea/png;base64,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" alt="" width="591" height="253" />

概述就写这么多吧,后续再修改。  真的不善于写文章    哎……

后面的文章我将把各个模块功能拆分开来说,简单的功能就一概而过了。

相关文章:

搭建一套自己实用的.net架构(1)【概述】

搭建一套自己实用的.net架构(2)【日志模块-log4net】

搭建一套自己实用的.net架构(3)【ORM-Dapper+DapperExtensions】

搭建一套自己实用的.net架构(4)【CodeBuilder-RazorEngine】


原文链接:http://www.cnblogs.com/hy59005271/p/4736545.html