{"id":893,"date":"2019-05-20T19:14:28","date_gmt":"2019-05-20T19:14:28","guid":{"rendered":"https:\/\/portasftpserver.com\/?p=893"},"modified":"2021-02-04T16:12:15","modified_gmt":"2021-02-05T00:12:15","slug":"asp-net-core-vue-js-starter-with-trilon","status":"publish","type":"post","link":"https:\/\/portasftpserver.com\/asp-net-core-vue-js-starter-with-trilon\/","title":{"rendered":"ASP.NET Core &#038; Vue.js Starter with Trilon + Dapper Micro ORM"},"content":{"rendered":"\n<div class=\"sera-block-image\"><figure class=\"aligncenter is-resized\"><a href=\"https:\/\/portasftpserver.com\/harry\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/me-150x150.png\" alt=\"\" class=\"sera-image-799\" width=\"169\" height=\"169\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/me-150x150.png 150w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/me-300x300.png 300w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/me-100x100.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/me-50x50.png 50w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/me.png 450w\" sizes=\"auto, (max-width: 169px) 100vw, 169px\" \/><\/a><figcaption><br><\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"sera-block-paragraph\">Hello, my name is Harry. I created this sample on how to get started with C# <strong><span style=\"text-decoration: underline;\">Asp.net Core<\/span><\/strong><span style=\"text-decoration: underline;\"> + <\/span><strong><span style=\"text-decoration: underline;\">Vue<\/span><\/strong>. <strong>Vue <\/strong>is kind of new and lack of support with <span style=\"text-decoration: underline;\"><strong>Asp.net Core<\/strong><\/span> in the meantime. Using the <strong class=\"\"><g class=\"gr_ gr_8 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar only-ins replaceWithoutSep\" id=\"8\" data-gr-id=\"8\">Trilon<\/g><\/strong><strong> <\/strong>template makes easy for us. Please follow the simple steps and let me know how you like it. \ud83d\ude42 Happy coding.<\/p>\n\n\n\n<h2 class=\"sera-block-heading\">Let&#8217;s get started<\/h2>\n\n\n\n<pre class=\"sera-block-preformatted\">\/\/ Make a directory where you want the project\nmkdir my-vue-starter &amp;&amp; cd my-vue-starter\n\n\/\/ Download the dotnet template\ndotnet new -i aspnetcore-vuejs\n\n\/\/ Run and install the template\ndotnet new vuejs\n\n\/\/ Make sure you install the dependencies\nnpm install<\/pre>\n\n\n\n<h4 class=\"sera-block-heading\">You should get like this<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"498\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-3-1200x498.png\" alt=\"\" class=\"sera-image-900\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-3-1200x498.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-3-600x249.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-3-585x243.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-3-768x319.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-3-100x42.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-3.png 1859w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h2 class=\"sera-block-heading\">Let&#8217;s make some HTTP Get Request<\/h2>\n\n\n\n<p class=\"sera-block-paragraph\"> Create database &#8220;<strong>vuecore <\/strong>&#8220;, table  &#8221; <strong>tblPersons<\/strong>&#8221; and stored procedure &#8220;<strong>getPersons<\/strong>&#8220;<\/p>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"493\" height=\"141\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/table-types.png\" alt=\"\" class=\"sera-image-911\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/table-types.png 493w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/table-types-100x29.png 100w\" sizes=\"auto, (max-width: 493px) 100vw, 493px\" \/><\/figure>\n\n\n\n<p class=\"sera-block-paragraph\">\nInsert  Some Records\n\n<\/p>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"213\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-5-1200x213.png\" alt=\"\" class=\"sera-image-928\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-5-1200x213.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-5-600x107.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-5-585x104.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-5-768x136.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-5-100x18.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-5.png 1267w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<pre class=\"sera-block-preformatted\">--Snippet\nUSE [vuecore]\n GO\n INSERT INTO [dbo].[tblPersons] ([Name] ,[Address]) VALUES ('John', 'USA')\n INSERT INTO [dbo].[tblPersons] ([Name] ,[Address]) VALUES ('Smith', 'Philippines')\n INSERT INTO [dbo].[tblPersons] ([Name] ,[Address]) VALUES ('Jackie', 'China')\n GO<\/pre>\n\n\n\n<h2 class=\"sera-block-heading\">Create Stored Procedure<\/h2>\n\n\n\n<pre class=\"sera-block-preformatted\">CREATE PROCEDURE getPersons @Id int = null --Optional\n AS\n IF @Id &lt;&gt; ''\n BEGIN\n   SELECT * FROM tblPersons WHERE Id = @Id \n END\n ELSE\n BEGIN\n      SELECT * FROM tblPersons\n END\n GO<\/pre>\n\n\n\n<h2 class=\"sera-block-heading\">Setting Our API<\/h2>\n\n\n\n<h4 class=\"sera-block-heading\">Creating &#8220;ConnectionStrings&#8221; in appsettings.json<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"136\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-13-1200x136.png\" alt=\"\" class=\"sera-image-965\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-13-1200x136.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-13-600x68.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-13-585x66.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-13-768x87.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-13-100x11.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-13.png 1716w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<pre class=\"sera-block-preformatted\">{\n   \"ConnectionStrings\": {\n     \"DefaultConnection\": \"Server=(localdb)\\mssqllocaldb;Database=vuecore;Trusted_Connection=True;MultipleActiveResultSets=true\"\n   }\n   }<\/pre>\n\n\n\n<h4 class=\"sera-block-heading\"><g class=\"gr_ gr_5 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace\" id=\"5\" data-gr-id=\"5\">Creating<\/g> &#8220;Persons&#8221; Model<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"225\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-12-1200x225.png\" alt=\"\" class=\"sera-image-963\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-12-1200x225.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-12-600x112.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-12-585x109.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-12-768x144.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-12-100x19.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-12.png 1812w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<pre class=\"sera-block-preformatted\">using System.ComponentModel.DataAnnotations;\n namespace my_vue_starter.Models\n {\n     public class Persons\n {\n     [Key]\n     public int Id { get; set; }\n     public string Name { get; set; }\n     public string Address { get; set; }\n <code>}<\/code>\n }<\/pre>\n\n\n\n<h4 class=\"sera-block-heading\">Install DAPPER using NPM<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"314\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-10-1200x314.png\" alt=\"\" class=\"sera-image-958\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-10-1200x314.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-10-600x157.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-10-585x153.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-10-768x201.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-10-100x26.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-10.png 1600w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h4 class=\"sera-block-heading\">Creating &#8220;PersonsDataProvider&#8221;<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"485\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-20-1200x485.png\" alt=\"\" class=\"sera-image-1015\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-20-1200x485.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-20-600x243.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-20-585x237.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-20-768x311.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-20-100x40.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-20.png 1755w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<pre class=\"sera-block-preformatted\">using Dapper;\n using Microsoft.Extensions.Configuration;\n using my_vue_starter.Interfaces;\n using my_vue_starter.Models;\n using System.Collections.Generic;\n using System.Data;\n using System.Data.SqlClient;\n using System.Threading.Tasks;\n namespace my_vue_starter.DataProviders\n {\n     public class PersonsDataProvider : IPersons\n     {\n         private readonly string connectionString;\n         public PersonsDataProvider(IConfiguration configuration)\n         {\n             this.connectionString = configuration.GetConnectionString(\"DefaultConnection\");\n         }\n         public async Task&lt;IEnumerable&lt;Persons&gt;&gt; GetPersons(int Id)\n         {\n             using (var sqlConnection = new SqlConnection(connectionString))\n             {\n                 await sqlConnection.OpenAsync();\n                 var dynamicParameters = new DynamicParameters();\n                 dynamicParameters.Add(\"@id\",Id);\n                 return await sqlConnection.QueryAsync(\n                     \"getPersons\",\n                     dynamicParameters,\n                     commandType: CommandType.StoredProcedure);\n             }\n         }\n     }\n }<\/pre>\n\n\n\n<h4 class=\"sera-block-heading\">Creating &#8220;IPersons&#8221; Interface<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"221\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-14-1200x221.png\" alt=\"\" class=\"sera-image-970\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-14-1200x221.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-14-600x110.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-14-585x108.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-14-768x141.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-14-100x18.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-14.png 1804w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<pre class=\"sera-block-preformatted\">using my_vue_starter.Models;\n using System.Collections.Generic;\n using System.Threading.Tasks;\n namespace my_vue_starter.Interfaces\n {\n     public interface IPersons\n {\n          Task&lt;IEnumerable&lt;Persons&gt;&gt; GetPersons(int Id);\n     }\n }<\/pre>\n\n\n\n<h4 class=\"sera-block-heading\">Registering to Startup (Configuration)<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"52\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-15-1200x52.png\" alt=\"\" class=\"sera-image-972\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-15-1200x52.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-15-600x26.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-15-585x25.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-15-768x33.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-15-100x4.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-15.png 1772w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<pre class=\"sera-block-preformatted\">services.AddTransient&lt;IPersons, PersonsDataProvider&gt;();<\/pre>\n\n\n\n<h4 class=\"sera-block-heading\">Creating &#8220;PersonsController&#8221;<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"424\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-11-1200x424.png\" alt=\"\" class=\"sera-image-961\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-11-1200x424.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-11-600x212.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-11-585x207.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-11-768x271.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-11-100x35.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-11.png 1824w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<pre class=\"sera-block-preformatted\"> using System.Collections.Generic;\n using System.Threading.Tasks;\n using Microsoft.AspNetCore.Mvc;\n using my_vue_starter.Interfaces;\n using my_vue_starter.Models;\n namespace my_vue_starter.Controllers\n {\n <code> [Route(\"api\/[controller]\")]<\/code>\n<code>   public class PersonsController : Controller<\/code>\n   <code> {     <\/code>\n    <code>private readonly IPersons _persons; <\/code>\n<code>    public PersonsController(IPersons persons) <\/code>\n<code>    { <\/code>\n<code>        this._persons = persons;     <\/code>\n    <code>}    <\/code>\n   <code> public async Task&lt;IEnumerable&lt;Persons&gt;&gt; GetPerson(int Id)    <\/code>\n<code>    {         <\/code>\n        <code>return await this._persons.GetPersons(Id);    <\/code>\n<code>    }<\/code>\n<code>  }<\/code>\n }<\/pre>\n\n\n\n<h2 class=\"sera-block-heading\">Test with Postman<\/h2>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"594\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-16-1200x594.png\" alt=\"\" class=\"sera-image-975\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-16-1200x594.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-16-600x297.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-16-585x290.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-16-768x380.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-16-100x50.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-16.png 1436w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h4 class=\"sera-block-heading\">Get Person with &#8220;Id&#8221;<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"458\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-17-1200x458.png\" alt=\"\" class=\"sera-image-977\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-17-1200x458.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-17-600x229.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-17-585x223.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-17-768x293.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-17-100x38.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-17.png 1428w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h2 class=\"sera-block-heading\">Configure ClientApp<\/h2>\n\n\n\n<h4 class=\"sera-block-heading\"> Registering our routes <\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"323\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-7-1200x323.png\" alt=\"\" class=\"sera-image-938\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-7-1200x323.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-7-600x162.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-7-585x158.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-7-768x207.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-7-100x27.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-7.png 1752w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<pre class=\"sera-block-preformatted\">import GetData from 'components\/get-data'\n\n{ name: 'get-data', path: '\/api\/Persons', component: GetData, display: 'Get Data', icon: 'list' }<\/pre>\n\n\n\n<h4 class=\"sera-block-heading\">Adding &#8220;get-data.vue&#8221; component<\/h4>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1106\" height=\"706\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-9.png\" alt=\"\" class=\"sera-image-954\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-9.png 1106w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-9-600x383.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-9-585x373.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-9-768x490.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-9-100x64.png 100w\" sizes=\"auto, (max-width: 1106px) 100vw, 1106px\" \/><\/figure>\n\n\n\n<h4 class=\"sera-block-heading\"><a href=\"https:\/\/github.com\/hactivish\/Asp.netCoreAndVueTrilon\/blob\/master\/ClientApp\/components\/get-data.vue\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Link to component  get-data.vue<\/a><\/h4>\n\n\n\n<div class=\"sera-block-button\"><a class=\"sera-block-button__link\" href=\"https:\/\/github.com\/hactivish\/Asp.netCoreAndVueTrilon\/blob\/master\/ClientApp\/components\/get-data.vue\">Download Template<\/a><\/div>\n\n\n\n<h2 class=\"sera-block-heading\">Final results<\/h2>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"453\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-18-1200x453.png\" alt=\"\" class=\"sera-image-979\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-18-1200x453.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-18-600x227.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-18-585x221.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-18-768x290.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-18-100x38.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-18.png 1645w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<figure class=\"sera-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"455\" src=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-19-1200x455.png\" alt=\"\" class=\"sera-image-980\" srcset=\"https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-19-1200x455.png 1200w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-19-600x227.png 600w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-19-585x222.png 585w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-19-768x291.png 768w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-19-100x38.png 100w, https:\/\/portasftpserver.com\/sera-uploads\/2019\/05\/Capture-19.png 1630w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h2 class=\"sera-block-heading\">Download the code in <a href=\"https:\/\/github.com\/hactivish\/Asp.netCoreAndVueTrilon\">GitHub<\/a><\/h2>\n\n\n\n<div class=\"sera-block-button\"><a class=\"sera-block-button__link\" href=\"https:\/\/github.com\/hactivish\/Asp.netCoreAndVueTrilon\">Get me there<\/a><\/div>\n\n\n\n<p class=\"has-large-font-size sera-block-paragraph\"><strong>BIG CREDIT T<\/strong>O <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/TrilonIO\/aspnetcore-Vue-starter\" target=\"_blank\">TRILON<\/a><\/p>\n\n\n\n<p class=\"sera-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello, my name is Harry. I created this sample on how to get started with C# Asp.net Core + Vue. Vue is kind of new and lack of support with Asp.net Core in the meantime. Using the Trilon template makes easy for us. Please follow the simple steps and let me know how you like [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1682,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[92,93,94],"class_list":["post-893","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming-software","tag-asp-net-core-and-vuejs","tag-asp-net-core-with-dapper","tag-trilon-asp-net-core-and-vuejs"],"_links":{"self":[{"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/posts\/893","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/comments?post=893"}],"version-history":[{"count":0,"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/posts\/893\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/media\/1682"}],"wp:attachment":[{"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/media?parent=893"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/categories?post=893"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/portasftpserver.com\/sera-json\/wp\/v2\/tags?post=893"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}