高手,给我点建议

agamenon 2004-10-15 04:51:23
想学MFC,但有人说这个要过时了,但我还能学什么呢?
...全文
117 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jkflyfox 2004-10-18
  • 打赏
  • 举报
回复
个人觉得.net,c&c++,java将在以后长期共存并瓜分市场,楼主学哪个都行,关键是要学精。
个人感觉.net上手容易些,但学好绝非易事。
bless。
3ss 2004-10-17
  • 打赏
  • 举报
回复
“如果.Net是独孤9剑,那MFC就是9阳神功,学到哪个都牛B,问题是你够不够天赋去学,这2种东西都不是说你努力就能学得精的。”

别把人吓跑了


stone212 2004-10-17
  • 打赏
  • 举报
回复
学C#+.NET,感觉比MFC容易入手
simanh 2004-10-15
  • 打赏
  • 举报
回复
如果.Net是独孤9剑,那MFC就是9阳神功,学到哪个都牛B,问题是你够不够天赋去学,这2种东西都不是说你努力就能学得精的。
zxn1979125 2004-10-15
  • 打赏
  • 举报
回复
。NET 接分 谢谢
agamenon 2004-10-15
  • 打赏
  • 举报
回复
潘爱民译的vc第六版我看大部分还是MFC啊,而大部分的书名是.net的要么是vb的,要么是C#的,能不能给我推荐一本完全是vc的.net框架的书呢?
北京的雾霾天 2004-10-15
  • 打赏
  • 举报
回复
但是我建议你用VS2003来学MFC,一个环境更比6.0好用,更能发挥.NET的力量,也能学到MFC的知识.
roapzone 2004-10-15
  • 打赏
  • 举报
回复
微软的.NET旗帜鲜明地提出了下一代软件的构建思想——面向组件,以及构建平台——XML Web Services。C#仰仗于.NET平台,只有在洞悉该平台及其程序设计思想之后,我们才能清晰地把握由C/C++到C#发展的精髓。在C++的基础之上,C#从以下四个方面对C++进行了显著的革新和提高。

直接、丰富的组件编程支持

在早期Unix和C主导的时代,“数据结构+算法”成为构建软件的惟一方式,然而这种扁平的API组织结构带来的现实逻辑和机器实现之间的巨大鸿沟让人无法忍受,近乎相同的软件被低效地一遍一遍重写。

接着,千呼万唤始出来的C++和面向对象技术,一时间成为我们的口头语;绚丽多彩的Windows成为我们的栖息地;MFC类库及由其主导开发的各种桌面软件成为C++历史上的极盛时期。然而,随着软件规模越来越大,面向Web应用的需求越来越高,源代码级的对象复用显然已经不能满足我们的需要。

随后,修修补补的COM组件技术登上历史舞台,然而由于C++语言底层机制带来的结构性矛盾,各种问题接踵而来:IDL拖沓繁冗,“DLL-Hell”噩梦连绵,二进制流在防火墙的阻隔下举步维艰……

软件开发迫切需要一个面向Internet的异构体系,为软件提供像IC电路元件一样可插拔的标准封装和复用方式的组件构造平台。于是,.NET和C#应运而生。组件编程是C#将C++及其面向对象技术从软件设计开发阶段向软件发布、运行、管理的合理延伸。C#在面向对象的基础上直接引入接口、属性、方法、事件、特征、文档化等组件特性,为其RAD开发提供了一流的支持。内置语言的元数据映射机制彻底解除了IDL、GUID、COM接口等繁冗的编程任务,使得组件得以廉价地实现自描述,并且革新了传统C++的代码编写方式。“side by side”的执行方式解决了长期以来困扰程序员的“DLL-Hell”,多个版本的组件可以相安无事地同时运行于一个系统内。简化了的XCopy安装方式使得烦琐的注册表不再成为安装程序的必需。“拷贝,然后运行”——程序本来就应该是这个样子!组件编程不仅是编程元素的改变,更是程序设计思想的革新。

托管、安全的执行环境

内存泄漏一直以来都是C/C++程序界的一个顽疾。把这样容易出错而又繁重的任务交给系统处理,将程序员从中解脱出来专注于事务逻辑的实现,已经成为软件业的共识。有鉴于此,.NET平台为C#引入的安全、高效的托管执行环境——通用语言运行时(CLR)格外引人注目。

自动垃圾收集改变了C++中内存管理的方式,使用C#的程序员甚至不需要有内存管理这样的概念,实际上我们根本找不到类似delete这样的内存释放指令。强健的异常处理极大地提高了C#开发软件的纠错能力,绝非传统C++中错误代码返回值所能企及。类型安全在C#语言中被提到了一个相当的高度,对任何数据的任何操作都被CLR所监视,并严格限定在该数据类型所支持的范围内,转型操作也被严格定义。和传统COM组件及DLL的互操作性使得C#和传统C++实现了交互访问能力,这种改良而非革命性的策略对C++程序员非常重要。基于IL中间语言(C#的目标编译语言)的JIT编译技术在实现其跨平台编程的许诺的同时,更是使得C#可以同多达20多种主流开发语言实现对象级的互操作。

高效、内置的XML Web Services支持

Web 服务为当今产业界公认的下一代网络计算方向,它可以将一个基于Internet的应用程序模块,在遵守一定的协议下进行对象组件之间的远程交互。.NET平台直接在IL中间语言中内置对XML Web Services的操作支持,使得C#与生俱来地获得了下一代网络编程语言的美名。在C#下的XML Web Services编程,开发人员面对的将是一个友好的由商业组件组成的对象结构,而不是HTTP、SOAP、UDDI、WSDL等底层协议。

明晰、简练的语法风格

C#在与C++语法风格保持了高度一致的同时,摈除了很多晦涩不清,繁冗拖沓的表达。赋值等号和判断等号的严格区分彻底消除了C++中赋值与判断同时表达的危险。单根继承加上多接口实现的支持,使C#杜绝了C++晦涩不清的多继承。数值类型和对象之间转换的box/unbox操作,兼顾了数值运算的性能和面向对象的统一。声明与实现同归一处使得C#中再也没有C++头文件的烦恼。在方法及其参数传递方面,C#摈弃了指针与地址操作及const 修饰,代之以引用、输出、数组这样一些表义明确的修饰符。foreach语句使得集合中元素的遍历更加方便和优雅。对于操作符重载,C#也进行了更为严格的规定和有限的支持。不安全的转型操作、数组索引越界、未初始化变量等在C++中经常出现的错误在C#中将不再可能出现。

当然,C#绝非完美,比如在C++中很好用的模板,在C#中就没有实现,目前微软正在进行这方面的研发。在对机器底层操作方面,C#也无法与C++的犀利相媲美,当然这可能涉及到问题的另一方面。而笔者所竭力主张的只是现有主流的开发需求和潮流下的选择导向。最终,程序员需要根据实际情况,而非在喧闹争论中得出适合自己的选择。

mazekui 2004-10-15
  • 打赏
  • 举报
回复
哦!为了生活,为了日子好过,还是先学.net
roapzone 2004-10-15
  • 打赏
  • 举报
回复
看你向那个方向发展!
 现在呢,最大的变化,也是最激动人心的变化应该是.NET架构的引入,当然也随之带来了一大批新的技术。从长远的发展来看,.NET必将取代现有的大量应用技术,但不是所有,另一方面,新的技术和老的技术将会共存相当长的时间。
本书第六版基本上反映了现在的技术发展状况,MFC仍然存在,但是一些新兴的用户界面元素也被更新到MFC中。
北京的雾霾天 2004-10-15
  • 打赏
  • 举报
回复
TO: trnbo(我的目标是没有蛀牙)
如果没有了MFC我想VC也就没有"活"着的必要了,至少它在短期内有着其它工具不可比的东西,我想它还是很有价值的,不过现在学学C#这样的东西也更能学到最新的技术.
roapzone 2004-10-15
  • 打赏
  • 举报
回复
学习.net把
wangdequan1024 2004-10-15
  • 打赏
  • 举报
回复
建议学.NET
北京的雾霾天 2004-10-15
  • 打赏
  • 举报
回复
我不是高手,但我想你最好学学MFC,你可以学到好多有用的东西,这有助你学习起C#等其它技术.
trnbo 2004-10-15
  • 打赏
  • 举报
回复
还是学.NET框架吧,微软都要放弃MFC了。

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧