你误解 .net 了吗?
我现在发现很多人对C#还存在很大的误解,例如C#是完全封闭的,C#不能跨平台,C#性能很差,C#不支持指针等等,持以上观点的人非常多,甚至最近看到的国内某机构对开发语言的统计中还写着C#不跨平台,不开源,所以想在此普及一下常识。
1.C#是完全开源的,不但开源,而且微软开源的库都是基于MIT许可证的,也就是说,你可以免费使用并修改代码,修改后可以闭源,只需保留作者信息即可,这可以说是最宽松的开源许可
2.C#是完全可以跨平台的,mono现在已经非常成熟,随着去年微软对.net的全面开源,mono已经采用了大量微软官方的源码,完全实现最新的.net framework4.6,功能非常全面。在游戏领域Unity3d,移动开发领域Xamarin,都是基于mono的,都是完全跨平台的,Unity3d更是支持26种操作系统,现在Linux上部署asp.net网站也更加方便,连mono都不需要安装就可以运行。而且跨平台不止mono,还有微软自己的.net core,Unity3d更是开发出了IL2CPP这种逆天的东西,以后C#都可以摒弃虚拟机直接运行在所有平台上了,所以说跨平台是肯定的,而且跨得很好!
3.C#的性能也是非常好的,我专门做过测试,如果对比基础数学运算与C++完全一样,图形方面也能达到C++的70%,看.net库底层代码是大量的指针和原生函数调用,性能自然没问题,关于内存占用,你用了其他虚拟机语言后再来评论C#不迟
4.总有人问C#调用C++dll的各种问题,尤其是类型转换上,我想说,C#是支持指针的,你C++怎么写,C#就怎么写即可,这有什么难的吗?而且很多需要高性能的地方,也可以用指针实现,有些地方用了指针后性能提升能超过1000倍,所以指针的使用也很重要的,但竟然还是有这么多人不知道C#有指针的存在!
5.单独说下Xamarin,现在Xamarin已经完全开源免费,人们开始想尝试使用Xamarin,但总觉得资料少,甚至有人说只能搜到个helloworld的示例,其他都没有,如果开发比较复杂的app就不行了,但我想说,首先Xamarin官网上有大量的资料,非常全面,IO,数据库,网络通信,界面开发等等都有很详尽的教程,nuget上60多万个库,足够你做出一个像样的APP,其次,Xamarin是提供给你直接调用java和OC方法的方式的,使用也非常简便,再次,你真的需要某些特殊的东西,搜索Xamarin找不到相应的解决方案(这里拿android举例),那么好,直接搜android的解决方案即可,由于android的所有API Xamarin都是实现了的(早在4月8日就已经支持Android N了),所以你直接把要用的java代码粘过来即可,类库名称,函数名称,参数类型,各类东西都没变,只有很少的一部分语法,例如属性和foreach等需要稍微改改,就可以直接用java的代码,界面就更不用说了,唯一需要变的就是.xml改为.axml,剩下的都不用改,我真心想知道有什么是不能做的呢?Xamarin只不过给你多增加了一套C#的API,例如你既可以用System.IO.StringBuilder也可以用Java.Lang.StringBuilder,对于开发来说与用java做Android原生开发没有任何区别,所以说Android的资料可以直接拿来用,而Xamarin只是让你多了一种选择而已,在此之上业务逻辑部分iOS与android可以通用,甚至用Xamarin.Form让你的界面也可以跨平台
说了这么多,我只希望人们对C#的认识能够真正的改变,还是那句话,C#现在可以开发除了系统驱动以外的任何程序,在各个领域都有非常成熟的解决方案,并且早已全面开源!
你误解 .net 了吗?的更多相关文章
- 【原】谈谈对Objective-C中代理模式的误解
[原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...
- .NET开源进行时:消除误解、努力前行(本文首发于《程序员》2015第10A期的原始版本)
2014年11月12日,ASP.NET之父.微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET ...
- 被误解的MVC和被神化的MVVM(转)
转载自:http://www.infoq.com/cn/articles/rethinking-mvc-mvvm 原文作者:唐巧 被误解的 MVC MVC 的历史 MVC,全称是 Model View ...
- Atitit. 构造ast 语法树的总结attilax oao 1. Ast结构树形12. ast view (自是个160k的jar )22.1. 多条语句ast结构22.2. 变量定义 int b,c; 的ast结构22.3. 方法调用meth1(a=1,b=2,c=3); 的ast结构23. 误解的问题33.1. 语法书子能是个二叉树,实际上多叉树越好..33.2. 非要不个ast放到个s
Atitit. 构造ast 语法树的总结attilax oao 1. Ast结构树形1 2. ast view (自是个160k的jar )2 2.1. 多条语句ast结构2 2.2. 变量定义 in ...
- 关于对CSS尺寸单位'em'的长期误解
一直以来认为'em'是相对于父元素的字体大小. 直到今天学习移动WEB开发,重新复习css的尺寸大小时,惊奇发现:对em深深的误解了!!! 在CSS官网对em的解释实例是: a. h1{line-he ...
- 关于分布式事务的一个误解:使用了TransactionScope就一定会开启分布式事务吗?
背景: 事务是数据库管理系统的一个基本概念,事务具有四个基本特点,即ACID:原子性(Atomicity).一致性(Consistency).隔离性(Isolation)和持久性(Durability ...
- CSS魔法堂:你一定误解过的Normal flow
前言 刚接触CSS时经常听到看到一个词"文档流",那到底什么是"文档流"呢?然后会看到"绝对定位和浮动定位能脱离文档流",从这句可以看到文 ...
- 对Java垃圾回收最大的误解是什么
当 我还是小孩的时候,父母常说如果你不好好学习,就只能去扫大街了.但他们不知道的是,清理垃圾实际上是很棒的一件事.可能这也是即使在Java的世界中, 同样有很多开发者对GC算法产生误解的原因--包括它 ...
- C++对析构函数的误解(转)
C++析构前言 析构函数在什么时候会自动被调用,在什么时候需要手动来调用,真不好意思说偶学过C++…今日特此拨乱反正. C++析构误解正文 对象在构造的时候系统会分配内存资源,对一些数据成员进行初始化 ...
随机推荐
- const,readonly 这些你真的懂吗? 也许会被面试到哦。。。
首先不可否认,这些在面试上会经常被面试官问起,但是你回答的让面试官满意吗?当然如果你知道了这些原理,或许你就不 怕了.既然说到了原理,我们还是从MSDN说起. 一:值得推敲的几个地方 1.先来看看ms ...
- 【函数】Oracle函数系列(2)--数学函数及日期函数
[函数]Oracle函数系列(2)--数学函数及日期函数 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不 ...
- Redis安装和配置
1.下载安装redis 在linux服务器上,命令行执行以下命令(cd ./usr local/src 一般源码放在这里(推荐源码安装)) wget http://download.redis.io/ ...
- 在eclipse中使用maven创建springMVC项目
一.在eclipse中创建maven-archetype-webapp项目: 1.新建项目选择maven项目 2.默认,下一步 3.选择maven-archetype-webapp,其他保持默认即可 ...
- ZIP打包解包
linux zip命令的基本用法是: zip [参数] [打包后的文件名] [打包的目录路径] linux zip命令参数列表: -a 将文件转成ASCII模式-F 尝试修复损坏的压缩文件-h 显示帮 ...
- ELF Format 笔记(四)—— 节(Section)
ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 ELF 文件可以包含很多 section,所有的 section 都在 section header tab ...
- XSS Payload知识备忘
参考资料:<白帽子讲Web安全>吴翰清 著 参见: 百度百科 http://baike.baidu.com/view/50325.htm 维基百科 http://zh.wikipedia. ...
- [转]backbone.js 初探
本文转自:http://weakfi.iteye.com/blog/1391990 什么是backbone backbone不是脊椎骨,而是帮助开发重量级的javascript应用的框架. 主要提供了 ...
- hdu2222 Keywords Search ac自动机
地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=2222 题目: Keywords Search Time Limit: 2000/1000 MS ...
- 小机房的树 codevs 2370
2370 小机房的树 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 小机房有棵焕狗种的树 ...