专栏首页IT米粉Mac上开发.Net遇到的坑
原创

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 ,非常棒的文章。

  • 安装undefined参考:https://www.microsoft.com/net/core#macos ,如出现坑爹的疑问,试着重启下电脑。undefined安装Yeoman,会包括基础的代码,毕竟vs code是文本编辑器,不是IDE,达不到Visual Studio的水准,建项目和初始化项目的时候,不肯能全部敲代码,用这个就可以初始化项目。undefined参考:Building Projects with YeomanundefinedYeoman基于npm,对于长期使用Visual Studio开发的同学,可能不太了解Linux和 .Net Core的世界里,请务必知道npm的使用。dotnet restore dotnet run然后通过浏览器就看到 .net 的网页,当然,如果你自己是使用控制台,也是可以的。undefined因为 .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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据库的使用你可能忽略了这些 (续)

    之前写过一篇文章《数据库的使用你可能忽略了这些》,主要是从一些大家使用使用时容易忽略的地方,如:字段长度、表设计等来说明,这篇文章同样也是这样的主题,只是从另外...

    itmifen
  • Docker 常用基础命令

    最近开始进攻Docker,已经将自己的电脑上的服务端软件逐一移到Docker上,包括tomcat、nginx、rabbitmq、redis等,并通过简单的脚本进...

    itmifen
  • 学会数据库读写分离、分表分库——用Mycat,这一篇就够了!

    根据不同的系统选择不同的版本。包括linux、windows、mac,作者考虑还是非常周全的,当然,也有源码版的。(ps:源码版的下载后,只要配置正确,就可以正...

    itmifen
  • 如何看待「机器学习不需要数学,很多算法封装好了,调个包就行」这种说法?

    不抖机灵,想从接触过机器学习学术圈但已投身工业界的角度来回答。 我认为:大部分机器学习从业者不需要过度的把时间精力放在数学上,而该用于熟悉不同算法的应用场景和掌...

    AI研习社
  • 如何看待「机器学习不需要数学,很多算法封装好了,调个包就行」这种说法?

    编者按:这个问题放到更大的范围,也同样适用于回答“学习数据挖掘是否需要学好数学?”。作者从实践的几个方面给出了自己的理解,小遍认为还是比较好的回答了这个问题。 ...

    小莹莹
  • 双十二之际、再谈:网站MIP改造中的点点滴滴!您真的了解百度MIP框架么?

    Ps:如果您出于好奇心、还是想看一看正文?强烈建议先阅读之前写的:《MIP开发文档》。

    Levi.Ackermann
  • 深度学习基本概念

    深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的...

    foochane
  • Kubernetes展望与思考之1.17初体验

    kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,其中kubespray比较适合较大规模的集群部署,*步骤,为可选操...

    zouyee
  • 【犀牛鸟论道】深度学习的异构加速技术(二)

    ? 一、综述 在“深度学习的异构加速技术1”一文所述的AI加速平台的第一阶段中,无论在FPGA还是ASIC设计,无论针对CNN还是LSTM与MLP,无论应用在...

    腾讯高校合作
  • Influx Sql系列教程零:安装及influx-cli使用姿势介绍

    influxdb 时序数据库,因为实际业务中使用到了,然而并没有发现有特别好的文章,完整的介绍influx sql的使用姿势,因此记录下实际开发中学习的体会,主...

    一灰灰blog

扫码关注云+社区

领取腾讯云代金券