我是一个有多年开发经验的.NET程序员。最近,我决定使用*NIX系统来开发.NET程序,虽然看起来有些激进,但是我可以说,这是我做过最好的决定了。
事情的起因是这样的,上周星期五(十月14日),我正在办公室处理一些东西,突然Windows弹出一个窗口说:“20分钟之后我们将更新Windows,在这之前你什么都做不了。”
15分钟之后,我的笔记本已经关机了。然后过了两三分钟,就开始了长达一个小时的更新过程,浪费了我的工作时间。所以,去你的Windows吧。
然而,这并不是纯粹因为一时的感情用事做出的决定。老实说,当初我是想买台MacBook来着,但是我们的项目需要做触屏产品,所以我就买了联想的Yoga 900。不过我想也许苹果有一天会出一台带触屏的笔记本,然后说这是笔记本的“革命”,这又是另外一个故事了。
开发过两个涉及到.NET Core的项目之后,我工作用的笔记本基本上和所有微软系统的东西绝缘了,然后安装了了Linux Mint。
为什么是Mint呢?不知道,网上有人推荐说,如果你是Linux新手的话(我不是纯粹的新手,在美好的大学时代,我还学了几个命令),应该使用Mint而不是Ubuntu(这里别太较真了兄弟),所以我就用了Mint。
安装新系统之前,我必须关闭笔记本的UEFI,重新分区,格式化。对我来说需要花些时间搞明白这些操作,不过还不是太难。
安装很快,过了几分钟,我就可以登录我的新系统了。
接下来我的首要任务是安装.NET Core框架,非常简单,没什么好说的。但是NET Core preview library有些依赖存在问题,我Google解决了这个问题。然后我的框架就可以工作了,我准备build一个应用。它“工作”了,加引号是因为引用System.Drawing的project.json出现了问题。
虽然程序可以正确运行,但是它抛出了找不到gdiplus.dll异常,情理之中,因为这是Windows组件,在Linux中找不到是正常的。
但是这里我想表达的意思是,这里.NET Core应用并没有崩溃。想象一下我把它部署到Linux服务器会发生什么——看起来一切正常,但是实际上却不是。这里要注意一下。
安装了一些必要的服务和应用(如Git, MongoDB, Redis, Slack, Skype等)之后。我要做出一个决定了:用什么来写代码。我是Visual Studio Code的忠实粉丝——我写JavaScript几乎全靠它(以及除了写C#之外所有的工作),但是,如果要保证生产率的话,我觉得还是Resharper比较好。
还有个叫做OmniSharp(支持Atom,Brackets,Sublime甚至Vim),它也兼容VS Code。但这毕竟不是Visual Studio + Resharper,也基本满足我的需求了,比如通过文件查找,通过method/type查找,重命名,跳转到定义处或显示引用等。
我也尝试了Project Rider项目,但是运气不太好。项目可以载入,但是内置的Resharper有错误,我不能build我的项目(可以写代码,不能工作)。
不过我相信如果JetBrains修复了这些bug的话,这会是.NET最棒的跨平台IDE(迫不及待了!)最后一点,没有什么是一个bash脚本解决不了的,所以项目的自动化(运行、测试等)不是问题。
最后要讲的东西是Docker。之前我也计划过学习Docker,但是因为没有地方用到,所以就不了了之了。现在,我们正在使用Microservices + CQRS模式开发,所以用Docker的镜像和容器应该是个不错的主意。
这也是在软件开发中使用Linux而不是Windows的一个优点。Linux是运行Docker的纯天然容器,如果它能在我的机器上运行,我几乎100%地肯定它能在远程服务器上运行。
我也可以在Windows 10上安装Docker,但是需要VirtualBox的HyperV。上次我试图编译它的时候,因为系统变量$PATH的问题遇到了错误。所以在Windows中使用Docker还是挺麻烦的。
对了,我忘了提为什么我的应用不能在Linux中运行了——因为这是在Windows上编译的,aurelia.json文件的路径以”\”结尾,必须将其替换成”/”才能工作(在Windows中也有同样的问题。)
我已经无法形容*NIX系统的bash有多么棒了,用脚本设置NGINX的SSL、签名、反向代理和重定向简直易如反掌。
最后,我不是说Windows不适合做软件开发。比如,[Visual Studio]在短期内可能不会有竞争对手。我的观点是,如果你不是必须使用某个非跨平台系统(通常都是指Windows)的话,也许你可以试一下其它环境。尝试新的东西,对强化技术和开拓视野来说总是好的。
参考:
霹雳猿教程_-HTML教程-HTML 教程 http://www.piliyuan.com/HTML/1.html
霹雳猿教程_-HTML教程-HTML 简介 http://www.piliyuan.com/HTML/15.html
霹雳猿教程_-HTML教程-HTML 基础 http://www.piliyuan.com/HTML/16.html
霹雳猿教程_-HTML教程-HTML 元素 http://www.piliyuan.com/HTML/17.html
霹雳猿教程_-HTML教程-HTML 属性 http://www.piliyuan.com/HTML/18.html
霹雳猿教程_-HTML教程-HTML 标题 http://www.piliyuan.com/HTML/19.html
霹雳猿教程_-HTML教程-HTML 段落 http://www.piliyuan.com/HTML/20.html
霹雳猿教程_-HTML教程-HTML 链接 http://www.piliyuan.com/HTML/21.html
霹雳猿教程_-HTML教程-HTML 头部 http://www.piliyuan.com/HTML/22.html
霹雳猿教程_-HTML教程-HTML CSS http://www.piliyuan.com/HTML/23.html
霹雳猿教程_-HTML教程-HTML 图像 http://www.piliyuan.com/HTML/24.html
相关推荐
在使用.NET Core进行Linux平台下的二次开发时,可能会遇到加载海康SDK库失败的问题。这种情况下,开发者通常需要手动指定相关的动态链接库(如`libcrypto.so.1.1`、`libssl.so.1.1`等)的路径,以便.NET Core运行时...
ASP.NET 编程知识详解 VS2017 Linux 上 .NET Core 调试 本资源主要介绍了在 VS2017 中使用 SSH 调试...这些知识点都是关于 Linux 和 .NET Core 开发、调试和部署相关的主题,可以帮助开发者更好地理解和掌握相关技术。
3. **安装.NET SDK**: .NET SDK包含了开发.NET应用所需的所有工具和库。你可以通过命令行工具(如`apt`或`dnf`)来安装.NET Core SDK。例如,在Ubuntu上,可以运行: ``` sudo apt update sudo apt install ...
对于使用.NET Core框架的开发人员来说,能够在Linux上部署项目变得至关重要。本文将详细介绍如何在Linux系统上部署.NET Core项目,包括环境搭建、项目发布、Nginx配置以及解决可能出现的问题。 首先,我们需要确保...
VS2015 支持IOS开发Android开发 asp.net MVC同时支持Java开发,.net可部署到linux和Apache上
《.NET Core 高性能开发》一书深入探讨了如何在Windows、Mac和Linux系统上充分利用.NET Core框架实现高性能的应用程序。.NET Core是微软推出的一款开源、跨平台的开发框架,它为开发者提供了构建高性能、云就绪应用...
为了适应移动互联网的发展,ASP.NET Core应运而生,它是一个跨平台的开发框架,可以在Windows、Linux和macOS上运行,支持.NET Core和.NET Framework,同时提供对ASP.NET MVC、Web API和SignalR的改进版本。...
在Linux环境下进行.NET MVC CMS程序开发,需要理解其核心组件和结构。本文将深入剖析Linux下的.NET MVC CMS程序,帮助开发者更好地理解和应用此类系统。 首先,.NET MVC(Model-View-Controller)是一种广泛用于...
1. **ASP.NET on Linux**: ASP.NET是Microsoft开发的一种用于构建Web应用程序的框架,主要在Windows平台上运行。然而,ASP.NET Core作为跨平台版本,可以无缝地部署在Linux系统上,利用Mono或.NET Core运行时。这个...
### Ubuntu Linux .NET 5 安装与配置详解 #### 一、概述 在Linux环境下部署.NET Core应用程序已经成为很多开发者的首选方案之一。本篇文章旨在详细介绍如何在Ubuntu 20.10上安装并配置.NET 5环境。通过遵循本文档...
.Net core:.Net core的战略意义、对比.Net Framework学.Net core、.Net core开发环境的搭建、如何在Linux下运行.Net core网站、Nginx、对比Entity Framework学Entity Framework Core、对比http://ASP.Net MVC学...
2. **跨平台能力**:随着 .NET Core 的推出,.NET 应用不仅可以在 Windows 上运行,还可以部署到 Linux 和 macOS 等操作系统上。 3. **强大的社区支持**:.NET 拥有庞大的开发者社区,这意味着开发者在遇到问题时...
近年来,ASP.NET Core成为了新的发展焦点,它跨平台、高性能,支持.NET Core运行时,可以应用于Windows、Linux和macOS系统。 "详细的.net教程"可能涵盖了以下主题: 1. **.NET Framework和.NET Core**:介绍两者...
ASP.NET Core是ASP.NET的一个跨平台版本,它可以运行在Windows、Linux和macOS上。它比传统的ASP.NET更轻量级、性能更高,并且支持微服务架构。 5. **C#语言** ASP.NET开发通常使用C#语言,这是一种强类型、面向...
2. **.NET SDK**: .NET SDK包含了编译器、构建工具和其他必要的组件,用于开发.NET应用程序,包括ASP.NET项目。 三、ASP.NET关键功能 1. **页面生命周期管理**: ASP.NET Web Forms中的页面生命周期包括初始化、...
在了解.NET和C#开发语言的基本知识之前,我们首先需要对这个体系有一个整体的理解。.NET是一个由微软开发的软件框架,主要用于构建各种类型的应用程序。它提供了广泛的功能库,使得开发者能够通过多种编程语言进行...
2. **ASP.NET Core SDK**:ASP.NET Core是一个跨平台的开发框架,允许在Windows、MacOS和Linux上构建高性能的Web应用。SDK包含了编译、测试和发布应用所需的组件。 3. **NuGet包管理器**:NuGet是.NET的包管理器,...
8. 跨平台支持:随着.NET Core的推出,C#.Net网络程序开发具备了跨平台能力,可以在Windows、Linux、macOS等操作系统上运行,进一步拓宽了开发者的应用场景。 在实际开发中,开发者还需要掌握XML、JSON等数据格式的...
微软.Net插件开始支持Linux开发.pdf
VS2017 Linux 上.NET Core 调试技巧: 1.开发环境配置:在Windows 10 x64系统上安装Visual Studio 2017,确保拥有.NET Core SDK 1.0.1版本。此外,部署环境需要Ubuntu 14.04 x64版本的服务器。确保SSH服务器在Linux...