前言八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营。有过短暂的失落和迷茫,但技术转型真的没有想象中那么难。回头审视,其实单从语言本身来看,C#确实比Java更优秀(并非C#天生丽质,而是它站在了巨人的肩膀上)。本文并非为.NET正名而来, ...
前言
八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营。有过短暂的失落和迷茫,但技术转型真的没有想象中那么难。回头审视,其实单从语言本身来看,C#确实比Java更优秀(并非C#天生丽质,而是它站在了巨人的肩膀上)。
本文并非为.NET正名而来,而仅仅是分享作者近几年在get='_blank'>ASP.NET跨平台方面的研究与实践经验,算是对八年的.NET之路作一个阶段性的总结。
.NET技术自诞生以来,便一直因其跨平台能力差而广受诟病。这里面有微软有意为之,也有别有用心之人在混淆视听。.NET在一开始便是按公开的语言规范进行设计,随着微软的逐渐妥协,.NET Framework已完全开源。.NET跨平台技术迎来了前所未有的机会,各种.NET跨平台技术必将如雨后春笋般涌现。本文将介绍作者在.NET跨平台方面的最佳实践经验,希望藉以降低.NET跨平台的技术难度,让.NET真正成为跨平台的生产技术。
环境
操作系统选择开源社区较有代表性的Linux服务器版本CentOS(本文所述的跨平台思路可以成功应用于绝大多数的Linux系统,也包括国产操作系统如中标麒麟);技术平台选择久负盛名的Mono;Web应用中间件选择中国制造的Jexus。涉及的环境与技术详细情况为:
- 操作系统:CentOS_6.4_64bit
- .NET框架:Mono_4.0.4.1
- Web应用中间件:Jexus_5.6.5
- 数据库:MySQL_5.1.73
目标
本文所述实践,将实现ASP.NET应用程序在Linux系统进行部署,并作产品化尝试,使ASP.NET应用在Linux平台易于部署和维护。
Web应用程序
本文的Web应用程序选用ASP.NET MVC 4技术开发,持久层选用ADO.NET Entity Framework 6技术。你可以在src/demo目录下找到它。
跨平台部署
一、安装系统
最小化安装CentOS系统。作为实验环境,可以考虑选用具有快照功能的虚拟机,作者选用的VMWare虚拟机进行试验。系统安装在此不再赘述。系统安装好后,做一个快照留待后续验证产品化安装包正确性所用。
如果你对跨平台部署ASP.NET应用的实现过程没有兴趣,只想看结果的话,可以直接跳过后续步骤,直接进入产品化章节的通过安装包部署ASP.NET应用部分。
二、搭建Linux编译环境
由于本文选择源码安装Mono,所以需要先搭建Linux编译环境。搭建Linux编译环境需要让系统连接互联网,并进行系统更新。
首先,需要让你的系统连接互联网。此处以VMWare虚拟机为例讲解如何连接互联网。VMWare虚拟机连接互联网的方式很多,作者选择NAT方式,首先需要将虚拟机网络连接方式设为NAT,如图 1所示。
图 1 VMWare虚拟机网络连接方式设置
设置VMnet8为自动获取IP,如图 2所示。
图 2 设置VMnet8为自动获取IP地址
然后将Linux虚拟机设为DHCP自动分配IP,编辑网卡配置文件:
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
重启iptables,使防火墙设置生效:
[root@localhost siteconf]# /etc/init.d/iptables restart
原标题:ASP.NET跨平台最佳实践
关键词:ASP.NET
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。