文号
t77983
阅读
7863
回复
8
收藏
6
【必读】关于装完Visual Studio学什么的问题
2015/11/21
IP:四川
由于现在Visual Studio太过强大,因此很多初学者装完Visual Studio找不到入门的方向,再加上网上一些大神的误导误入了深水区,最终导致无功而返。我这里就给大家建议一个入门的方向,再梳理一下Visual Studio中常见的技术,看它们有哪些深水区。

首先是我建议初学者学习的方向(语言和GUI界面技术):
Visual Basic (XXXXXX) —— 强大的智能提示,有助于初学者尽快上手
Windows Presentation Foundation (WPF) —— 矢量界面设计,可适应各种DPI环境

语言还可以选择:
Visual C# —— 如果你学过C/C++,那么C#可能更熟悉

GUI技术还可以选择:
Windows 窗体 (Windows Forms) —— 很好用,但是它基于像素,对DPI的兼容性很差,关掉DPI模拟后要手动调校界面元素。如果你没有高分屏设备,可以选择这个选项入门

比较难以入门的语言:
Visual C++ —— 被微软搞烂了的C++,只能使用Win32相关技术(MFC/ATL/Qt等),不适合初学者
Visual C++/CLI 和 C++/CX —— 语法杂糅晦涩,写出来的跟VB/C#却没啥区别,调用WinAPI还更麻烦(主要是参数传递麻烦),没有WPF模板
Visual F# —— 谁用谁知道

比较难以入门的GUI技术:
MFC —— 只要用了MFC,就只能按微软的逻辑办事,否则自己写类库封装Win32实现去吧
ATL/WTL —— 虽然不必按照微软的逻辑办事,但是太简陋了,简化编程作用有限,本质上还是Win32
Qt —— 是一个优秀的GUI技术,但是不适合初学者
Win32 —— 如果能看懂《Windows程序设计(第五版)》就可以用,但是这个教材太久远了,还要参考最新的WinSDK帮助,纯英文的哦

其它技术:
通用 Windows 应用 —— 在这个Win7横行的年代,只支持Win10就注定了它很难推广
XXXXXXXXXXX —— 如果有这个想法,学Java会是更好的选择
跨平台移动开发 —— 至少C#/VB写要带上很大的运行库,C++/JS不知道
Unity —— 没用过,不了解
Silverlight —— 这个技术已经被微软公开放弃了,新Web应用程序应该使用HTML5
Workflow —— 没用过,不了解

学习Visual Studio编程的最好方法就是看MSDN Library,MSDN Library是微软官方的文档。
【MSDN Library:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX】
[ 修改于11年1个月前 - 2015/11/22 11:29:42 ]
11年1个月前IP:江西
798164
1楼
支持,初学者应该学VB,掌握.NET框架。C++目前恐怕只有完成教学任务才会用到。
引用
评论
11年1个月前IP:陕西
798168
2楼
初学者也可以分成很多种,我认为这样笼统地说“初学者”欠妥,毕竟这个帖子只适合于其中的一部分。
引用
评论
acmilan作者
11年1个月前IP:四川
798172
3楼
引用 金星凌日:
初学者也可以分成很多种,我认为这样笼统地说“初学者”欠妥,毕竟这个帖子只适合于其中的一部分。
这篇文章面向的是希望初学编程,但装完Visual Studio后无所适从的初学者,方向也是建议方向。

如果一个初学者知道自己想学的是什么(比如要考二级c要学vb6或者参加竞赛之类的),直接学就可以了。
引用
评论
11年1个月前IP:浙江
798173
4楼
个人认为并没有必要很快就执着于快速学会特点平台上的应用开发
引用
评论
acmilan作者
11年1个月前IP:四川
798174
5楼
引用 phpskycn:
个人认为并没有必要很快就执着于快速学会特点平台上的应用开发
不,这个很重要,只会console编程是很蛋疼的一件事。

用着图形界面的windows,却固执于编写ansi字符流程序,这显然是一种让人丧失兴趣的学习方式。
引用
评论
11年1个月前IP:山东
798199
6楼
有C,C++基础 希望快速做出windows 窗口程序 推荐C# Winform
引用
评论
11年1个月前IP:浙江
798454
7楼
支持一下。欢迎交流。大家不妨也学习一下delphi
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的