本文的基础是搞了一次内部的技术分享,在此也分享一下本次的PPT的一些内容。先列一下大概内容吧。

  • EF—Code First
  • API(WCF、WebAPI)
  • Xaml
  • MVVM
  • AOP
  • Xamarin.Forms
  • ABP(ASP.NET Boilerplate)
  • Tools

EF—Code First

关于 EF 园子里有好多具体的讲解,所以我就简单放几行代码

EF-Code First 入门

API

现在都喜欢全平台开发,那用 API 来获取数据就可以复用这个部分,而且也很方便。

首先了解一下怎么设计 Restful 规范的 API。REST API Design - Resource Modeling

  • WCF

最初我打算写 API 时还不知道 WebAPI ,所以就用 WCF 写了,其实也不错,虽然配置文件参数太多,要想好好配置一下还是有点费事的

基于 WCF 的 API 实现

  • WebAPI

其实这里我跳过了普通的 WebAPI , 使用的是微软的开源项目 OData,其实就是在 WebAPI 上封装了一些东西,很好用,我的理解是符合了规范,多了几个 $ 的扩展,在就是把用 Model 某一个字段来过滤数据而不用单独去写 WebAPI 了(正确解释和详情请见 OData 官网)。

基于 WebAPI 的 API 实现

相关链接

XAML

Path

灵活运用 Path ,比如画个非常简单的图形,我一般用来画 Button 上的图标,不会画没关系,Metro Studio 里有 3000+ ,实在不行可以找美工要啊,之前还从群里的小伙伴那里得到个中国地图,当然只是画到省份,在具体就没有了,不过完全够用了。

用 Path 画 Button

Blend

不要觉得这个是专门给美工用的工具,事实上会用的非常少,还是自己来吧,比写代码快很多的。

MVVM

这个大概讲了一下基本概念,网上很多,我就不粘了,总之 MVVM 还是很有用的,就算你不写桌面程序,AngularJS 也是需要用的。框架太多了,就简单说几个记得住的吧。

  • Prism:微软提供,传说太大太重了,反正我也没好好用过,不好说。
  • MvvmLight:开源免费,很轻恨灵活所以用的人也很多。
  • Caliburn.Micro:开源免费,有很多比较易用的封装,我用的是这个,Xamarin.Forms 也用的这个。
  • Catel:开源免费,也很出名,但是完全没看过,略。
  • MvvmCross:开源免费,这个比较厉害的是很早就支持跨平台了,接触这个也是做 Xamarin 的时候,其他的我也不是很了解,但是在 Xamarin 里有很多的 Plugin 可用,资源很丰富。但是最近发现Sample里的例子都要在 Android 里再写一遍页面,很奇怪。
  • FreshMvvm:开源免费,Xamarin.Forms专用,但是 ViewModel 总是要传一个 Model,所以不是很喜欢

AOP

按照 DDD(Domain-Driven Design) 的思想,很多基础的东西都是可以用 AOP 来实现的,日志,权限,认证,等等吧,ASP.NET 中已经有了一些,但其实还是有很多可以用的地方。

用 AOP 简化 MVVM框架

相关链接

  • Fody:开源免费,有很多 Addins 可用。
  • PostSharp:收费,但是很强大。

Xamarin.Forms

通过一套代码就可以跑3个移动平台,并且现在还免费了,Xamarin 配套的东西很多,什么云测试啊,性能监控啊,很很多成熟的作品了,已经过了一步一坑的时代了,完全可以用了。

相关链接

ABP

基于 DDD 思想的 ASP.NET 开源框架,已经支持 ASP.NET Core ,集成了很多强大且有用的开源项目,AutoMapper,OData...,具体的可以看官网,总之很强大,官网还支持输入项目名称就可以生成项目代码,你可以下载下来慢慢学,还有完善的文档,园子里也有很多大神组织学习。我也是从他们那知道这个的,官方文档下边连接了他们翻译的中文文档。 当然学习这个的前提还是挺高的,EF Code First,WebAPI,OData,AngularJS,Typescript(AngularJS 2 用 TS)...,还有最重要的 DDD 的思想总得懂吧,如果你还担心 ASP.NET Core 的性能问题,那请看 这个测试

相关链接

Tools

最后是一些工具和资源的连接

其实这里主要是讲了一下我知道的一些技术的简单介绍,没有深入讲解,希望对你们有用。

内部技术分享的 PPT的更多相关文章

  1. 教你制作高逼格的技术分享Keynote(PPT)

    本文来自 网易云社区 . 作为一个程序猿/媛,想必大家都参与过大大小小各式各样的技术分享,异或在不同的场合分享自己的技术心得.抛开分享内容的质量不谈,笔者发现通常这些分享者的演示文稿(Keynot或P ...

  2. 公司内部技术分享之Vue.js和前端工程化

    今天主要的核心话题是Vue.js和前端工程化.我将结合我这两年多的工作学习经历来谈谈这个,主要侧重点是前端工程化,Vue.js侧重点相对前端工程化,比重不是特别大. Vue.js Vue.js和Rea ...

  3. 【转】子弹短信内部技术分享:Redis

    原理 Redis 是一个内存型「数据库」,除存储之外,它还有许多强大的命令,使之远远超出了数据库的定义,所以官方称之为「data structure store」,数据结构存储系统. 通过 Redis ...

  4. 技术分享之AQS——内容提要

    1. 背景 最近团队内部技术分享,我做了个关于AQS的分享.ppt中涵盖的部分要点内容,现在整理到博客上. 关于AQS本身的源码解读,可以参考我之前的博文. 2. 要点梳理 下面是一些技术分享的要点梳 ...

  5. 技术分享PPT整理(一):Bootstrap基础与应用

    最近在复习的时候总感觉有些知识点总结过,但是翻了一下博客没有找到,才想起来有一些内容是放在部门的技术分享里的,趁这个时候跳了几篇相对有价值的梳理一下,因为都是PPT,所以内容相对零散,以要点和图片为主 ...

  6. 阿里技术分享:阿里自研金融级数据库OceanBase的艰辛成长之路

    本文原始内容由作者“阳振坤”整理发布于OceanBase技术公众号. 1.引言 OceanBase 是蚂蚁金服自研的分布式数据库,在其 9 年的发展历程里,从艰难上线到找不到业务场景濒临解散,最后在双 ...

  7. 腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践

    本文来自腾讯前端开发工程师“ wendygogogo”的技术分享,作者自评:“在Web前端摸爬滚打的码农一枚,对技术充满热情的菜鸟,致力为手Q的建设添砖加瓦.” 1.GIF格式的历史 GIF ( Gr ...

  8. 微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)

    1.点评 对于IM系统来说,如何做到IM聊天消息离线差异拉取(差异拉取是为了节省流量).消息多端同步.消息顺序保证等,是典型的IM技术难点. 就像即时通讯网整理的以下IM开发干货系列一样: <I ...

  9. 腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践

    1.概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebR ...

随机推荐

  1. 【Android 界面效果42】如何自定义字体

    项目里要统一用设计师的字体,android:typeface只支持系统三种字体.有什么比较好的做法? 你需要为整个应用替换自定义字体. 解决方案 1)Android默认方法 #1 你可以通过ID查找到 ...

  2. 从源码的角度解析View的事件分发

    有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图 ...

  3. Oracle基础 动态SQL语句

    一.静态SQL和动态SQL的概念. 1.静态SQL 静态SQL是我们常用的使用SQL语句的方式,就是编写PL/SQL时,SQL语句已经编写好了.因为静态SQL是在编写程序时就确定了,我们只能使用SQL ...

  4. linux服务监控脚本

    配置需要监控的服务器 数组定义:host_ports=(host_name=host_port=uri_path)host_name为容易识别的服务器名称host_port为服务器ip和服务端口uri ...

  5. python pdb调试

    在交互环境中通常使用pdb.run来调试: import pdb def pdb_test(arg): for i in range(arg): print(i) return arg pdb.run ...

  6. hdu 1243 反恐训练营 最长公共字序列

    此题的题意很明确,就是求最长公共子序列: #include<iostream> #include<algorithm> #include<cstdio> #incl ...

  7. CF 319C - Kalila and Dimna in the Logging Industry 斜率优化DP

    题目:伐木工人用电锯伐木,一共需要砍n棵树,每棵树的高度为a[i],每次砍伐只能砍1单位高度,之后需要对电锯进行充电,费用为当前砍掉的树中最大id的b[id]值.a[1] = 1 , b[n] = 0 ...

  8. html2canvas 踩坑总结

    需求:将html表格导出为图片,表格可以自己编辑数据,并适配各种屏幕大小.上网搜了下,找到了html2canvas,一开始使用的是最新版0.5.0,最终因为需要支持自定义div编辑框自动换行选择了v0 ...

  9. javascript学习笔记-1

    说起来也挺丢人的,自己干了八年it,却从来没有好好从基础学习下javascript,曾经还认为和java有着多么大的联系. 真的很惭愧.今天开始有时间了,打算打打基础. JavaScript 有什么特 ...

  10. MongoDB - The mongo Shell, mongo Shell Quick Reference

    mongo Shell Command History You can retrieve previous commands issued in the mongo shell with the up ...