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

A régi görög mitológia szerint amikor Neptun a tenger istene dühös, felkorbácsolja a tengert és jaj mindenkinek aki akkor arra jár! A napokban ezt a BMF hallgatói is megtapasztalhatták, mert az isteni harag utolérte Őket is.

Mi is történt? Neptun – a tanulmányi rendszer – egyszerűen napokig nem fogadta, és nem szolgáltat ki a hozzá beérkező kéréseket. A rendszer Internetes felülete a legváltozatosabb hibajelzésekkel traktálta a felhasználókat, függetlenül attól, hogy mit és hol akartak csinálni. Van aki már bejelentkezni sem tudott, volt akit az egyes funkciók használata közben a legváltozatosabb helyeken vágott ki a rendszer.

neptunhiba200901

A fentieket követően a BMF honlapjának erre vonatkozó részén (neptun.bmf.hu) a következőket közölték az értetlenkedő hallgatókkal:

Napi terhelés eloszlás

2009, január 14 – 16:49 – Bilicska Csaba

Kedves Hallgatók!

A héten bekövetkezett túlterheléseket több probléma együttes felmerülése okozza. Ezek javításán rendszergazdánk és az informatikai osztály folyamatosan dolgozik.

A tegnapi és a mai terhelések láthatók az alábbi ábrán. Látható, hogy délelőtt és délután folyamatosan le volt terhelve a rendszer, addig estefelé lecsengett és az éjszaka folyamán szinte minimális volt a kapcsolat.

Aki teheti próbálkozzon egy későbbi időpontban belépni és így a felmerült problémák ellenére is el tudja végezni a Neptunban amit szeretne.

terheles20090114

 

Jómagam mint lassan több mint 15 éve rendszertervezéssel, éles környezetek, kiemelt alkalmazások üzemeltetésével foglalkozó valaki a fentieket érdeklődve figyeltem napokig – közvetlenül engem nem érintett a dolog – és folyamatosan érlelődött bennem több kérdés, megállapítás:

  • Egy oktatási intézmény fő feladata az oktatás és így ezen rendszer mint a fő funkciókat kiszolgáló rendszer, a legfontosabb elem a intézmény IT alkalmazásai között üzembe tartása éppen ezért kiemelt fontosságú.
  • A érintett alkalmazás épp a vizsgaidőszakban, és a tnatárgyfelvétel kezdetekor állt le, jelentősen zavarva a hallgatóságot (érsd a felhasználókat). Feltételezhető, hogy az oktatókat is érinthette a dolog de közvetlen tapasztalat csak a Hallgaói oldal alkalmazásáról van. 
  • Az is jól látszik – és ez várhatóan nem az Intézmény hibája –, hogy az alkalmazás nem rendelkezik előre felkészítetten hibakezelő oldallal, holott annak leprogramozása a rendszer összetettsége mellett elhanyagolható mértékű tudást igényel csak (egy oldalt kell felvenni és megfelelően regisztrálgatni itt és ott). Ez véleményem szerint slendriánság a tervezésben, kivitelezésben, üzembe állításban.
  • Megdöbben az a javaslat, hogy a felhasználóktól azt kérik dolgozzanak éjjel, hisz akkor nincs számottevő terhelés! Legközelebb én is ezt fogom javasolni a kulcsrendszerek túlterhelése esetén pl. egy forgalmi üzem vezetőjének, hogy a buszok üzembeállításával ne akkor foglalkozzon amikor kell, hanem amikor a rendszer ezt elbírja. Kíváncsi leszek a képére 🙂
  • Megdöbbent az is, hogy a egy ekkora intézményben nincs megfelelően méretezve az egyik legfőbb rendszer, és az is, hogy nincs vészhelyzeti forgatókönyv, s egy ilyen rendszer 2-3 napig gyakorlatilag nem működik (az, hogy folyamatosan problémás és bukdácsolgat, ugyebár megszokott volt eddig is, még ha ezt nem is érzékelik beljebb, a végeken szépen látom az elmúl 3 évben)
  • Miért csak 2 nap múltán lehetett szólni, hogy “hé mi is látjuk tudjuk”? Hétvégén nem látták? Nem olvasták a leveleket? Vagy azokat sem kapták meg?

 

A BMF által kiadott diplomákat én magam – eddigi tapasztalataim szerint – megbizható tudást jelentő papírnak tartottam. Jelentős problémának érzem viszont, hogy miként várjak el a leendő mérnököktől bárminemű teljességre törekedő munkavégzést, ha már az iskolában is azt tapasztalják, hogy az ilyen rendszerüzemeltetés és az ilyen szintű kommunikáció, és hozzáállás normális, elfogadható dolog.

Nem hiszem el, hogy egy ekkora intézménynél nem lehet normális IT környezetben az efogadható szintű rendelkezésre állást folyamatosan biztosítani (ilyen rendszernél kb 95% rendelkezésre állás, max 8 óra egyidejű kieséssel egy év alatt)! Ha nem telik rá, hogy HW-t vegyenek hozzá, akkor talán egyeztetni kéne a támogatókkal, hogy nem csak hálózati eszközöket és szoftvert adjanak. Ha jó indok van rá, feltehetően segítenek, hisz saját dolgozóik közül is járhat oda egy-két ember.

Nem értem, hogy miért nem folyamatos vizsgaidőszak alatt a rendszer üzemeltetési támogatása, lévén ez egy fokozottan terhelt időszak, ahol erre szükség van (tessék csak Murphy-re gondolni!)? Nekem ne jöjjön senki azzal, hogy munkaidőn túl kell bentlenni, meg hasonlóak! Rengeteget dolgozom a különböző állami pénből eltartott emberekkel és sajnos 10% ezek közül az az IT területen aki valóban ledolgozza a munkaidejét tisztességgel (nem bent tölti, hanem ledolgozza értem!?). Ez az üzemeltetés velejárója, hogy ilyen esetekben (évente kétszer nem egész egy hónapon át) ezen támogatást biztosítani kell. Amennyire én tapasztaltam az életben, ez megoldható és kezelhető dolog, nálunk is normál körben kötelező dolog, és mi is teljesítjük ezeket.

Amikor az oktatásért fizetni kell – amivel egyet értek és fizetjük is rendesen – akkor elvárható, a tisztességes kiszolgálást, aminek ez egy elengedhetetlen része! Hiszem, hogy teljesíthető célok és dolgok ezek, mindössze úgy kell hozzá állni. Tudom ez nem jellemző, de szükséges lenne. Természetesen megértem, hogy egy olyan intézményben, ahol még mindig a Borland C 3.11, Norton for DOS az oktatott IT tananyag, ott ezek az igények nem elvárhatóak. Miért maradunk le mi a világtól? Ezért, talán el kéne az intézet vezetőségének, saját tanárainak ezen gondolkozni és folyamatosan frissíteni a tananyagokat! Véleményem szerint nem csak pénzért lehet egyetemi jegyezetet írni, hanem munkaköri kötelességből is. Ugyanígy elvárt a tudás folyamatos szintentartása és a naprakész anyagok oktatása is. Én nem mondhatom az ügyfélnek, hogy bocsi 18 éve diplomáztam akkor csak ennyit tanítottak érje be ennyivel, hanem folyamatosan tanulok és képzem magam – ingyen – hisz különben nem akarnak tovább alkalmazni. Ez itt miért nem így van? Nem tudtam jól megszervezni az üzemeltetést, nem tudott naprakész maradni a tananyagban? Figyelmeztetés, fegyelmi vagy ami kell! Továbbra sem? Akkor kell másik ember aki elvégzi! Ennyi. Tőlünk fejletebb helyeken ez így megy és folyamatosan haladnak is előre… Miért is?