NetAcademia

A legjobbakat tanítjuk!

Dependency Injection az ASP.NET Core használata közben 8 és fél percben - Video

2016. április 29. 08:00 - Plesz Gábor

Egy belsős ember a Microsoft-tól rövid videókban szórja az információt, ezúttal a Dependency Injection használatáról az ASP.NET Core-ban: Fritz’s 10 Minute Tips: Today’s video is about how to use Dependency Injection in ASP.NET Core.

 

Szólj hozzá!

Fejlesztési minta: funkciók be- és kikapcsolása (MartinFowler.com)

2016. április 26. 08:00 - Plesz Gábor

Egy nagyon tartalmas cikk a "Funkcióválasztás" (Feature Toggling) elméletéről és gyakorlatáról. Ez néhány tervezési minta, ami egy fejlesztőcsapat számára az új funkciók gyors de biztonságos szállításában hasznos. Ebben a cikkben egy rövid történet segítségével először is kiderül, hol segíthet a Funkcióválasztás néhány tipikus forgatókönyv esetén, Aztán alámerülünk a részletekbe, áttekintünk speciális mintákat és gyakorlati megoldásokat, amik megkönnyítik a Funkcióválasztás sikeres alkalmazását.

Feature Toggles

Contents

 

Szólj hozzá!

A Bootstrap 4 korai (Alpha 2) változata decemberben kijött, aki puskázni akar, ilyen lesz

2016. április 25. 08:00 - Plesz Gábor

A reszponzív webfelület fejlesztés zászlóshajója a (twitter) Bootstrap. 2010-ben a Twitternél egy fejlesztő (@mdo) és egy (web)designer (@fat) hozta létre, ingyenes, nyílt forráskódú projekt, a githubon nyilvános. Egy egy oldalas összefoglaló a következő nagy (immáron mobile first) változatról:

Bootstrap 4 Cheat seet

 

Szólj hozzá!

Microsoft Robotics: Részletes robotika környezet C# nyelven

2016. április 24. 08:00 - Plesz Gábor

Nem új, de nagy és részletes, így talán hasznos csomag nem csak C#, és nem csak robotikában fejlesztők számára. A környezet a következőkből áll:

  • Robotics Developer Studio (RDS):
  • Concurrency and Coordination Runtime  (CCR)
    • Üzenetalapú programozási modell thread-ek, lockok, szemaforok (stb.) használata nélküli, jól skálázható, robosztus, aszinkron, párhuzamosan több hardveren futtatható és erősen konkurrens kód írásához.
    • Az egyik (Robotics team) fejlesztő tanácsai itt és itt.
  • Decentralized Software Services (DSS)
    • REST alapú elosztott, egymással együttműködő, robosztus, nagy teljesítményű és jól skálázható alkalmazás modell.
  • DSS Manifest Editor (DSSME)
    • Grafikus felhasználói környezet alkalmazások konfigurációjához, telepítéséhez, futtatásához és ezen alkalmazások együttműködésének kialakításához, egy szerveren vagy a hálózaton elosztva több helyen.
  • Microsoft Visual Programming Language  (VPL)
    • Adatáramlás alapú grafikus (drag'n drop) fejlesztőkörnyezet CCR/DSS alkalmazások készítéséhez. Az általános programozási modellben található vezérlés alapú megközelítéssel ellentétben az adatáramlás alapú program azt szabályozza, hogy az egyik komponenstől beérkező adatok melyik komponenst "hajtsák meg". Ehhez 7 leckéből álló minitanfolyam is van.
  • Microsoft Visual Simulation Environment  (VSE)
    • integrált környezet robotok, környezet és egyéb fizikai objektumok szimulációjának a létrehozásához és futtatásához jó minőségű 3D szimulációban. Azon túlmenően, hogy a környezet generálását a Microsoft XNA Framework végzi, az NVIDIA™ PhysX™ segítségével valódi fizikai gravitációs környezetet generál.

Bevezetés 4 leckével.

Néhány kiragadott példa az összetevőkből:

Beépített általános robotikai eszközök, ezek példakódja C# nyelven rendelkezésre áll.

Néhány példa szenzor kódja:

 Támogatott robotok:

 A szimulációs könyezetben a következő robotokat szimulálja:

  • Kuka LBR3 Articulated Arm
  • LEGO NXT
  • Pioneer 3DX
  • iRobot Create

illetve ezen szenzorok szimulációja áll rendelkezésre:

  • Lökhárító
  • Differenciál hajtómű
  • Webkamera

Olyan példákon keresztül mutatja be a lehetőségeket, mint a követőkamera, vagy pedig a beágyazott szimuláció. 

Szólj hozzá!

A .NET Foundation-höz csatlakozott a Red Hat, a Unity és a JetBrains

2016. április 23. 08:00 - Fóti Marcell NetAcademia

Az új csapatok csatlakoztak a Microsofthoz az alapítvány technikai irányító csoportjában is, ezzel biztosítva, hogy a jövendő fejlesztések mindenki számára megfelelőek legyenek.

A Red Hat a Linux világ meghatározó alakja a vállati szegmensben a Red Hat Enterprise Linux kiadójaként. A Unity a játékmotorjáról méltán híres, a JetBrains pedig egyebek mellett a ReSharper gyártója.

Technical Steering Group

Szólj hozzá!

Hogy kerülhetjük el a "szoftverpusztulást"? 12Factor app: 2. Függőségek kezelése

2016. április 21. 08:00 - Fóti Marcell NetAcademia

Előző fejezet: 1. A kódbázis

Következő fejezet: 3. Beállítások, konfigurációkezelés

Egy korábbi bejegyzésben elkezdtük feldolgozni a szoftverpusztulás elkerüléséhez tanácsolt lépéseket. Most lépjünk a következő pontra:

2. Függőségek kezelése

A tanács: mindig explicit módon deklaráljuk és különítsünk el a függőségeket.

A legtöbb programozási nyelvben rendelkezésre áll már csomagkezelési megoldás, ami támogatja könyvtár modulok becsomagolását és csomagban terjesztését. A .NET világban a NuGet (egy régebbi, de részletes cikk erről) megoldását használjuk, Ruby nyelven fejlesztőknek ott a  Rubygems. És a teljesség igénye nélkül néhány példa még: A Phyton-nál a Pip és a Virtualenv, a nodejs-nél az npm, a PHP-t nem ismerem túl jól, de a Composer és a Packagist lennének az első jelöltjeim. A JavaScriptnél pedig ezekből választhatunk: npm, bower, Ender, volo, component és jam.

A csomagkezelő megoldásunk segítségével egyrészt telepíthetjük a könyvtárainkat rendszer szinten, ekkor minden telepített alkalmazás használhatja őket (ilyesmi például a .NET global assembly cache, vagy többféle nyelven a "site package"). Vagy telepíthetjük a könyvtárainkat az alkalmazásunkkal együtt, egy csomagban, kizárólagos használatára (ilyenek az alkalmazásunkhoz telepített nuget csomagok például).

A 12 tényezős alkalmazásfejlesztés soha nem feltételez rendszerszinten rendelkezésre álló könyvtárakat.

(Erre jó példa a .NET Core/ASP.NET Core újdonságai közül például, hogy a .NET futtató környezetet az új .NET alkalmazásokhoz NuGet csomagokkal telepíthetjük. Erről némi információ: NuGet is a .NET framework release vehicle és ASP.NET vNext will let you deploy your own version of the .NET Framework on an app-by-app-basis,)

Az alkalmazás, (ami követi a 12 tényezős alkalmazásfejlesztés tanácsait) az összes függőségét pontosan deklarálja a függőségi deklarációs jegyzékében (pl.: NuGet csomagkezelő esetén a package.config állományban). Ezen túlmenően az alkalmazás a függőségeket elkülönítő megoldást használ a futtatás során, ami biztosítja, hogy hogy nincs implicit (nem pontosan definiált, csak valamilyen egyéb körülményből következő) függőség, ami a környezetből "beszivárog". (mondjuk Microsoft Office alkalmazás osztályok használata, mivel a fejlesztő gépén telepítve van az Office).

Például a Ruby a Gem Bundlert adja a Gemfile-ok (függőségi deklarációs jegyzék) létrehozásához, és a bundle exec-et használja a környezet leválasztásához. A Phyton fejlesztők a Pip-et használják a deklarációs jegyzék létrehozásához, és a Virtualenv-et a leválasztáshoz. Még C nyelven is megoldható az Autoconf segítségével a jegyzék gyártása, és statikus linkeléssel pedig a környezet leválasztása. Nem számít, hogy milyen kombinációt alkalmazunk, a függőségek jegyzékbe vétele és a környezet leválasztása mindig együtt kell, hogy jelen legyen az alkalmazásfejlesztés során. Ha csak az egyiket használjuk, nem teljesítjük a 12 tényezős alkalmazásfejlesztés követelményeit.

Az egyik nagy előnye a függőségek megfelelő kezelésének az, hogy ha új fejlesztő csatlakozik, akkor a környezet telepítése egyszerűen a kódbázis letöltését jelenti a gépére, ezen túlmenően csak a programozási nyelvre és a csomagkezelőre van még szükség semmi egyébre. Ezzel a fejlesztő egy egyértelmű build paranccsal tudja az alkalmazást futtatni. Például Visual Stúdióból az első BUILD előtt minden szükséges NuGet csomag automatikusan letöltődik (a nuget.exe restore parancs segítségével). A Ruby fejlesztők a bundle install parancsot, a Clojure fejlesztők pedig a lein deps parancsot használják.

Egyéb, a futtatókörnyezetben létező rendszereszközök használata sem megengedett. Így curl, cmd.exe vagy bash parancsok hívása sem. Bár a legtöbb rendszeren ezek az eszközök léteznek, nincs rá garancia, hogy minden rendszeren léteznek illetve a jövőben mindig létezni fognak, valamint ha léteznek, a verziójuk mindig alkalmas lesz az együttműködésre alkalmazásunkkal. Ha ilyesmit használni szeretnénk, akkor az alkalmazás mellé kell csomagolnunk és alkalmazásunkkal együtt telepítenünk.

The Twelve-Factor App: II. Dependencies

Szólj hozzá!
süti beállítások módosítása