aehyok.com的成长之路二——技术选型
前言
首先奉上个人网站地址传送门:aehyok.com
在上一篇博客中http://www.cnblogs.com/aehyok/p/3934197.html主要简单的介绍了自己做个人网站的初衷,就是为了督促自己学点技术。让自己抓紧一点,毕竟花的是自己的血汗钱来搞的。要不好好学,都对不起自己。
本人最近也建立了一个QQ技术群,现在里面人数不是不多,是在写上一篇博客时陆陆续续的开始有人加入的。本人个人网站所涉及的所有源码也将会在群内共享。群账号为:206058845,记住群验证码为:aehyok。欢迎各位喜欢学习技术的朋友们入住。。
网站整体架设
1、自己思来想去最终决定在.Net Framework4.5下进行开发。
2、这也造就了服务器使用的Windows Server 2008 R2,貌似在Windows Server2003下安装不了Framework4.5的版本。
3、Visual Studio选择的是VS2013的这个版本。
4、服务器上一直想装Sql Server 2008的版本,苦于一直失败,还好Sql Server2005的版本可以安装,也不影响整体的规划。
5、源代码管理工具自己使用的是微软的在线云TFS: http://www.visualstudio.com/products/visual-studio-online-user-plans-vs。
网站使用.Net技术
在去年年底也对自己进行了一个简单的总结和规划http://www.cnblogs.com/aehyok/p/3495685.html。规划自己之后希望学习到的一些技术或者知识。经过这样一段时间的积累,也发现了一些问题或者产生了一些想法。暂时希望自己的项目网站能够使用如下的技术进行开发,或者有些已经使用了:
1、Asp.Net Mvc:因为是做个网站,自己工作中也用过Asp.Net Mvc,所以选择Mvc的开发模式没什么可考虑的,选择版本Asp.Net Mvc5.0。而且据说MVC 6.0,不再需要依赖System.Web,占的内存大大减少。可以self-host模式运行,网站不再需要依赖IIS而运行,由此从此可以快速向客户演示开发进度,以及更好地支持真正跨平台(Linux、Mac、Unix)。 有关MVC6的资料可以查看http://www.cnblogs.com/kvspas/p/asp-net-mvc6-vnext.html。
2、Entity Framework:工作中一直使用的Ado.Net,自己经常看到博友们分享使用各种ORM框架(EF、NH等等)感觉开发很方便有效率,可以查看现存的在C#语言下的各种ORM框架:各种ORM框架汇总。不过由于微软对于Entity Framework的策略,最终也选择微软的下一代Ado.Net产品EF,选择版本Entity Framework6.0。
3、Entity Framework Code First:自己之前也有简单尝试EF的使用:http://www.cnblogs.com/aehyok/p/3341823.html。选择使用EF的Code First模式,那么对于EF使用Repository仓储模式和UnitOfWork工作单元更是将开发的效率提升到了一个新的层次,虽然现在还不是特别明白,这也是自己最近一直在研究的。
4、Bootstrap3.0:对于非Web前端工程师而言,前端UI肯定是我们的痛处,自己既然想做网站,而且没那么多精力去专门搞UI。之前也一直思考过如果自己来做的话,会选择什么样的框架来做,自己最终学习了Bootstrap3.0,这是我的一个系列文章:http://www.cnblogs.com/strick/p/3946475.html。最终选择BootStrap3.0, 当然这并不是唯一的选择。
5、AutoFac:http://www.cnblogs.com/liping13599168/archive/2011/07/17/2108734.html这是对于比较流行的IOC框架的性能测评,自己也简单尝试过几个IOC框架后,感觉还是AutoFac最适合我吧。唉可惜的就是在工作中使用不到这些好的框架,有点遗憾,所以自己想多研究研究,要不然都有点脱轨了。这里也有一篇关于IOC的讲解:http://www.cnblogs.com/showjan/p/3950989.html。
6、AutoMapper:AutoMapper是基于对象到对象约定的映射工具,常用于(但并不仅限制于)把复杂的对象模型转为DTO,将业务实体Model与UI使用模型分开,所以考虑使用DTO数据传输对象,或者以后还会进行服务的开发,为了传输的更为自由方便效率。
7、T4:一个基于模板的代码生成器。它由文本块和控制逻辑块组成的一个模板,可以自动的生成一些文本。它可以快速的为我们生成一些代码,节省我们的时间。加快开发效率。这里有位大神分享的几篇感觉都很不错:http://www.cnblogs.com/heyuquan/articles/2427494.html#T4
8、单元测试:当身处团队项目,Bug层出不穷的时候,那么单元测试会是一个不错的选择。那么让我们一起走进单元测试吧:http://www.cnblogs.com/yangcaogui/archive/2012/02/06/2337483.html
9、Asp.Net Web API:之前自己简单学习过http://www.cnblogs.com/aehyok/p/3446289.html,但还没成型,打算之后可以用它来做服务。
10、Knockout.js :打算考虑使用MVVM进行解耦,主要目的是分离视图(View)和模型(Model),学习起来也比较简单,之前学习过一段时间http://www.cnblogs.com/aehyok/p/3381562.html
11、Log4Net:log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。有了这么好的组建,我也没必要进行单独开发了,直接引用封装到项目中吧:http://www.cnblogs.com/aehyok/archive/2013/05/07/3066010.html
12、jQuery:jQuery类库当然必不可少。http://www.cnblogs.com/Jolinson/tag/Jquery/打算继续跟随这个系列学习吧,不知道该博主是否还会将其系列写下去。
13、……14、……15、……以后可能还会用到其他的组件技术。
总结
经过上面的罗列,相信有些人看到了会感觉普普通通的。不过这些对于本人来说,这一切都是从零开始的,在公司工作中,只是对于最基本的MVC算是比较了解了。其他的基本上可以说是都是全新的,自己只是希望通过自己的个人网站,来学习这些自己感觉有用的技术或者知识,来促使自己更好的成长和提高,来更深入的学习。一切都在紧锣密鼓的进行着,毕竟还要上班,进度不会那么理想,不过只要自己一有时间,还是要把精力投入进去,让自己的网站快速的成长。
大家也可以发现,其实上面的知识也是很有关联性的,当然我还需要继续研究一下,然后慢慢整理出自己研究的框架。虽然没有大牛们的好,但毕竟是自己亲自搞出来的。
本人最近也建立了一个QQ技术群,现在里面人数不是很多,是在写上一篇博客的时候开始加人的。本人个人网站所涉及的所有源码也将会在群内共享。群账号为:206058845,记住群验证码为:aehyok。欢迎各位喜欢学习技术的朋友们入住。。期待我们的共同成长。同时希望自己能够一直坚持学习下去。
最后再次奉上个人网站地址传送门:aehyok.com