{"id":155,"date":"2016-03-27T11:58:08","date_gmt":"2016-03-27T09:58:08","guid":{"rendered":"http:\/\/tomaszkacmajor.pl\/?p=155"},"modified":"2016-06-01T09:46:21","modified_gmt":"2016-06-01T07:46:21","slug":"pierwsze-starcie-z-asp-net-core-1-0","status":"publish","type":"post","link":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/","title":{"rendered":"Pierwsze starcie z ASP.NET Core 1.0"},"content":{"rendered":"<p>W drugim tygodniu moich zmaga\u0144 z projektem Flover zabra\u0142em si\u0119 za realne tworzenie kodu. Wreszcie <a href=\"https:\/\/github.com\/tomaszkacmajor\">GitHub<\/a> przesta\u0142 \u015bwieci\u0107 pustkami! Przede wszystkim zaprzyja\u017ania\u0142em si\u0119 z bibliotek\u0105 Accord.net pod k\u0105tem przetwarzania obraz\u00f3w. Powsta\u0142a w tym celu ma\u0142a aplikacja okienkowa, w kt\u00f3rej szybko mog\u0119 sobie zaimplementowa\u0107 jakie\u015b operacje. Jak na razie testowa\u0142em wykrywanie rog\u00f3w obiekt\u00f3w na zdj\u0119ciach, co mo\u017ce si\u0119 p\u00f3\u017aniej przyda\u0107 w celu stworzenia wektora cech obrazu i jego p\u00f3\u017aniejszej klasyfikacji. Wi\u0119cej o ca\u0142ej procedurze rozpoznawania obrazu w nast\u0119pnym wpisie. Jednak g\u0142\u00f3wnym wyzwaniem by\u0142o wystartowanie z ASP.NET Core 1.0 i napisanie chocia\u017cby jednej funkcjonalno\u015bci na stron\u0119 internetow\u0105, kt\u00f3ra jest zwi\u0105zana z tematyk\u0105 przetwarzania obraz\u00f3w. B\u0119dzie to zapis wybranego pliku na serwer oraz wy\u015bwietlenie go na stronie.<\/p>\n<p>W poprzednim po\u015bcie wspomnia\u0142em, \u017ce b\u0119d\u0119 chcia\u0142 si\u0119 nauczy\u0107 ASP.NET MVC 6, co w\u0142a\u015bciwie jest skr\u00f3tem znacz\u0105cym: ASP.NET 5 + MVC 6. Cz\u0119sto dochodzi do tego zestawu np. Entity Framework 7. Okazuje si\u0119, \u017ce niedawno Microsoft zdecydowa\u0142 si\u0119 wiele z tych rzeczy &#8220;zrestartowa\u0107&#8221; do wersji 1.0. Zatem mamy ASP.NET Core 1.0, .NET Core 1.0 oraz Entity Framework Core 1.0. Przyczyn\u0105 tych zmian, podan\u0105 przez <a href=\"http:\/\/www.hanselman.com\/blog\/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx\">S. Hanselmana<\/a>, by\u0142o g\u0142\u00f3wnie to, \u017ce nowy framework nie jest tylko kolejnym wydaniem poprzedniego a raczej napisany od nowa. Z tego wzgl\u0119du jest bardziej innowacyjny (np. <a href=\"http:\/\/www.ageofascent.com\/asp-net-core-exeeds-1-15-million-requests-12-6-gbps\/\" target=\"_blank\">osi\u0105gni\u0119cie <\/a>1.15 mln zapyta\u0144 na sekund\u0119) ale te\u017c mniej dojrza\u0142y &#8211; trzeba si\u0119 nastawi\u0107, \u017ce od czasu do czasu natkniemy si\u0119 na b\u0142\u0119dy. Pod koniec posta zamieszczam ciekawe materia\u0142y, kt\u00f3re uda\u0142o mi si\u0119 znale\u017a\u0107 w sieci o tym frameworku. Niekt\u00f3re z nich wykorzysta\u0142em aby zacz\u0105\u0107 zabaw\u0119 z ASP.NET Core 1.0. Framework cieszy si\u0119 r\u00f3wnie\u017c sporym zainteresowaniem spo\u015br\u00f3d uczestnik\u00f3w <a href=\"http:\/\/dajsiepoznac.pl\/\">Daj Si\u0119 Pozna\u0107<\/a> &#8211; g\u0142\u00f3wnie opisuj\u0105cym zagadnienie migracji, kt\u00f3remu te\u017c b\u0119d\u0119 chcia\u0142 si\u0119 przyjrze\u0107. Linki r\u00f3wnie\u017c na dole.<\/p>\n<p>Zacznijmy zatem od utworzenia pierwszego projektu. W Visual Studio 2015 wybieramy New Project -> ASP.NET Web Application, nadajemy nazw\u0119 projektowi -> nast\u0119pnie wybieramy Web Application. Automatycznie stworz\u0105 nam si\u0119 foldery dla Modelu, Widoku i Kontrolera. Zak\u0142adaj\u0105c, \u017ce na razie b\u0119dziemy g\u0142\u00f3wnie u\u017cywa\u0107 naszej strony startowej, b\u0119dziemy g\u0142\u00f3wnie zainteresowani nast\u0119puj\u0105cymi plikami:<\/p>\n<ul>\n<li>Model -> stw\u00f3rzmy tu nowy plik HomeModel.cs<\/li>\n<li>View -> Home\/Index.cshtml<\/li>\n<li>Controller -> HomeController.cs<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/SolExpl.png\" alt=\"SolExpl\" width=\"280\" height=\"367\" class=\"alignnone size-medium wp-image-192\" \/><\/p>\n<p>Nasz model jak na razie b\u0119dzie przechowywa\u0142 informacje o \u015bcie\u017cce wybranego pliku.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/tomaszkacmajor\/82d19fc230906781ba7e.js\"><\/script><\/p>\n<p>W widoku chcieliby\u015bmy, aby u\u017cytkownik m\u00f3g\u0142 wybra\u0107 zdj\u0119cie, zapisa\u0107 je na serwer a nast\u0119pnie wy\u015bwietli\u0107. U\u017cyjmy zatem formularza, kt\u00f3ry b\u0119dzie tutaj tzw. <a href=\"http:\/\/www.codeproject.com\/Articles\/853835\/TagHelpers\" target=\"_blank\">TagHelperem<\/a>. TagHelpery s\u0105 w miar\u0119 now\u0105 rzecz\u0105 w ASP.NET. Wygl\u0105daj\u0105 jak HTML, ale w rzeczywisto\u015bci, posiadaj\u0105c r\u00f3\u017cne atrybuty (np. &#8220;asp-action&#8221; czy  &#8220;asp-controller&#8221;), generuj\u0105 kod HTML po stronie serwera.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/tomaszkacmajor\/2170bed0509614ad8151.js\"><\/script><\/p>\n<p>Formularz w widoku, po klikni\u0119ciu &#8220;Wy\u015blij&#8221;, przekierowuje nas do kontrolera, gdzie nale\u017cy umie\u015bci\u0107 metod\u0119 poprzedzon\u0105 znacznikiem [HttpPost], kt\u00f3ra przyjmuje argument typu IFormFile. W \u015brodku budujemy odpowiednie \u015bcie\u017cki: do folderu docelowego, gdzie zapiszemy plik (uploadPath), oraz lokalizacj\u0119 wybranego obrazu (filePath). W celu stworzenia lokalizacji docelowej u\u017cywamy serwisu IHostingEnvironment, kt\u00f3ry posiada informacje o \u015brodowisku, w kt\u00f3rym pracujemy. Tutaj wykorzystamy w\u0142a\u015bciwo\u015b\u0107 WebRootPath, kt\u00f3ra wskazuje na folder wwwroot naszego projektu.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/tomaszkacmajor\/e76bdb488da4cd41b3ff.js\"><\/script><\/p>\n<p>Po uruchomieniu strony dzi\u0119ki serwisowi IIS Express i wybraniu pliku ujrzymy poni\u017cszy rezultat:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/page.png\" alt=\"page\" width=\"400\" height=\"410\" class=\"alignnone size-medium wp-image-187\" \/><\/p>\n<p>Jako nast\u0119pny krok wyznaczam sobie przeprowadzanie operacji na wgranych obrazach, kt\u00f3re b\u0119d\u0105 wykonywane ju\u017c na stronie.<\/p>\n<p>Tutoriale:<br \/>\nTutorial, kt\u00f3ry g\u0142\u00f3wnie przetrenowa\u0142em: <a href=\"http:\/\/docs.asp.net\/en\/latest\/tutorials\/first-mvc-app\/start-mvc.html\" target=\"_blank\">http:\/\/docs.asp.net\/en\/latest\/tutorials\/first-mvc-app\/start-mvc.html<\/a><br \/>\nZapis plik\u00f3w na dysk: <a href=\"http:\/\/www.mikesdotnetting.com\/article\/288\/uploading-files-with-asp-net-core-1-0-mvc\" target=\"_blank\">http:\/\/www.mikesdotnetting.com\/article\/288\/uploading-files-with-asp-net-core-1-0-mvc<\/a><br \/>\n7-godzinny(!) tutorial od Microsoftu: <a href=\"https:\/\/www.youtube.com\/watch?v=zLj9BFbuLLI\" target=\"_blank\">https:\/\/www.youtube.com\/watch?v=zLj9BFbuLLI<\/a><br \/>\nPodstawy (15 min): <a href=\"https:\/\/www.youtube.com\/watch?v=gOBZCbNMAak\" target=\"_blank\">https:\/\/www.youtube.com\/watch?v=gOBZCbNMAak<\/a><br \/>\nW po\u0142\u0105czeniu z Angularem JS: <a href=\"http:\/\/www.codeproject.com\/Articles\/1084085\/ASP-NET-Core-MVC-Using-WEB-API-And-AngularJS\" target=\"_blank\">http:\/\/www.codeproject.com\/Articles\/1084085\/ASP-NET-Core-MVC-Using-WEB-API-And-AngularJS<\/a><br \/>\nZ Pluralsight p\u0142atny: <a href=\"https:\/\/www.pluralsight.com\/courses\/aspdotnet-core-1-0-fundamentals\" target=\"_blank\">https:\/\/www.pluralsight.com\/courses\/aspdotnet-core-1-0-fundamentals<\/a><br \/>\nZ Udemy: <a href=\"https:\/\/www.udemy.com\/learn-aspnet-core-mvc-web-apis-ef-core-bonus-ios-app\/\" target=\"_blank\">https:\/\/www.udemy.com\/learn-aspnet-core-mvc-web-apis-ef-core-bonus-ios-app\/<\/a><\/p>\n<p>Blogi z DSP:<br \/>\nOpis MVC: <a href=\"http:\/\/doriansobacki.pl\/2016\/03\/14\/asp-net-mvc-6-z-czym-to-sie-je\/\" target=\"_blank\">http:\/\/doriansobacki.pl\/2016\/03\/14\/asp-net-mvc-6-z-czym-to-sie-je\/<\/a><br \/>\n.NET Core template: <a href=\"http:\/\/www.pyrzyk.net\/net-core-project-templates\/\" target=\"_blank\">http:\/\/www.pyrzyk.net\/net-core-project-templates\/<\/a><br \/>\nMigracje: <a href=\"http:\/\/langusblog.pl\/index.php\/2016\/03\/24\/migracje-w-ef-core-w-poszukiwaniu-jednorozca\/\" target=\"_blank\">http:\/\/langusblog.pl\/index.php\/2016\/03\/24\/migracje-w-ef-core-w-poszukiwaniu-jednorozca\/<\/a><br \/>\nMigracje: <a href=\"http:\/\/jakubskoczen.pl\/entity-framework-i-code-first-migrations\/\" target=\"_blank\">http:\/\/jakubskoczen.pl\/entity-framework-i-code-first-migrations\/<\/a><br \/>\nMigracje: <a href=\"http:\/\/hryniewski.net\/post\/entity-framework-code-first-zmiany-w-strukturze-bazy-danych-migrations\" target=\"_blank\">http:\/\/hryniewski.net\/post\/entity-framework-code-first-zmiany-w-strukturze-bazy-danych-migrations<\/a><br \/>\nTesty: <a href=\"http:\/\/tomaszjarzynski.pl\/mockowanie-asp-net-core-1-0-dsp16-czesc-6\/\" target=\"_blank\">http:\/\/tomaszjarzynski.pl\/mockowanie-asp-net-core-1-0-dsp16-czesc-6\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W drugim tygodniu moich zmaga\u0144 z projektem Flover zabra\u0142em si\u0119 za realne tworzenie kodu. Wreszcie GitHub przesta\u0142 \u015bwieci\u0107 pustkami! Przede wszystkim zaprzyja\u017ania\u0142em si\u0119 z bibliotek\u0105 Accord.net pod k\u0105tem przetwarzania obraz\u00f3w. Powsta\u0142a w tym celu ma\u0142a aplikacja okienkowa, w kt\u00f3rej szybko mog\u0119 sobie zaimplementowa\u0107 jakie\u015b operacje. Jak na razie testowa\u0142em wykrywanie rog\u00f3w obiekt\u00f3w na zdj\u0119ciach, co [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":589,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[18,12,11],"class_list":["post-155","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-flover-project","tag-asp-net","tag-daj-sie-poznac","tag-flover"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pierwsze starcie z ASP.NET Core 1.0 - tomaszkacmajor.pl<\/title>\n<meta name=\"description\" content=\"Opis ASP.NET Core 1.0 - odczyt i zapis zdj\u0119cia na serwerze oraz jego wy\u015bwietlenie na stronie.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pierwsze starcie z ASP.NET Core 1.0 - tomaszkacmajor.pl\" \/>\n<meta property=\"og:description\" content=\"Opis ASP.NET Core 1.0 - odczyt i zapis zdj\u0119cia na serwerze oraz jego wy\u015bwietlenie na stronie.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/\" \/>\n<meta property=\"og:site_name\" content=\"tomaszkacmajor.pl\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ProggBlogg\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-03-27T09:58:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-06-01T07:46:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/Picture3-Kopia-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"tomasz.kacmajor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tkacmajor\" \/>\n<meta name=\"twitter:site\" content=\"@tkacmajor\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tomasz.kacmajor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/\",\"url\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/\",\"name\":\"Pierwsze starcie z ASP.NET Core 1.0 - tomaszkacmajor.pl\",\"isPartOf\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/Picture3-Kopia-1.png\",\"datePublished\":\"2016-03-27T09:58:08+00:00\",\"dateModified\":\"2016-06-01T07:46:21+00:00\",\"author\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/5f40890309a32ae4f63fa6a284215b6c\"},\"description\":\"Opis ASP.NET Core 1.0 - odczyt i zapis zdj\u0119cia na serwerze oraz jego wy\u015bwietlenie na stronie.\",\"breadcrumb\":{\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#primaryimage\",\"url\":\"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/Picture3-Kopia-1.png\",\"contentUrl\":\"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/Picture3-Kopia-1.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/tomaszkacmajor.pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pierwsze starcie z ASP.NET Core 1.0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/#website\",\"url\":\"https:\/\/tomaszkacmajor.pl\/\",\"name\":\"tomaszkacmajor.pl\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/tomaszkacmajor.pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/5f40890309a32ae4f63fa6a284215b6c\",\"name\":\"tomasz.kacmajor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a1fe5c8a80549b9a680c7a6f9ea33a94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a1fe5c8a80549b9a680c7a6f9ea33a94?s=96&d=mm&r=g\",\"caption\":\"tomasz.kacmajor\"},\"url\":\"https:\/\/tomaszkacmajor.pl\/index.php\/author\/tomasz-kacmajor\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pierwsze starcie z ASP.NET Core 1.0 - tomaszkacmajor.pl","description":"Opis ASP.NET Core 1.0 - odczyt i zapis zdj\u0119cia na serwerze oraz jego wy\u015bwietlenie na stronie.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/","og_locale":"en_US","og_type":"article","og_title":"Pierwsze starcie z ASP.NET Core 1.0 - tomaszkacmajor.pl","og_description":"Opis ASP.NET Core 1.0 - odczyt i zapis zdj\u0119cia na serwerze oraz jego wy\u015bwietlenie na stronie.","og_url":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/","og_site_name":"tomaszkacmajor.pl","article_publisher":"https:\/\/www.facebook.com\/ProggBlogg\/","article_published_time":"2016-03-27T09:58:08+00:00","article_modified_time":"2016-06-01T07:46:21+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/Picture3-Kopia-1.png","type":"image\/png"}],"author":"tomasz.kacmajor","twitter_card":"summary_large_image","twitter_creator":"@tkacmajor","twitter_site":"@tkacmajor","twitter_misc":{"Written by":"tomasz.kacmajor","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/","url":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/","name":"Pierwsze starcie z ASP.NET Core 1.0 - tomaszkacmajor.pl","isPartOf":{"@id":"https:\/\/tomaszkacmajor.pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#primaryimage"},"image":{"@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#primaryimage"},"thumbnailUrl":"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/Picture3-Kopia-1.png","datePublished":"2016-03-27T09:58:08+00:00","dateModified":"2016-06-01T07:46:21+00:00","author":{"@id":"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/5f40890309a32ae4f63fa6a284215b6c"},"description":"Opis ASP.NET Core 1.0 - odczyt i zapis zdj\u0119cia na serwerze oraz jego wy\u015bwietlenie na stronie.","breadcrumb":{"@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#primaryimage","url":"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/Picture3-Kopia-1.png","contentUrl":"https:\/\/tomaszkacmajor.pl\/wp-content\/uploads\/2016\/03\/Picture3-Kopia-1.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/tomaszkacmajor.pl\/index.php\/2016\/03\/27\/pierwsze-starcie-z-asp-net-core-1-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/tomaszkacmajor.pl\/"},{"@type":"ListItem","position":2,"name":"Pierwsze starcie z ASP.NET Core 1.0"}]},{"@type":"WebSite","@id":"https:\/\/tomaszkacmajor.pl\/#website","url":"https:\/\/tomaszkacmajor.pl\/","name":"tomaszkacmajor.pl","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tomaszkacmajor.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/5f40890309a32ae4f63fa6a284215b6c","name":"tomasz.kacmajor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tomaszkacmajor.pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a1fe5c8a80549b9a680c7a6f9ea33a94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a1fe5c8a80549b9a680c7a6f9ea33a94?s=96&d=mm&r=g","caption":"tomasz.kacmajor"},"url":"https:\/\/tomaszkacmajor.pl\/index.php\/author\/tomasz-kacmajor\/"}]}},"_links":{"self":[{"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/posts\/155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/comments?post=155"}],"version-history":[{"count":54,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/posts\/155\/revisions"}],"predecessor-version":[{"id":217,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/posts\/155\/revisions\/217"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/media\/589"}],"wp:attachment":[{"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/media?parent=155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/categories?post=155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tomaszkacmajor.pl\/index.php\/wp-json\/wp\/v2\/tags?post=155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}