Mac上开发.Net遇到的坑

相信很多朋友都和我一样,使用Mac做为自己的电脑,但是工作中却需要使用.Net的开发环境,但是Mac对于.Net的支持却一直不是很好,时代在发展,微软都成为Github贡献最多的企业,那么Mac中顺利开发.Net的梦想能实现吗?

大家都懂的解决方案——虚拟机

核心依然是在Windows上开发.Net程序,只需要安装虚拟机即可,推荐使用Parallels Desktop,价格不贵,淘宝有大量半价销售,可以使用融合模式。当然,可以找一些其他的免费得虚拟机,都差不多,都会有一个问题——卡。

奇葩的方案——远程桌面

其实这个方案并不奇葩,很多人的Mac唯一不能做的,就是.Net开发,或者说,就是.Net的编译和Visual Studio的使用,所以远程桌面配合Nginx或者其他方案,使用起来也是很不错。推荐使用Micorsoft remote desktop。至于调试JS你是喜欢在Mac环境还是Windows环境,都可以,你可以通过修改HOST或者用Nginx做反向代理,这里就不多说了。

以上的两个方式都是在Windows作为开发的平台,不能算是在Mac上开发,Mac只是一个屏幕和一个键盘而已。下面介绍几个Mac环境中开发.Net的方式。

.net Core 让未来照进现实

其实大家都知道,.net Core是.net的未来,现在Core已经完全支持Mac平台,基本可以与Mac无缝结合,配合VS code使用,整个开发的体验其实是非常棒的。推荐仔阅读:http://www.cnblogs.com/dotNETCoreSG/p/aspnetcore-index.html ,非常棒的文章。

  • 安装
    参考:https://www.microsoft.com/net/core#macos ,如出现坑爹的疑问,试着重启下电脑。
    安装Yeoman,会包括基础的代码,毕竟vs code是文本编辑器,不是IDE,达不到Visual Studio的水准,建项目和初始化项目的时候,不肯能全部敲代码,用这个就可以初始化项目。
    参考:Building Projects with Yeoman
    Yeoman基于npm,对于长期使用Visual Studio开发的同学,可能不太了解Linux和 .Net Core的世界里,请务必知道npm的使用。
  • 使用
dotnet restore
dotnet run

然后通过浏览器就看到 .net 的网页,当然,如果你自己是使用控制台,也是可以的。
因为 .net core是有别于原有的 .net 2.0, .net 3.5 ,.net 4.0 ... ,设计之初的目的就是为了跨平台,所以,可以理解为有别于以前版本的全新框架,所以,与原有的框架暂时无法顺利平移,即使强制转过来,也会有一些很奇葩的问题。

用不惯vs code,xamarin Studio你可以试试

.net core无法兼容前几代.net版本,那么前几代的怎么办呢,vs code 能用吗?
用Mono吧,.net Core的鼻祖,编辑器依然用vs code,但是抱歉,针对调试功能无法很好的支持。用过Visual Studio的人,你跟我说无法调试?呵呵,试试xamarin。
xamarin Studio是一个IDE,不仅可以开发 .net,还能开发Android和IOS程序,这个大家应该都知道,这里就不多说了。
Visual Studio能很好的支持断掉调试,支持MVC,虽然不如Visual Studio,但是基本的使用还是很方便的,智能提示也能及时的响应,相对也是一个不错的选择。

总结

虽然上面介绍了多种我自己尝试的在Mac下开发.net程序的方案,但是每种方案都有不足之处,究其原因,还是因为 .net 在Linux平台属于一个相对小众的产品,但是随着Micosoft逐渐和Linux越走越近,.net core逐渐得到任何越来越多的认证,近乎完美的解决方案迟早会出现,但是现阶段,依然还需要忍耐。
以上方案在使用过程中,总会有各种的痛点,希望能尽快得到解决。例如:对MVC的版本支持有些差异、部分.dll不兼容、甚至还会出现大写小写不兼容的情况。PS:开发的习惯真的很重要,如下的两单代码就是有区别的。

return View("~/Home");
return View("~/home");

在Windows下面,两种写法都是可以的,但是在Mac下,呵呵~~~。


欢迎大家关注我的公众号交流、学习、第一时间获取最新的文章
微信号:itmifen

img_054e28db67b2b584091c95441ebc372f.jpe
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
因源码总计100多兆,所以分五次下载。 第1章 论坛模块   第2章 博客模块   第3章 播客   第4章 网络硬盘   第5章 在线考试模块   第6章 网站备忘录   第7章 电子邮件发送与接收模块   第8章 在线短消息模块   第9章 网站统计分析   第10章 图书馆管理系统(权限分配)   第11章 会员注册登录模块   第12章 会员密码找回模块   第13章 基于XML技术的留言本   第14章 上传与下载模块   第15章 图片资源管理模块   第16章 搜索引擎模块   第17章 网上问卷调查模块   第18章 RSS在线订阅与阅读模块   第19章 聊天室模块   第20章 购物车模块   第21章 在线银行支付模块   第22章 手机短消息管理平台   第23章 在线音乐模块   第24章 电子相册模块   第25章 投票系统模块   第26章 万能打印模块   第27章 数据备份与恢复模块   第28章 LINQ数据库访问技术   第29章 安全技术 631   29.1 Web.config加密与解密 631   29.1.1 认识Web.config配置文件 631   29.1.2 Web.config文件加密与解密的意义 633   29.1.3 使用SectionInformation类实现加密与解密 634   29.1.4 命令行工具aspnet_regiis.exe实现加密与解密 636   29.2 图文验证技术 638   29.2.1 图文验证技术概述 638   29.2.2 纯数字验证码 638   29.2.3 字母与数字混合验证码 640   29.2.4 纯汉字验证码 642   29.3 防盗链技术 644   29.3.1 盗链对网站的危害 644   29.3.2 防盗链的解决措施 645   29.3.3 图片资源防盗链下载 645   29.4 “支付宝”在线支付 648   29.4.1 支付宝接口概述 648   29.4.2 应用支付宝实现在线支付 648   第30章 服务类技术 657   30.1 Web Service实现天气预报 657   30.1.1 Web Service天气预报功能概述 657   30.1.2 介绍Web Service 657   30.1.3 创建一个简单Web Service 658   30.1.4 使用Web Service获取天气预报 661   30.2 社会标签(Tags)技术 663   30.2.1 社会标签简介 663   30.2.2 热门标签排行 664   30.2.3 标签的检索 665   30.3 在线客服 666   30.3.1 在线客服概述 667   30.3.2 QQ网站上自动生成代码 667   30.3.3 在线客服实现 669   30.3.4 将代码应用于网站中 669   30.3.5 客服后台管理 670   30.4 循环播放广告 672   30.4.1 循环播放广告功能概述 672   30.4.2 循环播放广告关键技术 672   30.4.3 浏览循环播放广告页面设计 673   30.4.4 广告位轮换管理页面设计 674   第31章 Ajax 677   31.1 Ajax概述 677   31.1.1 Ajax定义 677   31.1.2 Ajax运行原理 677   31.1.3 Ajax与Atlas的关系 677   31.2 搭建Ajax开发环境 678   31.2.1 Ajax开发环境下载与安装 678   31.2.2 AjaxControlToolkit下载与安装 679   31.2.3 创建Ajax空网站 681   31.3 Ajax开发典型应用 681   31.3.1 Ajax多样式验证 681   31.3.2 Ajax密码强度提示 682   31.3.3 Ajax智能匹配检索 684   31.3.4 Ajax实现许愿墙 686   第32章 高级应用技术 691   32.1 在线文本编辑器 691   32.1.1 在线文本编辑器的概述 691   32.1.2 制作简单的文本编辑器 691   32.1.3 应用FCKEditor在线文本编辑器 694   32.2 在线获取客户端网卡(MAC)地址 698   32.2.1 网卡(MAC)地址简介 698   32.2.2 为什么使用网卡(MAC)地址 698   32.2.3 获取网卡(MAC)地址关键技术 698   32.2.4 限制每台机器只能领取一个账号 699   32.3 处理PDF文档 701   32.3.1 PDF文档简介 701   32.3.2 配置iTextSharp组件 701   32.3.3 制作简单的PDF格式化工具 702   32.4 OWC生成图表 705   32.4.1 OWC简介 705   32.4.2 添加OWC组件 705   32.4.3 OWC绘制图形的关键技术 706   32.4.4 绘制3D柱型图 708   32.4.5 绘制3D饼型图 710 《ASP.NET开发典型模块大全》以关键技术和热点技术为核心,通过27个典型模块和5章热点技术、全面地介绍了如何使用ASP.NET进行各领域的Web项目开发。全书共3篇分为32章,第1篇关键模块篇,覆盖网站开发的关键领域,内容涉及论坛、博客、播客、网络硬盘、电子邮件、在线考试、网站备忘录、在线短消息、网站访问量统计与分析、系统后台管理权限分配等网站关键模块;第2篇常见模块篇,覆盖网站开发的各个领域,内容涉及网站会员注册及登录、会员密码找回、留言本、上传与下载、图片资源管理、搜索引擎、网上问卷调查、RSS在线订阅、聊天室、购物车、在线银行支付、手机短消息管理、在线音乐、投票系统、万能打印、数据自动备份与恢复等常见模块;第3篇热点技术应用篇,解决网站开发在某个领域遇到的技术难题,内容涉及LINQ数据访问技术、安全技术、服务技术、Ajax、高级应用技术等。   本书附有配套光盘。光盘提供了书中所有案例的全部源代码,并经过精心调试,在Windows XP和Windows 2000下全部通过,保证能够正常运行。此外,光盘中还提供有编程词典试用版软件。   本书案例涉及领域广泛,实用性非常强。学习本书读者可以了解各个领域的特点,能够针对某一行业进行软件开发,也可以通过光盘中提供的模块源代码进行二次开发,以减少开发系统所需要的时间。本书适合各级软件开发人员学习使用,也可供大、中专院校师生学习参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值