-
-
Notifications
You must be signed in to change notification settings - Fork 65
Home
Quick Start
Debugging
MVC
Webforms
Pre-defined bundles
Path Aliases
Configuration
Prioritizing
Versioning
Composite Files
Html tag attributes
Forced providers
More on MVC
More on Webforms
Rogue Files
To get started quickly, install CDF via Nuget. If you are using MVC be sure to install the MVC package as well.
PM> Install-Package ClientDependency
PM> Install-Package ClientDependency-Mvc
When you're creating a website, you don't want CDF to be combining, caching & compressing all of your files because you need to be able to debug your JavaScript and CSS in the browser so it is important to note that setting <compilation debug="true">
will disable all combining, caching, compressing, rogue script detection, etc... !!
When you deploy your website or want to test the composite files created with CDF you need to change this to <compilation debug="false">
@Html.RequiresCss("~/Css/ColorScheme.css")
@Html.RequiresJs("~/Js/jquery.js")
@Html.RequiresCssFolder("~/Css/Widgets/")
@Html.RequiresJsFolder("~/Js/Controls/")
@Html.RequiresJs("~/Js/jquery.js")
.RequiresJs("~/Js/jquery.validation.js")
.RequiresJs("~/Js/myLib.js")
@Html.RenderJsHere()
@Html.RenderCssHere()
<CD:CssInclude runat="server" FilePath="~/CSS/ColorScheme.css" />
<CD:JsInclude runat="server" FilePath="~/Js/jquery.js" />
<CD:CssFolderInclude runat="server" FolderVirtualPath="~/Css/Widgets/" />
<CD:JsFolderInclude runat="server" FolderVirtualPath="~/Js/Controls/" />
[ClientDependency(ClientDependencyType.Css, "~/Css/CustomControl.css")]
public class MyControl : Control { ... }
[ClientDependency(ClientDependencyType.JavaScript, "~/Js/MyControl.js")]
public class MyControl : Control { ... }
You need to have a loader on your page:
<CD:ClientDependencyLoader runat="server" id="Loader" />
Then you'll need to define a place holder for where you want the JavaScript and CSS rendered
<%--This will ensure the CSS is rendered at the location of this placeholder--%>
<asp:PlaceHolder runat="server" ID="CssPlaceHolder"></asp:PlaceHolder>
<%--This will ensure the JS is rendered at the location of this placeholder--%>
<asp:PlaceHolder runat="server" ID="JavaScriptPlaceHolder"></asp:PlaceHolder>
NOTE: the Ids of the controls must be how they are defined above, otherwise you can change the expected ids in the CDF configuration. Also in Webforms there are various providers that allow you to change the behavior of the ClientDependencyLoader but the PlaceHolderProvider is the default and is recommended.
Creating a pre-defined bundle on application startup. This example creates a bundle in the global.asax:
public class MyApplication : HttpApplication
{
protected void Application_Start()
{
CreateBundles();
}
public static void CreateBundles()
{
BundleManager.CreateCssBundle("MyControl",
new CssFile("~/Css/Controls/MyControl/css1.css"),
new CssFile("~/Css/Controls/MyControl/css2.css"),
new CssFile("~/Css/Controls/MyControl/css3.css"));
BundleManager.CreateCssBundle("JQuery",
new CssFile("~/Js/jquery.js"),
new CssFile("~/Js/jquery.validation.js"));
}
}
@Html.RequiresCssBundle("MyControl")
@Html.RequiresJsBundle("JQuery")
Coming soon...