特斯拉为何使用.net core技术框架?为何不用java/go等?
▨+特斯拉为何使用.net core技术框架?为何不用java/go等?
java本身不如.net,之所以火因为之前开源免费,生态好,但效率低,美国那边愿意为更好的语言付出成本!
✂≞特斯拉为何使用.net core技术框架?为何不用java/go等?
特斯拉曾经叫我去面试程序员职位,确实是aspnet core,不过因为家庭原因没去面试,估计运行在azure上。asp.net在美国很流行,中小型公司用的多,特斯拉的IT在美国只能算中型,而且是附属地位。
☺▌特斯拉为何使用.net core技术框架?为何不用java/go等?
因为特斯拉是美国的公司,美国用.net 人不少,没有像国内这样用Java就是“政治正确”的氛围,除了生态不如Java外,.net比Java优势的地方不少。
▧ℙ特斯拉为何使用.net core技术框架?为何不用java/go等?
我要说一句,netcore优势还是挺明显的,特斯拉作为国外的公司,语言这块并不像国内某些大厂一样,还停留在net只能部署windows上的层面上。
先看看netcore有哪些特性
l 跨平台: 可以在 Windows、macOS 和 Linux 操作系统上运行。
l 跨体系结构保持一致: 在多个体系结构(包括 x64、x86 和 ARM)上以相同的行为运行代码。
l 命令行工具: 包括可用于本地开发和持续集成方案中的易于使用的命令行工具。
l 部署灵活: 可以包含在应用或已安装的并行(用户或系统范围安装)中。 可搭配 Docker 容器使用。
l 兼容性: .NET Core 通过 .NET Standard与 .NET Framework、Xamarin 和 Mono 兼容。
l 开放源代码: .NET Core 平台是开放源代码,使用 MIT 和 Apache 2 许可证。 .NET Core 是一个 .NET Foundation 项目。
l 由 Microsoft 支持: .NET Core 由 Microsoft 依据 .NET Core 支持提供支持。
最近已经发布了net6,集成了很多优势,以下摘自于网络
1. Minimal API
Minimal API 是构建 HTTP 服务的另一种方法。 在.NET 6 通过 web 模板创建的项目都会使用Minimal API 。这里我得说明一点Minimal API 不会取代大家熟悉的MVC框架。 如果你的应用是希望构建API,建议使用web模板的方式去构建。 但如果你需要更多与http://ASP.NET页面相关的东西建议还是使用MVC模板。dotnet new web -o webapidemo
看看默认Program.cs程序结构
你可以快速用四行代码,完成一个API功能。当然你可以基于你的需要去添加MVC模块,验证模块等,这就看你项目的需要了。
更多关于 Minimal API,请点击以下链接https://aka.ms/LearnDN001
2.热更新
在之前发布封版前,热更新成为了热门话题,微软作为一个商业公司能够针对社区的要求,为.NET 6 保留社区所需是非常赞的。这对于微软和开源社区接触也是一件好事。
我们先来认识下热更新,最早期热更新主要是面向移动应用,特别iOS应用更新的一种最常见的方式。不少开发者通过动态下发代码,它可以在不发布新版本的情况下,修复 BUG 和发布功能,让开发者得以绕开苹果的审核机制,避免因长时间审核等待以及多次被拒造成的成本。我记得.NET应用热更新场景也是在Xamarin下,慢慢地大家就希望如果代码编写能实现热更新,就可以减少编译的时间,即所见即所得。
在.NET 6 你可以通过Windows下的Visual Studio 2022 实现,也可以通过CLI方式实现。
通过命令行执行相关的HotReload 非常简单,你只需要在对应项目中执行一下命令就可以为你的Web应用实现HotReload了dotnet watch run
当然你也可以通过一下命令停止HotReload的功能dotnet watch run --no-hot-reload
更多关于.NET CLI HotReload ,请点击以下链接查阅https://aka.ms/LearnDN002
3. MAUI
关于MAUI,我对它的感情是非常深,从早期的monotouch到Xamarin,再到现在的MAUI。有人会觉得微软放弃了Xamarin,但是我觉得完全并入到.NET 6正是微软重视Xamarin的表现,我记得在7月Reactor的.NET Day上讨论过MAUI的架构,你会发现它是.NET 6最重要的⼀环。
你直接可以通过命令行构建你的MAUI项目dotnet new maui -o mauidemo
从不少资料上你可以了解到MAUI对Xamarin的控件做了重新的封装,实现更高效能。但我想和大家回顾下当时MAUI发布就有一个令我喜欢的功能,那就是在Visual Studio Code上Debug MAUI,这得益于新的项目结构,但更重要是它终于让MAUI的开发更加极客了。但现在 MAUI的正式版还没有release,我在Github上找到一个类似的项目可以给大家先体验一把(https://github.com/Clancey/vscode-comet)
更多关于MAUI ,请点击以下链接查阅https://aka.ms/LearnDN003
4.关于 workload
随着.NET应用场景的增加,不同的用户需要的支持不尽相同,例如我专注于 MAUI的应用,这个时候我就需要iOS、macOS、Android的支持,但默认情况下是没有做相关的SDK添加的。因为如果全部场景的功能都合并到SDK,就变成一个巨物了,从编译到部署都是非常麻烦的。.NET团队致力于维护SDK的小而精,针对不同场景在.NET 6中增加了workload去为不同场景做量身定制。
当我通过 dotnet new maui 的时候,在默认情况下是没有 new maui 的template 的,而且也不会含有相关的一些SDK,这个时候系统会教你通过查找的方式去确认是否有官方或者地方的template。
通过命令行执行一下操作dotnet workload install maui
可以把MAUI所需要的SDK安装起来,并添加好基于dotnet new maui的模板,真的非常方便和人性化,这样可以较少.NET SDK一些不必要的安装,太棒了。
你可以通过执行以下语句查看相关的workload有哪些dotnet workload search
现在的场景有针对MAUI和Blazor的场景希望日后会添加更多的场景,满足更多的需要。
更多关于dotnet workload ,请点击以下链接查阅https://aka.ms/LearnDN004
5.关于机器学习
我这几年投入到机器学习的时间非常多,我也致力去为.NET开发人员部署带来很多机器学习的知识.提到.NET 下的机器学习,我相信很多人都已经认识http://ML.NET了。但我一直在推荐的是开源http://TensorFlow.NET(https://github.com/SciSharp/TensorFlow.NET)
这个项目经过几年发展现在已经为.NET在深度学习领域提供了很好的解决方案。这次通过.NET 6,微软带来了更多的一个场景TorchSharp。(https://github.com/dotnet/TorchSharp)
这是在dotnet开源下的一个项目,它参照的就是http://TensorFlow.NET的方式,通过绑定PyTorch底层C++ API实现了.NET原生的PyTorch框架。 我相信以后大家可以在http://ML.NET下在深度学习的场景可以像Keras一样调用不同深度学习框架。
更多关于dotnet workload ,请点击以下链接查阅https://aka.ms/LearnDN005
.NET 6还有很多更新,包括在Blazor,在性能,在C# 10.0等,我这里就不一一和大家介绍了,⼤家感兴趣可以点击以下链接查阅。
↪≇特斯拉为何使用.net core技术框架?为何不用java/go等?
搞java的 就是各种折腾 各种花拳绣腿,各种看起来高大上的骚操作,反观dotnet 大道至简,简单高效
------------------
推荐阅读:
下一篇: 骨质疏松患者应该怎样进行锻炼?