2016-06-01 3 views
1

Я вызвался быть рецензентом кода для проекта 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> 
+3

сообщение в блоге об ASP.NET 5 и MVC 6 –

+1

ASP.NET 5 ≠ MVC 5 – NightOwl888

ответ

1

Существует новая версия ASP.NET известна как ASP.NET Ядра 1.0 (ранее названный ASP.NET 5/vNext). Эта новая версия использует MVC 6 и является той, которая описывается в сообщении блога, с которым вы связались.

В старой/текущей версии используется MVC 5. Это то, что использует ваш проект.

Оба типа проектов поддерживаются в Visual Studio 2015. Один быстрый способ узнать, какую версию вы используете, - это искать файл Web.config в корневом каталоге веб-проекта. Если у вас его нет, вы попадаете в новую версию.

+0

ОК, чтобы заполнить пробелы, а затем моего вопроса .. потому что статья для Core 1.0, поэтому я не знаю, см. метод, упомянутый в Startup.cs? –

+1

Да, это правильно. –

Смежные вопросы