Webes alapok kutatása #1 (Entity Framework Code First)

Az Entity Framework Code First -öt a projektben főleg a rugalmasabb adatbázis létrehozására, alakítására, optimalizálására fogom használni. Az EFCF feladata elsősorban az lesz, hogy a C# -ban létrehozott osztályok, kontextus osztályok alapján adatbázisokat hozzon létre. Így nagyobb hangsúlyt lehet fektetni magára az oldal designra, ahelyett, hogy a régi módszer szerint felépített adatbázis köré tervezett oldalt fejlesztenénk. Continue reading

API kutatás/tesztelés #5 (MS Graph API\O365)

A következő API, amelyre sort kerítettem a Microsoft Graph API, amellyel az összes létező Microsoft API elérhető egyetlen token segítségével, így azt nem kell minden API -nál külön kérni. Az MS Graph felhő szolgáltatásába beletartozik az Azure Active Directory, Office365, SharePoint, OneDrive, OneNote, és Planner is.

A hozzáféréshez igyekeztek a többi nagy felhő szolgáltató által alkalmazott szabványhoz igazodni, így is könnyebbé téve a rendszer használatát. Először is szükségünk lesz egy Microsoft fiókra, amiben regisztrálnunk kell egy új alkalmazást. A regisztráció kezdetén csak az alkalmazást kell megadnunk, a mi esetünkben az legyen mondjuk GraphAPItest. A program legenerálása után megkapjuk az alkalmazás azonosítóját, lejjebb pedig generálhatunk alkalmazás titkot hozzá.

G1 Continue reading

API kutatás/tesztelés #4 (FacebookAPI)

Következőnek a Facebook API irányába indultam el kutatásom alatt. A hivatalos Facebook SDK beszerezhető a https://github.com/facebook-csharp-sdk/facebook-csharp-sdk oldalról. A dokumentáció, ami segítségemre volt pedig a https://developers.facebook.com/docs/ oldalon érhető el. Ebben az esetben egy elég egyszerű oldalt készítettem el, amely egy gombot tartalmaz.F2

Continue reading

API kutatás/tesztelés #3 (LinkedIn:Sparkle.LinkedInNET)

A következő szociális oldal API, aminek nekiálltam a LinkedIn , azon belül is a Sparkle.LinkedIn nevű API. Az API beszerezhető a https://github.com/SparkleNetworks/LinkedInNET oldalról, vagy a Visual Studióban, a Nuget csomagkezelőn keresztül az Install-Package Sparkle.LinkedInNET parancs futtatásával. Egy alap dokumentációt, ami a REST API, és OAuth részeket nagyjából lefedi a https://developer.linkedin.com/docs címen érhetjük el. Ezek segítségével valósítottam meg a kis kód részletet, amellyel felhasználói adatokat tudtam lekérdezni a LinkedIn oldaláról.

Continue reading

Kérdőív feldolgozó rendszer #1: Miért .NET & EmguCV

Miért a .Net, ha nincs „natív” képfelismerő?

Habár egyesek szerint van C#-nál jobb nyelv képfelismerő/feldolgozó alkalmazást írni, én a személyes (és munkahelyi) preferenciáim miatt inkább .Net vonalon képzelem el a programot. Mivel .NET Core használatával már Linux is célozható platformként, így amennyiben rendelkezésre áll egy megfelelő OpenCV wrappert vagy egy megfelelő képfelismerő alkalmazás, akkor multiplatformmá alakítható lehet az alkalmazás.

Továbbá, amennyiben iOS, Android, Windows Phone 10 eszközökön is elfogadható sebességgel fut a kérdőívek feldolgozása, akkor a Xamarin segítségével aránylag egyszerűen multiplatformosíthatóvá válik.

De természetesen ebben az esetben hatalmas időt is felemészthetne a QA, tehát ez a része nincs tervben, esetleg csak működő demo szintjén, összehasonlításban érdekes lenne, hogy a különböző operációs rendszerű telefonok miként viselkednek, illetve mennyivel lett gyorsabbak az újabb telefonok.

 

Miért az EmguCV?

A projekt kezdetekor én abban a hitben éltem, hogy van millió fajta képfelismerő C#/.NET-hez. Mint kicsit később kiderült tévedtem, jelentősen kevesebb van mint gondoltam. Néhányat már valamennyire ismertem, példának okáért a Matlab Image Processing Toolbox-ot, aminek a tudásán csak az ára tesz túl. Ugyanakkor, ha ezt használnám, akkor az ágyúval lőni bolhára eset állna fent: egyszerűen túl sokat tud, nekem pedig nem lesz annyira sokrétű az alkalmazásom, hogy a tudása tizedét is kihasználjam.

Open-source vizekre próbáltam evezni, már a (jellemzően) kedvezőbb licenszfeltételek miatt. Találtam is egy egészen korrektnek tűnő BSD licenszes segédletet: OpenCV.

Azonban ez csak C++-os library. De szerencsére, elég sok nyelven készül hozzá wrapper szerencsére C#-hoz is, ez lenne az EmguCV. Üröm, az örömben, hogy licenszfeltétele nem olyan engedékeny. Viszont támogatja az UWP-től kezdve a Xamarin-os appfejlesztést is, így ha esetleg multiplatformosítani akarnám az alkalmazást, akkor relatíve egyszerűen megtehetem.

 

Mi is az EmguCV?

Emgu CV is a cross platform .Net wrapper to the OpenCV image processing library. Allowing OpenCV functions to be called from .NET compatible languages such as C#, VB, VC++, IronPython etc. The wrapper can be compiled in Mono and run on Windows, Linux, Mac OS X, iPhone, iPad and Android devices.

Nos funkciók tekintetében ez az „image processing library” jött be leginkább, alább le is írom miért.

Kezdeném az OpenCL támogatással, ami eléggé meggyorsíthatja a képek feldolgozásának sebességét, ezt tesztek széleskörűen igazolják, persze kérdéses, hogy mennyit lehet majd az én programomban ebből kimérni. (Lesz majd összehasonlítás.) Egyetlen egy hátulütőről olvastam ezzel kapcsolatban, hogy figyeljek a grafikus meghajtókra, mert AMD kártyákon előfordultak lassulások, hibás eredmények.

Folytatva a sort, a CUDA támogatás is erősen plusz pont, de ez függ a programom használati helyétől, sajnos ezt az aspektust nem fogom tudni valószínűleg tesztelni, mivel otthoni számítógépemben Radeon van, munkahelyi GT210-es pedig annyira gyenge, hogy összehasonlítási alapnak rettenetes.

Tesseract OCR-t a listába belevenni kicsit fals dolog, mivel ez egy Google által szponzorált opensource library karakterfelismeréshez, amiről legtöbben elégedetten beszélnek, ugyanakkor része az EmguCV-s „csomagnak”, pluszban ez így lerövidítette az időt, amit OCR-ek keresésével kellett töltenem.

Szerencsére cross-platform, így linuxon futtatás is szóbajöhet, bár személy szerint engem jobban érdekelne ennél, hogy Apple A8-A10 processzoron milyen sebességű a képfeldolgozás, illetve ugyanez Androidos/Windows Phone-os telefonokon az Adreno IGP-vel.

API research/testing #1 (Google:Plus,People)

Kontakt kezelő program lévén először is a különböző szociális felületekre elkészített API-k vizsgálata a jelenlegi feladat, amelynek neki is láttam. Elsőnek a Google API-t választottam. Elsődleges feladatom ezeknek az API-knak az átvizsgálása, lehetőségek felfedése. A többféle lehetőség közül végül a Google+, és a Google People API-ra esett a választásom, mert ezek együttes használatával tudunk lekérdezni minden kritikus információt, amelyet később a webszolgáltatásunkban felhasználhatunk eredményesen.

Continue reading

Web API contoller használata

Ha már létrehoztunk a controllereket próbáljuk meg használni is! 😛

Hozzuk létre az adatbázis kapcsolatot:
1
K
övetkező a 2 get utasítás:
2
mit is csinál az első get?
Futtassuk a projektünket, hívjuk meg a webapi controllerünket:
http://localhost:xxxxx/api/Coords címen, nálam az eredmény:
3
Ez az eredményt az első get hívásra kaptuk, ami visszaadja az adatbázis teljes tartalmát. Hívjuk meg a 2. get -et ami paraméterezve van:
4
Weboldal válasza az ezzel az id-vel rendelkező egyed lesz:
4
Ezek alapján írhatunk a többi utasításra(put,post,delete) példát:
5
6
7

MVC model,ASP.NET

Azoknak, akik nem jártasak az MVC model,ASP.NET környezetben:
Az alábbi videó sorozat próbál segíteni nekik:
http://channel9.msdn.com/Series/Introduction-to-ASP-NET-MVC

A videó anyag elején csak MVC-ról általánosan beszél. Amit érdemes azoknak is megnézni, akik nem .NET környezetben akarnak programozni. A sorozatban folyamatosan egymásra épülnek az anyagok. Kicsit zavaró, hogy nem mutatnak mindent amit csinálnak, de szerencsére kis idő ráfordítással kitalálható mit csináltak.

Negyedik részben kitérnek arra, hogy feltöltik az anyagokat githubra, amikkel otthonról is könnyen lehet követni az előadást, valamint jó alapot adnak a további gyakorláshoz.
Elérhetősége:
https://github.com/jongalloway/MVA-Introduction-to-ASPNET-MVC

Az előadók próbálnak lassan érthetően, egymást kiegészítve segíteni. Ami sikerül is.

Érdemes feliratkozni a Microsoft Virtual Academy-re, ahol újabb kurzusokról tájékozódhatunk.
Talán sikerorientáltabb, ha a regisztrálunk az MVA-ra és innen nézzük meg az anyagot:http://www.microsoftvirtualacademy.com/training-courses/introduction-to-asp-net-mvc
ekkor a haladásunkat a weboldal jelzi %-osan.

A „sorozat” angolul van, szerencsére be lehet kapcsolni hozzá a CC-t, amivel olvashatjuk is azt, amit éppen mond szóban.

Tartalomjegyzék:
Mod 01: Basics of MVC and the Moving Parts

Mod 02: Creating and Configuring Models

Mod 03: The Power of Visual Studio

Mod 04: Deep Dive into Controllers

Mod 05: Deep Dive into Views

Mod 06: Introduction to Bootstrap

Mod 07: Introduction to Authentication in MVC

Mod 08: Supplement Your Knowledge

A videókhoz írtam pár kiegészítő információt:

1.rész

Bevezetés, property gyors létrehozása.
Minden követhető, példákat videóval együtt lehet csinálni.

2.rész

Hibásan próbálnak létrehozni controllert, sajnos amikor a hibát kijavítják azt nem mutatják. Nekem sikerült rájönni mi a hiba úgy, hogy tovább néztem a tanagyagot.. Minden Controller létrehozása előtt futtatni érdemes a buildet! Miután rájöttem, hogy mi volt a hiba eddig újabb hiba készüld a bemutató filmben, amit nekik se sikerült megoldaniuk.

3.rész

Nekünk alig kell valamit írnunk, hiszen a Visual Studio megoldja/ megírja helyettünk a kódot. Tényleg! Eleinte nem akartam elhinni, de mindent legenerál. A videóból többet megtudhatunk
Okos kapcsolat a böngésző és a view(cshtml) között.

Minden problémámnak vége:
https://github.com/jongalloway/MVA-Introduction-to-ASPNET-MVC
Ezen az oldalon meg lehet tekinteni a forráskódokat.

4.rész

Kód nélküli részletes előadás és magyarázat a controllerről.

5.rész

Sok elmélet és magyarázás mellé kaptunk pár weboldal címet, ahol érdemes nézelődni.
ViewModel:
http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applications
egy másik fórum:
http://blog.geektrainer.com/

6.rész

http://jameschambers.com/2014/06/day-1-the-mvc-5-starter-project/
Néhány bootstrap:
http://bootswatch.com/
https://wrapbootstrap.com/
AngularJS:
http://channel9.msdn.com/Events/Build/2014/3-644
7.rész

Egy részletes leírás, mi is hangzik el pontosan az anyagban, kiegészítve google és twitter login-nal:
http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on
SSL-ről:
http://www.troyhunt.com/2011/01/ssl-is-not-about-encryption.html

8.rész
MVA oldala, milyen következő kurzusok lesznek.