数据库文档、用于前置条件和后置条件的 API、博客以及更多内容
Scott Mitchell
一个 Click 数据库文档
在我的职业的过程中我见过多种技术用于记录结构和数据库的用途。大多数开发人员使用生成一个图示表示形式,然后调用它 a 那 Microsoft SQL Server 已经在数据库图表工具。虽然这是一个很好的第一步,就很少足够了。对于初学者和其他风险承担者共享的数据库关系图可能很困难充其量。(我有一个客户端发送电子邮件我数十种的组合在一起,stitched 屏幕快照组成一个大型数据库关系图)和类关系图通常非常小于适合大型数据库 ; 图中显示含有上百个表,很难阅读和理解。
肯定有用数据库关系图时有可能更好的工具,用于记录您的数据库。这样的一个工具是 BI 文档管理器 (版本 3.0) 用户友好的应用程序的自动生成 Microsoft SQL Server 数据库的文档。若要从开始启动 BI 文档管理器,并创建解决方案文件。解决方案文件指定要记录数据库,并维护历史记录的快照。快照是时间中特定的时间点的数据库已经结构的描述,并为您生成的 BI 文档管理器。上一个项目的寿命,数据库已经架构通常更改,有时显著 — 获取添加新表、 修改或删除,现有列获取索引可能会被添加或除去。请确保这些快照今天创建的文档可如实地再现将来。在生成该文档时您可以创建一个新的快照,当前的数据库架构的或可以重新生成以前快照从文档。
BI 文档管理器
选择文档到数据库,并创建快照之后所有的仍然是配置文档选项。已编译 HTML 帮助文件 (.chm) 或一系列 HTML 页,可以创建 BI 文档管理器。没有自定义在该文档,以及可以用于将徽标添加到每个页面颜色的设置。(可选) 您可以选择哪些数据库对象类型的文档和哪些省略。’s 怎么更 BI 文档管理器包括内置的数据库关系图创建功能工具,可以用来创建,并将数据库关系图添加到该文档。还可以导入您自己的 Microsoft Word 和图像文件。
生成的文档包括详细的指定的数据库对象包括用户、 角色、 索引、 触发器、 表,和更多的列表。查看有关特定表的信息列出表已经列、 触发器、 索引、 约束、 扩展属性,依赖项和创建表所需的 SQL 语句。表已经列、 触发器,和其他信息将显示为链接的,单击时,加载具有更多详细信息页。
BI 文档管理器是在三个版本中可用的:数据库、 企业,和工作组。企业和工作组版 Analysis Services 数据库、 集成服务包和报告服务的服务器可还记录时,Database Edition可以只有文档 Microsoft SQL Server 数据库。数据库版和专业版启用单个用户来创建工作组版允许多个用户进行协作时,该文档。
价格: $ 195 Database Edition的、 企业版 395 美元、 工作组版 495 美元
重要博客
我最近从事所涉及的现有的业务线 Windows Presentation Foundation (WPF) 应用程序添加新功能的项目。在该项目上我期间,我发现 Beth Massi 已经是 indispensible 的资源的网络日志。Beth 是在 Microsoft Visual Studio 社区小组的经理。Microsoft 已经频道 9 ( channel9.msdn.com ) 的网站浏览类似 LINQ、 实体框架、 WPF、 ADO.NET 数据服务,和 Microsoft Office 开发的主题和她的博客上她具有创建大量的提示、 技巧、 视频、 文章和教程。
大多数 Beth 已经网络日志项的描述特定的编程方案,然后显示了如何解决与 lucid 的分步指导,大量的屏幕快照和代码段和博客张贴内容和详细信息的文章的链接。渚嬪标题为 “ 大纲细节数据绑定中 WPF 与实体框架 ” 的网络日志项开始通过遍历创建实体数据模型通过读取器。Beth 然后显示了使用 LINQ 拉回相应的明细数据记录的不同方法。编写类似样式的其他网络日志项包括在其他许多人之间 “ 使用 tableadapter 到插入相关数据单的 MS Access 数据库 ” 和 “ 调行在 A DataSet 的匹配 A 条件,”。
什么使 Beth 已经博客突出是 Visual Basic 她热情。所有 Beth 已经代码示例是在 VB 中,她经常张贴关于即将举行的语言功能如集合初始值设定项在 Visual Basic 10 中的支持。她还 interviewed 几个 Microsoft mvp 正在使用 VB,它们询问有关应用程序生成它们,他们喜欢的语言功能等等。可以看到这些面试 (以及其他类似于它们),在频道 9 ( channel9.msdn.com/tags/MVP ) 和在 “ 我 ’m 一个 VB ” 网站, 的 imavb.net。
Beth Massi 博客
用于 Fluent API Pre-和 Post-Conditions
当调用一个方法时,它期望其环境处于特定状态,在其执行之前 ; 它也可能会认为某些条件容纳一旦执行完成。这些假设被称为 pre-conditions 和 post-conditions。pre-conditions 通常应用于方法已经输入参数。渚嬪.NET Framework Framework的文件中类已经 ReadAllText 方法接受作为输入文件的路径,并返回一个字符串作为文件的内容。inputted 的文件路径不能为零长度字符串包含只有空白字符或包含无效的文件路径中的任意字符 ; 它不能为空 ; 和它的长度不能超过系统定义最大文件路径长度。如果这些前提条件的任何不满足 ReadAllText 方法将引发异常。
预生成和 post-conditions 通常使用一系列条件语句中 的 图 1 所示实现。CuttingEdge.Conditions (版本 1.0) 由金士车 Deursen,启动一个开放源项目提供一个 fluent 接口用于指定预生成和 post-conditions。(fluent 接口是通过使用的描述性的名称和方法链的可读性会最大化一个 API 设计样式。
图 1 Pre-和实现使用条件的 Post-Conditions
public string ReadAllText(string path)
{
// Pre-conditions...
if (path == null)
throw new ArgumentNullException(...);
if (path.Length == 0)
throw new ArgumentException(...);
if (IsOnlyWhitespace(path) ||
ContainsInvalidCharacters(path))
throw new ArgumentException(...);
if (path.Length >
GetMaximumFilePathLength())
throw new PathTooLongException(...);
// Open file and read and return contents
as string...
object contents = GetFileContents(path);
// Post-conditions
if (!contents is string)
throw
new InvalidFileTypeException(...);
if (string.IsNullOrEmpty(
(string) contents))
throw new EmptyFileException(...);
}
若要将一个 pre-condition 应用上一个输入的参数、 属性,或变量,使用所要求的扩展方法 ; 对于 post-conditions,使用确保扩展方法。 这两种方法返回一个可用于应用规则检查,如 IsNotNull、 IsNotEmpty,和 IsEqualTo,以及许多其他方法的主机的验证程序 object。 图 2 显示为 图 1 中,相同的方法,但使用 CuttingEdge.Conditions API 实现该预生成和 post-conditions。
图 2 Pre-和实现使用 CuttingEdge.Conditions Post-Conditions
public string ReadAllText(string path)
{
// Pre-conditions...
path.Requires()
.IsNotNull()
.IsNotEmpty()
.Evaluate(!IsOnlyWhitespace(path)) &&
!ContainsInvalidCharacters(path),
"path contains whitespace only or
invalid characters")
.Evaluate(p => p.Length <=
GetMaximumFilePathLength());
// Open file and read and return contents
// as string...
object contents = GetFileContents(path);
// Post-conditions
contents.Ensures()
.IsOfType(typeof(string))
.IsNotNull()
.IsNotEmpty();
}
每个验证程序的方法调用 — IsNotNull,IsNotEmpty,等 — — 如果不符合该条件将引发异常。 渚嬪空路径是否 IsNotNull 方法调用将引发一个 ArgumentNullException。 然后,可以选择提供一个字符串,用作异常已经消息。
无法使用验证程序类已经内置鏂规硶涔嬩竴表示有时前或 post-condition。 在这种情况下有两个选项。 您可以验证程序类上创建扩展方法,也可以使用哪些可用于指定布尔值或 lambda 表达式计算的评估方法。 如果该表达式返回 true,处理继续 ; 如果返回 false,则引发异常。 图 2 阐释了使用 pre-conditions 部分中的这两种形式的评估方法。
价格: 免费的打开的源
conditions.codeplex.com
书架
ASP.NET MVC 是一个相对较新的框架,添加到 ASP.NET 堆栈,使开发人员创建 Web 应用程序使用模型-视图-控制器 (MVC) 模式。 它不同于传统的 Web 窗体开发模型在许多方面。 对于初学者 ASP.NET MVC 提供更多控制呈现的标记,并提供的问题更明显分离。 使用简洁、 SEO 友好的 url 访问 web 页。 并 MVC 体系结构允许进行更好的可测试性。 如要更深入了解 ASP.NET MVC 和 Web 窗体之间差异,请参阅 Dino Esposito 已经在七月 2009年问题 ( msdn.microsoft.com/magazine/dd942833.aspx ) 中的文章。
入门 ASP.NET MVC 因两个框架之间许多差异甚至对于经验丰富 ASP.NET 开发人员涉及学习曲线的位。 渚嬪 Visual Studio 中创建一个 ASP.NET MVC 应用程序时, 都提示创建单元测试项目。 使用 ASP.NET MVC 您设计与几个帮助器类一起使用 HTML 网页 — 没有 Web 控件拖到绘图页上。 和与不同的 Web 表单没有内置在回发或 Web 控件事件模型。 以短有大量的新技术来学习时向 ASP.NET MVC 移动 Web 窗体。
如果您是向有经验的 ASP.NET 开发人员想要了解 ASP.NET MVC、 签出 Stephen Walther 已经最新簿,“ ASP.NET MVC 框架 Unleashed ” (Sams,2009年),中间。 Walther 不会引入新的概念,并显示如何使用它们的极好作业 — 无需大量信息的一个 avalanche 与读取器。
Unleashed 的 ASP.NET MVC 框架
简介册开头 ASP.NET MVC 的简短概述 — — 新的框架,其设计目标和好处后面动机。 接下来 500 页引导读者通过一次的 ASP.NET MVC 的关键方面。 读取器首先,学习如何在 Visual Studio 中如何创建新的 ASP.NET MVC 应用程序将在数据库模型、 视图和控制器添加到该项目和方式等。 接下来 100 页浏览模型、 视图和控制器的详细信息。 每个概念清楚地描述和伴随在 C# 和 Visual Basic 中的屏幕快照和代码示例。 后面的章节查看 HTML 帮助者察看可用 ; 浏览技术验证窗体数据 ; 并分割 ASP.NET MVC 已经 URL 路由功能。 也是在身份验证、 AJAX、 jQuery 和部署上的各章。
之后检查 ASP.NET MVC 的核心各部分中单独章节详细,和几个简单练习杈呭姪璁惧鑳藉与简介册完成有构建实际的 ASP.NET MVC Web 应用程序的端对端示例。 通过 150 页传播此最终项目 cements 研究早期的各章中的概念,并突出显示很多 ASP.NET MVC 框架的优点。
价格: $49.99
samspublishing.com
Scott Mitchell , 作者的大量书籍和 founder 的 4GuysFromRolla.com 是自 1998年后已被使用 Microsoft Web 技术的 MVP。 Mitchell 是独立的顾问、 培训师和编写器。 到达他在 的 Mitchell@4guysfromrolla.com 或通过在 的 ScottOnWriting.net 他博客。