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 条评论
登录 后参与评论

相关文章

来自专栏强仔仔

网上员工考试培训系统

计目的及任务 利用流行的JAVA语言框架SSH(Struts2+Spring+Hibernate)框架,实现网上员工考试培训系统的开发,旨在模拟完成一个功能完...

3359
来自专栏小文博客

visual studio code-最好的h5开发工具

6663
来自专栏张善友的专栏

TechEmpower 13轮测试中的ASP.NET Core性能测试

应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此。此外,糟糕的应用性能也会影响到用户体验,甚至会因此受...

2208
来自专栏小白课代表

软件分享 | Microsoft Office Visio 2013 安装教程

1812
来自专栏哲学驱动设计

OEA 中的多国语言实现

    本篇博客主要描述在 OEA 框架中的多国语言框架的原理及应用。 多国语言常见实现及原理分析     管理软件平台,一般来说,都应该支持多国语言,以支持应...

2048
来自专栏一个爱吃西瓜的程序员

分享几个实用的浏览器插件

插件是一个神奇的东西,它可以满足我们各种各样的需求,而浏览器本身并不具备这种功能。谷歌浏览器之所以雄踞浏览器市场,除了万能的谷歌搜索,还有很大的原因就是因为它有...

3948
来自专栏小白课代表

软件分享 | Microsoft Office Visio 2010 安装教程

2033
来自专栏张善友的专栏

Mono 3.2.7发布,JIT和GC进一步改进

Mono 3.2.7已经发布,带来了很多新特性,如改进的JIT、新的面向LINQ的解释器以及使用了64位原生指令等等。 这是一次主要特性发布,累积了大约5个月的...

1906
来自专栏SDNLAB

漫谈DPI工具

01 聊聊DPI DPI即深度数据包检测,这种技术一般是针对应用层的流量进行检测和控制。当有流量经过时基于DPI的监控系统后,系统需要读取报文中OSI七层协议...

50213
来自专栏老九学堂

这 7 大笔记应用,让程序员的的代码效率翻 7 倍!

Boostnote 是为编码器设计的笔记应用典范。它虽然不具备现代笔记应用的所有功能(例如,它具有 Markdown 格式和基于文件夹的组织功能,但缺少可自定义...

7241

扫码关注云+社区

领取腾讯云代金券