Nem is olyan régen már írtam róla, hogy a WebAssembly megjelent a szabványos és elérhető szolgáltatások között. Akkor Scot Hanselmann blogcikke volt az apropó, amit ma egy igen örvendetes hír követett a .NET Web Development and Tools Blog oldalán:

A new experiment: Browser-based web apps with .NET and Blazor

A Blazor egy szójátékként Browser + Razor = Blazor jött létre, és a bejegyzés alapján a következőket ígéri:

Today I’m excited to announce a new experimental project from the ASP.NET team called Blazor. Blazor is an experimental web UI framework based on C#, Razor, and HTML that runs in the browser via WebAssembly. Blazor promises to greatly simplify the task of building fast and beautiful single-page applications that run in any browser. It does this by enabling developers to write .NET-based web apps that run client-side in web browsers using open web standards.

A Blazornak minden szolgáltatást biztosít, amit a modern webes keretrendszerek ismernek (ezt a tisztább kép érdekében inkább angolul ):

  • A component model for building composable UI
  • Routing
  • Layouts
  • Forms and validation
  • Dependency injection
  • JavaScript interop
  • Live reloading in the browser during development
  • Server-side rendering
  • Full .NET debugging both in browsers and in the IDE
  • Rich IntelliSense and tooling
  • Ability to run on older (non-WebAssembly) browsers via asm.js
  • Publishing and app size trimming

Miképp lehet az egészet megismerni, merre induljunk?

Minden öröm mellett azért érdemes arra is figyelni, hogy ez egy nyílt forráskódú megoldás, ami .NET Core és Node.JS-t igényel. E mellett fontos, hogy ez egy “very early” megjelenés, és csak teszteléshez, megismeréshez ajánlott a használata.

Megállíthatatlanul fejlődik a .NET Core, így bejelentetették a 2.1-es változat újdonságait. Lehet, hogy én vagy túl igényes, de még mindig úgy érzem, van mit csiszolni a rendszeren, mert az általam használni szeretett EF funkcionalitások elérhetősége korlátos a Core-ban még mindig. Ettől függetlenül számos újdonság jelent meg, ami fontos és érdekes:

  • MVC
  • SignalR
  • WebHooks
  • GDPR
  • Security
  • Identity
  • Options improvements
  • HttpClientFactory
  • Kestrel
  • ASP.NET Core Module
  • New Microsoft.AspNetCore.App package

Lényeges kiemelni, hogy a Microsoft nagyon komolyan veszi a GDPR megfelelőség támogatását, és az EU GDPR irányelvei szerinti változtatásokat és szolgáltatás bővítéseket is tartalmaz a 2.1-es kiadás! A fentiek részletesen áttekinthetők a .NET Web Development and Tools Blog ASP.NET Core 2.1 roadmap cikkében, vagy a videóra nyitottabbaknak a CH9 videóját ajánlom.

Hajrá!

vs2013previewA most megjelent előzetes verziókból engem – gondolom sokakkal szemben – a Visual Studio új változata érdekelt leginkább. Letölteni már az első nap letöltöttem, de egyéb okok miatt csak most tudtam telepíteni.

Akinek nincs meg a telepítő, az letöltheti a http://www.microsoft.com/visualstudio/eng/2013-downloads címről.
Innen mindenki a számára érdekes verziót töltheti le, én az Ultimate verziót töltöttem le (az Ultimate verzió tartalmazza a Blend-et is).

More »

Fejlesztői munkám során nem kis problémát okozott a címsorban megjelenített hibajelzés. Az addig tökéletesen működő alkalmazásom egyszer csak “megbolondult” és hibát kivétel dobott. A problémát jelentősen nehezítette, hogy a kivételhiba jellegéből adódóan még debug sem állt a rendelkezésemre (igaz utólag megértve az okot, nem is segített volna). Mi is történt?

Hibajelenség

Az MVC alkalmazásom HTML form ablakában a mezők kitöltését követően a Submit folyamat megkezdésekor a rendszer az alábbi hibaüzenetet adta:

[InvalidOperationException: Operation is not valid due to the current state of the object.]
   System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded() +2420558
   System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding) +58
   System.Web.HttpRequest.FillInFormCollection() +159

Hiba oka

A Microsoft 2011-12-29-én kiadta a Microsoft Security Bulletin MS11-100 – Critical szintű bejegyzést. A bejegyzés hibajavítására kiadták 2012-01-12-vel az MS KB Article ID 2661403 cikket és a hozzá kapcsolódó hibajavítást. Ez MINDEN eddigi Windows rendszerben a sérülékenységet orvosolja, viszont számomra ez a korlát jelenti a valódi problémát:

A rendszerekben ugyanis a DOS (Denial of Service) támadások elkerülése végett beépítésre került egy alapértelmezett válaszban megadható elemszám méret. Ez alapértelmezésben 1000! Amennyiben az ASP.NET form működése során ennél nagyobb elemszámmal találkozik, akkor a fenti hibaüzenettel fémjelzett kivételt dob.

Megoldás

Talán elsőre is látható, hogy a legegyszerűbb javítás az lenne, ha az elemszámot a számunkra szükséges mértékben megnövelnénk. Nos erre van lehetőség, az alkalmazás Web.Config fájl-t kell megfelelően kiegészíteni:

  <appSettings>
    <add key="aspnet:MaxHttpCollectionKeys" value="1500" />
  </appSettings>

Ezt követően az alkalmazás minden hibajelzés nélkül rendben lefut. Figyeljünk azonban a kapcsolóra és feleslegesen ne növeljük az elfogadható elemszámot, ezzel is védve az alkalmazást és futtató környezetét.

 

További információ: