|
imported>Administrator |
1行目: |
1行目: |
− | ASP.NET 4から搭載されたMinify & Bundleを[[Mac]]上の[[Mono]]とNancyから使ってみる。
| + | '''リセットマラソン'''とは、ゲームにおいて、初期キャラクターなどが乱数で決定する場合に、目標物が出現するまでリセットしまくることをいう。 |
− | リリースビルドするとJavaScriptやCSSから無駄が省かれるという機能である。
| |
| | | |
− | [[Linux]]なら[[mod_pagespeed]]で良いじゃんというツッコミは禁止である。
| + | リセットマラソンはウィザードリィなどで有名で、高いボーナスポイントが得られるまで延々とキャラクター作成を繰り返し数時間を擁するなどということもあった。 |
− | あれはコンパイルが難しいというか配布サーバーが不安定すぎて泣ける。
| |
| | | |
− | ==静的コンテンツを扱えるようにする==
| + | 最近のiOSやAndroid向けのスマホゲームでのリセットは「アプリを消して再インストール」が基本となるため、リセマラ大前提の作りにするとアプリストアにおけるダウンロード数が伸びる(Androidではデータ全消しでもいける)。ただし、あまりの面倒臭さに利用者がゲーム本編を始めるまえに離れる原因にもなる両刃の剣である。 |
− | なにはともあれNancyで静的コンテンツを使える状態にする。
| |
− | *[[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]]が落ちる。凄い嵌った。
| |
− | | |
− | {{stub}}
| |