【问题标题】:Learning C#, ASP.NET 3.5 - what order should I learn in / what to skip? [closed]学习 C#、ASP.NET 3.5 - 我应该按什么顺序学习/跳过什么? [关闭]
【发布时间】:2008-11-11 20:46:27
【问题描述】:

C# 和 ASP.net 有很多内容。我应该从哪里开始?我不应该专注于什么?

我应该先学习 Winforms 然后再学习 WPF 吗?网络表单/Silverlight 也一样? 我应该学习 ASP.MVC 还是经典的 ASP.NET?如果两者都有,哪个先?

在非此即彼的情况下——先认识对方更有意义?

我应该预先学习哪些主要的 .NET 功能,以打开理解未来的大门?

我故意不提及诸如值/引用类型、类、面向对象的概念等基础知识,因为它们应该放在第一位,然后是细节。在这里,我对细节感兴趣。

[编辑 - 添加了我的目标的详细信息] 提出了很好的观点——“我想写什么”?

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

我倾向于使用网络界面,因为客户端规格和管理员权限会有所不同 - 浏览器确实是我唯一可以依靠的东西。

如您所见,它是一切。

【问题讨论】:

  • 雄心勃勃。大约 20 年前,我用 BASIC 编写游戏,现在正在重新学习编码。我从最终用户的角度来看这个应用程序。我知道这些要求,因为我每天都生活在它们之中。这个项目基本上是为了自动化我的日常工作。

标签: c# .net asp.net


【解决方案1】:

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

在某种程度上,Silverlight 两者兼而有之 - 富客户端可能与服务器对话以获取有趣的数据等。

不过,在学习任何这些之前,我建议您学习比您提到的主题更上一层楼的基础知识 - 例如文本在 .NET 中的工作方式(包括编码和正则表达式)、I/O,也许还有线程。哦,还有 LINQ :) 在这方面有几本书非常好:

【讨论】:

    【解决方案2】:

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

    我所做的只是弄脏了自己的手,开始缓慢,做一个项目(在我的例子中是一个非常重要的项目 - 一个涵盖并自动化所有 4 人工作的金融网络应用程序)和开始实施,每次我不知道如何完成某事,或者我在 ASP 中有一个想法但在 ASP.NET 中没有,我会去 www.asp.net4GuysFromRolla 网站并搜索示例,复制/粘贴,了解我在做什么,然后...继续下一面墙。

    我花了 6 个月时间 让一切正常运行,但最糟糕的是!现在已经过去了将近 3 年,我知道我做了正确的选择,但那时……我很害怕!

    现在...您指的是 .NET 3.5,它有很多新东西,例如扩展、linq 等...让我搜索一下这部分的使用方法”

    希望你走自己的路,买一些参考书,这样你就可以阅读一些新的东西,并在你需要的时候有一个参考“啊,我在书的某个地方读到这个,让我搜索.. . 它在哪里?

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

    【讨论】:

    • 我喜欢这个答案,因为我认为它显示了最大的进取心。
    【解决方案3】:

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

    但在核心 .NET 开发方面,如果我刚开始,我建议先学习 ASP.NET MVC,因为它会为您提供良好的基础,例如:为可测试性而设计、在没有 ViewState 的情况下进行编码、对 SEO 友好的 URL 等。

    【讨论】:

      【解决方案4】:

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

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

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

      现在是 MVC 或 Web 表单问题。 MVC 使您可以完全控制发出的 HTML、CSS 和 Javascript,但需要更多的工作,而 Web 表单使您易于开发,但不能 100% 控制发出的标记。您可以使用 Web 表单做很多事情,并且 MVC 的引入不会威胁 Web 表单的未来。 MVC 是非常新的事物,所以事情正在发生变化,但最终我看到他们俩幸福地并肩生活。

      关于学习 .NET 的总体情况,我听说过一本名为 CLR via C# 的书,其中介绍了 .NET 的所有基础知识和内部工作原理。

      【讨论】:

        【解决方案5】:

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

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

        我暂时不会担心 WinForms、WPF 或 Silverlight。它们不会直接帮助 ASP.NET,并且在您学习了 CLR 和 .NET Framework 基础知识之后相对容易上手。

        【讨论】:

          【解决方案6】:

          您的主要目标是什么——为了乐趣或可雇佣性而学习?如果你是一名学生,并且多年来一直担心编程职业,那么我会强烈赞同选择一个你感兴趣的相对简单的项目然后就去做的想法。

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

          然后您将需要一种方法来展示您的收藏并与之交互 - 添加、删除和编辑对象以及持久化更改。在此步骤中,使用您感兴趣的每一种演示技术 - WPF、WinForms、Asp.net、带有 MVC 的 asp.net、Silverlight - 无论您感兴趣。当您学习使用一种技术时,您将学习技术你需要在接下来使用。

          不要只选择一个 - 与所有你感兴趣的人一起玩。

          现在,如果您的主要兴趣在于哪些技能可以让您最快被聘用,我会说看看您的市场,但最需要的可能是直接的 ASP.Net 技能 - 或者至少从我的角度来看是这样的。几年后,它很可能是 ASP.Net MVC 技能。但在某些市场中,您更容易获得 VB6 工作。这一切都取决于您在哪里和何时寻找。

          【讨论】:

          • 刚刚发现这个问题,在答案之后 4 年多。您提到 ASP.net MVC 可能会变得更可取,您是对的!我现在看到了很多。
          【解决方案7】:

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

          【讨论】:

            【解决方案8】:

            有时视频可能会有所帮助。我从 Total Training 的一组视频教程(here)中学到了开始时需要知道的一切。如果您购买磁盘会很贵,但有更便宜的在线选项。

            【讨论】: