C#编程学习入门经验(三)
1. 引文
接上篇,由于时间的关系,就当是自己的随笔了,希望没有给大家带来误导,现在回头看感觉写的简单了点,唯一期望的是能给大家带来一点点帮助,心里也会倍感欣慰。
2.实际项目实战
前两篇写了一些入门学习的的一些建议,没有具体到语法、函数、组件、类库等,同样这里也不废话,市面上任何一本相关书籍都有详细的介绍,同样的msdn也很详细,只是在开始之前推荐一本书,作为工具书,个人觉得很好,Jeffrey Richter的《.Net Frame 框架程序设计》,虽然现在.net core已经慢慢成了主流,但了解原来的框架原理,对后期学习还是很有帮助的,这本书我至今还保留着。
2.1设计模式的实践
现在的软件开发,除了大公司或者做产品开发的公司,前期的开发文档以及规范有明确要求外,中小型的企业项目大多是选定了一个大方向和框架,就直接肝,比如web或者报表工具,所以选好框架很重要,根据项目的规模,Web端目前mvc+ef相对较多,控制台、Form、以及服务型的项目相对的涉及就比较广了,各种总线,类库,开源框架,像RabbitMQ、MSMQ等,就不一一啰嗦,这里想说的是,优先开发核心功能模块是一个非常有用的建议,而不是花大把的时间在前端设计上,前期的UI上最好的是由美工和产品经理或客户扯完皮再下手,更节约咱宝贵的时间,记住“能动手就别吵吵”,所以我个人认为,在需求有变动的情况下优先做功能核心类库,而设计模式实践的机会就来了,什么工厂模式、单例模式、装饰器模式等(赶工期就要慎用,毕竟时间耽误不起),既能提高性能,又能增强程序的健壮性,可扩展性等。
2.2 数据库相关
熟练掌握SQL是关键,而数据处理Linq是个好帮手,对于搞数据分析的童鞋来说能大大提升处理的效率,要充分利用好数据库的性能而是凭空增加数据库的负载。这部分主要还是给大家推荐几个常用的组件,ODP.Net,Dapper(新版均已支持.net core)。前者是.net 环境下开发基于Oracle数据库程序的最长用协议之一,其中的一个好处是完全脱离oracle的客户端配置,直接连接数据库操作;而Dapper则是数据库操作的常用组件,提供了Query、Execute等方法,大大的简化了数据库开发的复杂度,可以更专注于业务数据逻辑处理方面。
例如:
using Oracle.ManagedDataAccess.Client;
using Dapper;
namespace MyDemo{
public Class UserDb{
public userInfo GetUser(){
///........
///两条语句就完成数据查询操作^_^
var sql =$"select ID,Name,Sex,Favorite From UserInfo where Age>18";
return Connection.Query<UserInfo>(sql).ToList();
///........
}
}
}
2.3 数据交互
在这里插入代码片在目前移动端APP、微信小程序等应用的流行,再加上原来项目各模块的数据交互平凡的情况下,数据交互就显得格外重要,为了达到松耦合,统一标准的目的,目前常用的数据交互有xml,json格式等,个人推荐使用json,因为在大数据应用方面有得天独厚的优势,而在.net中的Newtonsoft.Json组件包则使我们最常用的,该组件能帮我们将object对象快速序列化或者反序列化,而不会造成因为手残造成的json串格式错误。
///老样子上代码,这里比较了手动拼json和自动序列化
using Newtonsoft.Json;
namespace MyDemo{
public Class MyProgram{
public static void Main(){
var users = UserDb.GetUser();
if(users != null&&users.Count>0){
//将object序列化成json字符串
Console.WriteLine(JsonConvert.SerializeObject(users));
}
//手动拼接返回的json值,这还是最简单的,眼都花了
Console.WriteLine("{\"result\":\" 未查询到用户\"}");
}
}
}
2.4安全性
安全性的重要性就不重复了,这里写一下我平时开发中常用的两种方法,以及开发中的注意事项。
2.4.1 证书加密
这个web项目中用的较多,目前免费的证书已经很少了,一般都是需要付费的,国内代理的也很多,这里我们需要注意的是,在代码中要增加防注入攻击措施,这一点我们一开始做项目时吃过这方面的亏,所以切记。
2.4.2 过滤器加密验证
对http/https的头消息进行加密,WebApi等松耦合的服务接口建议使用,对于信息安全方面,从来没有小事情,我们曾经为了增加安全性,用了整整一周时间整改原有的对外服务接口。所以这里慎重提醒,松耦合的接口通讯一定要增加安全处理。
3.小结
由于工作较忙,加上本人笔力教弱,写的略显凌乱,在行文上若有瑕疵,欢迎指正,也欢迎各位大神来交流探讨。从一个开发人员的角度来说,若能为想进入码农行业的同学提供一点微弱的帮助,也倍感荣幸。
生命不息,学习不止,与君共勉之
技术交流
Email : 37408967@qq.com