نحوه ارتقاء برنامههای موجود MVC3 به MVC4
نویسنده: وحید نصیری
تاریخ: ۱۳۹۱/۰۶/۰۳ ۱۰:۴۸
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies
{E53F8FEA-EAE0-44A6-8774-FFD645390401}
{E3E379DF-F4C6-4180-9B81-6769533ABE47}
System.Web.Mvc, Version=3.0.0.0 System.Web.WebPages, Version=1.0.0.0 System.Web.Helpers, Version=1.0.0.0 System.Web.WebPages.Razor, Version=1.0.0.0
System.Web.Mvc, Version=4.0.0.0 System.Web.WebPages, Version=2.0.0.0 System.Web.Helpers, Version=2.0.0.0 System.Web.WebPages.Razor, Version=2.0.0.0
C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies
C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies
<appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add key="PreserveLoginUrl" value="true" /> </appSettings>
<configuration> <!--... elements deleted for clarity ...--> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
<pages>
<namespaces>
<add namespace="System.Web.Optimization" />
</namespaces>
</pages>
[ValidateAntiForgeryToken(Salt = "data123")]
using System.Collections.Generic;
using System.IO;
using System.Web;
using System.Web.Optimization;
namespace Common.WebToolkit
{
/// <summary>
/// A custom bundle orderer (IBundleOrderer) that will ensure bundles are
/// included in the order you register them.
/// </summary>
public class AsIsBundleOrderer : IBundleOrderer
{
public IEnumerable<FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)
{
return files;
}
}
public static class BundleConfig
{
private static void addBundle(string virtualPath, bool isCss, params string[] files)
{
BundleTable.EnableOptimizations = true;
var existing = BundleTable.Bundles.GetBundleFor(virtualPath);
if (existing != null)
return;
var newBundle = isCss ? new Bundle(virtualPath, new CssMinify()) : new Bundle(virtualPath, new JsMinify());
newBundle.Orderer = new AsIsBundleOrderer();
foreach (var file in files)
newBundle.Include(file);
BundleTable.Bundles.Add(newBundle);
}
public static IHtmlString AddScripts(string virtualPath, params string[] files)
{
addBundle(virtualPath, false, files);
return Scripts.Render(virtualPath);
}
public static IHtmlString AddStyles(string virtualPath, params string[] files)
{
addBundle(virtualPath, true, files);
return Styles.Render(virtualPath);
}
public static IHtmlString AddScriptUrl(string virtualPath, params string[] files)
{
addBundle(virtualPath, false, files);
return Scripts.Url(virtualPath);
}
public static IHtmlString AddStyleUrl(string virtualPath, params string[] files)
{
addBundle(virtualPath, true, files);
return Styles.Url(virtualPath);
}
}
}
@using Common.WebToolkit
<link href="@BundleConfig.AddStyleUrl("~/Content/blueprint/print", "~/Content/blueprint/print.css")" rel="stylesheet" type="text/css" media="print"/>
@BundleConfig.AddScripts("~/Scripts/js",
"~/Scripts/jquery-1.8.0.min.js",
"~/Scripts/jquery.unobtrusive-ajax.min.js",
"~/Scripts/jquery.validate.min.js")
@BundleConfig.AddStyles("~/Content/css",
"~/Content/Site.css",
"~/Content/buttons.css")
http://site/Content/blueprint/print?v=hash
@BundleConfig.AddStyles("~/Content/noty/css",
"~/Content/noty/jquery.noty.css",
"~/Content/noty/noty_theme_default.css")
<compilation targetFramework="4.0" />
PM> Update-Package
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval") <script src="~/Scripts/jquery-1.8.2.min.js"></script> <script src="~/Scripts/jquery.validate.min.js"></script> <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
public IEnumerable<FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)
{
return files;
} <script src="/Asset/Scripts/js?v="></script> <script src="/Asset/Scripts/JQuery/Zebra/js?v="></script> <script src="/Asset/Scripts/Angular/Asset/js?v="></script>
var newBundle = isCss ? new Bundle(virtualPath, new CssMinify()) : new Bundle(virtualPath, new JsMinify());