Coder Social home page Coder Social logo

combres's Introduction

Overview

Combres (previously hosted in CodePlex) helps your ASP.NET and ASP.NET MVC applications perform faster and rank better with YSlow and PageSpeed.

Features highlights:

  • All in one solution supporting JS/CSS combination, minification, compression and caching (by adding proper Expires/Cache-Control headers, ETag and server-side caching)
  • Easy to use, simply download it via Nuget, declare JS and CSS resource groups in an XML file and use them in your pages, Combres will take care of the rest
  • Integrated with ASP.NET routing engine and work with ASP.NET WebForm 3.5/4.0/4.5, ASP.NET MVC 2/3/4 and Azure web applications
  • Detect changes in Combres config file, managed JS/CSS files and support auto-versioning, so you don't have to manually rebundle JS/CSS resources after making changes to them
  • Extensible architecture with many extension points
  • And many more: CDN, HTTPS, debug mode, external JS/CSS (dynamically requested from other servers), Less CSS etc.
  • Proven solution with many thousands of downloads in NuGet, CodePlex and The Code Project

Check out this Code Project article for a thorough introduction.

Usage

Install from NuGet

PM> Install-Package combres
PM> Install-Package combres.log4net (optional)
PM> Install-Package combres.mvc (optional)

Optional steps for ASP.NET 3.5 users, those using ASP.NET 4 or above can ignore:

  • Delete the generated file AppStart_Combres.cs
  • Open global.asax code-behind file:
    • Import Combres namespace
    • Add this line to the first line of either RegisterRoutes() or Application_Start(): RouteTable.Routes.AddCombresRoute("Combres")

Edit App_Data/Combres.xml to declare your JS and CSS resources

Use resource groups in your pages as follows:

<%= WebExtensions.CombresLink("siteCss") %>  
<%= WebExtensions.CombresLink("siteJs") %>

ASP.NET MVC developers can import Combres.Mvc namespace and declare CSS/JS like below:

@using Combres.Mvc;
...
@Url.CombresLink("siteCss")
@Url.CombresLink("siteJs")

That should be it. Start your browser to observe Combres in action. For more advanced usages, refer to these resources:

Change Log

2.2.2.18

  • Only support .NET 4.0 or above. .NET 3.5 users should use Combres 2.2.2.17.
  • Use Fasterflect 2.1.3

2.2.2.17

  • Reverse to Fasterflect 2.1.0 to fix #6

2.2.2.15

  • Fix issues 7675, 7656, 7673, 7660, 7654
  • Built with dotLess 1.3.1.0, Fasterflect 2.1.2, AjaxMin 4.48.4489.28432 and Log4Net 1.2
  • Move Log4Net logger implementation to separate Combres.Log4Net package
    • NuGet Combres.Log4Net
    • Add this attribute the combres element: logProvider="Combres.Log4Net.Log4NetLogger, Combres.Log4Net"

2.2.2.6

  • Built with latest versions of Log4Net, YUI Compressor and MS Ajax Minifier
  • Add MSAjaxCssMinifier to minify CSS resources
  • Add line break to JS resources when combining

2.2.2.2

2.2.2.0

  • Support host prefix

2.2.1.8

2.2.1.5

  • Support AS.NET MVC 3 and Razor
  • Fix 7647
  • Add EnableClientUrls() to WebExtensions and MvcExensions for generating JS variables providing access to Combres resource sets
  • MvcExtensions returns MvcHtmlString instead of string

2.1

  • Enable Dot Less for combined contents (instead of individual files) via DotLessCssCombineFilter
  • Support Azure
  • Enable custom server-side caching via <combres cacheProvider="my.custom.cache" .../>
  • Support local closure compilation via LocalClosureJSMinifier
  • Support cache-vary extensibility to allow developers to control Combres caching behavior
  • Fix issue 6547

2.0

  • Implement 6103, 5633, 5572, 6088, 6056, 5605, 5941, 78751, 4349
  • Support per-resource minification scheme
  • Fix bug in etag handling which may cause client to receive expired content
  • Add overload of CombresLink() which accepts htmlAttributes object
  • Combres now maintains the order of resources in multiple-minifiers resource sets

1.2

  • Change detection and auto-versioning
  • Fix bug when auto-versioning generates different version across application processes
  • Fix 69854, 5489
  • Add filters: DotLessCssFilter, HandleCssVariablesFilter
  • Fix ChangeMonitor#IsSamePath() as per this discussion thread
  • Update SimpleOjectBinder to allow case-insensitive binding
  • Add forwardCookie attribute to <resource> element whose mode is Dynamic.
  • Handle both gzip & deflate for remote resources

1.1

  • Support YUI, MS Ajax and Google Closure minifiers
  • Support turn-off minification
  • Fix 5460
  • Use default minifier if minifierRef, jsMinifierRef, cssMinifierRef is not specified
  • Support auto mode for debugEnabled (to use debug setting from web.config)

Author

Email: [email protected]
Blog: (www.buunguyen.net)
Twitter: @buunguyen

Bitdeli Badge

combres's People

Contributors

antonmordvinov avatar bitdeli-chef avatar buunguyen avatar nathanhillyer avatar sarvasana avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.