行业技术思绪整理
20181212 无大事,随便百度,然后顺着推荐或者网页上的技术来源进行跟踪,看看技术栈。
http://video.jessetalk.cn 教你使用asp.net core。是个视频分享在线教育网站,使用EduSoho php开源系统来做。
http://www.jessetalk.cn/ 个人主页。使用wordPress php开源系统,结合Hestia(免费响应式wordpress企业主题。https://www.iztwp.com/theme/hestia.html 。https://themeisle.com/themes/hestia/)
EduSoho 可单独部署安装,php开源。商用可能收费。若不想独立部署也可以让官网帮你saas部署,你只要登录账号就行。app是免费的、通用的,每个账号都归属某网校公司,登录进去就可进入对应的网校。
目前已有多个行业应用,
专注于视频、图片等存储对象的存储、分析、处理、识别等。还有云主机、DB服务器等。
目前像在线教育网站的图片、视频、复杂文件-富文本均可放再存储对象里,当然腾讯云也有这个服务。七牛网存储对象c# SDK https://developer.qiniu.com/kodo/sdk/4056/c-sdk-v7-2-15
目前xamarin 的确是个好东西,可以做到用c#来写安卓、ios。但是得了解安卓、ios的知识。目前还是 比较尴尬,因为既然得了解安卓、ios,那真了解的人就直接用java、object-c开发了,毕竟用的人多、文档-教程全。xamarin 遇到技术问题无法找到方案。
20181215
nginx 一般用在均衡负载反向代理上,本质也是个web服务器,和iis、apache同一级别。淘宝修改过的叫Tengine。
https://blog.csdn.net/tsummerb/article/details/79248015
https://www.cnblogs.com/zxtceq/p/7941935.html
一般部署在linux上,转发请求到其他web服务器上。也可以部署在windows上(但是大家懂得,自己玩玩可以windows、正式的还是linxu吧。我是.net开发,其实这不是windwows不稳定造成的、而是原开发团队顾忌linux测试二缺少win测试、所以不打包票)
另外,我刚才本地修改hosts不行、即使ipconfig/flushdns也不行。不知道为什么、下次再说吧。
PowIerDesigner画DB表结构、表关系 http://www.cnblogs.com/biehongli/p/6025954.html
Asp.Net Core 轻松学-基于微服务的后台任务调度管理器 https://www.cnblogs.com/viter/p/10078488.html
Asp.Net Core 轻松学-一行代码搞定文件上传 www.cnblogs.com/viter/p/10074766.html
.NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发 https://www.cnblogs.com/yilezhu/p/10112406.html
开发架构体系(java,但.net也可以参考思路)https://my.oschina.net/u/3779583/blog/2885612
id和guid作为DB主键的比较
之前我主要用自增bigint id来做DB表主键,但是目前好多系统都是用varchar guid做主键。现在分析下优劣
id
优势:DB存储和查询(单表快,联表也快)都性能高;使用简单,DB会自动新增;c#代码也好些
劣势:若有多张表要合并到一张表(比如之前是分表分库的、之后做报表或汇总处理时要放到一张表里)则很难处理;在分布式应用下可能DB会遇到瓶颈;安全性较差,若程序员没做好身份验证和数据id的归属(某数据归属某user,其他user不可查)可能会被黑客遍历;两张表的关联关系时,Main表和Details表,Details表中的MainId肯定要等到Main插入后才能有值、再保存Details表,要保存两次,麻烦、且不同步需要做事务。
guid:基本可以认为每次生成的guid绝不重复
优势、劣势 即id的相反
1 [Table("TestGuid")] 2 public class TestGuidContract : BaseContract 3 { 4 public TestGuidContract() 5 { 6 Name = string.Empty; 7 } 8 9 10 [Key] 11 public string GuidKey { get; set; } 12 13 public string Name { get; set; } 14 } 15 16 17 public class TimeBottleContext : DbContext 18 { 19 public DbSet<TestGuidContract> TestGuid { get; set; } 20 21 } 22 23 24 25 26 public JsonResult TestGuidKey() 27 { 28 using (var context = new TimeBottleContext()) 29 { 30 //for (int i = 1; i <= 10; i++) 31 //{ 32 // context.TestGuid.Add(new TestGuidContract { GuidKey = Guid.NewGuid().ToString(), Name = "nlh" + i }); 33 //} 34 //context.SaveChanges(); 35 36 var resp = context.TestGuid.ToList(); 37 return Json(resp, JsonRequestBehavior.AllowGet); 38 } 39 } 40 41 public JsonResult GetTestGuidKey(string guidKey = "0484dc28-ccab-44e1-9978-904491a6c7ce") 42 { 43 using (var context = new TimeBottleContext()) 44 { 45 var resp = context.TestGuid.FirstOrDefault(t => t.IsDel == false && t.GuidKey == guidKey); 46 return Json(resp, JsonRequestBehavior.AllowGet); 47 } 48 }
20190109
smobiler一套建议.net 做app的工具。玩玩还行、大应用还是算了,用标准的安卓或者苹果开发吧,空了试试微软的xamarin。又得安装。。。麻烦
.net abp框架,也有代码生成器
https://gitee.com/chejiangyi