EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

在前面的教程中,您创建 MVC 应用程序中,存储和显示数据使用实体框架和 SQL 服务器 LocalDB。在本教程中,您会审查和自定义的 CRUD (创建、 读取、 更新、 删除) MVC 脚手架会自动为您在控制器和视图中创建的代码。

它是常见的做法,实施资源库模式,以创建您的控制器和数据访问层之间的一个抽象层。为了保持这些教程简单,不会直到后来在这个系列教程执行一个存储库。

在本教程中,您将创建以下 web 页:

EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

创建详细信息页

学生Index 页的搭建的代码排除在外的Enrollments属性,因为该属性包含一个集合。在Details 页中,您将显示在 HTML 表中的集合的内容。

Controllers\StudentController.csDetails视图的操作方法使用 Find方法检索单个Student实体。

public ActionResult Details(int id = 0)
{
Student student = db.Students.Find(id);
if (student == null)
{
return HttpNotFound();
}
return View(student);
}

注册表项值将传递给作为id参数方法和索引页上来自路网数据的Details的超链接。

  1. 打开Views\Student\Details.cshtml。每个字段显示使用的DisplayFor的帮手,如下面的示例所示:
        <div class="display-label">
    @Html.DisplayNameFor(model => model.LastName)
    </div>
    <div class="display-field">
    @Html.DisplayFor(model => model.LastName)
    </div>
  2. EnrollmentDate字段前后立即关闭fieldset标记中,添加代码以显示列表的招生名额,如下面的示例所示:

         <div class="display-label">
    @Html.LabelFor(model => model.Enrollments)
    </div>
    <div class="display-field">
    <table>
    <tr>
    <th>Course Title</th>
    <th>Grade</th>
    </tr>
    @foreach (var item in Model.Enrollments)
    {
    <tr>
    <td>
    @Html.DisplayFor(modelItem => item.Course.Title)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.Grade)
    </td>
    </tr>
    }
    </table>
    </div>
    </fieldset>
    <p>
    @Html.ActionLink("Edit", "Edit", new { id=Model.StudentID }) |
    @Html.ActionLink("Back to List", "Index")
    </p>

    此代码将遍历中Enrollments导航属性的实体。对于每个Enrollment实体的属性中,它显示课程标题和品位。从存储在Enrollments实体的Course导航属性的Course实体检索课程标题。所有这些数据是从数据库中检索自动当需要它时。(也就是说,您正在使用延迟加载在这里。您没有指定预先加载Courses导航属性,所以第一次尝试访问该属性,查询被发送到数据库以检索数据。你可以阅读更多关于延迟加载和读取相关数据教程稍后在本系列中的预先加载。)

  3. 通过选择Students选项卡并单击一个Details链接为Alexander Carson运行该页。您为所选的学生看到课程和成绩的列表:

    EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

更新创建页

  1. Controllers\StudentController.cs,用下面的代码将try-catch块和绑定属性添加到搭建方法替换HttpPostCreate操作方法:
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(
    [Bind(Include = "LastName, FirstMidName, EnrollmentDate")]
    Student student)
    {
    try
    {
    if (ModelState.IsValid)
    {
    db.Students.Add(student);
    db.SaveChanges();
    return RedirectToAction("Index");
    }
    }
    catch (DataException /* dex */)
    {
    //Log the error (uncomment dex variable name after DataException and add a line here to write a log.
    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
    }
    return View(student);
    }

    此代码将添加创建的 ASP.NET MVC 模型联编程序对Students主体性的Student实体集,然后将更改保存到数据库。(指容易你一起提交的表单数据的 ASP.NET MVC 功能的模型联编程序; 模型联编程序将已发布的窗体值转换为 CLR 类型,并将它们传递给操作方法的参数。在这种情况下,模型联编程序实例化一个Student实体为您使用的Form集合中的属性值。)

    ValidateAntiForgeryToken属性有助于防止跨站点请求伪造攻击。

    安全说明:Bind属性添加保护免受过度过帐。例如,假设Student实体包括你不想要此 web 页后,可以更新的Secret财产。

       public class Student
    {
    public int StudentID { get; set; }
    public string LastName { get; set; }
    public string FirstMidName { get; set; }
    public DateTime EnrollmentDate { get; set; }
    public string Secret { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; }
    }

    即使你没有一个Secret字段在 web 页上,黑客可以使用一种工具如fiddler,或者写一些 JavaScript,发布一个Secret窗体值。没有限制模型联编程序时它会创建一个Student实例,所使用的字段的绑定属性模型联编程序会拿起那Secret窗体值,用它来更新Student实体实例。然后无论价值黑客指定为Secret窗体字段将更新您的数据库中。下图显示了fiddler 工具 (与值"OverPost") 的Secret 字段中添加到已发布的窗体值。

    EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

    "OverPost"将然后将成功添加到 Secret属性插入行,虽然您从来没有打算 web 页将无法更新该属性的值。

    它是安全的最佳做法,Include参数用白名单中的字段的Bind属性。它也是可以到您想要排除的黑名单字段使用Exclude参数。Include是更安全的原因是当你向实体中添加新的属性,新的领域不会自动保护的Exclude列表。

    另一种替代方法,其中一个首选的许多人来说,是只查看模型使用模型绑定。视图模型包含只有您要绑定的属性。一旦完成了 MVC 模型联编程序,您将查看模型属性复制到的实体实例。

    除了在Bind属性try-catch块是搭建代码对您已经的更改。如果所做的更改在保存时,会捕获异常从DataException派生,显示一般错误消息。DataException异常有时是由外部的应用程序,而不是一个编程错误,某个东西导致的所以建议用户再试一次。虽然在此示例中未实施,生产高质量的应用会记录日志记录机制如ELMAH异常 (和非 null 内部异常).

    Views\Student\Create.cshtml中的代码类似于你看到在Details.cshtml,只是为每个字段而不是 DisplayFor使用EditorFor ValidationMessageFor的佣工。下面的示例显示了相关代码:

    <div class="editor-label">
    @Html.LabelFor(model => model.LastName)
    </div>
    <div class="editor-field">
    @Html.EditorFor(model => model.LastName)
    @Html.ValidationMessageFor(model => model.LastName)
    </div>

    Create.chstml还包括@Html.AntiForgeryToken(),其作品中的控制器有助于防止跨站点请求伪造攻击的ValidateAntiForgeryToken属性。

    不需要更改在Create.cshtml.

  2. 运行该页面选择学生选项卡,然后单击Create.

    EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

    一些数据验证的工作原理,默认情况。输入名称和无效的日期并单击 Create以查看错误消息。

    EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

    以下突出显示的代码演示模型验证检查。

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(Student student)
    {
    if (ModelState.IsValid)
    {
    db.Students.Add(student);
    db.SaveChanges();
    return RedirectToAction("Index");
    } return View(student);
    }

    把日期改到一个有效的值,如 2005/9/1 并单击创建要看见出现在index页中的新学生。

    EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

更新编辑文章页面

Controllers\StudentController.csHttpGetEdit方法 (没有HttpPost属性的一个) 使用Find方法检索所选的Student实体,正如您看到的Details方法。您不需要更改此方法。

但是,使用以下代码,以添加try-catch块和绑定属性替换HttpPost Edit操作方法:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(
[Bind(Include = "StudentID, LastName, FirstMidName, EnrollmentDate")]
Student student)
{
try
{
if (ModelState.IsValid)
{
db.Entry(student).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch (DataException /* dex */)
{
//Log the error (uncomment dex variable name after DataException and add a line here to write a log.
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
}
return View(student);
}

此代码是类似于您在HttpPost Create方法中看到。然而,而不是添加创建的模型联编程序到实体集的实体,此代码指示已更改的实体上设置一个标志。当调用SaveChanges方法时,修改国旗导致实体框架来创建 SQL 语句要更新的数据库行。将更新的数据库行的所有列,其中包括用户没有更改,并且忽略并发冲突。(您将了解如何处理并发稍后在本系列教程中)。

实体状态和附加 SaveChanges 方法

跟踪的数据库上下文是否在内存中的实体与它们相应的行在数据库中,同步此信息确定调用SaveChanges方法时,会发生什么。例如,当你传递给Add方法的一个新的实体,该实体的状态将设置为Added。然后当你调用SaveChanges方法,数据库上下文发出 SQLINSERT命令。

实体可以处于以下状态之一:

  • Added。该实体不存在尚未在数据库中。SaveChanges方法必须发出一个INSERT语句。
  • Unchanged。什么都不需要去做与此实体SaveChanges法。当您从数据库中读取一个实体时,该实体开始与这种地位。
  • Modified。某些或所有实体的属性值已被都修改。SaveChanges方法必须发出一个UPDATE语句。
  • Deleted。该实体已标记为删除。SaveChanges方法必须发出DELETE语句。
  • Detached。该实体不被跟踪的数据库上下文。

在桌面应用程序中,状态变化通常会自动设置。在桌面应用程序的类型中,您阅读的实体,并对一些其属性值进行更改。这将导致其实体的状态自动更改为Modified。然后当你调用SaveChanges,实体框架生成更新仅有实际的属性更改 SQLUPDATE语句。

Web 应用程序的已断开连接的性质不允许为此连续的序列。读取实体的DbContext被处置后呈现的页面。当调用HttpPost Edit操作方法、 发送新的请求和你有DbContext的一个新实例时,所以你必须手动将实体状态设置为Modified.然后当您调用SaveChanges,实体框架更新的数据库行的所有列,因为该上下文有没有办法知道哪些属性更改。

如果您想要更新用户实际更改的字段的 SQLUpdate语句,可以以某种方式 (如隐藏字段) 保存的原始值,以便调用HttpPost Edit方法时,他们是可用。然后可以Student使用创建实体的原始值,调用Attach方法与该实体的原始版本,更新到新的值,该实体的值,然后调用SaveChanges.更多的信息,请参阅实体状态和 SaveChanges和 MSDN 数据开发人员中心中的本地数据

Views\Student\Edit.cshtml中的代码类似于你看到在Create.cshtml,并没有修改的必要。

通过选择学生选项卡,然后单击Edit超链接运行该页。

EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

改变的一些数据,单击保存。你看到在索引页中更改的数据。

EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

更新删除页

Controllers\StudentController.csHttpGetDelete方法的模板代码使用Find方法检索所选的Student实体,正如您看到的DetailsEdit的方法。然而,若要实现自定义错误消息到SaveChanges调用失败时,您将向此方法和其相应的视图添加一些功能。

当你看到更新,并创建操作,删除操作需要两个操作方法。调用 GET 请求的响应的方法显示一个视图,使用户有机会批准或取消删除操作。如果用户批准它,则会创建一个 POST 请求。当发生这种情况时, HttpPost Delete方法称为,然后该方法实际上执行删除操作。

你会将try-catch块添加到HttpPost Delete方法,以处理对数据库进行更新时可能会出现的任何错误。如果发生错误,该HttpPost Delete方法调用HttpGet Delete方法,传递给它的参数,指示发生了错误。HttpGet Delete方法然后重新显示确认页和错误消息,使用户有机会取消或再试一次。

  1. 用下面的代码管理错误报告取代HttpGetDelete操作方法:
    public ActionResult Delete(bool? saveChangesError=false, int id = 0)
    {
    if (saveChangesError.GetValueOrDefault())
    {
    ViewBag.ErrorMessage = "Delete failed. Try again, and if the problem persists see your system administrator.";
    }
    Student student = db.Students.Find(id);
    if (student == null)
    {
    return HttpNotFound();
    }
    return View(student);
    }

    这段代码接受一个可选的布尔参数指示是否它被称为后未能保存的更改。HttpGet Delete方法调用没有重复以前的错误时,此参数为false 。当它对数据库更新错误的响应HttpPost Delete方法调用时,参数为true和一条错误消息传递给视图。

  2. 下面的代码,执行实际的删除操作,并捕获任何数据库更新错误替换HttpPost Delete操作方法 (名为DeleteConfirmed)。

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Delete(int id)
    {
    try
    {
    Student student = db.Students.Find(id);
    db.Students.Remove(student);
    db.SaveChanges();
    }
    catch (DataException/* dex */)
    {
    // uncomment dex and log error.
    return RedirectToAction("Delete", new { id = id, saveChangesError = true });
    }
    return RedirectToAction("Index");
    }

    此代码检索所选的实体,然后调用Remove方法,将该实体的状态设置为Deleted。当调用SaveChanges时,生成 SQLDELETE的命令。Delete,也有从DeleteConfirmed 改变操作方法的名称。搭建的代码命名为DeleteConfirmed ,给出了HttpPost方法独特的签名HttpPost Delete方法。(CLR 需要有不同的方法参数的重载的方法)。现在,签名是独一无二的你可以坚持使用 MVC 公约并使用HttpPost相同的名称,HttpGet删除方法。

    如果在一个高容量应用程序提高性能是一个优先事项,你可以避免不必要的 SQL 查询,以检索行通过替换调用FindRemove的方法,用下面的代码,黄色突出显示框所示的代码行:

    Student studentToDelete = new Student() { StudentID = id };
    db.Entry(studentToDelete).State = EntityState.Deleted;

    此代码实例化一个Student实体使用唯一主键值,然后将实体状态设置为Deleted。这是所有实体框架所需删除的实体。

    正如所指出,HttpGet Delete方法不会删除数据。执行删除操作响应 GET 请求 (或对于那件事,执行任何编辑操作,创建操作或更改数据的任何其他操作) 会产生安全风险。有关更多信息,请参见ASP.NET MVC 提示 #46 — — 不要使用删除链接,因为它们创建安全漏洞Stephen 瓦尔特的博客上。

  3. Views\Student\Delete.cshtml,添加一条错误消息之间的h2标题和h3标题中,如下面的示例所示:

    <h2>Delete</h2>
    <p class="error">@ViewBag.ErrorMessage</p>
    <h3>Are you sure you want to delete this?</h3>

    运行页上选择学生选项卡,然后单击删除超链接:

    EntityFramework_MVC4中EF5 新手入门教程之二 ---2.执行基本的 CRUD 功能

  4. 单击删除。没有删除学生显示索引页。(您将看到的错误处理代码在处理并发教程稍后在这一系列行动中的示例。)

确保该数据库的连接是否关闭了

为了确保正确关闭数据库连接和他们持有腾出的资源,你应该看到它释放上下文实例。这就是为什么搭建的代码提供Dispose方法末尾的StudentController类中StudentController.cs,如下面的示例所示:

protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}

Controller基类已经实现IDisposable接口,所以这段代码只是添加重写Dispose(bool)方法来显式处理上下文实例。

摘要

你现在有一套完整的执行简单的 CRUD 操作,为Student实体的页面。MVC 佣工用于生成数据字段的 UI 元素。MVC 佣工有关的详细信息,请参见呈现的窗体使用 HTML 帮助器(页面是 MVC 3 但仍然相关的 MVC 4)。

在接下来的教程中会展开索引页的功能,通过添加排序和分页。

a{right:0;position:absolute;top:5px}.common-list-horz li.icon-announce{width:65px;min-height:65px;background:url(../images/ui/home-announcements-icon.png?cdn_id=i72) 0 0 no-repeat #969696}.common-list-horz li.icon-spotlight-lrg{display:block;text-decoration:none;width:45px;height:40px;background:url(../images/ui/dialog.png?cdn_id=i72) 0 0 no-repeat transparent;position:relative;margin-left:7px;margin-right:30px;margin-top:-10px}.common-list-horz li.icon-whatsnew-lrg{display:block;text-decoration:none;width:40px;height:40px;background:url(../images/ui/icon_new.png?cdn_id=i72) 0 0 no-repeat transparent;position:relative;margin-left:7px;margin-right:30px;margin-top:-10px}.common-list-horz li.icon-announcements-lrg{display:block;text-decoration:none;width:40px;height:40px;background:url(../images/ui/icon_announcement.png?cdn_id=i72) 0 0 no-repeat transparent;position:relative;margin-left:7px;margin-right:30px;margin-top:-10px}.common-list-horz .common-section-head{margin:0;padding:0;border:0}.get-started .hero{margin-bottom:45px;padding:35px 0 0 40px;width:1140px;height:215px;background-color:#efefef}.get-started .hero h1{margin-bottom:12px;font-size:32px;color:#000}.get-started .hero>p{margin-bottom:30px}.get-started .col-left{width:820px;padding:0 30px 0 0;border-right:1px solid #d2d2d2}.get-started .col-right{width:300px;padding:0 0 0 29px}.get-started .landing-nav{width:100%;border-top:1px solid #d2d2d2;margin-bottom:30px;padding:11px 0 0 0}.get-started .landing-nav:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.get-started .landing-nav h2{margin-bottom:14px;font-size:1.308em;font-weight:bold}.get-started .landing-nav h3{font-weight:bold;line-height:1;margin-bottom:7px}.get-started .landing-nav .excerpt{margin:0;color:#000;min-height:125px}.get-started .landing-nav a.tech-model{display:block}.get-started .landing-nav a.tech-model:hover{background-color:#f0f0f0;text-decoration:none}.get-started .landing-nav a.tech-model h3{color:#267cb2}.get-started .landing-nav a.tech-model:hover h3{text-decoration:underline}.get-started .landing-nav .module-one-col{width:202px;float:left;margin-right:30px}.get-started .landing-nav .module-two-col{width:368px;float:left}.get-started .module-two-col .module-left{margin-right:10px}.get-started .module-two-col .module-left,.get-started .module-two-col .module-right{width:178px;float:left}.get-started .btn-install .label{padding-left:5px}.get-started .content-mod{border-bottom:1px solid #d2d2d2;padding-bottom:30px;margin:0 0 30px 0;overflow:hidden}.get-started .content-mod div{margin-right:39px;width:23%}.get-started .content-mod div.content-txt{min-width:67%}.get-started .content-mod div.float-left{float:left}.get-started .content-mod div.float-right{float:right}.get-started .content-mod a.thumb-vid{border:1px solid #d2d2d2;display:block;width:189px;height:107px;background:url(../images/ui/get-started-thumb-fpo.png?cdn_id=i72) 0 0 no-repeat transparent}.get-started .content-mod a.thumb-vid.websites{background-image:url(../images/ui/getstarted-thumb-websites.png?cdn_id=i72)}.get-started .content-mod a.thumb-vid.api{background-image:url(../images/ui/getstarted-thumb-api.png?cdn_id=i72)}.get-started .content-mod a.thumb-vid.realtime{background-image:url(../images/ui/getstarted-thumb-realtime.png?cdn_id=i72)}.get-started .content-mod a.thumb-vid.mobile{background-image:url(../images/ui/getstarted-thumb-mobile.png?cdn_id=i72)}.get-started .content-mod a.thumb-vid.tools{background-image:url(../images/ui/getstarted-thumb-tools.png?cdn_id=i72)}.get-started .content-mod a.thumb-vid.webforms{background-image:url(../images/ui/getstarted-thumb-web-forms.png?cdn_id=i72)}.get-started .content-mod a.thumb-vid.mvc{background-image:url(../images/ui/getstarted-thumb-mvc.png?cdn_id=i72)}.get-started .content-mod a.thumb-vid.webpages{background-image:url(../images/ui/getstarted-thumb-wmx.png?cdn_id=i72)}.get-started .content-mod a.thumb-vid span{display:block;width:189px;height:107px;background:url(../images/ui/get-started-play-icon.png?cdn_id=i72) center center no-repeat transparent}.get-started .content-mod h2,.customer-mod h2,.case-studies-mod h2{font-size:18px;font-weight:600;color:#000}.module-intro h3{font-size:1.308em;font-weight:bold;margin-bottom:14px}.module-intro .post-thumb{margin:0 16px 5px 0}.get-started .col-left .play-button{background-position:-219px 148px}.get-started .col-left .play-button:hover{background-position:-820px 148px}.get-started .col-right .play-button{background-position:-442px 36px}.get-started .col-right .play-button:hover{background-position:-1043px 36px}.module-jumpstart .post-thumb{float:none}.module-jumpstart img{width:100%}.module-jumpstart .post-duration{font-size:1em;margin-top:5px}.module-jumpstart{color:#363636;margin-bottom:50px}.module-jumpstart h2{font-size:1em;text-transform:uppercase;color:#363636;margin-bottom:8px;font-weight:bold}.customer-mod .border-bottom,.module-jumpstart .border-bottom{border-bottom:1px solid #d2d2d2;padding:0 0 14px 0;margin:0 0 30px 0}.module-jumpstart .border-bottom{margin-bottom:15px}.customer-mod-list{width:810px;height:320px;list-style:none;margin:0 0 30px 0;border-bottom:1px solid #d2d2d2}.customer-mod-list li{float:left;width:202px;height:90px}.customer-mod-list a{margin:10% auto;display:block;text-indent:-999em;background:url(../images/content/ASP-NET-Customers.png?cdn_id=i72) no-repeat 0 -999em}.customer-mod-list .logo-woot{width:118px;height:41px;top:25%;background-position:0 -12px}.customer-mod-list .logo-cheezburger{width:81px;height:57px;left:269px;background-position:-269px -10px}.customer-mod-list .logo-3m{width:86px;height:49px;left:516px;top:8px;background-position:-516px -8px}.customer-mod-list .logo-getty-images{width:112px;height:28px;left:1px;top:109px;background-position:-1px -109px}.customer-mod-list .logo-thinkstock{width:129px;height:27px;left:242px;top:109px;background-position:-242px -109px}.customer-mod-list .logo-*{width:127px;height:38px;left:475px;top:97px;background-position:-475px -97px}.customer-mod-list .logo-british-museum{width:94px;height:52px;left:0;top:172px;background-position:0 -172px}.customer-mod-list .logo-kbb{width:128px;height:49px;left:247px;top:181px;background-position:-244px -181px}.customer-mod-list .logo-usair{width:143px;height:17px;left:462px;top:197px;background-position:-462px -197px}.customer-mod-list .logo-bing{width:82px;height:38px;left:4px;top:281px;background-position:-2px -281px}.customer-mod-list .logo-xbox{width:89px;height:55px;left:270px;top:267px;background-position:-270px -267px}.customer-mod-list .logo-msnbc{width:112px;height:28px;left:493px;top:276px;background-position:-493px -276px}.post-thumb{display:block;float:left;position:relative}.samples h1{color:#000;background:#fff;padding-bottom:10px;margin:0 0 5px 0}.samples .col-left{width:820px;padding:0 30px 0 0;border-right:1px solid #d2d2d2}.samples .col-right{width:300px;padding:0 0 0 29px}.samples .content-wrap{padding:20px 25px 0 0}.samples .content-wrap .common-post{min-height:1%;border-bottom:1px solid #d2d2d2;padding:0 0 22px 0}.samples .content-wrap .common-post h3,.samples .content-wrap .common-post p{margin:0 5px 5px 90px}.samples .content-wrap a img{margin:15px 0 0 20px}.chapter-content .common-post{min-height:1%;padding:0 0 25px 0;margin:0}.learn .hero{margin:-40px 0 40px 0;padding:35px 0 0 40px;width:1140px;height:215px;background-color:#0054a3}.learn .hero-small.webmatrix{background:url(../images/ui/webmatrix-icon-small.png?cdn_id=i72) 10px 7px no-repeat #004082}.learn .hero-small-2{color:#fff}.learn .hero-small-2 a{color:#6cb200}.learn .hero .hero-leftcontent h1{margin-bottom:12px;font-size:32px;color:#fff}.learn .hero .hero-leftcontent p{margin-bottom:30px;color:#fff}.module-chapters{width:239px;float:left;border-right:1px solid #d2d2d2}.module-chapters.extended{width:315px;float:left}.module-chapters .ad a{color:#2186c6}.content-box{padding:5px 15px 5px 15px;border-left:1px solid #d2d2d2;border-right:1px solid #d2d2d2;border-bottom:1px solid #d2d2d2;background:#3a597c}.chapter-box h2{color:#fff;font-size:1.077em}.chapter-box ol,.content-box ul{margin:0;list-style:none}.content-box li{margin:0}.content-box a{display:block;margin:0 -15px;padding:5px 20px}.content-box a:hover{background:#2b496c;text-decoration:none}.content-box a.selected{background:#2b496c}.chap-num{display:block;float:left}.chap-title{display:block;margin-left:15px}.chap-title.greater-than-ten{margin-left:22px}.sponsor-box{display:block;width:185px;padding:20px;background-color:#d2d2d2;font-size:12px;color:#505050;cursor:pointer}.chapter-title{color:#363636;font-size:1.385em;font-weight:500;margin-bottom:16px;line-height:1.3em}.chapter-heading{font-weight:normal;color:#737d86;font-size:1.077em;font-weight:300;margin-bottom:10px}.chapter-content{margin:30px 0 0 30px}.toc-menu{margin-bottom:40px}.toc-menu ul{list-style:none;margin:0;overflow:hidden}.toc-menu ul ul{display:none}.toc-menu ul ul.active{display:block;margin:0}.toc-menu ul li{position:relative}.toc-menu ul li a{color:#000;display:block;font-size:14px;line-height:21px;padding:2px 0 7px 30px;text-decoration:none}.toc-menu ul li a.hasNew{padding-right:34px}.toc-menu ul.articles li a{padding-left:40px;padding-right:20px}.toc-menu ul.articles li a.hasNew{padding-right:34px}.toc-menu ul.subsections li a{padding-left:50px}.toc-menu ul.lists li a{padding:0 20px 0 60px;line-height:20px;margin-bottom:10px}.toc-menu ul li a.arrow{padding-right:0;width:30px;height:17px;position:absolute;top:0;left:-30px}.toc-menu ul li a.arrow span,.toc-menu ul li a.arrow.expanded span,.toc-menu ul li a.arrow.expanded.hover span,.toc-menu ul li a.arrow.hover span{display:block;margin:8px 0 0 10px;width:7px;height:7px;background:url(../images/ui/learn-toc-sprite.png?cdn_id=i72) 0 -7px no-repeat transparent}.toc-menu ul li a.arrow.expanded span{background-position:0 0}.toc-menu ul li a.arrow.expanded.hover span{background-position:0 -16px}.toc-menu ul li a.arrow.hover span{background-position:0 -23px}.toc-menu ul li a.hover{background-color:#0054a3;color:#fff}.toc-menu ul.lists li a.arrow span{background:none}.learn .col-main{width:820px;overflow:hidden;padding-right:30px;border-right:1px solid #d2d2d2}.learn .col-center{width:576px;border-left:1px solid #d2d2d2;margin-left:-1px}.learn .col-right{width:300px;padding:0 0 0 28px;border-left:1px solid #d2d2d2;margin-left:-1px}.important{background:none repeat scroll 0 0 #e7f4ff;border:1px solid #c9ddfa;margin:0 0 20px;padding:12px 15px}.important-heading{background:#ccc;font-size:16px;padding:6px 30px;margin:0 -35px 0 0;font-weight:bold}.important-heading p{margin:0}.important-description{background:url(../images/ui/chapter-icon.png?cdn_id=i72) 30px 25px no-repeat #eee;font-size:14px;color:#000;padding:25px 30px 25px 130px;margin-right:-35px;min-height:55px}.note,.sidebar{background:#ffffec;border:1px solid #e9e8c8;margin:18px 85px 18px 0;padding:12px 15px;position:relative}.note .dogear,.sidebar .dogear{height:14px;width:15px;z-index:1;display:block;position:absolute;top:-1px;right:-2px;background:url(../images/ui/sprite-article.png?cdn_id=i72) no-repeat 0 0}.note p,.sidebar p{margin:10px 0}.note strong,.sidebar strong{color:#000}.important .note .dogear{display:none}.common-list-steps.no-bullets{padding:0}.common-list-steps.no-bullets li{border-top:1px solid #d2d2d2;margin:20px 0 0 30px;padding:20px 0 0 0}.common-list-steps.no-bullets li:first-child{border:0;padding-top:10px}.common-list-steps.no-bullets li li,.common-list-steps.no-bullets li li:first-child{border:0;margin:0;padding:0}.common-list-steps.no-bullets li h3{font-size:16px;font-weight:600;margin-bottom:10px}.common-list-steps.no-bullets li h3 a.hasNew{padding-right:30px}.common-list-steps.no-bullets li p{font-size:14px;color:#000}.common-list-steps.no-bullets li p.details{margin-bottom:3px;font-size:12px;color:#505050}.col-right .keyline{margin:0 0 25px 0}.col-right-learn .social-bar{float:right}.col-right-learn .social-bar img{margin:-5px 0 0 0}.details{margin:0}.summary{margin-bottom:18px}.tbl-action{border:1px solid #e2e4e6;border-collapse:collapse}.tbl-action th{background:#f1f1f1;border-bottom:1px solid #e2e4e6;border-left:1px solid #e2e4e6;padding:10px 17px;font-weight:normal}.tbl-action th:first-child{border-left:1px solid #e2e4e6}.tbl-action td{padding:14px 17px;border-bottom:1px solid #e2e4e6;border-left:1px solid #e2e4e6}.tbl-action td:first-child{background:#f8f8f8;border-left:1px solid #e2e4e6}.module-confirm,.module-error,.module-processing{padding:18px 20px;margin-bottom:12px;text-align:center}.module-confirm p,.module-error p,.module-processing p{margin:0}.module-confirm{color:#000;background:#f3fce3;border:1px solid #cee1af}.module-processing{color:#000;background:#fff6bf;border:1px solid #ffd324}.module-error{color:#eb6666;background:#ffe5e5;border:1px solid #eb6666}.leave-feedback{width:400px;float:right}#comment-submit .common-btn{float:left;margin-top:3px}.leave-comment{border-top:1px solid #e5e5e5;width:100%;padding:30px 0 0 0}.leave-comment:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.leave-comment.module-comment .module-confirm{clear:both;margin-top:15px}.leave-comment.module-comment .module-error{clear:both;margin-top:15px}.leave-comment.module-comment .module-processing{clear:both;margin-top:15px}.leave-comment.module-comment .module-error p{clear:both}.leave-comment.module-comment .col-left{margin-right:0;border-right:0}.leave-comment.module-comment .col-right{width:518px;padding-left:0;margin-bottom:10px}.leave-comment.module-comment .col-comment:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.article-comments.module-comment .col-left{width:170px;padding:0;color:#737d86;margin-right:0;border-right:0}.article-comments.module-comment .col-right{width:500px;padding-left:0;margin-bottom:10px;float:left}.leave-comment .col-left h2{color:#737d86;font-size:1.308em;margin-bottom:5px}.module-comment{clear:both}.module-comment .col-left{width:100%;padding:0;color:#737d86}.module-comment .col-right{width:518px;padding-left:17px}.module-comment label{font-size:.923em}.module-comment-header{padding-bottom:5px;border-bottom:1px solid #d2d2d2}a.show-comments{font-size:.75em;float:right;margin-top:2px}.comments-status{float:left;margin-left:5px;margin-top:2px;clear:none;font-size:.75em;font-weight:bold;color:#507cbd}.article-comments{border-top:1px solid #d2d2d2;padding:22px 0 20px 0;color:#737d86}.article-comments .col-left{color:#737d86;margin:0;margin-top:1px;width:140px}.article-comments .col-left h2{font-size:1.308em}.article-comments .col-right{font-size:1.308em;margin:0}.article-comments .col-right a{vertical-align:middle}.article-comments ul{margin:0;list-style:none;clear:both;padding:0 0 10px 0}.article-comments li{width:100%;border-bottom:1px solid #c1c1c1;padding:10px 0;margin:0;position:relative}.article-comments li:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.article-comments li img{float:left;margin:0 0 0 80px}.article-comments li p{margin:0 0 9px 160px}.comment-details-left{float:left}.comment-details-right a{float:right;cursor:pointer;font-style:italic}#comment-list li img{float:left;margin:5px 0 9px 50px}.author-box.article{border-top:1px solid #e5e5e5;padding:22px 0}.download-box-article{border:1px solid #cee0b1;background:#f3fce4;margin:0 0 15px;padding:12px 15px;display:inline-block;position:relative;color:#242525;text-align:center}.download-box-article p{margin:0;font-size:1em;font-weight:600}.download-box-article .module-common-select{position:absolute;top:45px;left:50%;margin-left:-82px;width:auto;text-align:left}.download-box-article .common-select{width:164px}.article-content img{max-width:675px}.article-content .important ul{margin:0 0 0 15px;padding:0}.article-content .details-box.important ul{margin:0 0 18px 30px}.article-content ul ul{margin:5px 0 0 30px}.article-content li img{display:block;margin:18px 0}.article-content li .note,.article-content li .sidebar{margin-top:35px}.article-content li table{margin-top:10px}.article-content table{border:1px solid #e2e4e6;border-collapse:collapse}.article-content table th{background:#f1f1f1;border-bottom:1px solid #e2e4e6;border-left:1px solid #e2e4e6;padding:10px 17px;font-weight:normal;color:#242525}.article-content table th:first-child{border-left:1px solid #e2e4e6}.article-content table td{padding:14px 17px;border-bottom:1px solid #e2e4e6;border-left:1px solid #e2e4e6}.article-content table td:first-child{background:#f8f8f8;border-left:1px solid #e2e4e6}.article-content h1{margin-bottom:10px;font-size:32px;color:#000}.article-content h3{font-size:1.231em;margin-bottom:10px}.article-content h4{font-size:1.077em;margin-bottom:10px;font-style:italic}.article-content .common-sidebar-module h3{font-size:1em}h4.label{padding-top:10px}.article-content p.intro{font-size:14px;color:#000}.article-page-multi .col-left{width:230px;padding-right:23px}.article-page-multi .col-right{width:697px}.article-page-multi .article-title{width:676px}.article-page-multi .ad-120x90{width:240px;position:absolute;top:-25px;right:-274px}.article-content .common-sidebar-module h4{font-size:13px;font-style:normal}.article-page .col-left{overflow:hidden;padding-right:30px;border-right:1px solid #d2d2d2}.caption{display:block;margin-bottom:30px}.video-thumb-single{display:block;font-size:.846em;position:absolute;cursor:pointer;top:0;right:0}.video-thumb-single:hover{text-decoration:none}.video-thumb-single img{margin:0}.video-thumb-single .play_button{background-position:20px 11px}.video-thumb-single .play_button:hover{background-position:-150px 11px}p.video_thumb{position:relative;overflow:visible;padding:0 90px 0 0}.accordion:hover{cursor:pointer}.accordion span{display:inline-block;width:7px;height:7px;background:url(../images/ui/learn-toc-sprite.png?cdn_id=i72) no-repeat 0 -7px;margin-right:2px;margin-top:0;position:relative;top:-3px}.accordion.open span{background-position:0 0}.mark-fav{color:#fe9b00;background:url(../images/ui/sprite-sharebar-small.png?cdn_id=i72) no-repeat 0 1px;padding:0 0 2px 15px}.mark-complete{color:#3cae03;background:url(../images/ui/sprite-sharebar-small.png?cdn_id=i72) no-repeat 0 -39px;padding:0 0 2px 15px}.module-vid-player{padding:14px 15px;margin:0 0 20px 0;border:1px solid #d2d2d2;background:#eee;width:643px}.module-vid-player img{display:block;margin:0}.module-vid-details{position:relative}.author-box{clear:both;padding:15px 0 0 0}.author-box img{float:left;margin:3px 0 0 50px;width:59px;height:59px}.author-box p{margin:0 0 0 138px}.curricula-list-sidebar h2{font-size:1em;font-weight:bold;text-transform:uppercase;margin:0 0 3px 0;color:#969696}.curricula-list-sidebar p{margin:0}.curricula-list-sidebar p.details{margin:0 0 5px -10px;padding:0 0 10px 10px;font-size:1em;color:#868686;font-style:italic}.curricula-list-sidebar ol{margin:0 0 40px 0;list-style:none;background:#23517c}.curricula-list-sidebar ol a{display:block;padding:15px 20px 15px 43px;color:#fff}.curricula-list-sidebar ol a:hover{text-decoration:none;background-color:#3f688d}.curricula-list-sidebar ol a.selected{background-color:#3f688d}.curricula-list-sidebar li{margin-bottom:0}.curricula-list-sidebar .icon-curricula{background-position:-7985px 17px}.curricula-list-sidebar .icon-video{background-position:-7185px 15px}.curricula-list-sidebar .icon-book{background-position:-1185px 50%}.curricula-list-sidebar .icon-link{background-position:-1785px 50%}.curricula-list-sidebar .icon-whitepaper{background-position:-19585px 50%}.curricula-list-sidebar .icon-wizard{background-position:-4185px 50%}.article-title{margin:0 0 14px 0;width:100%;position:relative;z-index:1}.article-title.keyline{height:auto;background:none;border-bottom:1px solid #d2d2d2;padding-bottom:8px}.article-title:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.article-title h1{margin-bottom:10px;line-height:1.2em}.article-title h1.hasNew{padding-right:56px}.article-title .details{padding:1px 0 0 0;color:#707070}.article-title .details .author-header{width:63%}.social-shares{position:relative}.article-title .social-shares{float:right}.article-title .rate-results{font-size:11px;color:#9a9fa2}.article-title .rate-results a{margin-left:10px;font-size:12px}.content #rate-topic,#rate-confirm{font-family:'Segoe Semibold';background:#fff;position:relative;z-index:2;float:left;font-size:11px;color:#535d65}.content #rate-topic strong{font-weight:normal;float:left;padding:7px 10px 7px 15px;border:1px solid #d2d2d2;border-right-width:0}.content #rate-topic a{background:url(../images/ui/share-sprite.png?cdn_id=i72) 5px 8px no-repeat;float:left;text-decoration:none;color:#2186c6;padding:7px 10px 7px 30px;margin-left:-1px;border:1px solid #d2d2d2;border-width:1px;border-color:#dadada transparent;margin-right:-1px}.content #rate-topic a:hover{background-color:#fafafa;border-color:#dadada}.content #rate-topic a+a{background-position:5px -19px;border-right-color:#dadada}.content #rate-topic a span{color:#7f7f7f;text-decoration:none}.content #rate-topic a.active,.content #rate-topic a.completed{border-color:#dadada;border-bottom-color:#fff;background-position:5px -44px}.content #rate-topic a+a.active,.content #rate-topic a+a.completed{background-position:5px -71px}.content #rate-topic a.completed{border-bottom-color:#dadada}.feedback-form{display:none;font-family:'Segoe Semibold';z-index:1;background:#fff;position:absolute;left:0;top:33px;border:1px solid #d2d2d2;width:643px;padding:15px}.feedback-form textarea{display:block;width:630px;min-height:120px;resize:none;border:1px solid #d2d2d2;padding:5px}.feedback-form input[type=checkbox]{float:left;display:none}.feedback-form input[type=checkbox]+label{cursor:pointer;color:#535d65;padding:5px 10px 5px 20px;float:left;background:url(../images/ui/share-sprite.png?cdn_id=i72) 0 -98px no-repeat;margin:0 10px 10px 0}.feedback-form input[type=checkbox]:checked+label{background-position:0 -122px}.feedback-form input[type="checkbox"]+label.checked{background-position:0 -122px}.feedback-form .area-label{clear:both;color:#535d65;display:block;margin-bottom:10px}.feedback-form .btn-social{cursor:pointer;border:1px solid #d2d2d2;color:#2186c6;padding:8px 14px;border-radius:5px;box-shadow:-1px -1px 0 #fafafa;background-color:#fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#fff,#f5f5f5);background-image:-moz-linear-gradient(top,#fff,#f5f5f5);background-image:-ms-linear-gradient(top,#fff,#f5f5f5);background-image:-o-linear-gradient(top,#fff,#f5f5f5);background-image:linear-gradient(to bottom,#fff,#f5f5f5)}.feedback-form .btn-social:hover{background-color:#f5f5f5;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#fff));background-image:-webkit-linear-gradient(top,#f5f5f5,#fff);background-image:-moz-linear-gradient(top,#f5f5f5,#fff);background-image:-ms-linear-gradient(top,#f5f5f5,#fff);background-image:-o-linear-gradient(top,#f5f5f5,#fff);background-image:linear-gradient(to bottom,#f5f5f5,#fff)}#rate-confirm{font-style:italic;border:1px solid #d2d2d2;padding:7px;margin:0;text-indent:10px}.feedback-form .btn-social:active{background:#f0f0f0}.feedback-form .btn-social+.btn-social{margin-left:20px}.feedback-form div{margin-top:10px;float:right}.nav-multi-part{border-top:1px solid #d2d2d2;list-style:none;margin:0;width:100%}.nav-multi-part:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.nav-multi-part li{float:left;width:33.33%;margin:0;text-align:center;position:relative}.nav-multi-part li.current{padding:20px 0}.nav-multi-part li.current span{padding-top:6px}.nav-multi-part li.next a,.nav-multi-part li.prev a{padding:20px 0;width:100%;display:block;text-decoration:none}.nav-multi-part li.next a:hover,.nav-multi-part li.prev a:hover{background:#f2f3f4}.nav-multi-part li.next a span,.nav-multi-part li.prev span{color:#000}.nav-multi-part li span{font-size:1.231em;display:block;margin-bottom:7px}.nav-multi-part li.current span.icon{width:12px;height:8px;left:50%;top:0;margin-left:-6px;position:absolute;background:url(../images/ui/sprite-article.png?cdn_id=i72) no-repeat 0 -16px}.nav-multi-part li .arrow{font-size:1.4em;line-height:1;display:inline;margin:0;position:relative;top:1px}.downloads h1{margin-bottom:10px;width:780px}.downloads .col-left{width:820px;padding:0 30px 0 0;margin-top:15px;border-right:1px solid #d2d2d2;min-height:650px}.downloads .col-right{width:300px;padding:0 0 0 29px}.downloads .landing-featured{width:100%;border-top:1px solid #d2d2d2;border-bottom:1px solid #d2d2d2;margin-bottom:18px;padding-top:15px}.downloads .landing-featured:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.landing-featured .col-left{float:left;width:305px;border:0;padding:0;margin:0;min-height:0}.landing-featured .col-right{float:right;width:280px;border:0;padding:0;margin:0}.landing-featured h2{font-size:1.385em;color:#676767;margin-bottom:8px}.landing-featured .play-button{background-position:-381px 70px}.landing-featured .play-button:hover{background-position:-982px 70px}.common-checklist{list-style:none;margin:0 0 20px 0}.common-checklist li{padding-left:23px;background:url(../images/ui/sprite-icons.png?cdn_id=i72) no-repeat -6000px 2px}.smallprint{color:#a9a9a9;font-size:.846em}.hosted h1{border-bottom:1px solid #d2d2d2;padding-bottom:10px;margin-bottom:10px}.hosted.two-col .col-left{padding:0;width:676px;border-right:0}.hosted .col-left .subhero img{margin:0 0 0 0}.hosted .col-left .subhero{border-top:1px solid #c8c8c8;border-bottom:1px solid #4d4e51;padding:45px 0 0 50px;width:626px;height:216px;background-color:#0378d6}.hosted .col-left .subhero h2{margin:0 0 15px 0;font-family:'Segoe UI',Tahoma,Arial,Helvetica,sans-serif;color:#fff;font-size:24px;line-height:24px}.hosted .col-left .subhero h3{margin:10px 0 15px 0;font-family:'Segoe UI Light','Segoe UI',Tahoma,Arial,Helvetica,sans-serif;color:#fff;font-size:40px;font-weight:100;line-height:40px}.hosted .col-left .subhero p{margin:0 0 0 0;font-family:'Segoe UI Light','Segoe UI',Tahoma,Arial,Helvetica,sans-serif;color:#fff;font-size:20px;font-weight:100;line-height:20px}.hosted.two-col .col-right{width:326px}.hosted .col-right .subhero{border-top:1px solid #c8c8c8;border-bottom:1px solid #4d4e51;background-color:#5c2c91;width:297px;height:221px;padding:40px 28px 0 28px}.hosted .col-right .subhero h3{margin:0 0 20px 0;color:#fff;font-family:'Segoe UI Light','Segoe UI',Tahoma,Arial,Helvetica,sans-serif;font-size:30px;line-height:30px;font-weight:100}.hosted .col-right .subhero p{margin:0 0 0 0;color:#fff;font-family:'Segoe UI Light','Segoe UI',Tahoma,Arial,Helvetica,sans-serif;font-size:16px;line-height:22px;font-weight:100}.hosted .subhero a.btn-azure{margin:25px 0 0 0;clear:both;font-family:'Segoe UI Light','Segoe UI',Tahoma,Arial,Helvetica,sans-serif;line-height:35px;font-size:20px;display:inline-block;text-decoration:none;font-weight:100;position:relative;color:#fff;background:url(../images/ui/azure_CTA-white.png?cdn_id=i72) no-repeat 96% center #a5ce00;padding:7px 55px 7px 10px}.hosted .subhero a.btn-azure:hover{background-color:#89c402;transition:all .1s ease-in-out 0s}.hosted .heading{margin-top:25px}.hero{margin-bottom:45px;padding:35px 0 0 40px;width:1140px;height:215px;background-color:#efefef}.hero-leftcontent{float:left;height:100%;width:800px;margin-right:50px;position:relative}.hero-rightcontent{float:right;height:100%;width:850px}.hero-leftimage{float:left;height:100%;width:290px}.hero-rightimage{float:right;height:100%;width:290px}.hero-rightimage img,.two-col .hero-leftimage img{margin:auto;display:block}.hero-rightimage.video a{position:relative;width:246px;height:200px;display:block}.hero-rightimage.video .play-button{background-position:-400px 78px}.hero-rightimage.video .play-button:hover{background-position:-1000px 78px}.hero-small{position:absolute;bottom:25px;width:500px;height:38px;background:url(../images/ui/aspnet-icon-small.png?cdn_id=i72) 10px 10px no-repeat #68217a;margin:0 0 10px 0}.hero-small h2,.two-col .hero-small p{color:#fff;padding-left:52px;font-size:14px}.hero-small h2{float:left;padding-top:12px;font-weight:700;width:370;color:#fff;padding-left:40px;font-size:14px;margin-bottom:3px}.hero-small a{float:right;font-size:12px;padding:4px 15px;margin:6px 10px 0 0}.hero-small-2{position:absolute;top:152px;left:512px;font-size:12px}.hero-small-2 a{font-weight:bold}.hero h1{margin-bottom:12px;font-size:32px;color:#000}.hero>p{margin-bottom:30px}.two-col .col-left{width:785px;padding:0 30px 0 35px;border-right:1px solid #d2d2d2}.two-col .col-right{width:300px;padding:0 0 0 29px}.two-col h3{margin:30px 0 15px 0;font-size:20px}.two-col ul{margin:0 0 30px 18px}.two-col ul li{font-size:14px;margin:15px 0 15px 0}.two-col div.divider{height:1px;background-color:#d2d2d2;width:820px;position:relative;left:-35px;clear:both}.two-col div.spacer{height:1px;background-color:transparent;width:820px;clear:both}.pluralsight .hero{background-color:#0054a3}.pluralsight .hero-small{width:813px;height:58px;background:url(../images/ui/pluralsight-hardcoredevtraining.png?cdn_id=i72) 4px 3px no-repeat #fff;margin:0 0 10px 0}.pluralsight .hero p{margin-bottom:30px;color:#fff}.pluralsight .hero-small h2,.pluralsight .hero-small p{color:#f26521;padding-left:226px;font-size:14px}.pluralsight .hero-small h2{float:none;padding-top:11px;margin-bottom:3px;font-weight:bold}.pluralsight .hero-small a{float:right;margin:-62px 12px 0 0;font-size:12px;padding-bottom:6px;padding-top:6px}.pluralsight .hero .hero-small p{color:#f26521}.pluralsight .hero h1{margin-bottom:12px;font-size:32px;color:#fff}.pluralsight .hero .hero-rightimage img{margin-top:-6px}.pluralsight .col-left{width:785px;padding:0 30px 0 35px;border-right:1px solid #d2d2d2}.pluralsight .col-right{width:300px;padding:0 0 0 29px}.pluralsight h3{margin:30px 0 0 0;font-size:18px}.pluralsight ul.two-column-list{margin:5px 0 30px 0;list-style-type:none;clear:both;overflow:visible;width:800px}.pluralsight ul.two-column-list li{font-size:14px;margin:5px 0 5px 0;float:left;display:block;width:338px;margin-right:46px}.pluralsight div.divider{height:1px;background-color:#d2d2d2;width:1145px;position:relative;left:-35px;margin:45px 0}.pluralsight div.spacer{height:1px;background-color:transparent;width:820px}.pluralsight.content .col-full{padding-left:35px}.pluralsight.content .quotecallout{font-style:italic;font-size:15px}.pluralsight.content .quoteattribution{font-weight:bold}.pluralsight.content .calltoaction{position:relative;height:120px}.pluralsight.content .calltoaction img{margin-right:20px}.pluralsight.content .calltoaction p{font-size:22px;font-weight:100;font-family:'Segoe UI Light','Segoe UI',Tahoma,Arial,Helvetica,sans-serif;margin:0 0 10px 0}.pluralsight.content .calltoaction strong{font-size:16px;font-weight:400;margin:0 0 10px 0;display:block}.pluralsight.content .calltoaction a.btn-install{position:absolute;bottom:0;left:140px;margin:0 0 0 0}.pluralsight.content .calltoaction a.btn-install.second{position:absolute;bottom:0;left:300px;margin:0 0 0 0}.search h1{background:none repeat scroll 0 0 #fff;color:#000;display:inline-block;padding-right:10px;margin-bottom:13px;font-size:30px}.search h2{background:none repeat scroll 0 0 #fff;color:#000;display:inline-block;padding-left:30px;font-size:40px}.search .col-left{width:300px;padding:0 30px 0 0}.search .col-right{width:820px;padding:0 0 0 30px}.search-results{margin:0 30px 0 0;list-style:none;padding:0 0 0 25px}.search-results li{margin-bottom:18px;position:relative}.search-results .resultnumber{position:absolute;left:-40px;font-size:16px;color:#505050;top:0}.search-results h3{font-size:1.154em;margin-bottom:5px;font-weight:bold}.search-results h3 span{font-size:13px;font-weight:normal}.search-results p{margin-bottom:0}.search-filter{background:#f0f0f0;border:1px solid #d2d2d2}.search-facet{padding:10px;width:290px}.search-facet:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.search-facet.scroll-pane{height:155px;overflow:auto;padding:0 10px;margin:10px 0}.search-filter h2{background:#333;color:#fff;margin:0;font-size:1.154em;padding:10px 75px 10px 10px;position:relative}.search-filter h3{background:#dfdfdf url(../images/ui/sprite-search.png?cdn_id=i72) no-repeat 17px -35px;border-top:1px solid #d2d2d2;border-bottom:1px solid #d2d2d2;box-shadow:inset 0 -1px #d9d9d9;-webkit-box-shadow:inset 0 -1px #d9d9d9;-moz-box-shadow:inset 0 -1px #d9d9d9;color:#000;font-weight:normal;padding:6px 10px 6px 35px;cursor:pointer;margin:0}.search-filter h3.last{border-bottom:0}.search-filter h3.show{background:#dfdfdf url(../images/ui/sprite-search.png?cdn_id=i72) no-repeat 17px -76px}.search-filter p{margin:0;width:100%}.search-filter p:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.search-filter .common-checkbox{float:left;margin-right:8px;margin-top:0}.search-filter .common-label{display:block;line-height:1;margin:0 0 6px 4px;padding:0;font-weight:normal}.search-filter .count{color:#9d9d9d;font-size:.769em}.search-filter img{margin:0}.search-filter .search-box{position:relative}.search-filter .search-box:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.search-filter .search-box label{color:#4597cb;margin:3px 5px 0 0;display:block;float:left}.search-box p.search-fields{background:#fff;height:23px;border:1px solid #d2d2d2;display:block;width:207px;float:left}.search-box .input-search-text{border:0;padding:4px 4px 0 4px;display:block;float:left;width:170px;color:#707070}.search-box .input-search-submit{width:28px;height:23px;display:block;float:right;background:url(../images/ui/sprite-search.png?cdn_id=i72) no-repeat 0 0;border:0;cursor:pointer}.search .searchdivider{border-bottom:#969696 solid 1px;width:825px;position:relative}.search .searchdivider img{position:absolute;right:20px;top:-45px}.search .sortingoptions{text-align:right;margin:15px 0 15px 0;width:825px;font-size:14px}.search .sortingoptions span{color:#272727}.btn-clear{border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border:1px solid #d2d2d2;color:#fff!important;display:inline-block;float:right;font-size:.846em;padding:4px 0;position:relative;right:-6px;text-align:center;text-decoration:none;top:-2px;width:54px;background:#bababa url(../images/ui/sprite-btn-clear.png?cdn_id=i72) repeat-x 0 0;cursor:pointer;line-height:1}.btn-clear:hover{text-decoration:none;background-color:#aeaeae;background-position:0 -30px}.btn-clear:active{background-position:0 -60px;background-color:#ccc}h2 .btn-clear{font-size:.733em;border:1px solid #d2d2d2;background-position:0 -90px;background-color:#4e4e4e;position:absolute;top:6px;right:4px}h2 .btn-clear:hover{background-position:0 -120px;background-color:#484848}h2 .btn-clear:active{background-position:0 -150px;background-color:#777}.search-facet-author .search-box p.search-fields{width:193px}.search-facet-author .search-box .input-search-text{width:156px}.search-facet-author .search-dropdown{width:193px;top:32px;left:104px;z-index:2}.search-box .search-dropdown a{padding:4px 9px}.search-facet-date .search-facet label{color:#4597cb;font-size:.923em;display:block}.search-facet-date .search-facet input{line-height:1;border:1px solid #d2d2d2;padding:4px 6px;width:120px;color:#707070}.search-facet-date .search-facet p{width:140px;float:left}.common-label{font-weight:bold;padding-bottom:3px}.pagination{width:551px;border:1px solid #d2d2d2;margin-bottom:25px;background-color:#fff;margin-left:28px}.pagination:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.pagination a,.pagination span.nolink,.pagination .disabled{display:block;width:38px;height:27px;padding-top:12px;float:left;text-align:center;line-height:1}.pagination a{color:#267cb2}.pagination .prev{width:75px!important;margin-right:9px;border-right:1px solid #d2d2d2;text-transform:uppercase;color:#000}.pagination .next{width:75px!important;margin-left:10px;border-left:1px solid #d2d2d2;text-transform:uppercase;color:#000;float:right}.pagination a span{color:#69c2ec}.pagination a:hover{background:#dcdcdc;text-decoration:none}.pagination a.selected{background:#dcdcdc;color:#000}.pagination .disabled{color:#bfbfbf}.recognition h1{background:none repeat scroll 0 0 #fff;display:inline-block;margin-bottom:30px;padding-right:10px}.recognition .tbl-action .col1{width:13%}.recognition .tbl-action .col2{width:16%}.recognition .tbl-action .col3{width:61%}.recognition .tbl-action .col4{text-align:center}.recognition .tbl-action td{vertical-align:middle}.icon-level-member{height:12px;width:60px;background:url(../images/ui/sprite-level-ratings.png?cdn_id=i72) no-repeat 0 1px}.icon-level-participant{height:12px;width:60px;background:url(../images/ui/sprite-level-ratings.png?cdn_id=i72) no-repeat 0 -14px}.icon-level-contributor{height:12px;width:60px;background:url(../images/ui/sprite-level-ratings.png?cdn_id=i72) no-repeat 0 -29px}.icon-level-star{height:12px;width:60px;background:url(../images/ui/sprite-level-ratings.png?cdn_id=i72) no-repeat 0 -44px}.icon-level-all-star{height:12px;width:60px;background:url(../images/ui/sprite-level-ratings.png?cdn_id=i72) no-repeat 0 -59px}.icon-level-member span,.icon-level-participant span,.icon-level-contributor span,.icon-level-star span,.icon-level-all-star span{position:absolute;left:-999em}.module-whos-online h2 a{font-size:.923em;text-transform:lowercase}.tbl-whos-online td{vertical-align:middle}.tbl-whos-online .avatar{display:block;float:left;margin:3px 10px 8px 0}.recog-level-key{width:100%;margin-bottom:18px}.recog-level-key:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.recog-level-key p{font-size:.923em}.recognition h3{text-transform:uppercase;margin-bottom:5px}.tbl-recognition{float:left;width:360px;margin-right:24px}.tbl-recognition th{padding:5px 9px;font-weight:normal;text-transform:uppercase;background:#f3f3f3;border-top:1px solid #a4a4a4;border-bottom:1px solid #a4a4a4;font-weight:bold}.tbl-recognition td{border-bottom:1px solid #a4a4a4;border-left:1px solid #e3e3e3;font-size:.923em;padding:5px 9px}.tbl-recognition td:first-child{border-left:0;background:none}.dl-common dt{margin-bottom:18px}.dl-common dd{margin-bottom:18px}.module-top-movers{margin-bottom:5px}.hof .module-top-movers h3{font-size:1em;text-transform:none;margin-bottom:5px}.tbl-top-movers .col1{width:16%}.tbl-top-movers .col2{width:63%}.tbl-top-movers .col3{width:21%}.module-common-select{padding-bottom:20px;width:100%;position:relative}.module-common-select:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.common-tbl{border-collapse:collapse;width:100%}.common-tbl thead th{background:#f3f3f3;font-weight:bold;white-space:nowrap}.common-tbl th{font-weight:normal;padding:5px 9px;border-top:1px solid #a4a4a4;border-bottom:1px solid #a4a4a4;text-transform:uppercase}.common-tbl td{border-bottom:1px solid #c1c1c1;padding:10px 12px;line-height:1;vertical-align:middle;font-size:.923em;color:#000}.common-tbl .last td{border-bottom:0}.common-tbl h2,.common-tbl h3{font-size:1.083em;margin:0 0 5px 0;font-weight:normal}.common-tbl p{margin:0;color:#82878d}.common-tbl p a{color:#587935}.hof .col-left{width:820px;padding-right:30px;border-right:1px solid #d2d2d2}.hof .col-right{width:300px}.hof h1{color:#000;font-size:32px;margin-bottom:10px}.hof h3{font-size:1.538em;margin-bottom:15px}.hof .tbl-action{border:0}.hof .tbl-action th{background:#f3f3f3;border-top:1px solid #a4a4a4;border-bottom:1px solid #a4a4a4;border-left:0;text-transform:uppercase;padding:5px 9px;font-weight:bold}.hof .tbl-action td{border-bottom:1px solid #a4a4a4;border-left:1px solid #e3e3e3;font-size:.923em;padding:5px 9px}.hof .tbl-action td:first-child{border-left:0;background:none}.tbl-top-movers{border:0}.tbl-top-movers th{background:#f3f3f3;border-top:1px solid #a4a4a4;border-bottom:1px solid #a4a4a4;border-left:0;text-transform:uppercase;padding:5px 9px;font-weight:bold}.tbl-top-movers td{border-bottom:1px solid #a4a4a4;border-left:1px solid #e3e3e3;font-size:.923em;padding:5px 9px}.tbl-top-movers td:first-child{border-left:0;background:none}.common-tbl-hof td{border-bottom:1px solid #a4a4a4}.common-tbl-hof td:first-child{font-size:1em;font-weight:bold;width:63%}.common-tbl-hof td.col2{width:13%}.hof .busy{background-position:center 50px}.module-pbl .tbl-recognition th{background:none;border-top:none;border-bottom:0;text-transform:none;color:#343434;padding-left:0}.module-pbl .tbl-recognition td{padding-left:0;border:0;line-height:1;padding:4px 0;font-size:1em}.module-pbl h2{margin-bottom:0}.module-pbl .tbl-recognition{width:295px}.sort-box{position:relative}.sort-box h2{font-size:1em;color:#000}.sort-box .module-common-select{position:absolute;right:0;top:-6px;width:auto;z-index:1}.two-col.downloads .hero-leftcontent{width:885px;margin-right:0}.two-col.downloads .hero-rightimage{width:250px}.downloads .doublelists{float:left;width:50%;margin:0 0 20px 0}.two-col.downloads ul{list-style:none;margin:0}.two-col.downloads .divider{margin:10px 0;left:0;width:100%}.two-col.downloads .hero-rightimage img{margin-top:-17px}.module-download{width:100%}.module-download:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.module-download h2{font-size:1em;text-transform:uppercase;font-weight:bold;margin-bottom:6px}.module-download ul{margin:0 0 17px 0;list-style:none}.module-download li{margin-bottom:0}.module-download .common-module{width:275px;float:left;margin-right:25px}.module-download .common-module.last{margin:0}.social-avatar{width:59px}.icon-rss{display:block;padding:0 0 0 20px;background:url(../images/ui/sprite-icons.png?cdn_id=i72) -14100px 50%}.common-sidebar-module .tags{font-size:1em}.common-sidebar-module .common-list{margin:0 0 0 0;list-style:none;border:0;padding:0 0 0 0}.common-sidebar-module .common-list li{margin:0;padding:2px 0;border-top:1px solid #d2d2d2}.common-sidebar-module .common-list li.first{border-top:0}.common-sidebar-module .common-list .count{font-size:.833em}.common-sidebar-module .common-list .selected a{color:#fff;background:#23517c;display:block;padding:0 8px;margin-left:-8px;text-decoration:none!important}.common-sidebar-module .common-post{margin:0 0 17px 0;min-height:0;padding:0}.common-sidebar-module .common-list.eventslist li{clear:both;border:none;vertical-align:top;margin:0 0 25px 0}.common-sidebar-module .common-list.eventslist li h3{float:left;position:relative;top:2px;font-weight:500}.common-sidebar-module .common-list.eventslist li p{margin:0 0 5px 100px;font-size:11px}.common-sidebar-module .common-list.eventslist li p a{font-size:16px}.common-sidebar-module .common-list.eventslist li p.cta a{}.common-sidebar-module .common-list.topmovers li{clear:both;border:none;vertical-align:top;margin:0 0 25px 0}.common-sidebar-module .common-list.topmovers li img{float:left;position:relative;top:2px;font-weight:500}.common-sidebar-module .common-list.topmovers li p{margin:5px 0 5px 90px;font-size:11px}.common-sidebar-module .common-list.topmovers li p a{font-size:11px;color:#000}.common-sidebar-module .common-list.topmovers li p.cta a{font-size:16px;color:#267cb2}.common-sidebar-module .icon{display:inline-block;width:16px;height:16px;background:url(../images/ui/sprite-ui.png?cdn_id=i72) no-repeat -100px -100px;margin-left:2px;text-indent:-999em}.common-sidebar-module .common-list.topmovers li.viewall p a,.common-sidebar-module .common-list.eventslist li.viewall p a{font-size:11px;color:#000}.community .col-right div.spacer{width:300px}.comment-noEditor{font:1em 'Segoe UI',Tahoma,Arial,Helvetica,sans-serif;width:502px;height:126px;margin:0;padding:7px;border:1px solid #d2d2d2;margin-bottom:20px;resize:none}.community .head-desc{margin-bottom:40px;color:#000;font-size:14px}.community h1{color:#000;font-size:32px;margin-bottom:10px}.community .col-left{border-right:1px solid #d2d2d2}.community .common-post{min-height:1%;border-bottom:1px solid #d2d2d2;padding:15px 0 35px}.community .common-post.blog-post{padding:10px 0 20px}.community .common-post p{margin-left:90px}.community .common-post.last{border-bottom:0}.community .common-post h2{margin:0 0 5px 90px;font-size:16px;font-weight:600}.community .common-post .details{font-size:11px;font-weight:normal;margin-bottom:4px}.community .common-post img.social-avatar{padding:0}.community .seemore{margin:-20px 0 40px 0;font-size:14px}.community .leftside .seemore,.community .rightside .seemore{position:absolute;bottom:0;left:0;font-size:14px;margin:0 0 18px 0}.community .leftside,.community .rightside{float:left;width:370px;margin-right:40px;margin-bottom:20px;position:relative;padding-bottom:30px}.community .leftside .common-post,.community .rightside .common-post{border:none;margin:10px 0;padding:8px 0 8px 0;height:120px}.community .common-post.small{height:auto}.community div.spacer{background-color:transparent;clear:both;height:1px;width:820px;margin:20px 0 40px}.community div.divider{height:1px;background-color:#d2d2d2;width:820px;clear:both;margin:20px 0 40px}.fl-menu{position:absolute;top:230px;left:10px;font-weight:bold}.fl-menu h2{margin-bottom:5px;font-weight:bold}.fl-menu a{color:#267cb2}.fl-menu a.disabled{color:#ccc;cursor:text}.fl-menu a:hover{text-decoration:none}.col-left-thin .fl-menu li{margin-bottom:3px}.community h1{color:#000;font-size:32px;margin-bottom:10px}.community h3{color:#000;font-size:22px;margin-bottom:20px}.community h3 .icon{top:3px;position:relative}.community .col-left{width:820px;border-right:1px solid #d2d2d2}.community .common-post .details{margin-bottom:5px}.module-community .common-post p,.module-community .common-post h3{margin:0 0 0 80px}.col-left-thin p{font-size:.923em;margin:0 0 12px 0}.col-left-thin ul{font-size:.923em;list-style:none;margin:0 0 25px 0}.col-left-thin li{margin:0}.col-left-thin .sharebox{padding:0}.col-left-thin .sharebox a.btn-share{-moz-border-radius:0;background:url("../images/ui/sprite-sharebar.png?cdn_id=i72") no-repeat scroll -3201px 50% transparent;border:0;display:block;line-height:inherit;padding:0 0 0 20px;position:relative}.col-left-thin .sharebox .flyout{left:60px;top:0}.btn-share:visited,.icon-rss:visited{color:#267cb2}.row-community{width:100%;padding-bottom:10px}.row-community:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.module-community{width:390px;min-height:390px;float:left;margin:0 15px 0 0;overflow:hidden}.module-community.even{margin:0}.module-community.autoheight{min-height:0;margin-bottom:0}.community-header{background:#f2f2f2;color:#555e66;font-size:1em;font-weight:bold;line-height:1;padding:6px 14px 6px 8px;border-bottom:1px solid #bfc4c9;margin:0 0 20px 0}.community-header a{font-size:.769em;font-weight:bold;color:#267cb2}.community-header.icon-rss-head a.icon{margin-left:4px;font-size:1em}.article-comments.module-comment .icon-rss-head a.icon{margin-left:4px;font-size:1em;text-align:left;vertical-align:middle}.common-post .details a.author{color:#587935}.module-community .ad-300x250{width:300px;margin:0 auto;padding:15px 0 0 0}.post-icon{width:70px;height:70px;background:url(../images/ui/sprite-icons-lg.png?cdn_id=i72) no-repeat -999em 50%;float:left}.post-icon.icon-compare{background-position:-600px 50%}.post-icon.icon-cal{background-position:0 50%}.post-icon.icon-control-gallery{background-position:-1198px 50%}.module-community .link-more{margin:2px 0 0 0;float:right}.module-community.module-community-participate .common-post{min-height:48px}.module-community.module-community-participate .post-icon{height:48px}.module-community.module-community-participate .details a{color:#000}.module-community.module-community-participate .details a:hover{text-decoration:none}.icon-comments{padding:0 0 0 13px;background:url(../images/ui/sprite-icons.png?cdn_id=i72) no-repeat -4200px 50%}.icon-retweet{padding:0 0 0 17px;background:url(../images/ui/sprite-icons.png?cdn_id=i72) no-repeat -4800px 50%}.icon-rate{padding:0 0 0 15px;background:url(../images/ui/sprite-icons.png?cdn_id=i72) no-repeat -5400px 50%}.common-post span.icon-level-member,.common-post span.icon-level-participant,.common-post span.icon-level-contributor,.common-post span.icon-level-star,.common-post span.icon-level-all-star{display:inline-block;margin-left:5px;position:relative;top:1px}.archives .head-desc{margin-bottom:45px;color:#000;font-size:14px}.archives h1{color:#000;font-size:32px;margin-bottom:10px}.archives .col-left{border-right:1px solid #d2d2d2}.archives .common-post{min-height:1%;border-bottom:1px solid #d2d2d2}.archives .common-post p{margin-left:80px}.archives .common-post.last{border-bottom:0}.archives .common-post h2{margin:0 0 3px 80px;font-size:16px;font-weight:600}.archives .common-post .details{color:#000;font-size:11px;font-weight:normal;margin-bottom:4px}.archives .common-post img.social-avatar{padding:0}.archive-content{width:100%;margin-bottom:15px}.archive-content:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.archive-content ul{margin:0 5px 0 0;width:100px;list-style:none;float:left}.archive-content li{margin:0}.archive-content .count{color:#000;font-size:.833em}.archives .ad-iab-txt{position:static;margin:0;float:right;padding-bottom:10px;width:305px}.archives .pagination{margin:20px 0 10px 80px}.terms h1{border-bottom:1px solid #d2d2d2;padding-bottom:15px;margin-bottom:16px}.terms .common-sidebar-module{font-size:1em;float:right;width:300px}.privacy h1{border-bottom:1px solid #d2d2d2;padding-bottom:15px;margin-bottom:16px}.module-privacy:first-child{border-right:1px solid #d2d2d2;border-left:0}.module-privacy{float:left;font-size:.923em;min-height:168px;padding:20px 17px;width:440px;border-left:1px solid #d9d9d9;margin-left:-1px}.module-privacy h2{font-size:1.5em}.row-privacy.first{border:medium none}.row-privacy{border-top:1px solid #d2d2d2;width:100%}.row-privacy:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.content-404{padding:34px 10px 20px 80px;width:880px;min-height:360px}.content-404 h1{padding:10px 0 16px 0;border-bottom:1px solid #d2d2d2}.icon-exclamation{display:block;width:44px;height:44px;background:url(../images/ui/sprite-error.png?cdn_id=i72) no-repeat 0 0;position:absolute;left:20px;top:40px}.content.contact-us{padding-bottom:94px}.contact-us h1{margin-bottom:40px;font-size:32px;color:#000}.contact-us .keyline-title{top:-20px}.contact-us .details{color:#8b8c8d;font-weight:bold;margin-bottom:20px}.icon-list,.icon2-list{float:left}.icon-list ul,.icon2-list ul{list-style:none;margin:0}.icon-list li,.icon2-list li{margin-bottom:10px}.icon-list li span,.icon2-list li span{display:inline-block;width:55px;height:55px;background:url(../images/ui/contact-icons-sprite.png?cdn_id=i72) 0 0 no-repeat #454545}.icon-list li span.c-a,.icon2-list li span.c-a{background-position:0 0}.icon-list li span.c-b,.icon2-list li span.c-b{background-position:0 -55px}.icon-list li span.c-c,.icon2-list li span.c-c{background-position:0 -110px}.icon-list li span.c-d,.icon2-list li span.c-d{background-position:0 -165px}.icon-list li span.c-e,.icon2-list li span.c-e{background-position:0 -220px}.icon-list li span.c-f,.icon2-list li span.c-f{background-position:0 -275px}.icon-list li a,.icon2-list li p{display:inline-block;height:55px;vertical-align:top;font-size:14px;font-weight:600;margin:0 0 0 15px}.icon2-list li a{display:block;margin-bottom:10px}.icon2-list li p{font-size:12px!important;width:690px}.icon2-list li p a{font-size:14px!important}.contact-us h2{border-bottom:1px solid #d2d2d2;padding-bottom:30px;margin-bottom:35px;font-size:22px;font-weight:600}.icon-list{width:415px}.icon2-list{width:765px}.quick-list a{display:block;font-size:14px;font-weight:600;margin-bottom:10px}@media only screen and (device-width:768px){.promo-box-wrapper li:hover a span{display:none}}.module-form-wrapper{width:780px;padding:20px;margin:50px 0 24px;position:relative;background:#f8f8f8;border:1px solid #e2e4e6}.module-form-wrapper h3{background:#f1f1f1;margin:-20px -20px 20px;padding:10px 10px 8px 8px;border-bottom:1px solid #e2e4e6}.form-wrapper p{margin:0;float:left;width:100%;clear:both;height:auto!important;min-height:36px;padding-bottom:10px}.form-wrapper label{float:left;width:150px;color:#000;display:block;padding-top:5px;font-weight:bold}.form-wrapper input.input_box,.form-wrapper textarea.txt_area{margin:0;float:left;width:230px;padding:5px;background-color:#fff;border:1px solid #dcdedf}.form-wrapper textarea.txt_area{width:360px;height:84px}.form-wrapper p.submit{padding:0;margin:0 0 0 150px}.form-wrapper .error{color:#eb6666}.form-wrapper span.required{color:#eb6666}.form-wrapper input.error{color:#eb6666;border:1px solid #eb6666}.form-wrapper textarea.error{color:#eb6666;border:1px solid #eb6666}.form-wrapper .error-container{display:none;background-color:#ffe5e5;border:1px solid #eb6666;margin-bottom:20px;padding:5px;color:#eb6666}.form-wrapper .error-container ol li{list-style-type:disc;margin-left:20px}.form-wrapper .error-container h4{color:#eb6666;font-weight:bold;margin:10px}.error-container label.error{display:inline;font-weight:normal}.error-container label{width:100%;float:none}.section-head{background:#f3f3f3;border-top:1px solid #d2d2d2;border-bottom:1px solid #d2d2d2}.col-left .section-head{font-size:.923em;text-transform:uppercase;font-weight:bold;padding:9px 30px 9px 12px;position:relative}.section-head.icon-rss-head .icon{position:absolute;top:8px;right:8px}.common-post.border-bottom{border-bottom:1px solid #d2d2d2;padding-bottom:0}.ajax .hero p{width:800px}.ajax .common-post{border-bottom:1px solid #d2d2d2;min-height:50px;padding-bottom:0;margin-bottom:25px}.ajax div.common-post:last-child{border-bottom:none}.ajax .common-post .excerpt{padding-bottom:17px;font-size:14px}.ajax .common-post.last .excerpt{border-bottom:0;padding-bottom:25px}.ajax p,.ajax h3{margin:0 0 0 0}.ajax h3{font-weight:600;font-size:16px;margin:0 0 5px 0}.ajax .icon-rss-head{position:relative;color:#000}.ajax .icon-rss-head .icon{top:10px;margin-left:20px}.ajax .author-attribution{}.ajax .author-attribution img{}.ajax .author-attribution h2{margin:0 0 25px 0}.ajax .author-attribution h3{margin:0 0 0 85px}.ajax .author-attribution p{margin:5px 0 0 85px}.mobile .hero-leftcontent{float:left;height:100%;width:700px}.mobile .hero-rightimage{float:right;height:100%;width:390px}.mobile .common-post{border-bottom:1px solid #d2d2d2;min-height:50px;padding-bottom:0;margin-bottom:25px}.mobile div.common-post:last-child{border-bottom:none}.mobile .common-post .excerpt{padding-bottom:17px;font-size:14px}.mobile .common-post.last .excerpt{border-bottom:0;padding-bottom:25px}.mobile p,.ajax h3{margin:0 0 0 0}.mobile h3{font-weight:600;font-size:16px;margin:0 0 5px 0}.mobile .icon-rss-head{position:relative;color:#000}.mobile .icon-rss-head .icon{top:10px;margin-left:20px}.mobile h2{margin:50px 0 25px 0;color:#000}.mobile h2:first-child{margin:0 0 25px 0;color:#000}.landing-ajax{width:100%;margin:0 0 15px 0;list-style:none}.landing-ajax:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.landing-ajax li{float:left;margin-bottom:0;width:280px}.landing-ajax li h2{font-size:1em;line-height:1.3em;margin-bottom:7px}.landing-ajax li h2 a{display:block;padding:90px 0 0 0}.landing-ajax li.control-kit{margin-right:40px;background:url(../images/ui/sprite-ajax.png?cdn_id=i72) no-repeat 80px 20px}.landing-ajax li.jquery{background:url(../images/ui/sprite-ajax.png?cdn_id=i72) no-repeat -630px 35px}.landing-ajax li.cdn{margin-right:40px;clear:both;background:url(../images/ui/sprite-ajax.png?cdn_id=i72) no-repeat -1288px 18px}.landing-ajax li.juice{background:url(../images/ui/sprite-ajax.png?cdn_id=i72) no-repeat -1761px 18px}.get-started .landing-nav h4{margin-bottom:6px}.get-started .landing-nav ul{margin:0 0 0 15px}.get-started .landing-nav li{margin:0}.get-started .landing-nav .bullets{color:#000;display:none}.tag1{font-size:x-large}.tag2{font-size:larger}.tag3{font-size:medium}.tag4{font-size:small}.vnext{margin-right:15px;padding:20px;color:#222;margin-bottom:40px;border:1px solid #d2d2d2}.vnext img{margin:15px 0 0}.new{position:absolute;width:26px;height:26px;background:url(../images/ui/icon_new_26x26.png?cdn_id=i72) no-repeat 0 0;margin-left:8px}.new2{position:absolute;width:46px;height:46px;background:url(../images/ui/icon_new_46x46.png?cdn_id=i72) no-repeat 0 0;margin-left:8px}.original-date{text-align:right;font-style:italic}.WidgetEnabled{background-color:#555!important}@media only screen and (max-width:480px){h1{font-size:22px!important;line-height:25px!important}.learn-nav{display:none}.hero{width:auto;height:100%;padding:20px;overflow:hidden;margin-bottom:45px}.learn .hero .hero-leftcontent p:last-of-type{margin-bottom:0}.hero-small,.hero-small-2{display:none}.hero-leftcontent{width:100%}.hero-rightimage{display:none}.col-right .common-post img{margin-bottom:5px}.home .header-wrap{border-bottom-width:0;background:none!important}.home .hero{display:block;height:100px;margin:0;padding:0}.home.content{padding:0}.home h1{display:none}.nav-user.logged-in .username{position:absolute;padding-left:20px;white-space:nowrap;top:254px;background:#3e5480;width:290px;z-index:3;line-height:40px;left:40px;font-size:18px;color:#efeff0;box-shadow:-1px 10px 10px rgba(0,0,0,.6);margin-bottom:-5px;-moz-transition:all ease-out .2s;-ms-transition:all ease-out .2s;-o-transition:all ease-out .2s;-webkit-transition:all ease-out .2s;transition:all ease-out .2s}.nav-user.logged-in .username:hover{text-decoration:none}.nav-user.logged-in .username:before{content:"Signed in as ";color:#7f90b1}.nav-user.logged-in .hover .username{left:-296px}.home .leftside,.home .rightside{float:none;width:auto;margin:0 5px}.home .rightside{margin-top:30px}.home .common-list-horz.list-one{margin:15px 0}.home .common-list-horz.list-two{margin:15px 0}.home .common-list-horz.list-two li a{display:block}.home .common-list-horz.list-two li{line-height:normal}.home .common-list-horz.list-one li span,.home .common-list-horz.list-two li span{font-size:16px;margin:15px 15px 0 0}.home .common-list-horz.list-two li .icon{top:0}.home .common-list-horz.list-one li div{display:block;line-height:15px;margin-bottom:10px;margin-top:-10px}.home .common-list-horz.list-one li div a{font-size:14px;line-height:20px}.home .common-list-horz.list-one li div span.pipe{font-size:14px}.home .common-list-horz.list-two{margin-bottom:30px;border-top:none;padding-top:5px}.common-list-horz{width:auto}.common-list-horz.list-one li{line-height:22px}.common-list-horz.list-one li.announcement{padding-left:15px;vertical-align:top}.common-list-horz.list-two li.announcement{padding:0 0 10px 15px}.common-list-horz li.icon-announce,.common-list-horz li.icon-rss-lrg{display:none}.common-list-horz li.icon-whatsnew-lrg{display:none}.common-list-horz li.icon-spotlight-lrg{display:none}.common-list-horz li.icon-announcements-lrg{display:none}.home .common-list-horz.list-two li span{margin:0 36px 0 0}.home .common-list-horz.list-two li.announcement>a{top:5px}.common-post{padding:0 5px;width:auto;border-bottom:1px solid #d2d2d2}.home .common-post .excerpt{border-bottom-width:0}.get-started .hero,.learn .hero{width:auto;height:100%;padding:20px;overflow:hidden;margin-top:0}.get-started .hero>p{width:100%}.get-started .content-mod div{width:100%}.get-started .col-left{float:none;width:100%;border:0;padding:0}.get-started .content-mod div.float-right,.get-started .content-mod div.float-left{float:none;margin-bottom:20px}.get-started .customer-mod-list{width:100%;height:auto}.get-started .customer-mod-list li{width:50%}.get-started .customer-mod:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.get-started .case-studies-mod{margin-top:30px}.learn .col-main{border:0;padding:0}.learn .col-center{border:0}.important-heading{margin:0;padding:10px}.common-list-steps.no-bullets li{margin:0;padding:20px 0 0!important}.community .col-left{width:100%;border:0;padding:0}.community .common-post h2,.community .common-post p,.common-sidebar-module .common-list.topmovers li p{margin-left:80px}.community .leftside,.community .rightside{float:none;width:100%}.community .leftside .common-post,.community .rightside .common-post{height:auto}.common-tabs{position:absolute;z-index:0;background:transparent;top:70px;left:0;margin:0;padding:0 5px;width:100%}.common-tabs li{position:absolute;left:0;width:100%;margin:0;background:transparent;padding:0 5px}.common-tabs li a,.common-tabs li a.selected{box-shadow:none;border:1px solid #000;border-radius:0;text-align:left;line-height:20px;padding:5px 10px}.common-tabs{border-radius:0}.common-tabs .selected{z-index:3}.col-top .ad-300x250{position:relative;margin:0 auto 20px;display:none}.common-checklist li{margin-bottom:15px!important}.col-top{padding:0}.col-main{width:100%!important;padding:0}.col-center{padding:0!important;width:100%!important;border-right-width:0!important;margin:0!important}.module-chapters{width:100%!important}.content.article-page.article-content h1{margin-bottom:0}.article-title.keyline{margin-bottom:0;border-bottom:0;width:100%}.content.article-page.article-content .common-tabs{top:115px}.content.article-page.article-content ol img{width:100%}.important.important-box-article p,.important.important-box-article ul,.important.important-box-article strong,.important.important-box-article code{color:#49545d;font-size:14px}.important.important-box-article ul{margin-left:40px}.content.article-page.article-content .col-left h2{color:#4e4e4e;font-weight:normal;font-size:18px}.content.article-page.article-content ol{margin:0;list-style-position:inside;font-size:14px}.content.article-page.article-content ol li p{color:#4e4e4e}.content.article-page.article-content ol pre{margin:0 0 20px 0!important;white-space:pre-wrap;border-style:solid}.sidebar{width:100%}.content.article-page.article-content ul{list-style-type:none;margin:0}.article-content img{width:auto;height:auto;max-width:100%}.author-box.article{border-top:1px solid #d2d2d2;padding:10px 0;border-bottom:1px solid #d2d2d2}.author-box img{margin:0;width:59px;height:59px}.author-box p{margin-left:80px;color:#4e4e4e;font-size:14px;margin-bottom:0}.article-title.keyline h1+.details{margin-bottom:20px}.article-comments.module-comment{border-top-width:0}.article-comments.module-comment .icon-rss-head{display:none}.module-comment .col-left{width:auto}.leave-comment.module-comment .col-right{margin-top:0!important}.common-sidebar-module{clear:both}#comments-toggle{display:block;clear:both;float:left;width:100%;background:transparent;margin-top:20px}#comments-toggle a{display:block;clear:both;float:left;width:100%;text-transform:uppercase;background:#e8ecee;padding:10px 20px;color:#868e95;font-size:14px;text-decoration:none}.post-thumb.generic,.post-thumb{display:none}.common-post-vid h3,.common-post-vid p{float:left;margin-left:0!important}.common-post-vid p{float:left;margin-left:10px!important}.module-intro .post-thumb{display:block}.module-comment-header{border-bottom-width:0}p.breadcrumbs{font-size:14px;color:#474747}#comment-list li:first-child{border-top:0}#comment-list li a:first-child img{margin:0;width:30px;height:30px}#comment-list li p{margin-left:40px!important;color:#737d86}#comment-list li:last-child{border-bottom-width:0}.module-vid-player{width:100%;height:256px}.module-vid-player img{width:100%;height:100%}.module-vid-player object,.module-vid-player video,.module-vid-player iframe{width:100%!important;height:226px!important}.download-box-article{margin-top:20px;position:relative;border:1px solid #d2d2d2;border-width:1px 0 0;width:100%;background:transparent;text-align:left;padding:0;line-height:54px;margin-bottom:0}.download-box-article .separator{float:left;margin:0;display:none}.download-box-article p:before{content:"Downloads:";font-size:14px;color:#4c5969;text-transform:uppercase;font-weight:normal;color:#4c5969;text-indent:0;position:absolute;top:-40px;left:0;height:100%}.download-box-article p{width:100%;text-indent:-9999px;font-size:0!important}.download-box-article p a{float:left;font-size:14px;font-weight:normal;background:#598527;color:#fff;font-size:16px;width:30%;padding:5px 0;text-align:center;line-height:20px;text-indent:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:5px 10px 5px 0}.download-box-article+h2{margin-top:20px}.download-box-article{width:100%}.download-box-article:after{clear:both;content:'.';display:block;visibility:hidden;height:0}.prettyprint.linenums span{white-space:normal}.note{width:100%}.nav-multi-part{border-top:0;border-bottom:1px solid #d2d2d2}.leave-comment{border-top:0}.leave-comment p,.leave-comment h2{text-align:left;color:#4e4e4e}.leave-comment .col-left h2{margin-bottom:10px}#comment-body{width:100%}.module-comment input[type=button],.module-comment input[type=submit]{margin:0 10px 0 0!important}.leave-feedback{width:auto;float:left;margin-left:120px;margin-top:-40px}.article-comments{padding-top:0}.module-chapters{display:none}p.video_thumb{padding-right:120px}.video-thumb-single{height:auto;background:none;position:absolute;bottom:0}.video-thumb-single .play_button{border:0;background:#809aaf;color:#fff;text-align:center;width:120px;height:auto;padding:10px;left:-120px}.video-thumb-single img{display:none}.video-thumb-single .play_button:after{content:"Watch Video";text-transform:uppercase;font-size:14px}.converted{display:none}.common-tabs{display:none}.curricula-list-sidebar ol{display:none}.search-facet{width:100%;padding:0}.content.search h1{font-size:18px}.keyline-title{border:0}.search-filter{background:transparent;border:0}.search-filter h2,.search-filter h3,.search-filter .search-box label{display:none}.search-filter .search-box{position:relative}.search-filter .search-box p.search-fields,.search-filter .search-box input[type=text]{background:#f6f6f6;width:100%;padding:0 10px;line-height:20px;border:0}.search-filter .search-box p.search-fields{border:1px solid #d2d2d2;overflow:hidden;margin-bottom:20px}.search-filter .search-box .input-search-submit{position:absolute;right:0;top:0}.search .col-right{width:100%}.pagination{width:100%}#search-order-select{margin-bottom:20px}.search-results{margin:0}.pagination .prev{background:url(../images/ui/pager-arrows.png?cdn_id=i72) 0 0 no-repeat;width:10px!important;height:15px!important;text-indent:-9999px;border:0;margin:6px 5px 0}.pagination .next{background:url(../images/ui/pager-arrows.png?cdn_id=i72) -10px 0 no-repeat;width:10px!important;height:15px!important;text-indent:-9999px;border:0;margin:6px 5px 0}.pagination a{line-height:25px;padding-top:0}.pagination .nolink{line-height:20px;padding-top:0}.pagination a,.pagination span.nolink,.pagination .disabled{width:26px}.nolink+a{display:block!important}.pagination>:last-child{display:block!important}.downloads .doublelists{float:none;width:100%}.pluralsight.content .calltoaction{position:none;height:100%}.pluralsight.content .calltoaction a.btn-install.second{position:relative;left:0}.pluralsight.content .calltoaction a.btn-install{position:relative;left:0;margin-bottom:15px}.pluralsight ul.two-column-list li{float:none}.pluralsight.content .calltoaction p{font-size:16px}.archives .head-desc{width:inherit}.archives .search-results{padding:0}.archives .col-left{padding:0;width:100%;border:0}.archives .pagination{margin:0 0 10px 0}.two-col .col-left{width:100%;padding:0;border:0}.mini-nav{display:block}.ad-300x250{margin:15px auto 35px}.ad-300x250 a{display:block}.ad-300x250 img{display:block;margin:0 auto}.ad-728x90{visibility:hidden;margin:0;height:0;display:none}.ad-728x90.ad{display:none!important}.ad-home{display:none!important}.module-community{width:100%}.fl-menu{display:none}.common-post{padding:0 5px 20px}.promo-box-wrapper li h2 a{min-height:152px}.article-content table td,.article-content table th{padding:0;margin:0;width:0}.downloads h1{width:auto}.hosted .col-left .subhero .subherohero{display:none}.hosted.two-col .col-left,.hosted.two-col .col-right{width:100%;height:100%;padding-right:0}.hosted .col-left .subhero,.hosted .col-right .subhero{width:100%;padding:20px;height:100%}.hosted .col-left .subhero h3,.hosted .col-right .subhero h3{font-size:22px;line-height:22px}.hosted .col-left .subhero p,.hosted .col-right .subhero p{font-size:18px;line-height:20px}.hosted .subhero a.btn-azure.white{line-height:20px}.col-right-learn{width:100%;padding:0;float:none;border:0;margin-left:-1px}.col-right-learn .social-bar{margin:22px 0}.details .social-bar{position:static!important;margin:22px 0!important}article header{height:auto;margin:0;padding:0}.icon-list,.icon2-list{width:100%}.icon-list,.icon2-list{float:none}.icon-list li a,.icon2-list li p{width:75%;height:auto}.icon2-list{margin-top:30px}.module-form-wrapper{width:100%}.form-wrapper textarea.txt_area{width:230px}.content.contact-us{padding-bottom:0}.hof .col-left{width:100%;border:0;padding:0}.tbl-recognition{width:auto}.sort-box .module-common-select{position:static}.mobile .hero-leftcontent{width:100%;margin:0}.search .sortingoptions{width:100%}.search-results .resultnumber{left:-25px}.tags{width:100%}div.hero.fourwide{height:auto}.ajax .icon-rss-head .icon{margin-left:0}.pluralsight.content .col-full{padding:0}.samples .col-left{width:100%;border:0;padding:0;margin:0}.samples .content-wrap{padding:0;margin-top:15px}.two-col h3:first-child{margin-top:0}ul.entity-content li a{margin-right:10px;min-height:70px}.new,.new2{display:none}}.modal{background:none repeat scroll 0 0 #fff;border:1px solid #666;box-shadow:0 0 1em #666;left:50%;position:fixed;top:40%;z-index:1000}.modal a.modal-close{position:absolute;right:15px;top:15px;color:#3babd0;font-size:20px}.modal a.modal-close:hover{text-decoration:none;color:#000}.modal .modal-header{min-height:90px}.modal .modal-contents{padding:15px 15px 0}.modal h2{font-size:1em;font-weight:bold;color:#000;line-height:1.4em}.modal-cover{background:none repeat scroll 0 0 #fff;height:100%;top:0;opacity:.6;position:fixed;width:100%;z-index:20}@media only screen and (max-width:480px){.modal{visibility:hidden}}.modal-webpi{width:700px;margin-left:-350px;margin-top:-108px}.modal-webpi p{height:150px;border:1px solid #e1e2e2;margin:15px 0;padding:15px;font-size:15px;line-height:1.4em}.modal-webpi .btn-install{float:right}.pln{color:#000}@media screen{.str{color:#a31515}.kwd{color:#00f}.com{color:green}.typ{color:#2b91af}.lit{color:red}.pun,.opn,.clo{color:#000}.tag{color:#a31515}.atn{color:red}.atv{color:#00f}.dec{color:purple}.var{color:#000}.fun{color:#000}}@media print,projection{.str{}.kwd{font-weight:bold}.com{font-style:italic}.typ{font-weight:bold}.lit{}.pun,.opn,.clo{}.tag{font-weight:bold}.atn{}.atv{}}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}pre,.code_block{padding:5px;margin:18px 0 30px;border:1px dashed #ccc;font-family:"Consolas",monospace;overflow:auto;display:block;white-space:pre;background-color:#f3f3f3}code{font-family:"Consolas",monospace;color:#800039}pre.lang-command-line{color:#000!important}pre.lang-command-line span{color:#000!important}pre.lang-terminal{background-color:#000;color:#fff!important}pre.lang-terminal span{color:#fff!important}.social-bar{text-align:right;margin:22px 0;height:20px;overflow:hidden}.details .social-bar{margin:0;position:absolute;right:52px;bottom:5px}.social-item{display:inline-block;margin-left:10px;vertical-align:top;height:20px;overflow:hidden;width:98px}.print-bar{position:absolute;right:0;bottom:7px}.print-bar a{background:#969696;color:#fff;padding:0 11px 3px}.print-bar a:hover{background:#d2d2d2;text-decoration:none}.notes{background:#efefef;padding:25px;margin:15px 0}.notes span{background:url(../images/ui/sprite-notes.png?cdn_id=i72) 0 0 no-repeat;display:block;width:28px;height:31px;position:absolute;margin-left:-59px}.notes-important span{background-position:-75px 0}.notes-caution span{background-position:0 0}.notes-warning span{background-position:-37px 0}.notes-tip span{background-position:-107px 0}.notes-basic span{background-position:-170px 0}.notes-security span{background-position:-136px 0}.notes-important{border-left:40px solid #ffb900}.notes-caution{border-left:40px solid #ff8c00}.notes-warning{border-left:40px solid #e81123}.notes-tip{border-left:40px solid #00bcf2}.notes-basic{border-left:40px solid #7fba00}.notes-security{border-left:40px solid gray}.print-only,.print-only-inline{display:none}@media print{.print-no{display:none}.print-only{display:block}.print-only-inline{display:inline}header{display:none}.footer{margin-top:0;width:auto;padding:10px}.footer-menu{margin:0}.footer-menu li{display:none}.footer-menu li.block{display:block}.footer-menu.last{display:none}.allcontent{min-width:inherit}.content{width:auto;padding:0;margin:10px}.learn-nav{display:none}.module-chapters{display:none}.download-box-article{text-align:left}.col-right-learn{width:auto;padding:0;float:none;border:0}.col-right-learn a:link,.col-right-learn a:visited{font-weight:bold}.col-right-learn a:link:after{content:" (" attr(href) ") ";font-size:90%}.article-content img{max-width:100%}.article-title .details .author-header{width:100%}.video-thumb-single{display:none}.print-bar{display:none}.social-bar{display:none}.nav-multi-part{display:none}.leave-comment{display:none}.comments-status{display:none}#comments-toggle{display:none}.note .dogear,.sidebar .dogear{display:none}.ad-728x90{display:none}pre{white-space:pre-wrap}.hero{width:auto}.hero .btn-install{display:none}.two-col a:link,.two-col a:visited{font-weight:bold}.two-col a:link:after{content:" (" attr(href) ") ";font-size:90%}.hero-rightimage{display:none}.hero-leftcontent{width:auto}.two-col .important .btn-install{display:none}.two-col .col-left{width:100%;border:0;padding:0}.two-col .col-right{display:none}.two-col div.divider{width:100%;left:0}}.select-convert,.mini-nav,.new-inbox{display:none}@media only screen and (max-width:480px){*{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.new-inbox{display:none!important}.allcontent{min-width:0;max-width:480px;width:100%}.content{width:100%;padding:0 5px;margin:0;position:relative}.nav-user.logged-in{display:block;background:none;height:50px;width:44px;top:0}.nav-user.logged-in>ul{padding-top:0;margin:0;position:absolute;top:0;left:0;height:50px;width:44px}.nav-user.logged-in img.avatar{display:none}.nav-user.logged-in>ul>li{margin-left:50px;display:block!important;position:absolute;left:0;top:0;height:50px;width:38px}.nav-user.logged-in .username+p{position:absolute;padding-left:20px;top:290px;background:#3e5480;width:290px;z-index:3;line-height:40px;left:40px;font-size:18px;color:#efeff0;box-shadow:-1px 10px 10px rgba(0,0,0,.6);margin-bottom:-5px;-moz-transition:all ease-out .2s;-ms-transition:all ease-out .2s;-o-transition:all ease-out .2s;-webkit-transition:all ease-out .2s;transition:all ease-out .2s}.nav-user.logged-in .hover .username+p{left:-296px}.nav-user.logged-in .common-dropdown.hover li.drop-head{display:none}.new-notifications{background:#f7e3e4!important}.nav-user.logged-in .common-dropdown{clear:both;height:24px;width:24px;z-index:2;display:block;border:none;padding:0}.nav-user.logged-in .common-dropdown li:first-child{margin-top:24px}.nav-user.logged-in .common-dropdown li,.nav-user.logged-in .common-dropdown li.last-child{margin-top:-4px;display:block;margin-left:22px;float:none;margin-left:85px;background:#efeff0;width:290px;border-top:1px solid #fff;box-shadow:-1px 10px 10px rgba(0,0,0,.6);margin-bottom:-5px;z-index:2;-moz-transition:all ease-out .2s;-ms-transition:all ease-out .2s;-o-transition:all ease-out .2s;-webkit-transition:all ease-out .2s;transition:all ease-out .2s}.nav-user.logged-in .common-dropdown.hover li{display:block;margin-left:-248px}.nav-user.logged-in .common-dropdown.hover:before,.nav-user.logged-out.hover:before{content:"";width:620px;height:9000px;position:absolute;top:49px;left:-540px;background:rgba(0,0,0,.6);z-index:-1}.nav-user.logged-in .common-dropdown li>a{color:#267cb2;font-weight:normal;display:block;padding:13px 18px 17px 18px;font-size:14px}.nav-user.logged-in .common-dropdown li>a.selected{color:#267cb2!important;background:none;box-shadow:none}.nav-user.logged-out{position:absolute;top:0;right:0;display:block;clear:both;padding:0;margin:0;height:36px;width:36px;background:transparent url(../images/ui/asp-net-icon-cog-b.png?cdn_id=i72) 0 0 no-repeat;background-size:100% 100%;z-index:2;top:8px;right:8px;border:10px solid transparent;border-radius:8px;padding:9px 10px 9px 11px;display:block;left:auto}.nav-user.logged-out p{position:absolute}.nav-user.logged-out.hover p{position:absolute;display:block;right:0;top:38px;width:200px}.nav-user.logged-out p a{margin-top:-4px;display:block;float:none;margin-left:235px;background:#efeff0;width:290px;border-top:1px solid #fff;box-shadow:-1px 10px 10px rgba(0,0,0,.6);margin-bottom:-5px;z-index:2;font-weight:normal;padding:12px 18px 16px 18px;font-size:14px;color:#267cb2;-moz-transition:all ease-out .2s;-ms-transition:all ease-out .2s;-o-transition:all ease-out .2s;-webkit-transition:all ease-out .2s;transition:all ease-out .2s}.nav-user.logged-out.hover p a{margin-left:85px}.nav-user.logged-out p span{display:none}#messages{display:none!important;position:absolute;top:0;left:0!important;display:block;height:100%;width:40px;line-height:40px}body{max-width:480px;min-width:0}header{min-width:0;height:65px;max-width:480px;padding-top:10px;background:transparent;width:100%;min-height:65px;margin-top:0}header a#logo{position:static;display:block;margin-left:0;width:79px;height:48px;margin-bottom:5px;background-image:url('../images/ui/asp-net-logo-c.png?cdn_id=i72');background-size:100% 100%}div.search-header{margin:0;background:transparent;position:absolute;width:18px;height:18px;top:17px;right:140px;left:auto;border-width:0}div.search-header input{display:none}div.search-header input[type=text],nav,.language-translation a.language,.nav-user.logged-out,.nav-user.logged-in .common-dropdown.hover,.nav-user.logged-in .common-dropdown,.nav-user.logged-out.hover,nav .active{background:transparent url(../images/ui/asp-net-mobile-icon-sprite.png?cdn_id=i72) 0 0 no-repeat;height:48px;width:48px}div.search-header input[type=text]{background-size:95px 47px;display:block;width:24px;height:24px;border:0;position:absolute;top:0;left:0;padding:0;margin:0;text-indent:-9999px;line-height:0}div.search-header input[type=text]:focus{width:150px;text-indent:0;left:auto;color:#343434;background:#fff;padding:7px 10px;font-size:14px;top:-7px;right:0;height:32px;box-shadow:inset 0 0 2px rgba(0,0,0,.7);border-radius:3px;-moz-transition:width ease-out .2s;-ms-transition:width ease-out .2s;-o-transition:width ease-out .2s;-webkit-transition:width ease-out .2s;transition:width ease-out .2s;border:1px solid #ccc}.language-translation{position:absolute;top:0;right:0}.language-translation a.language{background-position:-24px 0;color:#fff;font-size:0;height:24px;width:24px;display:block;padding:0;position:absolute;right:97px;left:auto;top:16px;-webkit-background-size:95px 47px;-moz-background-size:95px 47px;-o-background-size:95px 47px;background-size:95px 47px}.language-translation a.language.active{background-position:-24px -24px}.language-translation .translator{width:245px;z-index:1}.common-dropdown{position:absolute;right:60px;top:50px}.language-translation .common-dropdown{position:absolute;left:-245px;top:65px;padding-bottom:10px}.language-translation a.active:before{content:"";width:1020px;height:9000px;position:absolute;top:49px;left:-470px;background:rgba(0,0,0,.6);z-index:-1}nav{background-size:95px 47px;clear:both;padding:0;margin:0;height:24px;width:24px;background-position:-48px 0;position:absolute;z-index:1;top:16px;right:60px}nav.active{background-position:-48px -24px}.nav-user.logged-in .common-dropdown.hover+.new-inbox{display:none}.nav-user.logged-in .common-dropdown.hover li.second-child{margin-top:49px}.nav-user.logged-in .common-dropdown.hover{background-size:95px 47px;background-position:-72px -24px}.nav-user.logged-out.hover{width:24px;background-size:95px 47px;background-position:-72px -24px}.nav-user.logged-in .common-dropdown{height:24px;background-size:95px 47px;background-position:-72px 0}.new-inbox{display:block;position:absolute;background-color:#fc5558;height:50px;margin-left:-50px;width:44px;top:0;left:0;text-align:center;line-height:50px;font-size:18px;color:#fff;z-index:3}.nav-user.logged-in .common-dropdown.notifications .mini-nav:first-child a{color:#f46e70;text-decoration:none}.nav-user.logged-out{background-size:95px 47px;background-position:-72px 0;border:0;height:24px;width:24px;border-radius:0;padding:0;right:18px;top:16px}nav.nav-main>ul li,nav.nav-main>ul li.last-child{margin-top:0}nav.nav-main>ul li,nav.nav-main ul li.last-child,.nav-main-solutions p a{display:block;margin-left:22px;float:none;margin-left:85px;background:#efeff0;width:200px;border-top:1px solid #fff;box-shadow:-1px 10px 10px rgba(0,0,0,.6);margin-bottom:-5px;z-index:2;-moz-transition:all ease-out .2s;-ms-transition:all ease-out .2s;-o-transition:all ease-out .2s;-webkit-transition:all ease-out .2s;transition:all ease-out .2s}nav.nav-main>ul>li:first-child{margin-top:48px;margin-left:85px}nav.nav-main>ul.hover>li{display:block;margin-left:-110px}nav.nav-main>ul>li{display:none}nav.nav-main ul.hover:before{content:"";width:520px;height:9000px;position:absolute;top:49px;left:-400px;background:rgba(0,0,0,.6);z-index:-1}nav.nav-main ul li>a,.nav-main-solutions .col ul li a,.nav-main-solutions p a{color:#267cb2;font-weight:normal;display:block;padding:13px 18px 17px 18px;font-size:14px}nav.nav-main ul li>a.selected{color:#267cb2!important;background-color:#ccc;box-shadow:none}nav.nav-main ul li>a:hover{text-decoration:underline}.nav-user.logged-in>ul>li{width:60px}.nav-main-solutions .col ul{float:none;margin-left:0;display:block;width:100%;padding-bottom:0}.nav-main-solutions{position:static!important;z-index:auto}.dropdown-learn a,.dropdown-community a{position:relative;display:block!important;padding:13px 18px 17px!important}.dropdown-learn,.dropdown-community{display:none!important;z-index:3;position:absolute;top:36px;left:-130px;padding:0;-moz-transition:all ease-out .2s;-ms-transition:all ease-out .2s;-o-transition:all ease-out .2s;-webkit-transition:all ease-out .2s;transition:all ease-out .2s}.dropdown-learn:hover,.dropdown-community:hover{display:none!important}nav.nav-main ul.solutions-expanded.communitypulldown .dropdown-community{display:block!important}nav.nav-main ul.solutions-expanded.learnpulldown .dropdown-learn{display:block!important}nav.nav-main ul.solutions-expanded .dropdown-learn:before,nav.nav-main ul.solutions-expanded .dropdown-community:before{content:"";width:1020px;position:absolute;top:8px;left:-470px;background:rgba(0,0,0,.6);z-index:-1}nav.nav-main ul.solutions-expanded li{margin-left:-230px}nav li a.selected .icon-dropdown,nav li:hover a.selected .icon-dropdown{background-position:-10px 0}.nav-main-solutions .col{display:block;float:none;position:static;margin:0;width:100%;padding:0}.nav-main-solutions .col h2,.nav-main-solutions p span{display:block;border-bottom:0;margin:0;background:#d3d3d4;font-size:14px;color:#80808a;width:100%;padding:10px 0 10px 20px;margin-top:-5px;box-shadow:-1px 10px 10px rgba(0,0,0,.6)}*{-webkit-text-size-adjust:100%}.nav-main-solutions .col h2{margin:0}nav.nav-main ul.solutions-expanded .nav-main-solutions .col ul li{margin-left:0;width:100%}nav.nav-main ul.solutions-expanded .nav-main-solutions .col ul li hr{display:none}.nav-main-solutions p{margin:0;padding:0;font-size:0}.nav-main-solutions p a{margin:0;width:100%;margin-top:-20px}.nav-main-solutions p span+a{margin-top:0}.nav-main-solutions>a{position:relative}nav ul .icon-dropdown,nav ul a:hover .icon-dropdown{right:30px;top:12px;width:10px;height:15px;background:url(../images/ui/pager-arrows.png?cdn_id=i72) -10px 0 no-repeat;padding:0;margin:0}.nav-user{display:none;right:0}.header{min-height:50px}.select-convert{display:block;width:100%;margin-bottom:20px}.col-center{width:100%!important;max-width:480px;padding:0!important;margin-left:0;margin-right:0;border:0}.col-right{width:100%!important;padding:0!important;margin:30px 0 0 0!important}.footer{width:100%;padding:0 0 11px 0}.footer-menu h2,.footer-menu li h2 a{font-size:13px;color:#989797;margin-bottom:10px;line-height:1.4em}.footer-menu li{line-height:1em}.footer-menu li a{font-size:10px}ul.footer-menu{margin-bottom:10px;width:100%}ul.footer-menu+ul.footer-menu{width:auto;margin:10px 0 0;float:left;padding-right:0;max-width:100%}ul.footer-menu+ul.footer-menu li:first-child~li{float:left}ul.footer-menu.last li:first-child~li{margin:-3px 0 0 0}ul.footer-menu{padding:0 5px}ul.footer-menu.last{float:left;position:relative;max-width:205px;margin:0;padding-left:5px}.footer-menu .separator{padding:0 2px}.footer .logo-microsoft{width:88px}div.social{display:none}}
-->

上一篇:java.sql.SQLException: The SQL statement must not be null or empty.这个错误


下一篇:Azure 支持SQL Server 2019备份和文件还原