Я вызвался быть рецензентом кода для проекта asp.net моего приятеля. Я понял, что благодаря своим знаниям на C# я должен уметь излагать достаточно оснований, хотя я мало знаю о том, как структурированы и построены asp.net. Я предполагаю, что все тонны пакетов, установленных из NuGet, используются с использованием пакета MVC версии 5.2.3. Одно из моих предложений заключалось в том, чтобы использовать DI и переместить все свои данные в проект данных, чтобы мы не зависели от EF. Я лично хотел бы привести примеры того, как сделать что-то, поэтому я начал изучать, как добавить DI в MVC 5. Два или три примера, которые я нашел, упомянули добавление нескольких строк кода в класс запуска, но метод не соответствует и он бросает меня за петлю. Вот класс в вопросеПочему мой класс запуска не совпадает со всеми примерами?
using Microsoft.Owin;
using Owin;
[assembly: OwinStartupAttribute(typeof(PermitChecker.Startup))]
namespace PermitChecker
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
//ConfigureAuth(app);
}
}
}
vs2015 жалуется на partial
на запуске, так как там не несколько Startup
классов. Но я сравниваю этот класс с этим блогом о DI (Blog Post), и он говорит, чтобы мой метод ConfigureServices
выглядел так, но, как вы можете видеть выше, у меня нет такого метода.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSingleton<Data>();
}
Так что это мой вопрос, почему бы и нет? Это сообщение в блоге было для Mvc 5, и я думаю, что 5.2.3 подходит для Mvc 5, поэтому я просто запутался. Извините за такой базовый вопрос, но веб-разработка - это не моя сила. Если это помогает, то здесь перечислены пакеты.
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.4.1.9004" targetFramework="net452" />
<package id="bootstrap" version="3.0.0" targetFramework="net452" />
<package id="EntityFramework" version="6.1.3" targetFramework="net452" />
<package id="jQuery" version="1.10.2" targetFramework="net452" />
<package id="jQuery.Validation" version="1.11.1" targetFramework="net452" />
<package id="Mandrill.net" version="2.2.12" targetFramework="net452" />
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net452" />
<package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net452" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net452" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" />
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net452" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net452" />
<package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net452" developmentDependency="true" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security.Facebook" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security.Google" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security.MicrosoftAccount" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security.Twitter" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
<package id="Modernizr" version="2.6.2" targetFramework="net452" />
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net452" />
<package id="Owin" version="1.0" targetFramework="net452" />
<package id="Respond" version="1.2.0" targetFramework="net452" />
<package id="Sendgrid" version="6.3.4" targetFramework="net452" />
<package id="SendGrid.SmtpApi" version="1.3.1" targetFramework="net452" />
<package id="WebGrease" version="1.5.2" targetFramework="net452" />
</packages>
сообщение в блоге об ASP.NET 5 и MVC 6 –
ASP.NET 5 ≠ MVC 5 – NightOwl888