ASP.NET5最佳实践:技术选择+依赖注入+配置文件读写

1.技术选择

页面:

html静态页面很好,但模板(代码块)重用怎么办? 再有与后台交互,比如绑定数据又如何办?

模板不能重用,无解。后台交互,无怪乎可以使用js代码。特别现在流行SPA应用,html+angularjs类的框架……

cshtml可以使用Layout页(类似webfroms master模板页),也可以使用ViewsComponets(类似于webfroms web控件)

它使用Razor视图引擎解析,页面甚至可以使用c#语言。和后台交互式很Easy的。

如果说cshtml结构代码,使用大量HtmlHelper方法,一般只做前端开发的人员,恐怕阅读起来……无语啦!

可以微软又出TagHelpers技术,这样又接近于html结构写法,就容易理解了。

静态页和动态网页比较起来,难免会说到性能。这个咱不发表立场。mvc6已经可以把cshtml预先编译了,所以性能又改进了。

mvc和webapi:

可能不少人不知道这两个技术区别有哪些?实话,我也曾经迷糊很长时间。

微软有了mvc(不要提有了webfroms,为啥出mvc?OUT的东西再提,然并卵了。)为啥又搞webapi?这个两个玩意很相似。

到底哪个更强大或好使?该如何选择呢?到现在我都没有比较认可的结论。webapi是rest风格架构,也就是面向资源的架构。

这是他们之间最大的区别吧。那又啥Rest风格呢?这里的话题,我就不能抛开,详细能说明白了。

最简单理解,就是webapi Action方法名定义为http方法名或http方法名前缀。

mvc6把mvc和webapi代码几乎相同的地方,又合并。比如路由管道一致。不分是mvc控制器,还是api控制器等等。

我也希望阅读到这的园友,能帮我好好分析,该怎样选用这两个技术。谢谢!

bootstarp:

css框架众多,到底哪家最强? 管它呢?找一个适合自己即可。就好像别人的媳妇再好,那是人家的,回家好好“调教”自己的媳妇就是了。

bootstrap火起来的原因,很简单。可以快速实现漂亮,丰富的UI,菜鸟也容易上手。可缺点,很多人不能灵活使用。

这不现在网站页面, 像bootstrap样子太多了。看多没有个性的“艺术”,都会很快厌恶。

有人说,自己写好吗?为什么要重复造轮子?我当然建议,还是自己写为好。真的认为自己写的不好,可以去找参考即可。

程序设计语言C#:

我只会这个,无从与其它语言进行比较。那我学的很精通吗?好像也不怎样啦。我只做web开发,我能遇到的技术难度不多。

其它,如js框架,数据库,orm框架等等比较,限于自己表达能力欠缺和技术认知,理解有限,就暂且不说啦。

光说不练是假把式。是骡子是马,拉出来溜溜。本系列,就扯一些ASP.NET5 开发中,需要知道的技术或一些基本技巧。

2.分层

不管你是用三(N)层 架构,还是DDD领域驱动设计,或者CRQS命令查询职责分离架构,或则它们的变种。

都是因项目需要或者将来维护情况,来选择架构。其实更多的是,拿多少钱,才是决定搭建质量好坏。

不要跟我说,什么事,可以讲究情怀,拿钱少,也要把事做得最好。有时候,理想很丰满,现实很骨感!

最基础最经典的架构:

业务逻辑层和数据访问层,其实可以再抽象出接口层,以应对变化。

初步搭建:

把所有项目frameworks修改为:只用dnxcore50。然后再修改平台:

在OneBBL项目里添加下面类文件:

修改Consles项目中project.json:

修改program.cs代码:

引入接口层,又该怎样组织代码???

在IBBL项目添加:

在OneBBL项目添加:

那么Consoles项目修改为:

问题来了?如何解耦???

3.依赖注入

关于对象创建问题,可以使用创建型模式或自己写反射来解决。但这里使用依赖注入框架。

先举Web项目中实现注入。修改Startup.cs:

添加:

OK!就这么简单!

回头看,在Consoles项目中,IServiceCollection调用匹配类型,怎么写呢? 而且注入框架包含在mvc中:

在桌面程序中,该引用哪个呢?参见说明https://github.com/aspnet/DependencyInjection

伤不起呀!EF7和 mvc已经内置了。其它,自己编译再用了。算了,反正也不玩控制台程序。不再费时间整了!

4.配置文件读写

在Web项目中,添加config.json文件,其代码:

再Controllers文件夹下,添加:

5.小结及预告

本节粗略地介绍ASP.NET5 自带的DI依赖注入方法一种,它是单例模式。也可以注入临时的对象……

关于json格式配置文件,已经大行其道了。如何利用ASP.NET5中自带的配置库来读写key节点是很简单。

另外关于读写其它格式xml或ini等,微软真的是.net粉丝的贴心小棉袄呀!什么事都帮大家写好了。

其实关于这些,大家可以自行来写实现的。 没办法.net技术含量低,不值钱,或许就是因为干活容易些啦!

下节介绍webapi和EF7……

时间: 2024-08-24 15:48:37

ASP.NET5最佳实践:技术选择+依赖注入+配置文件读写的相关文章

ASP.NET Core 基础知识(一) 依赖注入

依赖: 类A用到了类B,我们就说类A依赖类B.如果一个类没有任何地方使用到,那这个类基本上可以删掉了. public class Test { private MyDependency md = new MyDependency(); public void Print() { md.Print(); } } public class MyDependency { public void Print() { Console.WriteLine("this is mydependency"

[ASP.NET Core 3框架揭秘] 依赖注入:依赖注入模式

原文:[ASP.NET Core 3框架揭秘] 依赖注入:依赖注入模式 IoC主要体现了这样一种设计思想:通过将一组通用流程的控制权从应用转移到框架之中以实现对流程的复用,并按照"好莱坞法则"实现应用程序的代码与框架之间的交互.我们可以采用若干设计模式以不同的方式实现IoC,比如我们在前面介绍的模板方法.工厂方法和抽象工厂,接下来我们介绍一种更有价值的IoC模式:依赖注入(DI:Dependency Injection). 一.由容器提供对象 和前面介绍的工厂方法和抽象工厂模式一样,依

[ASP.NET Core 3框架揭秘] 依赖注入:一个Mini版的依赖注入框架

在前面的章节中,我们从纯理论的角度对依赖注入进行了深入论述,我们接下来会对.NET Core依赖注入框架进行单独介绍.为了让读者朋友能够更好地理解.NET Core依赖注入框架的设计与实现,我们按照类似的原理创建了一个简易版本的依赖注入框架,也就是我们在前面多次提及的Cat. 源代码下载 普通服务的注册与消费泛型服务的注册与消费多服务实例的提供服务实例的生命周期 一.编程体验 虽然我们对这个名为Cat的依赖注入框架进行了最大限度的简化,但是与.NET Core框架内部使用的真实依赖注入框架相比,

ASP.NET Core中如影随形的”依赖注入”[下]: 历数依赖注入的N种玩法

在对ASP.NET Core管道中关于依赖注入的两个核心对象(ServiceCollection和ServiceProvider)有了足够的认识之后,我们将关注的目光转移到编程层面.在ASP.NET Core应用中基于依赖注入的编程主要涉及到两个方面,它们分别是将服务注册到ServiceCollection中,和采用注入的方式利用ServiceProvider提供我们所需的服务.我们先来讨论ASP.NET Core应用中如何进行服务注册.[本文已经同步到<ASP.NET Core框架揭秘>之中

[ASP.NET Core 3框架揭秘] 依赖注入:控制反转

ASP.NET Core框架建立在一些核心的基础框架之上,这些基础框架包括依赖注入.文件系统.配置选项和诊断日志等.这些框架不仅仅是支撑ASP.NET Core框架的基础,我们在进行应用开发的时候同样会频繁地使用到它们.对于这里提到的这几个基础框架,依赖注入尤为重要.ASP.NET Core应用在启动以及后续针对请求的处理过程中,它会依赖各种的组件提供服务.为了便于定制,这些组件一般会以接口的形式进行"标准化",我们将这些标准化的组件统一称为"服务(Service)"

[ASP.NET Core 3框架揭秘] 依赖注入:IoC模式

原文:[ASP.NET Core 3框架揭秘] 依赖注入:IoC模式 正如我们在<依赖注入:控制反转>提到过的,很多人将IoC理解为一种"面向对象的设计模式",实际上IoC不仅与面向对象没有必然的联系,它自身甚至算不上是一种设计模式.一般来讲,设计模式提供了一种解决某种具体问题的方案,但是IoC既没有一个针对性的问题领域,其自身也没有提供一种可操作性的解决方案,所以我们更加倾向于将IoC视为一种设计原则.很多我们熟悉的设计模式背后都采用了IoC原则,接下来我们就来介绍几种典

[ASP.NET Core 3框架揭秘] 依赖注入[5]: 利用容器提供服务

毫不夸张地说,整个ASP.NET Core框架是建立在依赖注入框架之上的.ASP.NET Core应用在启动时构建管道以及利用该管道处理每个请求过程中使用到的服务对象均来源于依赖注入容器.该依赖注入容器不仅为ASP.NET Core框架自身提供必要的服务,同时也是应用程序的服务提供者,依赖注入已经成为了ASP.NET Core应用的基本编程模式. 一.服务的注册与消费 为了让读者朋友们能够更加容易地认识.NET Core提供的依赖注入框架,我在"<一个迷你版DI框架>"中特

ASP.NET Web API中的依赖注入

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 什么是依赖注入 依赖,就是一个对象需要的另一个对象,比如说,这是我们通常定义的一个用来处理数据访问的存储,让我们用一个例子来解释,首先,定义一个领域模型如下: namespace Pattern.DI.MVC.Models{ public cl

ASP.NET MVC进阶之路:依赖注入(Di)和Ninject

0X1 什么是依赖注入 依赖注入(Dependency Injection),是这样一个过程:某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只定义一个注入点.在程序运行过程中,客户类不直接实例化具体服务类实例,而是客户类的运行上下文环境或专门组件负责实例化服务类,然后将其注入到客户类中,保证客户类的正常运行. 图1 如图1所示,数据库操作类DataManager中依赖的IDataBase的接口,而不是以来IDataBase的具体实现类,这样的好处是可以让我们的程序具有扩展性: