Ape*_*ure 21 .net c c# c++ vb.net
我是一个好奇的.NET学生,没有任何商业工作知识,我一直对.NET语言的意义感到困惑?
问:如果你看一下求职网站,.NET似乎主要用于Web应用程序,对Windows应用程序来说并不多?(我梦寐以求的工作是开发独立的小型Windows应用程序.)
Q2.使用C/C++开发的大多数"主要"Windows应用程序?例如MS Word或OpenOffice等文字处理应用程序; 照片编辑软件,如ACD See或Photoshop; MSN或Yahoo Messenger; 光盘刻录机... .NET是否太慢而且太间接而无法处理这些任务?
Q3..NET语言主要仅用于涉及数据库后端的SIMPLE业务应用程序吗?例如工资单或GPS应用程序因为它对主要软件应用程序来说太慢而且太间接?
Q4.在过去的几年里,我认为.NET是微软为Windows应用程序鼓励的唯一开发工具,而C/C++是过时的语言?他们是否使用MFC来访问在新版本的Windows中过时的Windows API(向后兼容但不受Windows鼓励)?
Q5.如果C/C++是主要独立Windows应用程序的主要工具,那么(慢)托管代码方法只是一个笑话?或者C/C++的主导地位是由于大多数主要应用程序都比.NET更老?你能给我一些使用.NET开发的软件名称吗?
非常感谢您的工业见解!
Rex*_*x M 21
如果你看看求职网站,.NET似乎主要用于Web应用程序,对Windows应用程序来说并不多?
1).NET对于"主流"桌面应用程序来说并不常见,如果你认为主流是Photoshop等等.这通常更多是因为主流应用程序基于.NET早期编写的代码,这些应用程序永远不会被重写,只会增长.它们携带了以前版本的大量遗留代码.
是否使用C/C++开发了大多数"主要"Windows应用程序?
2a)见#1.
.NET是否太慢而且间接无法处理这些类型的任务?
2b)绝对不是..NET速度极快或速度慢.与任何工具一样,它取决于谁在使用它.
.NET语言主要仅用于涉及数据库后端的SIMPLE业务应用程序吗?例如工资单或GPS应用程序
3)薪资或GPS并不简单.业务线(LOB)应用程序可能非常复杂,而.NET通常很适合这些应用程序,因为它们非常复杂.
我想过去几年.NET是微软为Windows应用程序鼓励的唯一开发工具,而C/C++是过时的语言?
4)那是错的.C/C++并不过时,它们只是不同.它们为机器提供更精确的控制水平,以换取更长和更困难的开发时间.
如果C/C++是主要独立Windows应用程序的主要工具,那么(慢)托管代码方法只是一个笑话?或者C/C++的主导地位是由于大多数主要应用程序都比.NET更老?你能给我一些使用.NET开发的软件名称吗?
5)优势是非常遗传的.再一次,.NET并不慢.主流应用程序在很大程度上是众所周知的,因为它们比.NET长得多,因此没有理由期望许多(如果有的话).NET应用程序如Word或Photoshop所熟知或流行.未来几年,期待一些基于.NET的着名应用程序出现并不是不合理的.
编辑:
有些人似乎很困惑,并且相信在这个答案中的某个地方,断言.NET和c ++一样快.唯一的论点是,.NET和c ++都足够快,可以运行大多数主流应用程序.任何认为在c ++和.NET中开发时间相等的人,在其他条件相同的情况下,都没有在其中一个中做过多少开发:)
.NET越来越成为大多数Windows开发的首选语言,包括独立的桌面应用程序.
话虽这么说,C/C++仍然在这个领域大量使用.但是,在Windows上,许多"前沿"工作都是在.NET中完成的,或者是.NET与本机代码的混合.
坦率地说,后者可能是最激动人心的工作所在.它可以让你拥有的本地代码"靠近金属"感觉需要的时候,但仍然有一切为用户界面层和非性能关键部分被最新的.NET框架(如WPF)提供的功率.随着时间的推移,这变得越来越普遍 - 例如,Visual Studio仍然主要是本机(C++)代码,但整个用户界面是使用WPF(.NET)编写的.
我只做桌面Windows开发.我个人更喜欢使用.NET来实现我所能做到的一切 - 并且对于.NET没有意义的非常小(且越来越小)的部分,我们会回归到C/C++.
我对你的问题提出的一个问题是你问一个事实问题("大多数"是主要的"使用C/C++开发的Windows应用程序吗?")和判断/因果关系问题(".NET太慢而且间接过于处理这些问题任务?")一气呵成.
确实,大多数Windows桌面应用程序(例如Microsoft Office,Adobe Photoshop等)都是用本机代码编写的.然而,在服务器端,至少在Microsoft堆栈中,它都是ASP.NET,即托管代码,这也是事实.
现在考虑典型Web应用程序的性能要求比典型的桌面应用程序要严格得多 - 毕竟,当服务器应用程序可能有数千和数千时,桌面应用程序只有一个用户.因此你所暗示的因果关系听起来很脆弱.
正如其他人所指出的那样,在为桌面应用程序选择实现技术时,有许多要求正在发挥作用.它可能是可移植性,传统,现有代码库,开发人员培训,特定API的托管包装器的存在(历史上Windows通常缺乏后者)以及许多其他因素.
对于"所有托管"桌面应用程序的具体示例,我会引用ReSharper - 它是一个完全.Net桌面应用程序,具有非平凡的用户界面和逻辑.Visual Studio 2010还具有用托管代码编写的大量部分(包括UI /表示层).
我认为,有一些主要问题仍然导致相对缺乏商业.NET应用程序(您在本地软件商店的盒子中购买的类型):
我不是说这些问题是否有效,只是试图回答你的问题,为什么还有一个相对缺乏商业(收缩包装)的.NET软件.