当前位置: 首页 > 科技观察

谁说.net不是最新的?让Asp.net在MAC上飞翔

时间:2023-03-20 15:25:49 科技观察

.NET不跨平台一直是有争议的。虽然微软在前端时间发布了一些支持.NET跨平台发展的消息,但微软一直坚持不主动、不拒绝、不负责任的三不态度,依旧用软件帝国的心态,折腾一些没有创新的东西。微软要想重新获得大众的尊重和认可,就必须摒弃一些传统观念,积极倾听开发者的声音,与开发者共同发展,这似乎任重而道远。跨平台是大势所趋,最终,微软也不得不低头。Mono一直在微软的眼皮底下发展,到现在都很好。虽然不能支持.NETFramework的所有特性,但是对我们来说已经足够了。目前支持C#4.0和ASP.NETMVC4,也有很多开源组件将与mono框架的兼容性作为重要指标。作为企业,在实施软件系统时,降低硬件设备成本是重点考虑的事情。为了节约成本,很多企业不得不选择其他低成本的编程语言,比如java、php等。让一些.neter自卑的重要原因,也是javaer骂.net的常用手段。使用mono,你可以构建一个更便宜的解决方案,让那些不懂装懂和鄙视你的人去死。.今天我要把asp.net程序搬上mac运行。我们都知道asp.net程序不能单独运行,必须托管在web应用服务器上。在windows上,我们基本上都是IIS。IIS非常强大且易于管理。我们不能在mac上安装IIS,但是我们还有其他的工具,因为不管是什么web应用服务器,它们的原理都是差不多的,无非就是监听http请求,然后根据路由将请求映射转发到相应的handlers我们制定的规则。支持mono的应用服务器有很多,比如apache、nginx等,apache就不用多说了,java高端界大家都知道,但是我今天用的是nginx。nginx通常与keepalive结合用于负载均衡,但它也是一个非常强大的http服务器。第一步,下载:点击这里下载nginx。我这里选择的是1.2.9版本,最新版本是1.7.1。别问我为什么不用最新版,因为我从1.4.0到1.7.1都装过,我的mac上从来没有安装成功过。不想再折腾了,会伤身体的。第二步,解压:下载完成后,我们进入downloads目录解压:zhaoguihuadedianano:/zhaogh$cd~/downloadzhaoguihuadedianano:downloadszhaogh$tarnginx-1.2.9.tar.gz第三步,安装前的配置zhaoguihuadedianano:downloadszhaogh$cdnginx-1.2.9zhaoguihuadedianano:nginx-1.2.9zhaogh$sudo./configure--prefix=/usr/local--with-http_ssl_module这个主要是指定nginx的安装路径。第四步编译安装zhaoguihuadedianano:nginx-1.2.9zhaogh$sudomakezhaoguihuadedianano:nginx-1.2.9zhaogh$sudomakeinstall第五步运行测试zhaoguihuadedianano:nginx-1.2.9zhaogh$cd/usr/local/sbinzhaoguihuadedianao:sbinzhaogh$sudo./nginx在浏览器中打开http://localhost/,如果你能看到下面的话,那么恭喜你,你的努力没有白费,我看到了你的成长和进步,但是我的努力已经有好几个人看到了,为了这几个字我纠结了很久。欢迎使用nginx!如果我们想让我们的asp.net程序运行在nginx上,上面的步骤是不够的,我们还需要做一些基本的配置。第六步,编辑配置,用vi打开nginx.conf文件zhaoguihuadedianano:~zhaogh$cd/usr/local/confzhaoguihuadedianano:confzhaogh$vinginx.conf修改下图颜色标记的内容,剩下的留着未受影响:服务器{listen80;服务器名称本地主机;#charsetkoi8-r;#access_loglogs/host.access.logmain;位置/{roothtml;indexindex.htmlindex.htmDefault.aspxdefault.aspx;fastcgi_indexDefault.aspx;fastcgi_pass127.0.0.1:9000;包括/usr/local/conf/fastcgi_params;}然后修改/usr/local/conf/fastcgi_params文件并添加以下行:#monofastcgi_paramPATH_INFO"";fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;第七步,启动fastcgi-mono-server:zhaoguihuadedianano:~zhaogh$fastcgi-mono-server2/applications=localhost:/:/projects/website//socket=tcp:127.0.0.1:9000记得改/projects/website/部分到您的程序目录。我使用xamarin模板直接从Web应用程序执行此程序。第八步,启动nginx:zhaoguihuadedianano:confzhaogh$sudo/usr/local/sbin/nginx-squitzhaoguihuadedianano:confzhaogh$sudo/usr/local/sbin/nginxzhaoguihuadedianano:confzhaogh$现在我们到浏览器输入http://localhost/看结果,有图有真相,千万不要瞎搞。你可以用xamarin编译你在vs上做的asp.netmvc程序,然后在nginx上运行。如果你不相信我,你可以试试。我们还要响应党的号召,少用或不用Windows系统。如果客户告诉你.net以后不达标,让他去死吧。