ASP.NET MVC

[C#.NET 拾遗补漏]09:数据标注与数据校验

倾然丶 夕夏残阳落幕 提交于 2020-10-29 07:37:08
数据标注(Data Annotation)是类或类成员添加上下文信息的一种方式,在 C# 通常用特性(Attribute)类来描述。它的用途主要可以分为下面这三类: 验证 Validation:向数据添加验证规则 展现 Display:指定数据如何呈现给用户 模型 Modelling:添加关于用法和与其它类的关系信息 下面是一个用来验证和展现用户信息的一个 Model: class Kid { [ Range(0, 18) ] // 年龄不能超过18岁,不能为负数 public int Age { get ; set ; } [ StringLength(MaximumLength = 50, MinimumLength = 3) ] // 名称的长度不能超过 50,不能小于 3 public string Name { get ; set ; } [ DataType(DataType.Date) ] // 生日将作为日期展示 (不带时间) public DateTime Birthday { get ; set ; } } 数据标注的展现的用途主要在早期的 ASP.NET 和 ASP.NET MVC 等框架中使用。例如,在 ASP.NET MVC 中,Razor 引擎会根据 Model 属性的 DataType 特性动态生成不同类型的表单元素。不过,现在这类用途除了 WPF

Asp.net MVC Razor视图模版动态渲染PDF,Razor模版生成静态Html

柔情痞子 提交于 2020-10-27 17:40:41
1.前言     上一篇文章我开源了轮子, Asp.net Core 3.1 Razor视图模版动态渲 染PD F ,然后,很多小伙伴有很多私信找我了。那么我下面就简单的给大家说一下,关于小伙伴问的这些问题。 我项目的电子签章部分代码可否开源?   答:我项目电子签章也是使用第三方的电子签章,电子签章并不是自己实现的,项目里面的电子签章代码无非也是对接第三方的接口。这部分代码开源出去也没有什么意义。我们是使用数字广东的方案,如果您也是使用该数字签章,可以私下沟通我看看能不能帮助您。 电子签章实现难不难,怎么实现自己的电子签章?   答:电子签章要实现,估计不是太难,按照我的理解,当然我没有具体深入研究(如果这里我有妄自菲薄的意思,请谅解,毕竟我能力有限,只是按照我的理解来分析),我个人觉得电子签章应该就是利用数字证书给PDF签名,然后加密保护文档,然后校验文档的真伪,就要考虑怎么验证这个文档没有被删改,是当初我们签章的这个文档,而且这个签名不能被伪造。个人觉得不是很复杂,但是,电子签章的法律有效性却不是这么简单的。按照国家法律规定,利用的签名平台应该有资质的,国家认可的第三方签章平台,也就是说,私人自己制作的签章,打起官司来,很难得到法律支持。 项目为什么CSS样式不起效?   答:你是否使用了外链的CSS样式,因为渲染Razor视图是在后台渲染,无法找到外链的文件路径

【Zara原创】SqlSugar4轻量级ORM框架的使用指南

十年热恋 提交于 2020-10-24 10:04:24
前言:sqlSugar出生已经有3年之久了,从1.0到现在的4.x的版本,为了以后方便使用SqlSugar,所以特意花了2个小时来叙述它。 关于SqlSugar 性能:性能最好的ORM之一,具有超越Dapper的性能 ,走的是EMIT够构中间语言动态编译到程序集,完成高性能的实体绑定,达到原生水平。 功能:支持 DbFirst、CodeFirst、数据库维护、链式查询、链式更新、链式删除、链式插入、实体属性、复杂模型的查询、ADO.NET。特别是批量等功能都是货真价实的并非循环操作。 兼容性:支持多种数据库,具体就是SqlSugar的DbType枚举中有MySql、Oracle、SqlLite、SqlServer、PostgreSQL 入门使用 以下代码是创建连接,其中属性构造器的四个值分别为连接字符串、数据库类型、是否自动销毁连接、获取自增列主键信息。 SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "Data Source=DESKTOP-OEJGKOO;Initial Catalog=TextInfo;Integrated Security=True", DbType = SqlSugar.DbType.SqlServer,

关于职业选择的问题

筅森魡賤 提交于 2020-10-22 07:39:11
这篇文章缘起今天早上的一条微博,在软件行业打拼多年,现在也遇到了职业选择的困惑。由于昨天刚发布完项目,今天相对来说比较闲一点,所以来博客园凑凑热闹! 在开始今天的问题之前先谈谈我们现在所开发的项目: 由于不是核心部门,所以这个项目只是提供给其他部门的一个工具——管理和分析所有的数据并用图形化的形式展示出来,同时提供一系列的报表。 团队情况: 4个Developer(1人在澳洲,其他三人在新加坡),一个项目经理和一个产品经理都在新加坡,用户在美国。 开发模式: Agile(一个Phase包含若干Sprint,2-4个礼拜为一个Sprint)。 团队协作:与用户的交流主要靠Meeting,通常在星期二或者星期四早上进行,由于时差关系,所以早上五点钟出发到公司参加Meeting。开发者之间的协作比较自由,完全Agile。 开发流程:完全按照微软Agile标准,Phase Start==>Sprint Start==>Requirement==>Development==>SIT==>UAT==>Prod==>Sprint Closed==>Phase Closed 第一个版本 主要技术:.NET 4.0 , WCF, Silverlight, C#, TSQL, SharePoint, IIS 8, Cloud Computing (SQL Azure). 第二个版本 主要技术:.NET

.NET面试题系列[3]

浪子不回头ぞ 提交于 2020-10-22 03:10:14
1 类型基础 面试出现频率:基本上肯定出现 重要程度:10/10,身家性命般重要。通常这也是各种招聘工作的第一个要求,即“熟悉C#”的一部分。连这部分都不清楚的人,可以说根本不知道自己每天都在干什么。我们天天使用C#写程序,但如果连C#基础的东西都不懂,怎么证明你“熟悉C#”呢?怎么让人觉的你对C#有兴趣呢? 很多人去面试一发现面试官开始问基础题,就十分不爽,被淘汰了之后,还写博客说面试官垃圾,怎么不问问项目经历,哥可是做过不少项目的。殊不知,面试官知道你做过那些项目,但通常来说,如果那些项目不是牛逼透顶的级别(例如你参与了淘宝双11导致数据库并发问题的改进,或者AlphaGo的算法设计),或者正好是面试官所在公司需要的类型,则这并不是什么很厉害的事情,是个程序员就有几个项目在身,“做过不少项目”的牛逼程度,差不多等于“活过20几年”(我都活了20几年了,我牛逼么?)。每个人都有的东西,有什么好问的,问你了你能确定你能答得比别人好么?但是如果你不能答出什么是装箱,你会引发面试官以下的猜想: 这人连最基础的东西都不知道,还写了熟悉C#,他还写了熟悉XX,熟悉YY,看来他对那些东西可能也就了解皮毛。呵呵他还说他懂设计模式 这人连最基础的东西都不知道,说明他平常不看书。连书都不看,对技术肯定没有什么兴趣 这人写了他做过20个项目,但在我看来,他们大同小异,和做过1个项目也没区别

[C#.NET 拾遗补漏]09:数据标注与数据校验

点点圈 提交于 2020-10-22 02:13:45
数据标注(Data Annotation)是类或类成员添加上下文信息的一种方式,在 C# 通常用特性(Attribute)类来描述。它的用途主要可以分为下面这三类: 验证 Validation:向数据添加验证规则 展现 Display:指定数据如何呈现给用户 模型 Modelling:添加关于用法和与其它类的关系信息 下面是一个用来验证和展现用户信息的一个 Model: class Kid { [Range(0, 18)] // 年龄不能超过18岁,不能为负数 public int Age { get; set; } [StringLength(MaximumLength = 50, MinimumLength = 3)] // 名称的长度不能超过 50,不能小于 3 public string Name { get; set; } [DataType(DataType.Date)] // 生日将作为日期展示 (不带时间) public DateTime Birthday { get; set; } } 数据标注的展现的用途主要在早期的 ASP.NET 和 ASP.NET MVC 等框架中使用。例如,在 ASP.NET MVC 中,Razor 引擎会根据 Model 属性的 DataType 特性动态生成不同类型的表单元素。不过,现在这类用途除了 WPF(比如

架构设计分享之权限系统(看图说话)

依然范特西╮ 提交于 2020-10-19 04:51:51
前面一篇文章《 最近架构随想 》,我提到架构设计的一些构想,其实也是对之前项目经验的一些归纳及总结。今天我们就以权限系统作为切入点,谈一谈怎么设计权限系统以及怎么做到系统具有以下特性: Organized:如果系统组织比较好,可以起到事半功倍的效果。 Encapsulated:对功能,结构,数据进行有效的封装,会使系统维护变得更加容易。 Reusable:对常用功能以及组件进行有效的封装,可以使系统变得结构清晰且方便维护。 Extensible:在设计系统的时候,如果很好的遵守OO的设计理念(OO的五大原则SOLID),即使系统做得很大,也会像火箭一样直冲云霄! Replaceable:在很多时候我们需要考虑到系统,组件或者功能的可替换性,因为需求是会变的。 Testable:做到系统的可测性,会大大帮助开发以及维护,对团队开发以及分工协作起着非常重要的作用。 Loose Coupling:隔离耦合是架构设计必须要考虑的一个因素,如果系统不能做到高内聚、低耦合,那么在维护,升级,新功能开发方面就会是一场噩梦! High Performance:高性能是系统设计必须重视的要点,用户不可能忍受简单页面加载超过十秒,也不可能接受页面操作频繁卡死的情形,所以在架构设计的时候必须从数据库,逻辑,服务以及UI进行合理的优化。 Scalability:如果能做到前面的几点

学习英文之社区,博客及源码

南笙酒味 提交于 2020-10-12 18:35:31
前言(Introduction) 前些天写了一篇《 程序猿也爱学英语(上),有图有真相 》,大概介绍了我学英语的一些基本资料以及心得体会,先后从发音(Pronunciation, 基本常用单词积累(Vocabulary), 新概念英语(New Concept English), 究竟需不需要学语法(English Grammar?), 走遍美国(Family Album U.S.A.), 常用英语(Daily English Situations), 老友记/六人行(Friends),享受英语的乐趣(Enjoy English)等进行了一些论述。 在写作这几篇《程序猿也爱学英语,有图有真相》文章的过程中,发生了两件比较重要的事情: 1. 在我的强烈推荐下,老婆也爱上了看《老友记》。因为是无字幕版的,刚开始的时候,她听不太懂,但是到了第三季的时候就慢慢爱上了它。现在她把一到十季整整看完一遍了,期间整个房间都是她的欢声笑语!借此机会也想对其他有同样问题的朋友说:“坚持就是胜利!” 2. 经过几个月的努力,老婆终于找到自己满意的工作!对于这个Offer,可以说是来之不易,因为老婆没有任何跨国公司的经验且才来新加坡几个月,所以对她来讲是完全在一个不熟悉的英语环境,而且还要面对各种面试,其中的辛酸苦辣我也看在眼里,痛在心底。作为老公,希望她的工作一切顺利! 扯远了,回归正题,

迟到的儿童节礼物——小游戏三件套:扫雷,俄罗斯方块,数独

大憨熊 提交于 2020-10-03 00:21:08
人的事情要么是饿出来了要么就是吃饱了撑出来的 其实写完刚好是在儿童节前两天,本打算作为儿童节礼物送给大家,结果新账号要3天才能发文章到主页,于是拖到了现在。。。事情是这样开始的:有一天,闲得蛋疼,看见同事在玩扫雷,然后就想着自己做一个,于是花了三天时间写了一个自己的扫雷。。。写完扫雷感觉不过瘾,于是接着又写了俄罗斯方块,一晃又是三天。。。写完俄罗斯方块之后,觉得事不过三,再来一个,然后选了数独,其实知道这个应该是最有难度的,果然也纠结了三天数独生成算法才勉强写完(除了时间,什么都没了)。。。好了废话不多说,上图。 1. 扫雷:这个游戏唯一困难在于空白处的递归搜索,请不要在意配色,只知道RGB三种色o(╯□╰)o。。。本来一开始是打算当WPF的练习,但是又觉得WPF太麻烦,也不是很熟,于是就直接改用WINFORM了,绿色块是Label控件,因为需要处理鼠标点击操作,所以比较方便一点。。。 2. 俄罗斯方块:并不涉及什么算法,递归什么复杂的东西,只是旋转的规则有很多种,这里选的是在网上找到的俄罗斯方块大师游戏的旋转规则。所有的色块是GDI+画的,因为不需要处理交互,所以画会比较方便 3. 数独:按照游戏规则生成初始盘有点难度,边做边试最后找到了一个还算可行的生成规则,基本能在1秒钟内生成完毕。。。色块也是用的Label。。。请不要在意配色的混乱。。。 PS:虽然已经工作好几年了

《全栈工程师 Web 开发指南》

百般思念 提交于 2020-08-19 23:02:14
**《全栈工程师 Web 开发指南》 ========== ========== ========== [作者] (意) Dino Esposito [译者] (中) 李永伦 [出版] 人民邮电出版社 [版次] 2019年03月 第1版 [印次] 2019年03月 第1次 印刷 [定价] 79.00元 ========== ========== ========== 【第02章】 【选择支撑架构】 (P018) 领域模型模式的要点是构建一个完全体现业务领域的行为和流程的面向对象模型。 DDD 愿景中的全部持久化问题都委托给领域服务,尤其是仓库。 (P020) 对于领域模型而言,值类型的角色比很多人想象的重要得多。值类型是更精确地建模真实世界的工具。 【第03章】 【用户体验驱动设计】 (P038) 好的 UI 不一定是好的 UX 。好的 UX 可能是有效的,但可能没那么美观。 (P044) 不管物理层、逻辑层、框架、数据库和技术是什么,对于最终用户而言,软件系统唯一重要的是用户界面,确切地说,是这个应用程序的用户体验和感知速度。 【第04章】 【Web 解决方案的架构选项】 (P053) ASP.NET Core 1.0 最复杂的部分是选择要使用的 .NET CLR 。 DNX 运行时环境 (新的 ASP.NET 运行时) 是一个托管进程,其职责之一就是加载 CLR 。 (P054