gulp-aspnet-viewnames

0.3.1 • Public • Published

gulp-aspnet-viewnames

Travis npm npm License

Generates a c# file containing strong typed information about mvc views.

It also watches changes in the Views directory so that the file is always regenerated when necessery.

Install

npm install gulp-aspnet-viewnames --dev

Here is the npm package.

TL;DR version

Instead of this:

return View("~/Views/Home/Index.cshtml");

You'll be able to write this:

return View(Views.Home.Index.FullName);

Usage

This should be integrated into the gulp build process:

var viewnames = require("gulp-aspnet-viewnames");
gulp.task("viewnames", function () {
    return viewnames({
        ns: "TheNameSpaceOfTheGeneratedFile"
    });
});

Typically, you'll want to bind this to the Project Open binding so that the generated file is always up to date while you're working.

What happens

Run the viewnames task from within Task Runner Explorer. You should run it once (if you don't want to use the bindings), after that, it will continue watching over the Views and regenerate the file without your intervention.

Suppose we have the following directory under Views:

- Home
    - Index.cshtml
- Shared
    - _Layout.cshtml
    - Error.cshtml
- _ViewStart.cshtml

The following c# file will be generated (default name is ViewNames.cs):

namespace TheNameSpaceOfTheGeneratedFile
{
    // ViewName class skipped for brevity.
    // ViewName will contain a Name and a FullName property.
 
    public static class Views
    {
        public static readonly ViewName _ViewStart = new ViewName("_ViewStart", "~/Views/_ViewStart.cshtml");
        public static class Home
        {
            public static readonly ViewName Index = new ViewName("Index", "~/Views/Home/Index.cshtml");
        }
        public static class Shared
        {
            public static readonly ViewName Error = new ViewName("Error", "~/Views/Shared/Error.cshtml");
            public static readonly ViewName _Layout = new ViewName("_Layout", "~/Views/Shared/_Layout.cshtml");
        }
    }
}

So now, you can reference your views with strong typed values rather than hard coded ones, which are prone to refactoring issues.

The generated file should be ignored by your source control.

Readme

Keywords

Package Sidebar

Install

npm i gulp-aspnet-viewnames

Weekly Downloads

1

Version

0.3.1

License

MIT

Last publish

Collaborators

  • mrahhal