文档章节

OSC 第 77 期高手问答精华汇总 —— .NET 开发

叶秀兰
 叶秀兰
发布于 2015/08/07 17:11
字数 3932
阅读 470
收藏 1

OSCHINA 第 77 期高手问答 ( 6月3日- 6月9日) 我们请来了@IT周见智周见智)为大家解答关于 .NET 开发方面的问题。

原文地址:http://www.oschina.net/question/865233_238396 

周见智, 资深.NET开发工程师,公司首席系统架构师。在软件架构、软件设计模式(原则)、OOP、OOD、IoC以及DI等方面有一定研究。工作之余主要活跃于 博客园、开源中国等中文社区,“开源软件”坚定支持者,热衷于数据挖掘、机器学习等方面研究。曾参与“十二五国家支撑计划项目(通用航空飞行情报服务系 统)”开发,以及“机场资源保障”、“飞行签派”以及“空中管制”等民航领域成熟模拟机产品的研发。

.NET技术有着广泛的应用范畴,从Windows 桌面应用,到ASP.NET Web应用,到WCF分布式应用,到Windows Mobile嵌入式应用,到Windows Phone移动应用,到ADO.NET数据库应用,到XML Web Service,.NET无处不在。

精彩问答

@酱哥哥:目前国内,NET 在winform架构和webform架构的面向企业级单位以及银行还占有一定的市场份额。纵观互联网和移动端相对就比较荒凉一点了。仅仅是几个知名的互 联网企业是不行的。无论在web开发还是在移动都没有明显优势。无论.NET语言升级到什么地步,要崛起目前看来只能依靠win系统的发展。但是随 着.NET逐渐开源以及跨平台的支持,目前互联网圈内对.NET叫好声一片。由此可见.NET前途任然光明。坚持.NET的同时,也不要放弃学习其他语言 的机会。

@洛阳码农:.net平台包含很多技术,你认为.net必学的技术有哪些?怎么从菜鸟成为.net大牛?

@酱哥哥:从菜鸟变成大牛的老梗建议就是:实事求是,一步一个脚印。

首先明确自己选择选择技术方向,web方向、移动app方向、winform客户端方向。

    1、.net 平台使用的主流语言就是C#,所以必须学习C#的基本语法

    2、基于.net 平台的web方向目前有传统webfrom和mvc两个架构各有优缺点,这两个是必须学习的。

    基于.net平台的winform 客户端平台的有传统winform架构和wpf架构的各有优缺点,这两个企业用的也较多所以都需要学习。(本人做web方向的,所以对这两个平台了解甚少,winform的较熟悉,wpf没研究过,你根据自己的方向选择学习)

    3、移动app 非必学。

    4、ADO.NET 数据访问架构,这个无论哪个方向都要学习,不解释。

    5、如果选择web开发,那么http协议的基本原理(最基本的post和get数据传递方式)、html、js、jqeury(框架这个必学不解释了)、css。

    6、至于其他的新技术还是新框架,根据自己的需求选择性学习,因为人的精力有限。有些东西哪怕是多么牛B,相对于个人而言做到稍微了解一下即可。

@IT周见智:1)基础先学扎实,C#(或其他.NET语言)基础(比如语法、数据类型、事件委托、对象生命期、lambda等),这是前提 2)着重研究一个方向,web开发,桌面软件开发,或者APP?这是专一 3)剩下来的就是积累经验,平时多总结多谢博客,多学习充电吧。 我觉得学习哪个技术都可以按照这样

@超级奶爸老谭:.NET的大环境下,开源资源比JAVA少得多,这方面令人堪忧啊,特别是现在移动平台的崛起,转移到Android与iOS平台的人越来越多,最近两年公司招聘中,收到.NET相关的简历越来越少。

@IT周见智:前两年好像是这样的。希望接下来情况有所好转 :)

@leoxu:你好,我是外行,请问现在.NET最常见也是在WEB开发领域吗?

@钛元素:我来回答:.net在bs和cs方面都有广泛应用,在嵌入式开发方面也有一定的应用。总之,开始学,现在就开始吧。

@IT周见智:并非只有web方面的    桌面软件也比较多   像1楼说的嵌入式也有 并且随着.NET开源跨平台的流行后   移动开发这块想必也会增加

@钛元素:您好!我想问下IL方面,是否有必要去学,现在已经可以开发bs和cs的系统了,进一步深入是去了解mac和一些开源框架,或者是控件开发,涉及到.net底层的内容,对开发有什么帮助吗?

@IT周见智:当然有必要   这就像学习一门新的语言时  入门完成后  必然要想法子进阶提升 :)   了解底层开发是有用处的

@ViperWhip:Hi,请问如果做Windows 桌面应用,应不应该从传统的winform转向用wpf?

@假正经哥哥:我的建议是别! winform 功能完全可以覆盖wpf糟糕的体验

@Force武装卫队:WPF使用XAML作为界面描述语言,界面与功能分离做的很好

@IT周见智:这个吧  要看什么项目  最终用户是谁  使用场合是什么  这俩适合不同的情况

@noonoo:尽快转移到wpf呀,这是最先进的编程。  学习wpf能顺便吧win8.10的应用一起搞定。

@天下雨天:WPF也在进步。WPF的XAML语言易懂,另外还有一些数据绑定,依赖属性,MVVM等概念,都是比较好的方面,UI模板也可以自己修改,另外还容易定制主题。相比之下winform的开发模式就比较丑陋了,WPF是趋势。

@吴胤琦:您好web开发。.net在未来的跨平台方面会更方便好用吗?据目前的资料来看都是基于mono的方式.

@IT周见智:个人感觉是的  .NET跨平台这块似乎越来越明朗了   目前使用较多的是 http://www.jexus.org/

@SethFeng:SaaS平台,.Net是个好选择嘛?

@IT周见智:虽然使用Java的多一些  但是周期可能要长一些  开发效率等偏低   可以尝试.NET    两个各有优劣吧

@Rwing:你好,请问是否有关注vnext(asp.net 5),你觉得等它出来后会对各大公司的技术选用有很大改变吗?

@酱哥哥:我来回答,是的目前mono对.NET的支持没有做到100%。下个版本VNEXT可以完全支持了。就圈子里面现在用mono+jexus非常的好用。

@南湖船老大:WIN平台一直喜新厌旧,投靠.NET平台对技术投资有保障吗?

@IT周见智:这个问题  网上很多回答哟 :)     我个人没有这种担忧 学好了 哪怕哪天ms倒了  转其它技术也很轻松

@酱哥哥:我来回答下,并非喜新厌旧,而是.NET顺应时代的潮流,一改之前固执己见的思想,就目前.NET的发展形势来看有很大的前景,现在是.NET最光明时代的开始。

@_Elvis:F#会不会成为.net的主力语言?

@IT周见智:就目前来讲   短期内应该不会 其实新版C#现在也越来越支持“函数式”风格编程   我感觉像这样混合式编程风格会成为主流吧 

@王洪旭:我在招聘会上,看到的开发岗位,基本都是.net web开发。web开发是潮流吗

@IT周见智:是吧。像桌面软件  嵌入式之类的也是有的,我本人带的项目就是主要从事后者相关开发的。

@宜宾阿布:一直在做.net web开发,最近都已经想换平台了。想问下1、vnext的前景如何;2、不考虑跨平台的问题,winform做gui,目前是否符合中国最普通网民的需求?

@IT周见智:关于第一个问题,可以看见张善友老师的博客,他比较关注.NET跨平台的问题 http://www.cnblogs.com/shanyou/p/3764070.html,也可以关注他的微信公众号。 第二个  符合

@王涛:据我所知,wpf中很多winform的功能都没有,例如,MDI窗体,SplitContainer等等,为什么还要说wpf做桌面应用比winform做桌面应用有优势,优势又在哪里体现

@IT周见智:不能说谁比谁更有优势   两者重点不一样   你有觉得wpf做出来的界面会更美观吗 :)

@吉良吉影:你好,我想问一下,现在WPF还有必要吗,我项目里正在用,但我总感觉没什么前途

@IT周见智:有需求  还是有必要的 :)

@Booklearn:据说.Net可以开发ios和安卓应用,请问.Net这方面的优势明显吗??

@IT周见智:自从微软宣布.NET开源跨平台后  确实有这样的新闻不断传出   据我所知  微软确实在和mono团队合作   致力于开发跨平台app的实现    相信情况会越来越好

@Force武装卫队:.NET早就支持ios和Android的开发了,解决方案是xamarin提供的.

@酱哥哥:不明显,目前.NET跨平台还是依靠MONO,在web 方面mono支持的相对稳定。但是在移动端还不是很好

@FlashCHen:据微软VS2015跟Win10的介绍说明,以后我大.net会一统天下,对于这点你有什么看法

是乐观态度还是觉得是噱头。再加上现在APP大趋势下 .net 开发的优势已经少了很多了。如果没有整合一套出来,花时间去学习对以后的成长空间有帮助吗

@IT周见智:这个我真不敢下定论 是不是噱头  你懂的 :) 我还是那个观点  学好当下的   基础扎实一些   万变不离其宗

@久永:现在很多企业项目开发时,对于使用EF还相当的反对,一个说差,一个说不灵活,以及对于数据库支持的问题。请问在项目规划时,如何去设计、去取舍,以便能规避EF的劣势而更多的争取能将 EF 使用到项目之中呢?

@乌龟壳:同感,比较不赞成在企业系统里用ORM,这些业务系统基本上查询都很复杂,没有一个明确的Object对表的映射,用XSD节省编辑查询到类的转换工作就好了。有时候甚至XSD只定义DataTable的结构,查询还是在外部写类实现,这样灵活性和效率都还可以。

@Yamazaki:我觉得.NET领域,因为MS得IDE、工具等太强大,集成度太高,UI化的东西太多,导致入门简单。但是深入比较难。因为入门简单,导致.NET的整体薪资被拉低了。你赞成我的看法吗?

@酱哥哥:其实有道理,但是薪资低和因为入门容易导致的可能不一定啊。因为这个和个人水平关系较 大。也是由于.NET入门容易导致较多人的水平比JAVA的要低,所以薪资低也导致整体.NET平均薪资较低。所以选择.NET的人一定要保持学习,好用 的框架和控件一定要知道实现原理才能够对个人能力有提升。

@南湖船老大:PHP入门更低,但是薪资不低。.NET入门不高,但是后续投入太大,整体成本还是很高的。

@IT周见智:.NET职位平均薪资低  确实有一部分该方面的原因   但是也不乏薪资高的    我也见过很多薪水比较高的做.NET方面的

@mocou:大学时编程是从.Net入门的,OSC上难得有关于它的讨论,我想问周先生现在.Net在国内大型互联网公司里的应用多吗?.Net的工作是不是只能在非互联网公司找到?

@IT周见智:有  你上网上可以搜出很多互联网公司使用.NET技术   有很多并不是纯粹地使用单一的技术

@酱哥哥:据了解,国内知名的目前有携程、当当、新蛋、京东(现在改java+.net)、CSDN、博客园。

@橙色卡尔:您好,因为公司现在开始逐步弃用.NET,我现在在学Java。但是自己.NET都还没有学精通,很是纠结,对.NET技术还是抱有很深的情感的,不想就 这么放弃。通过我们公司这种现象,.NET是不是真的开始走下坡路了,还是这这是一个低谷期?想知道你对.NET技术未来发展走向的看法。

@songzu:我作为旁观者回答你。他们都是.net的忠实粉丝,自然希望扩大其阵营。

对职业生涯而言,转JAVA是毫无疑问的正确选择。

全球前一百名的网站,只有极少数是用C#实现的。纯前端领域更偏爱PHP,而涉及到重量级开发通常是Java作主力(都是APACHE的功劳)。C#对WEB的友好程度远不及PHP,作为编译行语言,其资料以及开源参与度远不及JAVA。

C#的语言确实简练。然而其开源的步骤来的太迟了。至少应该在wp7上市的时候就应该铺路的。再者WP的步子迈太大了。扯到用户的蛋了。目前的情况下,他 们会把metro界面走到黑,那破烂毛线权限管理机制也要坚持到破产为止,有指望WP起来是没戏了。移动平台未来的霸主毫无疑问是ANDROID的。而大 型企业的系统,应该是java的,中大型企业的市场是PHP的,小型企业的领域是PYTHON/RUBY/.net等语言的。如果你在二线以下城 市,.NET的市场还是有的。大多数政府机构的网站都是那些只会.net的高校教师搞的单子。

@假正经哥哥:现在看来,.NET还是 大有前途。 但是从业不必拘泥于语言 ,要有良好的编程思想,用什么语言都是可以的,任何一种语言 学到精通都有广阔的天空。

@水母干:你好,想请教一下,单纯用.net做桌面应用的话,需要点微软系的哪些技能? .net做桌面应用,有什么比较好的轮子,这些轮子跟QT对比有什么优劣?

@IT周见智:.NET系的 winform  wpf  可以用

@Minho:.NET做包并发电商平台,能hold住不?我们公司已经转向java了!

@假正经哥哥:不是hold不住的问题,还是缺少行业经验 ,有这方面经验的人少,技术上完全没问题

@ly_bing:做了3年,发现里面东西里面东西太多、太深,在这个信息大爆炸的时代,.net 搞大数据和物联网方面该怎么走?

@IT周见智:微软有自己的云计算平台(azure)  至于物联网   我之前网上认识一个在宁波做跟物联网相关的 .NET开发   这方面具体我没接触过

原文地址:http://www.oschina.net/question/865233_238396

© 著作权归作者所有

叶秀兰

叶秀兰

粉丝 715
博文 32
码字总数 48254
作品 0
清远
私信 提问
Distributed File System技术哪家強?是不是也到山东找Lanxiang?

标题逗开心,我请教的态度是认真的。 前不久OSC上发生了一各意外--Ceph意外事故,虽然最终在OSC团队的努力下很好的解决了这一问题,但同时也给我们留下一个思考:Distributed File System产品...

灌直
2014/12/15
747
6
OSC 第 77 期高手问答 — .NET 开发

OSCHINA 本期高手问答 ( 6月3日- 6月9日) 我们请来了@IT周见智(周见智)为大家解答关于 .NET 开发方面的问题。 周见智, 资深.NET开发工程师,公司首席系统架构师。在软件架构、软件设计模式...

叶秀兰
2015/06/03
6.4K
51
OSC第53期高手问答——《Hadoop高级编程》获奖名单

活动详情可见:OSC第53期高手问答——Hadoop高级编程 恭喜以下3位读者获得《hadoop高级编程——构建与实现大数据解决方案》一本,获奖名单由@ 清华大学出版社第五事业部 评选得出: @Sephiro...

louise
2014/08/19
202
2
OSChina 开源周刊第三十三期 —— Node.js 和 io.js 准备合作!

每周技术抢先看,总有你想要的! 开源资讯 Node.js 和 io.js 准备合作!合久必分,分久必合? Nervana 开源深度学习软件,性能超 Facebook、Nvidia产品 B 站建开源工作组 多 APP 使用其开源项...

OSC编辑部
2015/05/09
0
0
OSChina 开源周刊第 33 期 —— Java 7 生命周期终结

每周技术抢先看,总有你想要的! 开源资讯 Node.js 和 io.js 准备合作!合久必分,分久必合? Nervana 开源深度学习软件,性能超 Facebook、Nvidia产品 B 站建开源工作组 多 APP 使用其开源项...

OSC编辑部
2015/05/09
4.4K
1

没有更多内容

加载失败,请刷新页面

加载更多

八、RabbitMQ的集群原理

集群架构 写在前面 RabbitMQ集群是按照低延迟环境设计的,千万不要跨越WAN或者互联网来搭建RabbitMQ集群。如果一定要在高延迟环境下使用RabbitMQ集群,可以参考使用Shovel和Federation工具。...

XuePeng77
今天
1
0
mac系统下,brew 安装mysql,用终端可以连接,navicat却连接不上?

问题: 1.报错? 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found 2.自己通过设置,已经把密......

写bug的攻城狮
昨天
2
0
老生常谈,HashMap的死循环

问题 最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。 由于HashMap...

群星纪元
昨天
5
0
拉普拉斯算子

拉普拉斯算子是二阶微分算子。 我们知道,一维离散信号一阶微分公式如下: 相应的,一维离散信号二阶微分公式如下: 由于图像有x和y两个方向,因此图像信号属于二维离散信号。其在x,y两个...

yepanl
昨天
3
0
记录"正则表达式"

详细请查看我的博客:https://blog.enjoytoshare.club/article/RegularExpression.html 1 写在前面 正则表达式(Regular Expression)在代码中常常简写为regex。正则表达式通常被用来检索、替...

wugenqiang
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部