学习C#,ASP.NET 3.5 – 我应该学习什么顺序/要跳过什么?

C#和ASP.net有很多东西。 我应该从哪里开始? 我不应该关注什么?

我应该学习Winforms然后学习WPF吗? 同样适用于webforms / Silverlight? 我应该学习ASP.MVC还是经典的ASP.NET? 如果两者兼而有之,哪?

在这两种情况下 – 首先知道另一种情况会更有意义吗?

我应该提前学习哪些主要的.NETfunction,这将打开理解未来前景的大门?

我故意不提及价值/参考类型,类,面向对象概念等基础知识,因为它们应该在具体之前首先出现。 在这里,我对具体细节感兴趣。

[编辑 – 增加了我的目标的细节]提出的好点 – “我想写什么”?

基本上,Intranet应用程序监视一组文档并将工作流实现为更改控制过程。 该应用程序还将审核文档并报告问题,自我纠正常见错误。 许多参数需要是最终用户可定义和可插拔的。 文档格式需要适应不同的专有格式,尽管它们基本相同。 该应用程序将非常模块化。

我倾向于Web界面,因为客户端规格和管理员权限会有所不同 – 浏览器是我唯一可以信赖的东西。

如你所见,这是一切。

当我从Classic ASP转移到.NET 2.0时,我遇到了同样的问题…… .NET非常庞大:那么我应该从哪里开始呢?

我所做的是把我的手脏了,开始慢,拿一个项目(在我的情况下是一个非常重要的项目 – 一个财务网络应用程序,将覆盖和自动化所有4人的工作)并开始实施,每次我没有我知道如何完成某些事情或者我在ASP中有一个想法但不在ASP.NET中我会去http://www.asp.net4GuysFromRolla网站并搜索示例,复制/粘贴,了解我在做什么并继续…下一堵墙。

花了我6个月的时间让一切都运转起来,但最糟糕的是它! 现在已经过了差不多3年,我知道我做了正确的选择,但当时……我很害怕!

现在……你提到.NET 3.5,它有一些新的东西,如扩展,linq等……我会按照简单的部分进行,当时间到了,“也许我可以在这里使用LINQ,让我搜索如何在这部分使用它“

希望你按照你自己的路径购买一些参考书,这样你就可以阅读新的东西,并在需要时提供参考“啊啊,我在书中的某处读到这个,让我搜索……它在哪里?”

我从Wrox购买了Professional ASP.NET作为参考书,即使在今天我去那里看新东西,即使我开始使用.NET 3.5,这个想法就在那里,只有一种新的方法来完成它。

你想写什么? 如果你想编写一个Windows客户端应用程序,请查看WinForms和WPF(没有真正需要在WPF之前学习WinForms,除了许多教程/书籍可能将WPF概念与WinForms概念进行比较的方式)。 如果您正在查看Web应用程序,那么ASP.NET或ASP.MVC – 我不知道您是否真的需要MVC之前的“普通”ASP.NET。

Silverlight在某种程度上是两者兼而有之 – 富客户端可能正在与服务器讨论有趣的数据等。

在学习其中任何一个之前,我建议你学习一些基础知识,这些基础知识是你提到的主题的一步 – 比如文本在.NET中是如何工作的(包括编码和正则表达式),I / O,也许是线程。 哦,和LINQ :)在这方面有一些非常好的书:

  • 果壳中的C#3.0
  • CLR通过C#
  • 加速C#2008

我建议学习你感兴趣的任何东西。选择一个“宠物项目”并尝试使用你列出的技术之一来创建它。 如果您喜欢制作Windows桌面风格的应用程序,那么请使用WPF或WinForms。 如果您喜欢在网络上制作丰富的桌面风格应用程序,那么请选择Silverlight。 会有很多重叠。

但就核心.NET开发而言,如果我刚刚开始,我建议首先学习ASP.NET MVC,因为它将为您提供良好的基础,例如:设计可测试性,没有ViewState编码,SEO友好url等。

这取决于(可怕的反应,我知道,但让我解释一下)

你打算做任何Windows窗体开发吗? 你提到C#和ASP.NET,所以对你而言,这听起来像你在做基于Web的编程。 如果是这样,请暂时跳过Winforms和WPF。

Silverlight值得一试,但它仍然相当新,所以我把它作为第二优先。

现在来到MVC或Web表单问题。 MVC使您可以完全控制发出的HTML,CSS和Javascript,但需要更多的工作,而Web表单使您可以轻松开发,但不会100%控制发出的标记。 您可以使用Web表单进行大量操作,MVC的引入不会威胁Web表单的未来。 MVC是非常新的,所以事情正在发生变化,但最终我看到他们俩幸福地生活在一起。

关于一般学习.NET,我听说过一本名为CLR的书,通过C#,它将涵盖.NET的所有基础知识和内部工作原理。

绝对要学习基础知识(就像你已经提到的那样),比如CLR如何处理类型,垃圾收集,安全性,“AppDomains”,线程等。

对于ASP.NET,学习“页面生命周期”和“控制生命周期”是必不可少的。 此外,会话状态和数据绑定可能是很好的理解。

我现在不担心WinForms,WPF或Silverlight。 他们不会直接帮助ASP.NET,并且在学习了CLR和.NET Framework基础知识后相对容易获取。

您的主要目标是什么 – 学习乐趣或可租用性? 如果你是一名学生并且多年不担心编程事业,那么我将强烈反映选择一个项目的想法,这个项目是关于你感兴趣的相对简单的事情然后就是这么做的。

假设您要创建一个跟踪video游戏集的应用程序。 首先,您需要一种存储信息的方法 – 这将是c#和一些持久性策略(如mySql或SQL Server或XML)的组合。

然后,您需要一种方式来呈现您的集合并与之交互 – 添加,删除和编辑对象并持久保存更改。 在这一步中,使用您感兴趣的每种演示技术 – WPF,WinForms,Asp.net,带有MVC的asp.net,Silverlight – 无论您感兴趣的是什么。当您学习如何操作时,您将学习技巧你需要在下一个使用。

不要只选一个 – 玩你感兴趣的所有人。

现在,如果你主要感兴趣的是什么技能会让你获得最快,我会说看看你的市场,但它可能是直接的ASP.Net技能,将是最需要的 – 或至少是从我的角度看它是什么样的。 在几年内它可能是ASP.Net MVC技能。 在某些市场中,您可以更轻松地获得VB6的工作。 这一切都取决于你在哪里和什么时候看。

我强烈推荐以下书籍,以了解ASP.NET 3.5中的新function

  • ASP.NET MVC 1.0网站编程
  • 专业的ASP.NET MVC 1.0
  • ASP.NET 3.5网站编程

有时video可能有所帮助 我从Total Training的一组video教程开始学习了我需要知道的一切。 如果您购买磁盘,但有一个更便宜的在线选项,价格昂贵。