65.9K
CodeProject 正在变化。 阅读更多。
Home

100 个 ASP.NET 常见问题解答:第一部分

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.89/5 (41投票s)

2005年8月17日

8分钟阅读

viewsIcon

73624

本题库旨在为各类 .NET 爱好者提供电子资源:无论是为即将到来的面试需要了解细枝末节的新手,还是希望巩固框架知识的专家。

引言

本题库旨在为各类 .NET 爱好者提供电子资源:无论是为即将到来的面试需要了解细枝末节的新手,还是希望巩固框架知识的专家。本题库已分为四个部分,每部分包含 25 个问题,重点关注以下主题。

  • ASP.NET 框架 1.0/1.1/2.0
  • 安全
  • SQL Server 2000/2005
  • COM/COM+
  • Web 服务
  • 架构/设计

ASP.NET 框架 1.0/1.1/2.0

  1. 创建和运行 ASP.NET 应用程序需要什么?
    • Windows 2000、Windows Server 2003 或 Windows XP。
    • ASP.NET,可以是可再发行组件(包含在 .NET SDK 中)或 Visual Studio .NET。
  2. 在哪里可以下载 .NET SDK?

    .NET SDK 可在此处获得:此处

    (在安装 .NET SDK 之前,您必须安装 Microsoft .NET Framework 1.1 版本可再发行组件包。)

  3. 是否有适用于 .NET SDK 的免费 IDE?
    • Microsoft 免费提供 Visual Studio 2005 Express Edition Beta。ASP.NET 开发人员尤其会关注 Visual Web Developer 2005 Express Edition Beta 2,它可免费下载
    • ASP.NET Web Matrix Project(由 Microsoft 支持)是一款用于开发 ASP.NET 应用程序的免费 IDE,可在此处获取:此处
    • 还有一个名为 Mono 的免费开源 UNIX 版本 Microsoft .NET 开发平台,可在此处下载:此处
    • 另一个日益流行的 .NET 开源开发环境是 #develop(SharpDevelop 的缩写),可在此处下载:此处
  4. ASP.NET 是何时发布的?

    ASP.NET 是 .NET 框架的一部分,该框架于 2002 年作为软件平台发布。

  5. 是否有新版本即将发布?

    ASP.NET 2.0、Visual Studio 2005 (Whidbey)、Visual Web Developer 2005 Express Edition 是 Microsoft Web 平台和工具的下一批版本。它们已经发布了 Beta 版本。预计将于 2005 年 11 月 7 日那一周发布。

  6. 解释命名空间。

    命名空间是程序中使用的一组名称的逻辑分组。单个应用程序代码中可以有多个命名空间,这些命名空间根据标识符的使用进行分组。任何给定标识符的名称在其命名空间中只能出现一次。

  7. 列出 ASP.NET 支持的身份验证类型。
    • Windows(默认)
    • 表单
    • Passport
    • 无(安全已禁用)
  8. 什么是 CLR?

    公共语言运行时 (CLR) 是一个运行时环境,它管理 .NET 代码的执行并提供内存管理、调试、安全等服务。CLR 也称为虚拟机执行系统 (VES)。

  9. 什么是 CLI?

    CLI 是一组运行时环境的规范,包括公共类型系统、基类库以及一种称为公共中间语言 (CIL) 的与机器无关的中间代码。(来源:Wikipedia。)

  10. 列出页面加载生命周期的各个阶段。
    • Init()
    • Load()
    • PreRender()
    • Unload()
  11. 解释程序集和清单。

    程序集是零个或多个文件的集合,其中一个文件(DLL 或 EXE)包含称为程序集清单的特殊元数据。清单以二进制数据形式存储,包含有关程序集的版本要求、作者、安全权限以及构成程序集的文件的列表等详细信息。每当构建一个 DLL 时,就会创建一个程序集。可以通过使用 System.Reflection 命名空间中的类以编程方式查看清单。可以使用中间语言反汇编器 (ILDASM) 工具来完成此目的。可以从命令提示符或通过“开始”>“运行”启动它。

  12. 什么是影子复制?

    为了在实时 Web 服务器上替换 COM 组件,必须停止整个网站,复制新文件,然后重新启动网站。这对于需要始终运行的 Web 服务器来说是不可行的。.NET 组件则不同。它们可以通过一种称为影子复制的机制随时覆盖。它防止 DLL 和 EXE 等可执行文件被锁定。每当发布新版本的 PE 文件时,CLR 都会自动检测它们,并自动加载更改的组件。它们将用于处理所有当前未执行的新请求,而旧版本仍将继续处理当前执行的请求。通过淘汰旧版本,更新即可完成。

  13. 什么是 DLL Hell?

    DLL Hell 是指安装一个新应用程序可能会破坏或阻碍其他应用程序的问题,因为新的 DLL 文件会被复制到系统中,而旧的应用程序不支持或与它们不兼容。.NET 通过支持在任何给定时间存在多个程序集版本来克服此问题。这也称为并行组件版本控制。

  14. 解释 Web 服务。

    Web 服务是可编程的业务逻辑组件,可通过 Internet 访问其功能。HTTP 等标准协议可用于访问它们。Web 服务基于简单对象访问协议 (SOAP),它是 XML 的一种应用。Web 服务具有 .asmx 扩展名。

  15. 解释 Windows 窗体。

    Windows 窗体用于开发 Windows GUI 应用程序。它是一个类库,使开发人员能够访问具有丰富功能的 Windows 公共控件。它是 .NET Framework 支持的所有语言的通用 GUI 库。

  16. 什么是回发?

    当发生某个操作(例如单击按钮)时,包含 <FORM... > 标记内所有控件的页面会执行 HTTP POST,并将自身作为目标 URL。这称为回发。

  17. 解释服务器端代码和客户端代码之间的区别?

    服务器端脚本意味着所有脚本都将在服务器上执行并按需进行解释。客户端脚本意味着脚本将在浏览器中立即执行,例如字段验证、时钟、电子邮件验证等。客户端脚本通常使用 VBScript 或 JavaScript 完成。由于代码包含在 HTML 页面中,任何人都可以通过查看页面源代码来查看代码。它还可能对客户端计算机构成安全隐患。

  18. 列举指令的类型。
    • @ Page 指令
    • @ Import 指令
    • @ Implements 指令
    • @ Register 指令
    • @ Assembly 指令
    • @ OutputCache 指令
    • @ Reference 指令
  19. 什么是代码隐藏?

    代码隐藏是一种概念,其中页面的内容在一个文件中,而服务器端代码在另一个文件中。这使得不同的人可以同时处理同一页面,并且可以轻松地重新设计页面的任一部分,而无需更改另一部分。在 @ Page 指令中添加 Inherits 属性,以将代码隐藏文件的位置指定给 ASP.NET 页面。

  20. 描述内联代码和代码隐藏之间的区别。

    内联代码与页面中的 HTML 一起编写。设计代码和逻辑代码之间没有单独的区别。代码隐藏是在单独的文件中编写的代码,由 .aspx 页面引用。

  21. 列出 ASP.NET 验证控件?
    • RequiredFieldValidator(必填字段验证器)
    • RangeValidator(范围验证器)
    • CompareValidator
    • RegularExpressionValidator
    • CustomValidator(自定义验证器)
    • ValidationSummary
  22. 什么是数据绑定?

    数据绑定是一种用于将数据集合(例如 DataSet)中的值连接到 Web 窗体上的控件的方式。数据集中的值会自动显示在控件中,而无需编写单独的代码来显示它们。

  23. 描述 ASP.NET 中的分页。

    ASP.NET 中的 DataGrid 控件支持轻松的数据分页。可以将 DataGridAllowPaging 属性设置为 True 来执行分页。ASP.NET 会自动执行分页,并根据为 PagerStyle.Mode 设置的属性以不同样式提供指向其他页面的超链接。

  24. 用户输入数据的验证应该发生在服务器端还是客户端?为什么?

    所有用户输入数据的验证都应在服务器端进行,并在客户端进行最少的验证,尽管这可以减少服务器负载和网络流量,因为我们可以确保表单仅提交正确类型的数据。这完全不安全。用户可以看到用于验证的代码,并创建一个绕过它的方法。其次,处理数据的页面的 URL 在原始表单页面中是可见的。这将允许不诚实的用户将他们自己的表单数据发送到您的应用程序。客户端验证有时可以在认为合适且可行的情况下执行,以提供更丰富、更响应式的用户体验。

  25. Server.Transfer 和 Response.Redirect 之间有什么区别?
    • Response.Redirect:这会告知浏览器请求的页面可以在新位置找到。然后,浏览器会启动另一个请求到新页面,在浏览器中加载其内容。这会导致浏览器发出两个请求。
    • Server.Transfer:它会在服务器上将执行从第一个页面转移到第二个页面。就浏览器客户端而言,它只发出一个请求,并且初始页面是响应内容的页面。这种方法的优点是减少了客户端浏览器与服务器之间的往返次数。此外,任何已发布的表单变量和查询字符串参数都可用于第二个页面。
© . All rights reserved.