我认为网络开发比任何人刚开始接触它时所掌握的要多得多!阅读本文并了解这一切都是可选的......但需要真正擅长您所做的事情。
我建议你先花时间学习你的语言。我建议学习 C#,因为它更畅销,而且大多数 MS 产品通常都直接支持它。通过学习 C# - ASP.NET 编程,控制台应用程序、服务器、服务、桌面应用程序等都将触手可及。您可以为大多数 MS 产品以及许多 Linux 类型平台进行编程。
一旦掌握了这一点,您就可以转向网络编程,因为网络编程有一些大多数其他环境所没有的复杂性。诸如会话、缓存、状态管理、跨站点脚本、样式、客户端与服务器端编程、浏览器支持、HTTP 如何工作、获取与发布、表单如何工作、cookie 等概念都位于顶部。需要单独学习的内容列表,更不用说学习 ASP.NET 基础框架和命名空间了。
一旦你掌握了编程语言和网络编程的概念,我建议你停下来学习数据库设计。暂时不要担心性能......首先尝试学习良好的设计。接下来是性能。 Access 对你来说是一个好的开始(我知道这是亵渎)。对于初学者来说很容易上手。并且它可以轻松转换为更强大的平台,例如 SQL Server。至少学习一些 SQL...但我建议你学习尽可能多的内容。我听有人说SQL就像数据库的汇编语言。使应用程序减慢直至停止的第一件事是糟糕的数据库设计和糟糕的查询。一旦您掌握了这些知识,请将其抛在脑后,看看一个好的 ORM。 NHybernate 可能是目前最好的,但比基础学习者的需求更复杂。出于这个原因,我目前建议启动并运行 LINQ to SQL,因为它非常容易使用。然后看看实体框架(尽管我仍然认为它很糟糕...并且您应该等到 EF 2.0...ERRRRR...现在 4.0 随 .net 4.0 一起发布)。然后是NHybernate。
现在是开始了解 Web 开发所需的基础设施的时候了。当您学习一些网络编程知识时,您可能会遇到这个问题。但是您需要了解 DNS、IIS、负载平衡器、粘性路由、循环、集群、容错、服务器硬件设置、网络场、缓存场(MemCached Win32、Velocity)、SMTP、MSMQ、数据库邮件队列的基础知识,等等。很多人可能会说你不需要这个。这里会有一些知识渊博的网络管理员来帮助您。然而,他们通常知道影响他们的事情……而不是你。您在这里了解得越多,您对雇用您的公司就越有价值。
现在您可以了解最佳实践和设计模式的详细信息。了解基础知识,例如存储库模式、工厂模式、外观模式、模型视图呈现者模式、模型视图控制器模式、观察者模式以及各种其他内容。请在此处关注 Martin Fowler 和其他人的建议。看一下控制反转、依赖注入、SOLID 原则、DRY、FIT、测试驱动设计和领域驱动设计等概念。在进入下一步之前,在这里尽可能多地学习。
现在你可以考虑框架了!首先使用 ASP Classic 创建一个基本应用程序(IIS 免费提供!)。这将为您提供简洁的 Web 开发环境。 (简要地)看一下 ASP.NET Web 表单,了解 MS 如何通过隐藏所有复杂的内容来使事情变得更容易(您现在通过阅读上述材料知道如何自行管理!!!)。现在您不再需要 ASP.NET Web 窗体。立即转向 ASP.NET MVC。 MVC 框架为您提供了创建易于管理的良好 Web 应用程序所需的全部功能。如果您构建的东西非常大,那么纯 Web 开发的框架可能无法满足您的需求。然而,对于此类 UBER 自定义场景,MVC 的可扩展性更高。
现在您已经完成了 ASP.NET MVC 之旅,您可以看看 Microsoft 的企业应用程序块(例如他们在 MySpace 中使用的)等内容。看一眼Elmah http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx错误记录(必须有)。看看如何构建一个自定义 SiteMapProvider http://blog.maartenballiauw.be/post/2008/08/29/Building-an-ASPNET-MVC-sitemap-provider-with-security-trimming.aspx为您的 MVC 站点。如果您需要开始搜索内容,请理解Lucene.NET http://incubator.apache.org/lucene.net/.
如果你做到了这一步……你就准备好在剩下的事情出现时自己解决了!玩得开心。对于对上述所有概念有一定了解的人来说,这个空间有很大的空间。