Adaptív szerepkörkezelő keretrendszer fejlesztése ASP.NET MVC alapokon

OData támogatás
Konzulens:
Kaszó Márk
Automatizálási és Alkalmazott Informatikai Tanszék

Manapság egyre fontosabb szerepet kapnak mindennapjainkban a különböző webes alkalmazások. Ezeket szeretjük a lehető legtöbb módon minél kényelmesebben elérni, böngészőben, natív mobil alkalmazás formájában vagy valamilyen szolgáltatásként. A technológia ezekkel az igényekkel próbál lépést tartani és segíteni a fejlesztők munkáját, de gyakran nem egyértelmű, hogy alkalmazásunk implementációjakor a rendelkezésünkre álló széles palettából miket használjunk fel. Célunk, hogy szoftverünk a lehető legflexibilisebb legyen, ugyanakkor ez ne menjen a teljesítmény rovására.

A Microsoft számos megoldást kínál ezen igények lefedésére, utóbbi időben ezen projektek már nyílt forráskódúak, így jobban beleláthatunk működésükbe. Az ASP.NET MVC5-be integrálásra került az Open Web Interface for .NET (OWIN), melyben saját csővezetéket építhetünk fel azon technológiákból, melyekre alkalmazásunkban szükségünk van, legyen az a WebApi vagy SignalR. Ebben foglal el kiemelt szerepet az ASP.NET Identity 2, melyre az authentikációt és authorizációt építhetjük.

A legtöbb esetben azonban a beépített eszközök nem elégítenek ki minden igényt. Az Identity 2 támogatja a claim-alapú authentikációt, és felhasználó-szerepkör szinten képes az authoricáziót támogatni. Gyakran szükségünk lehet azonban arra, hogy a bizonyos jogosultságokat szerepkörökhöz rendeljünk, majd ezekbe a szerepkörökbe osztjuk be felhasználóinkat, ezzel még könnyebben testre szabható legyen (akár az alkalmazás futása közben is), hogy az egyes felhasználók milyen erőforrásokat érhetnek el. Az MVC framework nem támogatja a dinamikus template-ezést sem. Bár különböző stíluslapokkal a probléma valamelyest kiküszöbölhető, az oldal szerkezete, felépítése nem változtatható futási időben.

A szakdolgozat célja egy olyan keretrendszer felépítése a fenti technológiákra, amely bizonyos konvenciókat betartva segíti az alkalmazásfejlesztő munkáját. A rendszerbe úgynevezett modulokat illeszthetünk, melyek jogosultságokat, menüket definiálhatnak: megadhatjuk, hogy az egyes erőforrásokhoz milyen jogosultság szükséges, ezeket a rendszer automatikusan kezeli, a nem elérhető dolgokat – például menüelemeket - elrejti a felhasználó szeme elől. Támogassa továbbá a különböző kiegészítő technológiák alkalmazását, futás időben változtatható legyen a holnap megjelenése (dinamikus design template), mobil kliens kiszolgálását.

Munkám során megtervezem e rendszer alapvető működését, integrálom a különböző technológiákat. Elkészítek egy egyszerű példaalkalmazást (úgynevezett modult a rendszerhez) és hozzá egy natív Windows Phone klienst, mely illusztrálja a keretrendszer előnyeit.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.