在Linux开发.NET——拜拜了Win10

原文:.NET on Linux – bye, Windows 10.
作者:Piotr Gankiewicz 翻译:赖信涛 责编:仲培艺

我是一个有多年开发经验的.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)的话,也许你可以试一下其它环境。尝试新的东西,对强化技术和开拓视野来说总是好的。


2016年11月18日-20日,由优快云重磅打造的年终技术盛会SDCC 2016中国软件开发者大会将在北京举行,大会秉承干货实料(案例)的内容原则,本次大会共设置了12大专题、近百位的演讲嘉宾,并邀请业内顶尖的CTO、架构师和技术专家,与参会嘉宾共同探讨电商架构、高可用架构、编程语言、架构师进阶、微信开发、前端、平台架构演进、基于Spark的大数据系统设计、自动化运维与容器实践、高吞吐数据库系统设计要领、移动视频直播技术等。10月14日仍是五折抢票,最低1400元,注册参会。

如何通过手机ssh到win10上的linux虚拟机集群 由于现在智能手机的功能越来越强大, 有时候简单的工作随时随地都可以完成 。 环境资源: iphone 6splus 一台(192.168.0.100) windows10 一台(192.168.0.101) windows10上装有10来个虚拟机(当然不能同时跑起来,可以根据需要选择相应的集群运行)(192.168.56.100-192.168.56.106, 192.168.56.109 阅读详情

相关推荐

.net core程序 Win10中编译 树莓派中运行

.net core程序 Win10中编译 树莓派中运行引用大神博客安装 .net core runtime引入 System.Device.GPIO NuGet编写程序布署传送运行感谢打赏 引用大神博客 张高兴的 .NET Core IoT 入门指南 https://www.cnblogs.com/zhanggaoxing/p/10311697.html dathlin 在树莓派上运行 .net ...

tfarcraw的博客 901

Linux系统上创建.NET6项目(通过命令行(CTL)方式)

平时大家创建项目基本上都是借助开发工具创建,比如visual studio,visual studio code,今天我们在Linux系统上,通过命令行的形式创建.NET6项目。

lym003的博客 684

CATIA P3 V5-6R2023在Windows 11 23H2上的稳定安装与系统级配置指南

CATIA是高端制造业核心的三维参数化设计平台,其运行依赖严格的系统底层支撑。理解CATIA的BRep几何内核原理与Windows子系统(如WSL、Hyper-V)的协同机制,是保障建模稳定性与计算精度的技术前提。CATIA Run-Time Library和OpenGL硬件加速能力共同决定了曲面重建、螺纹建模等关键操作的可靠性;而.NET Framework 3.5、VC++ 2022运行库及显卡Studio驱动的精准匹配,则构成工业软件在Win11环境落地的工程基础。本文聚焦于航空、轨交、能源等领域高频

weixin_30983353的博客 631

linux .net跨平台,简单谈谈.NET Core跨平台开发

对于.NET开源计划想必关注的人已经跃跃欲试了,但是真正将其用于开发的目前来说不多。毕竟截至本文发布时.NET Core才发布到1.0RC2版本。正式版预计还有一段时间。况且大多数人都是持观望态度,就算开发仍然用的还是.NET Framework。另外不得不说的一点就是.NET开源的进度很惊人但是社区建设还有待提升,很多配套的东西还不齐全。Java在语言层级上可能落后.NET但是Java的社区力量...

weixin_30884743的博客 795

【TCGA-CRC】TCGA数据读取

本文介绍了如何从TCGA数据库中处理结肠癌(COAD)和直肠癌(READ)的RNA测序数据。首先,通过data.table::fread函数读取基因表达量文件,并检查基因ID和基因名称的一致性。接着,批量读取所有样本的TPM(Transcripts Per Million)数据,并将其合并为表达矩阵。随后,通过匹配样本ID和文件名,确保表达矩阵的列名与样本ID一致。最后,筛选出编码蛋白质的基因,并将处理后的数据保存为Rdata文件。整个过程涉及数据读取、合并、匹配和筛选,为后续的基因表达分析提供了基础。

小八四爱吃甜食的博客 662

ADS 2024实战:手把手教你搞定CGH40010F的Doherty功放仿真与版图(附避坑指南)

本文详细介绍了使用ADS 2024进行CGH40010F Doherty功放从仿真到版图的全流程设计,涵盖器件建模、稳定性分析、负载牵引匹配和版图联合仿真等关键步骤。特别针对新手常见问题提供避坑指南,帮助工程师高效完成射频功放设计,提升5G基站和雷达系统的性能。

weixin_42528191的博客 221

Ubuntu 部署.Net Core Web项目

本文主要介绍如何将windows上开发的 dotnet core web 应用程序部署到 Linux服务器上(Ubuntu 22.04)。操作系统版本:Ubuntu 22.04web 项目版本:.net 6.0本人在windows端部署的网站如下。端口:5001。本文目标就是将其部署到Ubuntu上去。以上就是今天要讲的内容,总的来说还是很简单的,但是我在具体操作时参考网上教程还是踩了一些坑。本文如对您有所帮助,不胜荣幸~

guigenyi的专栏 4064

Android 人像分割实战:OpenCV+YOLOv8+NCNN 三库联动(附 GPU 加速 / 内存优化全方案)

本文详细介绍了在Android项目中集成OpenCV+YOLOv8+NCNN实现实时人像分割的技术方案。主要内容包括:项目环境搭建(配置NDK、添加Native模块)、核心库文件集成(OpenCV、NCNN、YOLOv8模型)、JNI接口设计与实现(Kotlin层调用C++算法)。通过Camera API获取图像数据,使用YOLOv8进行人体检测,结合NCNN高性能推理框架实现人像分割处理,最终将原始画面与分割结果(背景透明)同时显示在Android界面上。该项目采用多技术栈协同工作,OpenCV负责图像处

FJN110的博客 233

.NET Core 部署到 Linux(CentOS) 最全解决方案(常规篇)

转自:.NET快速开发框架cnblogs.com/huyong/p/14291812.html前言本文为大家介绍使用 .NET Core部署到Linux服务器的方法,通过本文你将了解到Linux在虚拟机下的安装、Xshell,Xftp的使用方法、git在linux下的交互使用以及.net core在linux下的发布与运行全过程,本文皆在总结了一些经验与笔记在部署过程中遇到的一些问题,同时分享给大...

weixin_68436326的博客 3689

如何在MacBook上安装部署原生openclaw

本文介绍了在MacBook上安装OpenClaw的详细步骤:首先通过curl或国内镜像源安装nvm和Node.js(版本≥22),然后使用nvm安装Node.js 24并验证安装。接着通过脚本快速安装OpenClaw,完成安装后选择Qwen作为AI模型并进行OAuth认证。配置过程中可跳过联网搜索和Agent技能设置,最后选择Web界面作为呈现方式。安装完成后,系统会启动openclaw-gateway进程并打开Web界面,用户可通过简单的"hello"指令开始与AI对话。目前基础功能已

木简熙的博客 809

openbmc mctp i3c适配步骤

本文介绍了在Intel OKS平台下,BMC作为I3C从设备如何适配MCTP over I3C的实现方法。主要内容包括:1)关键术语解释,如MDB(Mandatory Data Byte)值为0xAE,DCR(Device Characteristics Register)和BCR(Bus Characteristics Register)的设置;2)适配流程说明,包括BMC作为控制器主节点分配地址后成为MCTP端点,CPU作为总线所有者的角色转换;3)测试验证步骤,展示通过mctp-client工具发送指

wit_yuan的专栏 132

.Net Core程序基于Linux平台开发与部署详解

.NET的跨平台能力使其成为Linux服务器开发的理想选择,结合现代工具链和云原生支持,能够满足从微服务到企业级应用的多样化需求。

让每一个想学习编程的人,都能学会,都能看懂,看了都有收获! 2919

2026华为OD机试(JavaScript)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,JavaScript实现。

MISAYAONE的博客 8万+

win10如何调试Linux,Win10 Bash/WSL调试Linux环境下的.NET Core应用程序

一、简介使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的。在新的Win10系统中微软给我们提供了一个基于Ubuntu的Linux子系统(Bash/WSL)。要全用Bash/WSL也比较简单,首先要先打开开发者模式( 设置 → 更新和安全 → 针对开发人员 → 开发人员模式)...

weixin_42246401的博客 419

HarmonyOS 鸿蒙开发DevEco Studio OpenHarmony:安全测试

通过对HarmonyOS应用生命周期建模和应用攻击面建模,采用静态数据流分析技术,提高漏洞发现的准确率,同时覆盖20余种攻击面,65+漏洞测试项,帮助开发者提前发现和识别漏洞隐患。在检测报告中,会针对每一项漏洞风险项给出明确的修复建议,可以帮助开发者快速修复漏洞。

斌擎科技 1181

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Win10环境下yolov8快速配置与测试

win10下yolov8环境快速安装

整理ing 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Windows、Linux 系列 操作系统对.NET支持情况

win7 能够安装 net7,但是占用内存很大,空白应用启动起码占 500M 内存,官方直接说 net7 不支持 win7。win2003r2 需要先安装 net3.5sp1,才能支持安装 net2sp2,也不能提前安装 net4.0。win7 打上 sp1 以后,可以安装 vc++2019,然后就能跑 AOT 应用了。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 10万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

利用netcat进行win10与linux的简单通信

一、配置环境 WIN10 首先在win10上安装一个netcat,下载之后,解压,配置环境变量 Linux-Manjaro 1、下载netcat源码包。解压到指定目录 tar -zxvf netcat-0.7.1.tar.gz -C /usr/local 2、重命名netcat-0.7.1为netcat(简短一点) mv netcat-0.7.1 netcat 3、先切换到netcat目录下,...

往復不息的博客 1211

安装win10和linux双系统,安装win10和ubuntu双系统

2019-06-22​ 最近找了一份新的工作,要用到linux,由于之前基本上没有接触过这方面的东西,所以今天捣鼓一下,安装win10和linux双系统,办公研发双不误。如果在安装的过程中遇到什么问题,可以关注公众号 洛水梅家,后台联系我,交流一下,共同学习。win10系统可以在itellyou中下载,linux系统在公众号后台回复 ubuntu18,可以免费获取下载链接。先看一下效果图:刚开机会...

weixin_39691055的博客 838

linux系统怎么制作win10,win10 + linux 制作双系统教程(我本身是win10系统)

1.制作启动U盘准备工作:.linux镜像.硬盘空余空间>8G,越大越好.制作启动U盘的软件.最好3.0U盘一个>4G下载启动软件的工具(UItraIOS制作的U盘启动盘无法安装,并报错:SYSLINUX3.712008-07-31EBIOSCopyright(c)1994-2008H.PeterAnvin. ,按照网上的例子无法解决,所以决定更换软件)如果你用的是Wi...

weixin_33428613的博客 585

wsl调试linux内核,Win10 Bash/WSL调试Linux环境下的.NET Core应用程序

一、简介使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的。在新的Win10系统中微软给我们提供了一个基于Ubuntu的Linux子系统(Bash/WSL)。要全用Bash/WSL也比较简单,首先要先打开开发者模式( 设置 → 更新和安全 → 针对开发人员 → 开发人员模式)...

weixin_39721924的博客 390

Win10 Bash/WSL调试Linux环境下的.NET Core应用程序

一、简介 使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的。 在新的Win10系统中微软给我们提供了一个基于Ubuntu的Linux子系统(Bash/WSL)。要全用Bash/WSL也比较简单,首先要先打开开发者模式( 设置 → 更新和安全 → 针对开发人员 → 开发人员模...

weixin_30505043的博客 160

酷!微软发布新终端工具,Win 10 将自带 Linux 内核

(给技术最前线加星标,每天看技术热点)原创:技术最前线(id:TopITNews)北京时间 5 月 7 日,2019 年微软 Build 开发者大会在雷德蒙德召开。今年大...

redditnote的博客 194

Windows系统支持“.NET版本”汇总

win7能够安装net7,但是占用内存很大,空白应用启动起码占500M内存,官方直接说net7不支持win7。win2003r2需要先安装net3.5sp1,才能支持安装net2sp2,也不能提前安装net4.0。win7打上sp1以后,可以安装vc++2019,然后就能跑AOT应用了。借助虚拟机和测试机,检测各版本操作系统对.NET的支持情况。发布:2023-11-24 08:11:07。需KB3063858。需KB3063858。需KB3063858。需KB2919355。需KB2919355。

xcntime的专栏 2084

Win10“临终救星”来了?把Linux魔改成「Win11平替」后爆火,作者竟是微软中国工程师!

我每天在微软都使用 Windows,它的交互逻辑效率很高,但 shell 常常崩溃,广告又十分烦人;如果说它能帮助人们过渡到新系统,我完全赞成。他强调,AnduinOS 仍然在系统层面完全等同于 Ubuntu,甚至在 /etc/os-release 文件中也明确标识为 Ubuntu,以方便用户继续享受 Ubuntu 社区资源和生态支持。在这个 Windows 10 即将退休的年份里,许多开发者、技术爱好者和普通用户都在思考一个现实问题:当你的老电脑无法升级到 Windows 11,我们还能做什么?

优快云资讯 9630
上一篇: 少有程序员读的书
下一篇: SDCC 2016北京站高吞吐数据库架构专题讲师议题先睹为快
仲培艺
博客等级 码龄10年 750粉丝 264原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值