Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net net能做多少事情呢;不需要吗?_.net_Winforms_Mfc_Winapi - Fatal编程技术网

.net net能做多少事情呢;不需要吗?

.net net能做多少事情呢;不需要吗?,.net,winforms,mfc,winapi,.net,Winforms,Mfc,Winapi,如标题所述;对于一个典型的Windows应用程序,.Net BCL做了多少工作(如果可能的话,是一个粗略的百分比),而就Windows本身而言,它并不是严格要求的?假设Winforms所做的一切在MFC中都有类似的功能,后者就是超高效的实现。显然,我们使用.Net的原因是它的灵活性,它做了很多事情,使开发人员的生活更轻松-毕竟,Winforms是Win32的包装器,具有许多基本功能。我想知道这会如何增加应用程序的开销,以及原则上可以减少多少,并且仍然允许应用程序保持相同的行为。关于需要什么的问题

如标题所述;对于一个典型的Windows应用程序,.Net BCL做了多少工作(如果可能的话,是一个粗略的百分比),而就Windows本身而言,它并不是严格要求的?假设Winforms所做的一切在MFC中都有类似的功能,后者就是超高效的实现。显然,我们使用.Net的原因是它的灵活性,它做了很多事情,使开发人员的生活更轻松-毕竟,Winforms是Win32的包装器,具有许多基本功能。我想知道这会如何增加应用程序的开销,以及原则上可以减少多少,并且仍然允许应用程序保持相同的行为。

关于需要什么的问题相当哲学化。C++与纯汇编程序相比有其自身的开销,这与一些为开发单个应用程序开发的(假设的)专用处理器相比,它也不需要真正需要的东西。 从另一个角度来看,您不应该低估复杂性、可扩展性和可维护性,因为不同语言/框架的选择可能会有所不同

另一个问题是框架提供的特性集:在纯MFC/C++中创建自定义控件是一个比在.NET/WPF(imho)中更痛苦的操作


选择语言/框架的最终关注点是应用程序所需的成本、时间和质量。至少在商业软件开发中,所有其他方面似乎都无关紧要。

关于需要什么的问题相当哲学化。C++与纯汇编程序相比有其自身的开销,这与一些为开发单个应用程序开发的(假设的)专用处理器相比,它也不需要真正需要的东西。 从另一个角度来看,您不应该低估复杂性、可扩展性和可维护性,因为不同语言/框架的选择可能会有所不同

另一个问题是框架提供的特性集:在纯MFC/C++中创建自定义控件是一个比在.NET/WPF(imho)中更痛苦的操作


选择语言/框架的最终关注点是应用程序所需的成本、时间和质量。所有其他的似乎都无关紧要,至少在商业软件开发中是如此。

因为.Net是Windows的一个附加组件,所以理论上可以在不改变Windows本身的情况下重新实现它。所以这里面没有什么是绝对需要的。我怀疑你问的问题背后有一个不同的问题——你也要问这个问题吗?:)

由于.Net是Windows的附加组件,因此理论上可以在不更改Windows本身的情况下重新实现它。所以这里面没有什么是绝对需要的。我怀疑你问的问题背后有一个不同的问题——你也要问这个问题吗?:)

NET的目标之一是提供一个抽象级别,从而节省了在使用较低级别的框架(如MFC)来解决给定需求时需要考虑的大量管道。当然,随之而来的是一些成本。对于给定的问题,通常可以编写汇编代码,其资源成本低于用高级语言/框架编写的应用程序。但是考虑编写汇编代码所涉及的投资。想想那些已经由一些非常聪明的人为你提前完成的工作。一个很好的例子是C++执行速度与C++执行速度的比较。JIT编译器在运行时编译IL,是一个非常聪明和复杂的软件。如果你能通过在C++中写低级别的优化来击败它,那么你可能需要一个非常聪明的B)有足够的时间在你的手中。采用较低级别的方法通常是不划算的。

NET的目标之一是提供一个抽象级别,这节省了在使用较低级别的框架(如MFC)来解决给定需求时需要考虑的大量管道。当然,随之而来的是一些成本。对于给定的问题,通常可以编写汇编代码,其资源成本低于用高级语言/框架编写的应用程序。但是考虑编写汇编代码所涉及的投资。想想那些已经由一些非常聪明的人为你提前完成的工作。一个很好的例子是C++执行速度与C++执行速度的比较。JIT编译器在运行时编译IL,是一个非常聪明和复杂的软件。如果你能通过在C++中写低级别的优化来击败它,那么你可能需要一个非常聪明的B)有足够的时间在你的手中。采用较低级别的方法通常是不划算的。

从技术上讲,在计算机上以最高效率执行计算不需要整个图形用户显示,因此在这方面,Win32、WinForms和MFC是100%多余的。

MFC是“超高效的”?只是在它什么都不做的意义上。MFC是一个围绕Win32的薄包装器,与Win32上的其他应用程序框架相比,它对您的帮助很小。“超高效”的实现是通过直接使用Win32 API自己完成所有事情。而且,在我看来,Win32 API比MFC包装器和宏更易于使用和理解

对于您的问题,并没有一个好的答案,因为您担心的开销可能是不必要的,对于您可能正在使用或可能没有使用的功能以及您可能没有意识到正在使用的功能需要该基础架构。您认为最有价值的基础架构特性之一是生产力和开发的易用性

如果将文件大小视为“效率”的标记,那么.NET DLL将总是比手工雕刻ASM生成的模块大100X到1000倍,因为.NET DLL包含符号信息。