`
qingwengang1
  • 浏览: 8592 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Linux开发.net

阅读更多

我是一个有多年开发经验的.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.Drawingproject.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

 

分享到:
评论

相关推荐

    Linux下.net core版本加载海康SDK库失败问题处理

    海康设备网络sdk二次开发net core linux版本库加载失败问题。 只包含了设备初始化前的库加载代码。 不是整个的完整的代码,请注意。

    Linux dotNET环境部署.zip_Linux .net_linux dotnet部署

    linux 环境下开发 .net 程序,在linux 环境部署.NET的开发环境

    VS2015 支持IOS开发Android开发 asp.net MVC同时支持Java开发,.net可部署到linux和Apache上

    VS2015 支持IOS开发Android开发 asp.net MVC同时支持Java开发,.net可部署到linux和Apache上

    .net core 高性能开发

    .net core 高性能开发,适用于 windows 系统,mac 系统,linux 系统

    .net MVC、.Net core+Linux视频教程

    .Net core:.Net core的战略意义、对比.Net Framework学.Net core、.Net core开发环境的搭建、如何在Linux下运行.Net core网站、Nginx、对比Entity Framework学Entity Framework Core、对比http://ASP.Net MVC学...

    微软.Net插件开始支持Linux开发.pdf

    微软.Net插件开始支持Linux开发.pdf

    Tiny6410 Linux开发指南

    Tiny6410 Linux开发指南 01- Tiny6410硬件手册.pdf https://download.csdn.net/download/elliotcs/10374084 02- Tiny6410功能测试指南.pdf https://download.csdn.net/download/elliotcs/10374097 03- Tiny6410刷机...

    详解VS2017 Linux 上.NET Core调试

    主要介绍了详解VS2017 Linux 上.NET Core调试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    在ARM上针对Ubuntu的.NET Core的自动化构建-.NET开发

    在ARM上针对Ubuntu 16.04的.NET Core的内部版本注意:在https://github.com/dotnet/core-setup上可获得适用于ARM Linux的.NET Core运行时的官方夜间版本。运行于https://github.com/dotnet/source-build的端到端构建...

    ASP.NET Core 基础 部署至Linux

    在 Windows、macOS 和 Linux 上使用喜爱的开发工具。 ? ? ?部署到云或本地。 ? ? ?在 .NET Core 或 .NET Framework 上运行。 主要内容 第一讲什么是ASP.NET Core 第二讲 ASP.NET Core 基本架构 第三讲 ASP.NET Core ...

    如鹏网2018 .NET高级开发班

    .Net提高班-linux课件.pdf .Net提高班-MVC项目.pdf .Net提高班-netcore.pdf .Net提高班-netcore修改版.pdf0 W% O# f1 z+ z6 m" } .Net提高班-NOSQL.pdf .Net提高班-webapi.pdf .Net提高班-其他.pdf .Net提高...

    .net开源的综合开发框架wojilu框架.zip

    “我记录”这套源码总共包括 两个部分:一个 .net 平台下的全栈式、轻量级开发框架,包括 ORM、MVC、IOC、AOP、JSON、LOG 等,同时包括全套图文教程;用这个框架开发的 SNS 互联网产品。本产品以 SNS 为基础平台,...

    .net core实现海康SDK跨平台兼容

    .net core实现对海康SDK的跨平台兼容,支持windows和linux平台,实现海康摄像头在线实时预览,视频文件下载

    2018年最新 .NET高级开发班资料

    包含以下: 01 .NET高级技术 02 Asp.net mvc 03 掌上租 04 .Net Core+Linux 05 并发编程 06 .Net-NoSQL 07 .NET聊天软件 08 其它 09. 微信小程序开发 代码、资料等 具体见百度网盘

    微软开源跨平台移动开发实践 源码

    借助.NET Core,原本只能运行在Windows 上的.NET 应用可以运行在Linux、OS X甚至是UNIX上。结合微软的Apache Cordova 和Xamarin 等工具,可以构建从服务端到客户端的完整开源、跨平台的解决方案。本书主要内容包括...

    jexus:宝塔Linux面板ASP.NET管理器插件

    希望有能力的高手能将jexus开发成宝塔面板默认的与LAMP和LNMP环境平行的LJMP环境。 更新: 1、利用宝塔面板现有的Php环境,实现同时对.net和php的支持。 计划: 1、添加网站界面增加开关,提供利用现有LAMP和LNMP...

    smtp4dev-用于开发和测试的假smtp电子邮件服务器-.NET开发

    适用于Windows,Linux,Mac OS-X(以及可能提供.NET Core的其他地方)的虚拟SMTP服务器。 使您可以测试应用程序,而不会向实际客户发送垃圾邮件,而无需使用特殊配置来设置复杂的真实电子邮件服务器。 smtp4dev-用于...

    .NET软件开发框架CSLA.NET.zip

    CSLA.NET是一个在分布式环境下只通过修改配置文件就可以实现N层部署的框架. 它致力于构建丰富,强大而灵活的业务层,包含了验证,权限,数据门户等标准化的解决方案,使你的业务对象更加标准和灵活.... 标签:.net开发框架

    .NET 开发服务用定时器组件

    提供任务多样化的定时功能. 详细说明.参见: http://blog.csdn.net/linux7985/article/details/9301163

Global site tag (gtag.js) - Google Analytics