我最近一直在使用 Komodo Edit 和其他更简单的编辑器使用 Python,但现在我正在做一个项目,该项目将使用 VS 08 在 C# 中完成。我将不胜感激有关如何尽快在该平台上获得生产力的任何提示。
11 回答
至于精通 C#,我强烈推荐Programming C# and C# in Depth。
对于 Visual Studio,开始在 IDE 中四处寻找、玩耍、熟悉它。从简单的项目开始,探索所有不同的方面。了解如何优化 Visual Studio并熟悉 IDE 的一些出色的键盘快捷键/隐藏功能。
绝对至少执行以下每一项:
项目:
- 创建一个简单的控制台应用程序(例如 hello world)
- 创建一个类库(托管 .dll)并从您创建的另一个应用程序中使用它
- 创建一个简单的 windows 应用程序
- 创建一个简单的 asp.net 网络应用程序
调试:
- 调试命令行应用程序
- 熟悉:断点、locals 和 watch 窗口、step over、step into、step out、continue、stop debug
- 创建一个使用类库中的函数的命令行应用程序。存储库的 dll 和符号文件 (.pdb) 但删除源代码,在进入库时通过应用程序进行调试
- 调试到 web 服务
- 了解如何使用 ILDasm 和 ILAsm
命令行:
- 熟悉 Visual Studio 命令行环境
- 仅使用命令行构建
- 使用 devenv.exe /debugexe 从命令行调试
- 从命令行使用 ILDasm / ILAsm 将一个简单的应用程序反汇编成 .IL,将其重新组合成一个不同名称的文件,测试它是否仍然有效
测试:
- 创建单元测试(右键单击方法,选择创建测试的选项)
- 了解如何:运行所有单元测试,在调试器下运行所有单元测试,重新运行失败的单元测试,查看测试失败的详细信息,运行单元测试的子集
- 了解如何为您的测试收集代码覆盖率统计信息
源代码控制:
- 了解如何在使用 VS 进行开发时与您选择的源代码控制系统进行交互
重构等:
- 熟悉所有内置重构(尤其是重命名和提取方法)
- 使用“转到定义”
- 使用“查找所有参考”
- 使用“在文件中查找”(ctrl-shift-F)
IDE 和键盘快捷键:
- 了解如何将设计器很好地用于 web 和 winforms
- 熟悉解决方案资源管理器窗口
- 尝试不同的窗口布局,直到找到适合自己的布局,稍后继续尝试,看看这是否仍然是最佳选择
- 了解智能感知的来龙去脉,尽可能地利用它
- 了解您所做的一切的键盘快捷键
我个人会首先专注于学习 C# 和 .NET 的核心部分。对我来说,这意味着编写控制台应用程序(而不是 Windows 窗体)来试验语言和 IO 等重要方面。当您对基础感到满意时,请转向您的项目所需的任何“外围”技术(WinForms、WPF、ASP.NET、WCF 等)。
在书籍方面,我可以推荐C# 3.0 in a Nutshell和Accelerated C# 2008。链接是我对这些书的评论。两者都涵盖语言 + 核心库。一开始我不会太担心 LINQ - 在处理 LINQ 之前,先熟悉语言的其余部分,尤其是委托和泛型。那时,我强烈建议您在开始使用 LINQ to SQL 或实体框架之前先使用 LINQ to Objects 一段时间。(另一方面,如果您需要使用 XML,我会直接使用 LINQ to XML - 它是一个完整的 XML API,而不仅仅是一个 LINQ 提供程序。它比普通的 DOM API 好得多。)
选择一个您过去完成的 Python 项目并将其手动转换为 C#。这就是我学习我目前知道的每一种语言的方式(x86 汇编除外)。
考虑使用 IronPython 来帮助弥合差距 - 您可以通过 IronPython 引用 .NET 程序集,以及创建 .NET 程序集以从 C# 引用。
另外,请远离那些在 21 天内学习 C#!书籍...它们几乎从不辜负炒作,而且通常弊大于利。
我将不胜感激有关如何尽快在该平台上提高工作效率的任何提示。
实践经验我的朋友。尽快开始使用它以尽快提高工作效率。
一些明显的建议是:
- 为频繁操作创建快捷方式\宏\模板。强迫自己使用快捷方式而不是点击菜单
- 安装 ReSharper - in 会给你 1000% 的生产力提升(如果你有几块钱买的话)
并且不要犹豫不时查看手册:)
获得一本好书并开始阅读。我有Pro C# 2008 和 .NET 3.5 Platform。
既然你有一个项目要处理,那也应该有很大帮助。
我认为从 Python 到 C# 的转变是进化阶梯的一步。期待更详细的体验(例如变量声明和类属性)。
密切关注IronPython——它将帮助您使用熟悉的语言感受 .NET。Python 的动态特性使得检查 .NET 行为比检查 C# 中的想法要快得多。您可以通过IronPython Studio 直接从 Visual Studio 中使用IronPython。
Python 到 C# 的转换
您通常通过将其功能与您已经知道的语言进行比较来学习下一种语言。由于您熟悉 Python,因此请阅读一些 Python/C# 比较,例如“A Python Programmmer's Perspective on C#”和“Does C# 3.0 Beat Dynamic Languages at their Own Game?” . C# 3.5 和 Python 之间的差异并不大。
做一些小项目。我头顶的一些。
1) Hello world
2) 控制台
3) GUI 设计
4) 玩具项目
与阅读教程相比,它们会让你更快上手。喝杯啤酒,玩得开心。
我认为这取决于几件事。例如,您使用键盘多于鼠标吗?如果是这样,我会学习 VS 快捷方式。你了解 C# 吗?读一些书。我知道这很模糊,但这是一个有点模糊的问题。
实践,实践,实践,获得经验,变得富有成效。
对于每一种工具、系统、语言或其他任何东西,获得生产力的最快方法是(至少对我而言)了解背景,而不是从 hello world 开始,然后从一个命令跌跌撞撞地跳到你认为需要的下一个命令。
所以买一本好书(比如微软出版社)或者去微软 MSDN 和 Technet 并尽可能多地阅读背景资料。详细的东西(在书本或互联网上)可以稍后参考。
此外 - 为了提高生产力 - 加入邮件列表、IRC、用户组等,使用相同的工具、系统、语言等来了解其他人的日常问题。
然后 - 一两周后 - 开始编程。
我知道,这不是一个人从一门新语言开始时想做的事情。但对我来说,这种方法在过去几年里效果最好。