码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-08-10 01:51:23      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

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

             

 

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

标签:

原文地址:http://www.cnblogs.com/givecase/p/4715378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!