「Nancy」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「'''Nancy'''とは、.NET向けの軽量ウェブフレームワークである<ref>http://nancyfx.org</ref>。 ==概要== 調査中 ==関連項目== ==参考文献...」)
 
3行目: 3行目:
 
==概要==
 
==概要==
 
調査中
 
調査中
 +
 +
==未分類==
 +
===Minify & Bundleを使う===
 +
ASP.NET 4から搭載されたMinify & BundleをNancyから使ってみる。
 +
 +
====NuGetから必要なパッケージを入れる====
 +
[[ASP.NET]]関連のほとんどが、いつの間にか[[ASP.NET]]本体から分離されて[[NuGet]]へ移行している。[[Linux]]上の[[Mono]]でも[[ASP.NET]]を使えという思し召しらしい。[[Xamarin Studio]]からも一発で入る。
 +
*https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization/
 +
 +
====web.configを編集====
 +
<pre>
 +
<configuration>
 +
  <configSections>
 +
      <!--  追加 -->
 +
      <section name="razor" type="Nancy.ViewEngines.Razor.RazorConfigurationSection, Nancy.ViewEngines.Razor" />
 +
      <!--  追加 -->
 +
  </configSections>
 +
 +
  <!--  追加 -->
 +
  <razor disableAutoIncludeModelNamespace="false">
 +
    <assemblies>
 +
      <add assembly="System.Web.Optimization" />
 +
      <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
 +
    </assemblies>
 +
    <namespaces>
 +
      <add namespace="System.Web.Optimization" />
 +
    </namespaces>
 +
  </razor>
 +
  <!--  追加 -->
 +
 +
  <system.webServer>
 +
    <!--  追加 -->
 +
    <modules runAllManagedModulesForAllRequests="true"> 
 +
      <remove name="BundleModule" /> 
 +
      <add name="BundleModule" type="System.Web.Optimization.BundleModule" /> 
 +
    </modules>
 +
    <!--  追加 -->
 +
  </system.webServer>
 +
</configuration>
 +
</pre>
 +
 +
====バンドルを登録する====
 +
どこでもいいので登録内容が記述されたメソッドを作る。
 +
純正に右に倣えで「App_Start/BundleConfig.cs」にしておくと無難だと思われる。
 +
<source lang="csharp">
 +
using System;
 +
using System.Web.Optimization;
 +
 +
namespace Test
 +
{
 +
    public class BundleConfig
 +
    {
 +
        public static void RegisterBundles(BundleCollection bundles)
 +
        {
 +
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
 +
                "~/Scripts/jquery-{version}.js"));
 +
        }
 +
    }
 +
}
 +
</source>
 +
 +
サーバー起動時に登録する。
 +
Global.asax.cs(無ければ作る)のApplication_Startメソッドから上記の登録メソッドを呼び出す。
 +
<source lang="csharp">
 +
using System;
 +
using System.Web.Optimization;
 +
 +
namespace Test
 +
{
 +
    public class Global : System.Web.HttpApplication
 +
    {
 +
        protected void Application_Start(Object sender, EventArgs e)
 +
        {
 +
            BundleConfig.RegisterBundles(BundleTable.Bundles);
 +
        }
 +
    }
 +
}
 +
</source>
 +
 +
====Scripts.Renderの違い====
 +
ASP.NET 4で標準の記述方法が使えない。
 +
@Scripts.Render("~/bundles/jquery")
 +
以下を使うことで代用する。
 +
@Html.Raw(Scripts.Render("~/bundles/jquery").ToString())
 +
ToStringを忘れると[[Razor]]が落ちる。凄い嵌った。
  
 
==関連項目==
 
==関連項目==

2014年11月4日 (火) 08:39時点における版

Nancyとは、.NET向けの軽量ウェブフレームワークである[1]

概要

調査中

未分類

Minify & Bundleを使う

ASP.NET 4から搭載されたMinify & BundleをNancyから使ってみる。

NuGetから必要なパッケージを入れる

ASP.NET関連のほとんどが、いつの間にかASP.NET本体から分離されてNuGetへ移行している。Linux上のMonoでもASP.NETを使えという思し召しらしい。Xamarin Studioからも一発で入る。

web.configを編集

<configuration>
  <configSections>
      <!--  追加 -->
      <section name="razor" type="Nancy.ViewEngines.Razor.RazorConfigurationSection, Nancy.ViewEngines.Razor" />
      <!--  追加 -->
  </configSections>

  <!--  追加 -->
  <razor disableAutoIncludeModelNamespace="false">
    <assemblies>
      <add assembly="System.Web.Optimization" />
      <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </assemblies>
    <namespaces>
      <add namespace="System.Web.Optimization" />
    </namespaces>
  </razor>
  <!--  追加 -->

  <system.webServer>
    <!--  追加 -->
    <modules runAllManagedModulesForAllRequests="true">  
      <remove name="BundleModule" />  
      <add name="BundleModule" type="System.Web.Optimization.BundleModule" />  
    </modules> 
    <!--  追加 -->
  </system.webServer>
</configuration>

バンドルを登録する

どこでもいいので登録内容が記述されたメソッドを作る。 純正に右に倣えで「App_Start/BundleConfig.cs」にしておくと無難だと思われる。

using System;
using System.Web.Optimization;

namespace Test
{
    public class BundleConfig
    {
        public static void RegisterBundles(BundleCollection bundles) 
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                "~/Scripts/jquery-{version}.js"));
        }
    }
}

サーバー起動時に登録する。 Global.asax.cs(無ければ作る)のApplication_Startメソッドから上記の登録メソッドを呼び出す。

using System;
using System.Web.Optimization;

namespace Test
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(Object sender, EventArgs e)
        {
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}

Scripts.Renderの違い

ASP.NET 4で標準の記述方法が使えない。

@Scripts.Render("~/bundles/jquery")

以下を使うことで代用する。

@Html.Raw(Scripts.Render("~/bundles/jquery").ToString())

ToStringを忘れるとRazorが落ちる。凄い嵌った。

関連項目

参考文献