ASP.NET MVC 4 kibocsátási megjegyzései

Ez a dokumentum ASP.NET MVC 4 kiadását ismerteti.

Telepítési megjegyzések

ASP.NET MVC 4 for Visual Studio 2010 a ASP.NET MVC 4 kezdőlapjáról telepíthető a webplatform-telepítővel.

Javasoljuk, hogy a ASP.NET MVC 4 telepítése előtt távolítsa el az ASP.NET MVC 4 korábban telepített előzetes verzióit. Az ASP.NET MVC 4 bétaverzióról és kiadásra jelölt változatról közvetlenül frissíthet az ASP.NET MVC 4-re anélkül, hogy el kellene távolítani azt.

Ez a kiadás nem kompatibilis a .NET Framework 4.5 előzetes kiadásaival. Az ASP.NET MVC 4 telepítése előtt külön frissítenie kell a .NET-keretrendszer 4.5 telepített előzetes verzióit a végleges verzióra.

ASP.NET MVC 4 telepíthető és futtatható egymás mellett ASP.NET MVC 3-val.

Dokumentáció

A ASP.NET MVC dokumentációja az MSDN webhelyén, az alábbi URL-címen érhető el:

https://go.microsoft.com/fwlink/?LinkID=243043

Az ASP.NET MVC-vel kapcsolatos oktatóanyagok és egyéb információk a ASP.NET webhely (https://www.asp.net/mvc/mvc4ASP.NET) MVC 4 oldalán érhetők el.

Támogatás

ASP.NET MVC 4 teljes mértékben támogatott. Ha kérdése van a kiadással kapcsolatos munkával kapcsolatban, közzéteheti őket a ASP.NET MVC fórumra (https://forums.asp.net/1146.aspx), ahol a ASP.NET közösség tagjai gyakran tudnak informális támogatást nyújtani.

Szoftverkövetelmények

A Visual Studio ASP.NET MVC 4 összetevőihez a PowerShell 2.0 és a Visual Studio 2010 service Pack 1 vagy a Visual Web Developer Express 2010 és a Service Pack 1 szükséges.

Az MVC 4 ASP.NET új funkciói

Ez a szakasz az MVC 4 ASP.NET kiadásában bevezetett funkciókat ismerteti.

ASP.NET Web API

ASP.NET MVC 4 tartalmazza a ASP.NET Web API-t, amely egy új keretrendszer a HTTP-szolgáltatások létrehozásához, amelyek számos ügyfelet, köztük böngészőket és mobileszközöket érhetnek el. ASP.NET Web API ideális platform a RESTful-szolgáltatások létrehozásához is.

ASP.NET Web API a következő funkciók támogatását tartalmazza:

  • Modern HTTP-programozási modell: Http-kérelmek és válaszok közvetlen elérése és kezelése a webes API-kban egy új, erősen gépelt HTTP-objektummodell használatával. Ugyanaz a programozási modell és HTTP-folyamat szimmetrikusan érhető el az ügyfélen az új HttpClient-típuson keresztül.
  • Az útvonalak teljes körű támogatása: ASP.NET Webes API támogatja a ASP.NET Útválasztás útvonalfunkcióinak teljes készletét, beleértve az útvonalparamétereket és a korlátozásokat is. Emellett egyszerű konvenciók használatával leképezheti a műveleteket HTTP-metódusokra.
  • Tartalom egyeztetése: Az ügyfél és a kiszolgáló együttműködve meghatározhatja a webes API-ból visszaadott adatok megfelelő formátumát. ASP.NET Webes API alapértelmezett támogatást nyújt az XML- és JSON-, valamint űrlap URL-kódolású formátumokhoz, és ezt a támogatást kiterjesztheti saját formátumkészítők hozzáadásával, vagy akár az alapértelmezett tartalom-egyeztetési stratégia lecserélésével.
  • Modellkötés és -ellenőrzés: A modellkötők segítségével egyszerűen kinyerhetők az adatok a HTTP-kérések különböző részeiből, és az üzenetrészeket .NET-objektumokká alakíthatják, amelyeket a webes API-műveletek használhatnak. Az érvényesítés műveletparamétereken is történik adatjegyzetek alapján.
  • Szűrők: ASP.NET Webes API támogatja a szűrőket, beleértve a jól ismert szűrőket, például az [Engedélyezés] attribútumot. Saját szűrőket is létrehozhat és csatlakoztathat a műveletekhez, az engedélyezéshez és a kivételkezeléshez.
  • Lekérdezés összetétele: Használja a [Lekérdezhető] szűrőattribútumot egy olyan műveletre, amely IQueryable értéket ad vissza, és lehetővé teszi a webes API OData-lekérdezési konvenciókon keresztüli lekérdezésének támogatását.
  • Továbbfejlesztett tesztelhetőség: Ahelyett, hogy statikus környezeti objektumokban állít be HTTP-részleteket, a webes API-műveletek a HttpRequestMessage és a HttpResponseMessage példányokkal működnek. Hozzon létre egy egységtesztelési projektet a webes API-projekttel együtt, hogy gyorsan megkezdhesse az egységtesztek írását a webes API-funkciókhoz.
  • Kódalapú konfiguráció: ASP.NET webes API-konfiguráció kizárólag kódon keresztül történik, így a konfigurációs fájlok tisztán maradnak. A rendelkezésre bocsátott szolgáltatáskereső mintával konfigurálhatja a bővíthetőségi pontokat.
  • Továbbfejlesztett támogatás az Inversion of Control (IoC) tárolókhoz: ASP.NET Web API nagy támogatást nyújt az IoC-tárolókhoz a függőségfeloldó továbbfejlesztett absztrakciója révén
  • Önkiszolgáló: A webes API-k az IIS mellett a saját folyamatában is üzemeltethetők, miközben továbbra is teljes mértékben kihasználják a webes API útvonalait és egyéb funkcióit.
  • Egyéni súgó- és tesztlapok létrehozása: Mostantól egyszerűen készíthet egyéni súgó- és tesztlapokat a webes API-khoz az új IApiExplorer szolgáltatással a webes API-k teljes futásidejű leírásának lekéréséhez.
  • Monitorozás és diagnosztika: a ASP.NET Webes API mostantól könnyű nyomkövetési infrastruktúrát biztosít, amely megkönnyíti a meglévő naplózási megoldásokkal, például a System.Diagnosticsszal, az ETW-vel és a külső naplózási keretrendszerekkel való integrációt. A nyomkövetést ITraceWriter-implementáció biztosításával és a webes API-konfigurációhoz való hozzáadásával engedélyezheti.
  • Hivatkozás létrehozása: A ASP.NET Web API UrlHelper használatával hozzon létre hivatkozásokat a kapcsolódó erőforrásokra ugyanabban az alkalmazásban.
  • Webes API-projektsablon: Válassza ki az új Webes API-projekt űrlapot az Új MVC 4 Projekt varázslóval, hogy gyorsan üzembe helyezhesse ASP.NET Webes API-t.
  • Állványzat: A Vezérlő hozzáadása párbeszédpanel használatával gyorsan építhet ki egy webes API-vezérlőt egy Entity Framework-alapú modelltípus alapján.

A ASP.NET Webes API-val kapcsolatos további részletekért látogasson el ide https://www.asp.net/web-api.

Az alapértelmezett projektsablonok fejlesztései

Az új ASP.NET MVC 4-projektek létrehozásához használt sablont frissítettük egy modernebb megjelenésű webhely létrehozásához:

Képernyőkép az új projektsablon oldalának böngészőnézetéről.

A kozmetikai fejlesztések mellett az új sablonban továbbfejlesztett funkciók is elérhetőek. A sablon egy adaptív renderelés nevű technikát alkalmaz, amely az asztali böngészőkben és a mobilböngészőkben is jól mutat testreszabás nélkül.

Képernyőkép az új projektsablonlap asztali verziójának mobilböngésző nézetéről.

Ha működés közben szeretné látni az adaptív renderelést, használhat mobil emulátort, vagy csak próbálja meg átméretezni az asztali böngészőablakot, hogy kisebb legyen. Ha a böngészőablak elég kicsi lesz, a lap elrendezése megváltozik.

Mobilprojekt-sablon

Ha új projektet indít, és kifejezetten mobil- és táblagépböngészők számára szeretne webhelyet létrehozni, használhatja az új Mobilalkalmazás projektsablont. Ez a jQuery Mobile-on alapul, amely egy nyílt forráskódú kódtár, amely érintésre optimalizált felhasználói felületet hoz létre:

Képernyőkép a mobilalkalmazás-projektsablon mobilböngésző nézetéről.

Ez a sablon ugyanazt az alkalmazásstruktúrát tartalmazza, mint az internetalkalmazás-sablon (és a vezérlőkód gyakorlatilag megegyezik), de a jQuery Mobile használatával úgy van kialakítva, hogy jól nézzen ki és jól viselkedjen az érintésalapú mobileszközökön. A mobil felhasználói felület felépítéséről és stílusáról a jQuery Mobile projekt webhelyén olvashat bővebben.

Ha már van egy asztali webhelye, amelyhez mobiloptimalizált nézeteket szeretne hozzáadni, vagy ha olyan webhelyet szeretne létrehozni, amely eltérő stílusú nézeteket szolgál ki az asztali és mobilböngészőkben, használhatja az új Megjelenítési módok funkciót. (Lásd a következő szakaszt.)

Megjelenítési módok

Az új Megjelenítési módok funkció lehetővé teszi, hogy az alkalmazás a kérést küldő böngészőtől függően válassza ki a nézeteket. Ha például egy asztali böngésző a kezdőlapot kéri, az alkalmazás a Views\Home\Index.cshtml sablont használhatja. Ha egy mobilböngésző kéri a kezdőlapot, előfordulhat, hogy az alkalmazás a Views\Home\Index.mobile.cshtml sablont adja vissza.

Az elrendezések és a részletek bizonyos böngészőtípusok esetében felülírhatók. Például:

  • Ha a Views\Shared mappa tartalmazza a _Layout.cshtml és a _Layout.mobile.cshtml sablont is, az alkalmazás alapértelmezés szerint _Layout.mobile.cshtml-et fog használni a mobilböngészők és a _Layout.cshtml más kérések során.
  • Ha egy mappa _MyPartial.cshtml és _MyPartial.mobile.cshtml fájlt is tartalmaz, a "_MyPartial" utasítás @Html.Partial(a _MyPartial.mobile.cshtml-et jeleníti meg a mobilböngészőktől érkező kérések során, és _MyPartial.cshtml-et más kérések során.

Ha konkrétabb nézeteket, elrendezéseket vagy részleges nézeteket szeretne létrehozni más eszközökhöz, regisztrálhat egy új DefaultDisplayMode-példányt , amely megadja, hogy melyik nevet kell keresni, ha egy kérés megfelel bizonyos feltételeknek. Hozzáadhatja például a következő kódot a Global.asax fájl Application_Start metódusához az "iPhone" sztring megjelenítési módként való regisztrálásához, amely akkor érvényes, amikor az Apple iPhone böngésző kérést küld:

DisplayModeProvider.Instance.Modes.Insert(0, new
DefaultDisplayMode("iPhone")
{
    ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
        ("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)
});

A kód futtatása után, amikor egy Apple iPhone böngésző kérést küld, az alkalmazás a Views\Shared\_Layout.iPhone.cshtml elrendezést fogja használni (ha létezik). További információ a megjelenítési módról: ASP.NET MVC 4 Mobilszolgáltatások. A DisplayModeProvidert használó alkalmazásoknak telepíteniük kell a Rögzített DisplayModes NuGet csomagot. A ASP.NET 2012. őszi frissítés tartalmazza a Fix DisplayModes NuGet csomagot az új projektsablonokban. A javítás részleteiért lásd ASP.NET MVC 4 Mobil Gyorsítótárazási Hibajavítás .

jQuery Mobile és Mobile funkciók

A mobilalkalmazások jQuery Mobile használatával történő ASP.NET MVC 4 használatával történő készítéséről az MVC 4 mobilszolgáltatások ASP.NET oktatóanyagban olvashat.

Aszinkron vezérlők feladattámogatása

Az aszinkron műveleti metódusokat mostantól önálló metódusokként is megírhatja, amelyek Feladat vagy Tevékenység<műveletresult> típusú objektumot ad vissza.

További információ: Aszinkron metódusok használata ASP.NET MVC 4-ben.

Azure SDK

ASP.NET MVC 4 támogatja a Windows Azure SDK 1.6-os és újabb kiadásait.

Adatbázis-migrálások

ASP.NET MVC 4-projektek most már tartalmazzák az Entity Framework 5-öt. Az Entity Framework 5 egyik nagyszerű funkciója az adatbázis-migrálás támogatása. Ez a funkció lehetővé teszi, hogy az adatbázissémát kódalapú migrálással egyszerűen fejlessze, miközben megőrzi az adatbázisban lévő adatokat. Az adatbázis-migrálással kapcsolatos további információkért lásd : Új mező hozzáadása a filmmodellhez és a táblázathoz az MVC 4 ASP.NET bemutatójában.

Üres projektsablon

Az MVC Empty projektsablon most már valóban üres, így teljesen tiszta lappal kezdhet. Az Üres projektsablon korábbi verziója alapszintűre lett átnevezve.

Vezérlő hozzáadása bármely projektmappához

Most kattintson a jobb gombbal, és válassza a Vezérlő hozzáadása lehetőséget az MVC-projekt bármely mappájából. Ez nagyobb rugalmasságot biztosít a vezérlők tetszés szerint történő rendszerezéséhez, beleértve az MVC- és webes API-vezérlők külön mappákban tartását is.

Csomagolás és Kicsinyítés

A kötegelési és minifikációs keretrendszer lehetővé teszi, hogy csökkentse a weblapok által igényelt HTTP-kérések számát azáltal, hogy az egyes fájlokat egyetlen, parancsfájlokhoz és CSS-hez csomagolt fájlba egyesíti. Ezután csökkentheti a kérések teljes méretét a csomag tartalmának minifikálásával. A minifikálás olyan tevékenységeket is magában foglalhat, mint a felesleges szóközök eltávolítása, a változónevek rövidítése, sőt a CSS-választók szemantikájuk alapján történő összevonása is. A csomagok kódban deklarálva és konfigurálva vannak, és a nézetekben könnyen hivatkozhatnak rá segédmetenek segítségével, amely létrehozhat egyetlen hivatkozást a csomagra, vagy hibakereséskor több hivatkozás is létrehozható a csomag egyes tartalmára. További információ: Bundling és Minification.

Bejelentkezések engedélyezése a Facebookról és más webhelyekről az OAuth és az OpenID használatával

Az ASP.NET MVC 4 Internet Project sablon alapértelmezett sablonjai mostantól támogatják az OAuth- és OpenID-bejelentkezést a DotNetOpenAuth könyvtár használatával. Az OAuth- vagy OpenID-szolgáltató konfigurálásáról további információt az OAuth/OpenID-támogatás a webűlapokon, az MVC-ben és a WebPagesben, valamint az OAuth és az OpenID szolgáltatás dokumentációjában talál ASP.NET weblapokon.

ASP.NET MVC 3-projekt frissítése ASP.NET MVC 4-re

ASP.NET MVC 4 ugyanazon a számítógépen ASP.NET MVC 3 mellett telepíthető, így rugalmasan kiválaszthatja, hogy mikor frissítsen egy ASP.NET MVC 3-alkalmazást ASP.NET MVC 4-re.

A frissítés legegyszerűbb módja egy új ASP.NET MVC 4-projekt létrehozása, és a meglévő MVC 3-projekt összes nézetének, vezérlőjének, kódjának és tartalomfájljának másolása az új projektbe, majd az új projekt szerelvényhivatkozásainak frissítése, hogy megfeleljenek a használt assembiles által tartalmazott nem MVC-sablonnak. Ha módosította a Web.config fájlt az MVC 3 projektben, ezeket a módosításokat az MVC 4 projekt Web.config fájljába is egyesítenie kell.

Ha manuálisan szeretne frissíteni egy meglévő ASP.NET MVC 3-alkalmazást a 4-es verzióra, tegye a következőket:

  1. A projekt összes Web.config fájljában (a projekt gyökerében van egy, egy a Nézetek mappában és egy a Projekt minden területének Nézetek mappájában), cserélje le a következő szöveg minden példányát (megjegyzés: System.Web.WebPages, Version=1.0.0.0 nem található a Visual Studio 2012-vel létrehozott projektekben):

    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
    

    a következő megfelelő szöveggel:

    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
    
  2. A gyökér Web.config fájlban frissítse a webPages:Version elemet a "2.0.0.0" értékre, és adjon hozzá egy új PreserveLoginUrl kulcsot, amelynek értéke "true":

    <appSettings>
      <add key="webpages:Version" value="2.0.0.0" />
      <add key="PreserveLoginUrl" value="true" />
    </appSettings>
    
  3. A Megoldáskezelőben kattintson a jobb gombbal a Hivatkozások elemre, és válassza a NuGet-csomagok kezelése lehetőséget. A bal oldali panelen válassza az Online\NuGet hivatalos csomagforrást, majd frissítse a következőket:

    • ASP.NET MVC 4
    • (Nem kötelező) jQuery, jQuery validation és jQuery UI
    • (Nem kötelező) Entitás-keretrendszer
    • (Opcionális) Modernizr
  4. A Megoldáskezelőben kattintson a jobb gombbal a projekt nevére, majd válassza a Projekt eltávolítása lehetőséget. Ezután kattintson ismét a jobb gombbal a névre, és válassza a ProjectName.csproj szerkesztése lehetőséget.

  5. Keresse meg a ProjectTypeGuids elemet, és cserélje le a(z) {E53F8FEA-EAE0-44A6-8774-FFD645390401} elemet a következőre: {E3E379DF-F4C6-4180-9B81-6769533ABE47}.

  6. Mentse a módosításokat, zárja be a szerkesztett projektfájlt (.csproj), kattintson a jobb gombbal a projektre, majd válassza a Projekt betöltése lehetőséget.

  7. Ha a projekt a ASP.NET MVC korábbi verzióival összeállított külső kódtárakra hivatkozik, nyissa meg a gyökér Web.config fájlt, és adja hozzá a következő három bindingRedirect-elemet a konfigurációs szakaszhoz:

    <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>
    

ASP.NET MVC 4 kiadási jelölt módosításai

Az ASP.NET MVC 4 kiadási jelöltjének kibocsátási megjegyzései itt tekinthetők meg:

A jelen kiadásban ASP.NET MVC 4 kiadásra jelölt verziójának főbb változásait az alábbiakban foglaljuk össze:

  • Vezérlőkonfigurációnként: ASP.NET webes API-vezérlők olyan egyéni attribútummal rendelhetők hozzá, amely implementálja az IControllerConfigurationt a saját formázók, műveletválasztók és paraméterkötők beállításához. A HttpControllerConfigurationAttribute el lett távolítva.
  • Útvonalonkénti üzenetkezelők: Most már megadhatja a végső üzenetkezelőt egy adott útvonal kérésláncában. Ez lehetővé teszi, hogy a ride-along keretrendszerek routolással saját (nem IHttpController) végpontjaikra irányítsák a forgalmat.
  • Előrehaladási értesítések: A ProgressMessageHandler állapotértesítést hoz létre a feltöltés alatt álló kérelem-entitások és a letöltött válaszentitások számára. Ezzel a kezelővel nyomon követhető, hogy milyen mértékben tölt fel egy kérelemtörzset, vagy tölt le egy választörzset.
  • Tartalom leküldése: A PushStreamContent osztály olyan forgatókönyveket tesz lehetővé, amelyekben az adatgyártó közvetlenül szeretne írni a kérésbe vagy válaszba (szinkronban vagy aszinkron módon) egy stream használatával. Ha a PushStreamContent készen áll az adatok elfogadására, meghív egy műveleti meghatalmazottat a kimeneti adatfolyammal. A fejlesztő ezután a szükséges ideig írhat a streambe, és bezárhatja a streamet, amikor az írás befejeződött. A PushStreamContent észleli a stream bezárását, és befejezi a mögöttes aszinkron feladatot a tartalom írásához.
  • Hibaválaszok létrehozása: A HttpError típussal következetesen jelölheti az olyan hibainformációkat, mint például az érvényesítési hibák és kivételek, miközben továbbra is tiszteletben tartja az IncludeErrorDetailPolicyt. Az új CreateErrorResponse bővítménymódszerekkel egyszerűen hozhat létre hibaválaszokat a HttpError használatával tartalomként. A HttpError tartalom teljes mértékben tartalom-alkurált.
  • A MediaRangeMapping el lett távolítva: A médiatípus-tartományokat mostantól az alapértelmezett tartalom-tárgyaló kezeli.
  • Az egyszerű típusparaméterek alapértelmezett paraméterkötése mostantól [FromUri]: A ASP.NET Web API korábbi kiadásaiban az egyszerű típusparaméterek alapértelmezett paraméterkötése modellkötést használt. Az egyszerű típusparaméterek alapértelmezett paraméterkötése mostantól [FromUri].
  • A művelet kiválasztása a szükséges paramétereket tiszteletben tartja: A ASP.NET Webes API műveletkijelölése mostantól csak akkor jelöl ki műveletet, ha az URI-ból származó összes szükséges paraméter meg van adva. A paraméter megadható választhatóként, ha megadja az argumentum alapértelmezett értékét a műveletmetódus aláírásában.
  • HTTP-paraméterkötések testreszabása: A ParameterBindingAttribute használatával testre szabhatja egy adott műveleti paraméter paraméterkötését, vagy a HttpConfigurationParameterBindingRules parancsával szélesebb körben testre szabhatja a paraméterkötéseket.
  • A MediaTypeFormatter fejlesztései: A formázók mostantól hozzáférhetnek a teljes HttpContent-példányhoz .
  • Gazdagép pufferelési politika kiválasztása: Implementálja és konfigurálja az IHostBufferPolicySelector szolgáltatást az ASP.NET Web API-ban annak érdekében, hogy a gazdagépek meghatározhassák, mikor szükséges a pufferelés alkalmazása.
  • Ügyféltanúsítványok elérése gazdagép-agnosztikus módon: A GetClientCertificate bővítménymetódus használatával kérje le a megadott ügyféltanúsítványt a kérelemüzenetből.
  • Tartalomtárgyalási bővíthetőség: Testre szabhatja a tartalomtárgyalást úgy, hogy származtat a DefaultContentNegotiator-ból, és felülírja bármelyik tartalomtárgyalási szempontot, amelyet szeretne.
  • A 406 nem elfogadható válaszok visszaadásának támogatása: Mostantól 406 nem elfogadható választ adhat vissza ASP.NET Webes API-ban, ha nem található megfelelő formázó. Ehhez hozzon létre egy DefaultContentNegotiator paramétert az excludeMatchOnTypeOnly paraméter igaz értékre állításával.
  • Űrlapadatok olvasása NameValueCollection vagy JToken formátumban: Az ParseQueryString és a ReadAsFormDataAsync bővítménymetódusok használatával az űrlapadatokat az URI lekérdezési sztringben vagy a kérelem törzsében is olvashatja, az előbbi NameValueCollectionként, az utóbbi JTokenként. Hasonlóképpen az űrlapadatokat az URI lekérdezési sztringben vagy a kérés törzsében JTokenként olvashatja el a TryReadQueryAsJson és a ReadAsAsync<T> kiterjesztési metódusok használatával.
  • Többrészes fejlesztések: Most már meg lehet írni egy olyan MultipartStreamProvider-t, amely teljesen testre szabott a MIME többrészes adat típusra, amelyet képes olvasni, és az eredményt a lehető legoptimálisabb módon tudja bemutatni a felhasználónak. A MultipartStreamProviderhez egy utófeldolgozási lépést is csatlakoztathat, amely lehetővé teszi, hogy az implementáció bármilyen utófeldolgozást végezzen a MIME többrészes törzsrészeken. A MultipartFormDataStreamProvider implementáció például beolvassa a HTML-űrlap adatrészeit, és hozzáadja őket egy NameValueCollectionhez , hogy könnyen elérhetőek legyenek a hívótól.
  • A hivatkozáslétrehozás fejlesztései: Az URLHelper már nem a HttpControllerContext függvénytől függ. Mostantól bármely olyan környezetből elérheti az UrlHelper url-címet , ahol a HttpRequestMessage elérhető.
  • Üzenetkezelő végrehajtási rendelésének módosítása: Az üzenetkezelők most a konfigurált sorrendben lesznek végrehajtva, nem pedig fordított sorrendben.
  • Segítség az üzenetkezelők bekötéséhez: Az új HttpClientFactory, amely képes bekötni a DelegatingHandlerst, és egy HttpClient-et hoz létre a kívánt folyamatlánccal, amely készen áll a használatra. Emellett az alternatív belső kezelők bekötéséhez is biztosít funkciót (az alapértelmezett a HttpClientHandler), valamint a bekötést elvégzi, amikor HttpMessageInvoker-t vagy egy másik DelegatingHandler-t használunk HttpClient helyett a legfelső meghívóként.
  • CDN-ek támogatása a ASP.NET weboptimalizálásban: ASP.NET weboptimalizálás mostantól támogatja a CDN alternatív elérési útjait, így minden csomaghoz megadhat egy további URL-címet, amely ugyanarra az erőforrásra mutat egy tartalomkézbesítési hálózaton. A CDN-k támogatása lehetővé teszi, hogy a szkriptek és stíluscsomagok földrajzilag közelebb kerüljenek a webalkalmazások végfelhasználóihoz. Az éles alkalmazásoknak tartalékot kell implementálniuk, ha a CDN nem érhető el. Tesztelje a tartalékot.
  • ASP.NET Web API-útvonalak és konfiguráció a WebApiConfig.Register statikus metódusba került, amely újra felhasználható a tesztkódban. ASP.NET korábban a RouteConfig.RegisterRoutes szolgáltatásban a szokásos MVC-útvonalakkal együtt hozzáadták a webes API-útvonalakat. Az alapértelmezett ASP.NET webes API-útvonalakat és -konfigurációkat mostantól egy külön WebApiConfig.Register metódus kezeli a tesztelés megkönnyítése érdekében.

Ismert problémák és kompatibilitástörő változások

  • A ASP.NET MVC 4 RC és RTM verziója helytelenül ad vissza gyorsítótárazott asztali nézeteket a mobilnézetek visszaadásakor.

  • Kompatibilitástörő változások a Razor nézetmotorban. A rendszer a következő típusokat távolítja el a System.Web.Mvc.Razorból:

    • ModelSpan
    • MvcVBRazorCodeGenerator
    • MvcCSharpRazorCodeGenerator
    • MvcVBRazorCodeParser

    A következő módszereket is eltávolítottuk:

    • MvcCSharpRazorCodeParser.ParseInheritsStatement(System.Web.Razor.Parser.CodeBlockInfo)
    • MvcWebPageRazorHost.DecorateCodeGenerator(System.Web.Razor.Generator.RazorCodeGenerator)
    • MvcVBRazorCodeParser.ParseInheritsStatement(System.Web.Razor.Parser.CodeBlockInfo)
  • Ha WebMatrix.WebData.dll szerepel egy ASP.NET MVC 4-alkalmazás /bin könyvtárában, átveszi az űrlaphitelesítés URL-címét. Ha hozzáadja a WebMatrix.WebData.dll szerelvényt az alkalmazáshoz (például az "ASP.NET Razor-szintaxissal rendelkező weblapok" opció kiválasztásával az Üzembe helyezhető függőségek hozzáadása párbeszédpanel használatakor), felülírja a hitelesítés bejelentkezési átirányítását a /account/logon helyre, nem pedig a /account/login helyre, ahogy azt az alapértelmezett ASP.NET MVC Fiókvezérlő elvárja. Ennek a viselkedésnek a megakadályozása és a web.config hitelesítési szakaszában megadott URL-cím használata érdekében hozzáadhat egy PreserveLoginUrl nevű appSettinget, és beállíthatja true értékre.

    <appSettings>
        <add key="PreserveLoginUrl" value="true"/>
    </appSettings>
    
  • A NuGet csomagkezelő nem telepíthető, amikor ASP.NET MVC 4-et próbál telepíteni a Visual Studio 2010 és a Visual Web Developer 2010 egymás melletti telepítéseihez. A Visual Studio 2010 és a Visual Web Developer 2010 ASP.NET MVC 4 együttes futtatásához telepítenie kell ASP.NET MVC 4-et, miután a Visual Studio mindkét verziója már telepítve lett.

  • Az MVC 4 ASP.NET eltávolítása meghiúsul, ha az előfeltételek már el lettek távolítva. Az ASP.NET MVC 4 tiszta eltávolításához el kell távolítania az ASP.NET MVC 4-et a Visual Studio eltávolítása előtt.

  • Az ASP.NET MVC 4 telepítése megszakítja az ASP.NET MVC 3 RTM alkalmazásokat. ASP.NET RTM-kiadással létrehozott MVC 3-alkalmazások (nem az ASP.NET MVC 3 Tools Update kiadással) az alábbi módosításokat igénylik az MVC 4 ASP.NET való együttműködéshez. Ha ezeket a frissítéseket nem készíti el a projekt, fordítási hibákba ütközik.

    Szükséges frissítések

    1. A gyökér Web.config fájlban adjon hozzá egy új <appSettings> bejegyzést a webPages:Version billentyűvel és az 1.0.0.0 értékkel.

      <appSettings>
          <add key="webpages:Version" value="1.0.0.0"/>
          <add key="ClientValidationEnabled" value="true"/>
          <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
      </appSettings>
      
    2. A Megoldáskezelőben kattintson a jobb gombbal a projekt nevére, majd válassza a Projekt eltávolítása lehetőséget. Ezután kattintson ismét a jobb gombbal a névre, és válassza a ProjectName.csproj szerkesztése lehetőséget.

    3. Keresse meg a következő szerelvényhivatkozásokat:

      <Reference Include="System.Web.WebPages"/> 
      <Reference Include="System.Web.Helpers" />
      

      Cserélje le őket a következőre:

      <Reference Include="System.Web.WebPages, Version=1.0.0.0,
      Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/> 
      <Reference Include="System.Web.Helpers, Version=1.0.0.0,
      Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
      
    4. Mentse a módosításokat, zárja be a szerkesztett projektfájlt (.csproj), majd kattintson a jobb gombbal a projektre, és válassza az Újratöltés lehetőséget.

  • Ha egy ASP.NET MVC 4-projektet 4.0-ról 4.5-ös célra módosít, nem frissíti az EntityFramework szerelvényreferenciát: Ha egy ASP.NET MVC 4-projektet a 4.5-ös célzás után a 4.0-s célra módosít, az EntityFramework-szerelvényre mutató hivatkozás továbbra is a 4.5-ös verzióra fog mutatni. A probléma megoldásához távolítsa el és telepítse újra az EntityFramework NuGet-csomagot.

  • 403 Tiltott, ha ASP.NET MVC 4-alkalmazást futtat az Azure-ban, miután a 4.0-s célra váltott a 4.5-ről: Ha egy ASP.NET MVC 4-projektet a 4.5-ös célzás után a 4.0-s célra módosít, majd üzembe helyezi az Azure-ban, futásidőben 403 Tiltott hiba jelenhet meg. A probléma elkerüléséhez adja hozzá a következőket a web.config fájlhoz: <modules runAllManagedModulesForAllRequests="true" />

  • A Visual Studio 2012 összeomlik, amikor egy Razor-fájlban sztringkonstansba ír be egy "" karaktert. A probléma megoldásához először adja meg a sztringkonstans záró idézőjelét.

  • Az internetes sablon "Fiók/kezelés" elemére való böngészés futásidejű hibát eredményez a CHS, a TRK és a CHT nyelvek esetében. A probléma megoldásához módosítsa a lapot úgy, hogy a @User.Identity.Name kizárólagos tartalomként szerepeljen a <strong> címkén belül.

  • A Google és a LinkedIn-szolgáltatók nem támogatottak az Azure-webhelyeken. Alternatív hitelesítésszolgáltatók használata az Azure-webhelyeken való üzembe helyezéskor.

  • Az UriPathExtensionMapping és az IIS 8 Express/IIS használatakor 404 Nem található hibaüzenet jelenik meg a bővítmény használatakor. A statikus fájlkezelő zavarja az UriPathExtensionMappingst használó webes API-k kéréseit. Állítsa be arunAllManagedModulesForAllRequests=true beállítást a(z) web.config fájlban a probléma megkerüléséhez.

  • A Controller.Execute metódus már nincs meghívva. A rendszer mostantól mindig aszinkron módon hajtja végre az összes MVC-vezérlőt.