学习 Web 开发时我应该使用框架吗

2024-02-24

我意识到这可能是主观的,但我确实需要一个答案,而且我似乎无法在论坛的其余部分中找到足够接近的答案。我读过一些人说框架(任何 MVC 框架)可能会掩盖太多的事情,而另一些人则说它可以促进良好的实践。我意识到框架对于一定水平的程序员来说非常有用,但是对于刚开始的个人呢?应该只专注于语言还是一起学习?


我认为网络开发比任何人刚开始接触它时所掌握的要多得多!阅读本文并了解这一切都是可选的......但需要真正擅长您所做的事情。

我建议你先花时间学习你的语言。我建议学习 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/.

如果你做到了这一步……你就准备好在剩下的事情出现时自己解决了!玩得开心。对于对上述所有概念有一定了解的人来说,这个空间有很大的空间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习 Web 开发时我应该使用框架吗 的相关文章

  • JMeter 框架

    我最近开始学习 JMeter 来对我们的应用程序进行性能测试 我有一个测试计划 jmx 并使用 Jenkins Ant 定期运行它 到目前为止一切都很好 我的问题是 我们有一个关键字驱动的框架 TestNG 等用于功能测试工具 QTP Se
  • .Net框架2.0配置工具

    我最近安装了 Windows 7 Visual Studio 2008 和 net Framework 3 5 安装这些后 我无法找到 net框架配置工具 它应位于 windir Microsoft net framework v2 0 5
  • .NET 的状态机框架

    我工作中的系统基本上是一个消息驱动的状态机 它接收各种类型的消息 根据消息查找某些上下文 状态 然后根据消息和当前状态决定要做什么 通常结果是一条消息被发送到系统之外 有没有好的开源框架可以在 NET 中实现状态机 我研究了最新版本的 Wi
  • 为什么人们在 PHP 框架中使用单例

    好吧 伙计们 我很难理解为什么需要单例 让我们举一个真实的例子 我有一个 CMS 框架我需要一个记录一些信息的类 让我们继续使用 PHP Example class Logger private logs array public func
  • 在 codeigniter 中启用 $_GET

    我一直在试图弄清楚如何在 CI 中启用 GET 看起来框架故意破坏了 GET 数组 并且启用它需要对核心类进行认真的修改 谁能说出这是为什么 以及如何克服它 请注意 我希望保持 URI 解析和路由的方式不变 只需让 GET 也可用即可 将以
  • Swift 框架在 lldb 中返回“模糊使用”方法扩展

    我已升级到 Xcode 11 和 swift 5 并在通过框架提供方法扩展时遇到了问题 更具体地说 在一个结构如下的项目中 gt Main Project gt Framework created from sources in Main
  • 编译启用位码的 iOS 库

    我需要发布一个启用了位码的框架 但这很麻烦 我将项目设置中的 启用位码 设置为 是 它可以为真实设备和模拟器干净地构建 我想测试这个库 所以我将它集成到我为此目的创建的新应用程序中 但现在它只为模拟器构建 当我尝试为真实设备构建时 我得到
  • 如何在页面刷新/加载时刷新验证码图像?

    我想强制我的网站在每次加载时刷新验证码图像 因此我有一个由 onload 事件触发的 javascript 方法 这里我有以下行 document getElementById yw0 button click Firebug 没有检测到任
  • MonoDroid 的 MVVM 框架?

    MonoDroid 已经有 MVVM 框架了吗 或者 MonoDroid 是否能够自行绑定属性和命令 例如用于 WPF Silverlight WP7 的 MVVM Light Toolkit 还没有 MVVM 但是有 MonoCross
  • 有没有办法在 Objective-C 中使用 Swift 结构而不将它们作为类?

    我有几个简单的structs在 swift 文件中用 swift 编写 这些structs非常简单 几乎只包含字符串 struct Letter struct A static let aSome String descASome stat
  • Java Web 应用程序作为桌面应用程序,我应该选择哪些框架?

    我需要制作一个网络应用程序 我可以将其作为桌面应用程序安装在客户端 PC 上 数据库 jetty war firefox chrome sth 便携式 该应用程序是一个相当大的搜索应用程序 我必须使用 Lucene 只有几个屏幕 搜索队列中
  • Wt C++ Web 框架的主机,部署问题

    我想知道 justhost com 是否足以托管 Wt C 网站 应用程序 它确实允许 FTP 和 SSH 访问http richelbilderbeek nl CppWtDeployGlobalHosted htm http richel
  • i386 架构的未定义符号:“_SCNetworkReachabilitySetCallback”

    我在 openglES 项目上使用 xcode4 我从教程中添加了应用内购买代码 http www raywenderlich com 2797 introduction to in app purchases http www raywe
  • 反对网站开发公司使用 JavaScript 框架的理由是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们公司构建网站和网络应用程序 我们是一家小公司 我们的开发团队总是从头开始构建 JavaScript 函数 或者从我们构建的其他网站复制 每当
  • 在 MacOS 10.6 (Snow Leopard) 上安装 Intel 的 TBB 3.0 框架

    我在 MacOS 系统上安装英特尔线程构建模块 TBB 3 0 作为框架时遇到了一些问题 有谁知道一个好的教程吗 我尝试过使用 MacPorts 它有 TBB 2 2 它安装了我需要的所有库 但我没有得到框架 另外 Intel 网站上似乎没
  • 如何在 swift 中导入自定义框架中存在的类

    我有一个自定义框架 它包含一些公共类 但我无法使用该公共类 在 Objective C 中我们可以导入为 import
  • Slim 框架总是返回 404 错误

    这些天我正在使用纤薄的框架作为我开发 php web api 的最简单的工具 使用这两篇 文章 科恩拉茨 http coenraets org blog 2011 12 restful services with jquery php an
  • 托管扩展性框架 (MEF) 与复合 UI 应用程序块 (CAB)

    我们目前正在考虑在下一个应用程序中使用 CAB 或 MEF 我没有在 Codeplex 上看到任何有关如何处理同级控制通信的事件代理的示例 也许我错过了 MEF 中的控制间通信如何工作 此外 我们计划使用 Infragistics 它为 C
  • 在 iOS 框架中嵌入框架

    我有一个包含另一个目标 框架 的项目 它是主项目的依赖项 该框架需要它自己的框架 因此我使用 carthage 添加了它们 该项目在模拟器上编译并运行良好 但是在物理设备上运行时出现以下错误 dyld Library not loaded
  • Xcode 7.3 beta 1 与 Swift 中的 CommonCrypto

    我在 Swift 框架中使用 CommonCrypto 它已经运行良好一年多了 我使用了这里找到的解决方案 在 Swift 框架中导入 CommonCrypto https stackoverflow com questions 25248

随机推荐

  • 使用 jquery 创建会话?

    是否可以使用 jquery 或 javascript 创建会话变量 或者我是否必须使用 ajax 来调用执行此操作的 php 您需要使用服务器请求 Javascript仅在客户端运行 会话数据存储在服务器上 example of passi
  • 将 CSV 文件转换为 TF 记录

    我已经运行我的脚本超过 5 个小时了 我有 258 个 CSV 文件想要转换为 TF Records 我编写了以下脚本 正如我所说 我已经运行它超过 5 个小时了 import argparse import os import sys i
  • JAX-WS 返回复杂对象?

    我对 Java Web 服务还很陌生 但我在任何地方都找不到很好的解释 我在 NetBeans 中有 2 个 Java Web 项目 一种作为 Web 服务 另一种作为该 Web 服务的客户端 我还创建了自己的类 名为 Person 其中包
  • 如何将 updateview 与foreignkey/onetoonefield一起使用

    class ModTool models Model issue models OneToOneField Issue priority models CharField max length 1 choices PRIORITY blan
  • 使用 formControlName 作为反应式形式的自定义输入组件

    有一个自定义输入组件 它以带有验证的反应形式使用 Component moduleId module id toString selector custom select templateUrl custom select componen
  • 根据另一个文件中的顺序对一个文件中的行进行排序

    给定一个文件1 13 a b c d 5 f a c d 7 d c g a 14 a v s d 和一个文件2 7 x 5 c 14 a 13 i 我想考虑 file2 中第一列的相同顺序对 file1 进行排序 以便输出应为 7 d c
  • Matlab mex“缺少依赖共享库”

    我在 Matlab 2017a 中创建了几个 mex 文件 当我使用 Visual Studio C 2017 编译它们时 它们在我的计算机上运行良好 但是 当我尝试在另一台计算机上使用它们时 我收到一条错误消息 Error using m
  • 如何在 SQLAlchemy 中查询关联表?

    我正在尝试将 SQL 查询转换为 SQLAlchemy 查询 以供用户在 get API 内使用 问题是我无法从关联表中查询任何内容 我确信我不知道该方法 ORM roles users db Table roles users db Co
  • 如何从XLS(Excel)文件读取数据[Java,Android]

    我搜索过 stackoverflow 但没有找到明确的答案 如何将 XLS 文件的特定行和列的数据读取到我的 Android 应用程序 如何读取 XLS 文件 我不想将其转换为 CSV 因为当我尝试转换它们时出现错误 也许我可以用这个htt
  • iOS 长宽比限制在 iOS 7 上被打破,在 iOS 8 上工作

    在我的应用程序中 我设置了 UIView 的约束 其高度是使用宽高比约束从其宽度计算出来的 它在各种设备屏幕尺寸 3 5 4 4 7 5 5 的 iOS8 上完美运行 但它会导致应用程序在每个 iOS7 设备上崩溃 我认为这是纵横比约束 因
  • 使用两个不同类型的 Guava ListenableFutures 的结果

    我有两个 ListenableFutures 它们在其他线程上完成 每个未来都有不同的类型 我希望在它们都完成时使用它们的结果 有没有一种优雅的方法来使用番石榴来处理这个问题 如果您想要某种类型安全 您可以执行以下操作 class Comp
  • 如何管理气流 dag 之间的 python 包?

    如果我有多个气流 dags 以及一些重叠的 python 包依赖项 我如何保留每个项目 deps 脱钩 例如 如果我在同一台服务器上有项目 A 和 B 我会用类似的东西运行它们 source path to virtualenv a act
  • 在 vue.js 中集成 Google 地图

    我一直在尝试在我的 vue js 项目上初始化 Google 地图 同时包含脚本 问题是我的 vue 文件看起来像这样
  • 3D 盒子上统一生成点

    我想在由 minx miny minz 和 maxx maxy maxz 角定义的 3D 盒子上生成随机点 我正在考虑在盒子内部生成一个随机点 然后以某种方式将其投影到盒子的一侧 但是 我没有盒子侧面的明确平面信息 这似乎不会产生均匀的点分
  • 特征问题:借用的数据逃逸到关联函数之外

    我正在尝试实现一个二叉树 我希望节点数据是分开的 因为有很多不同的方法可以实现这一点 而树上的算法应该是通用的并且独立于数据的存储方式 但我在借用检查器方面遇到了一个奇怪的问题 基本上 当我切换时impl
  • 自定义 GitHub Actions 中的新输出格式,因为 set-output 将被弃用

    根据 GitHub 最近的公告 github 行动的set output明年将被弃用 我能够使用新格式 echo name value gt gt GITHUB OUTPUT 在工作流程文件中 它可以工作 但我们也有一个用 python 编
  • 参数类型“PointerEvent”无法分配给参数类型“PointerDownEvent”

    最近我更新到了 flutter 2 5 和最新的 androids studio 并尝试将我的 flutter 项目编译到 android 设备 Android studio 向我抛出以下错误 如果我写flutter run在终端中编译到
  • 如何在java中使用StringToWordVector(weka)?

    这是我的arff文件 relation hamspam attribute text string attribute class ham spam data good ham very good ham bad spam very bad
  • 使 VBA 表单文本框仅接受数字(包括 +、- 和 .)

    我有简单的文本框 我想验证其输入 包括 和 这是我尝试过的 Private Sub DisplayValue TextBox Change If Not IsNumeric DisplayValue TextBox Value Then M
  • 学习 Web 开发时我应该使用框架吗

    我意识到这可能是主观的 但我确实需要一个答案 而且我似乎无法在论坛的其余部分中找到足够接近的答案 我读过一些人说框架 任何 MVC 框架 可能会掩盖太多的事情 而另一些人则说它可以促进良好的实践 我意识到框架对于一定水平的程序员来说非常有用