CategoriesProgramming

Mengoptimalkan Pengembangan Web (Lanjutan): Mengaplikasikan Template ASP.NET + Bonus

Halo! Kembali lagi! Artikel ini adalah kelanjutan dari yang sebelumnya berjudul “Mengoptimalkan Pengembangan Web: Panduan Praktis Membuat Template ASP.NET.” Kalau kamu belum baca artikel sebelumnya, silakan klik link diatas, di sana kita akan belajar langkah pembuatan template ASP.NET supaya proses pengembangan web jadi lebih cepat dan seru! 😀

Kali ini, kita bakal bahas langkah-langkah untuk menerapkan template ASP.NET yang sudah kita buat. Salah satu cara yang bakal kita gunain adalah lewat NuGet Package, yang memudahkan kita untuk install template dengan mudah dan pake template itu buat proyek baru.

Continue reading
CategoriesProgramming

Mengoptimalkan Pengembangan Web: Panduan Praktis Membuat Template ASP.NET

Pernahkah kamu menghadapi masalah saat harus mengkonfigurasi ulang setiap kali membuat proyek baru dalam pengembangan web? Jika iya, jangan khawatir! Di artikel ini, kita akan menemukan solusi yang praktis dan efisien untuk mengatasi masalah tersebut. Kami akan membahas cara membuat template .NET yang telah terkonfigurasi sebelumnya, sehingga kamu tidak perlu lagi repot melakukan konfigurasi awal yang sama setiap kali memulai proyek baru.

Dalam artikel ini, kamu akan menemukan langkah-langkah yang mudah untuk membuat template .NET yang telah disesuaikan dengan konfigurasi umum yang biasa digunakan dalam pengembangan web. Template ini dirancang dengan mengimplementasikan clean architecture, sebuah pendekatan desain yang terkenal untuk membangun aplikasi yang terstruktur dan mudah dikelola.

Continue reading
CategoriesProgramming

Deploy ASP .Net Core ke Heroku

Heroku adalah layanan cloud yang memungkinkan developer untuk mendeploy, mengatur dan memonitor aplikasi tanpa mengurus kerumitan masalah infrastruktur. Heroku sangat cocok bagi developer atau startup yang ingin menguji produknya karena proses build & deploynya sangat mudah dan murah karena ada paket harga yang gratis (dengan limit tertentu).

Dengan segala kemudahan yang ditawarkan oleh Heroku, akan tetapi Bahasa pemrograman yang disupport tidak terlalu banyak. C# dan ASP .Net Core adalah salah satu yang tidak disupport. Namun tidak usah khawatir, karena Heroku juga memberikan opsi melalui third-party buildpack untuk mengatasi hal itu. Lalu gimana caranya kita sebagai developer .Net jika ingin menggunakan layanan dari Heroku? Berikut step-step nya:

  1. Daftar akun Heroku
  2. Create Project ASP .Net Core baru
  3. Build dan push project ke GitHub
  4. Create New App di Heroku Dashboard
Continue reading
CategoriesProgramming

Benchmark Code dengan BenchmarkDotNet

Saat ini performa system merupakan hal yang sangat penting dan perlu diperhatikan bagi para developer. Semakin baik performa suatu system tentu akan membuat pengguna semakin nyaman menggunakannya. Untuk itu developer seperti kita perlu untuk melakukan Benchmark Code.

Apa itu Benchmark?

Benchmark adalah metode/langkah untuk mengukur serangkaian kode yang ada dalam sebuah fungsi. Dengan melakukan benchmark, kita bisa membandingkan kinerja kode mana yang lebih baik sehingga dapat mengoptimalkan system kita.

Untuk melakukan Benchmark Code, kita akan menggunakan tools dari DotNet yaitu BenchmarkDotNet.

Langkah Benchmark Code

  1. Buat Project baru
  2. Install BenchmarkDotNet Nuget package
  3. Buat Benchmark class
  4. Buat BenchmarkRunner instance
  5. Jalankan aplikasi dalam release mode
Continue reading
CategoriesProgramming

Membuat Planner dengan Microsoft Graph API

Microsoft Graph adalah platform dari Microsoft yang menghubungkan banyak layanan dan perangkat yang sudah disediakan oleh Microsoft. Dengan menggunakan Microsoft Graph, pengembang dapat melakukan integrasi layanan dengan layanan – layanan yang ada di Microsoft 365. Misal dalam tulisan ini saya ingin menggunakan layanan Microsoft Planner untuk membuat Task menggunakan API sendiri.

Berikut adalah langkah – langkahnya:

Continue reading
CategoriesProgramming

Pemetaan obyek dengan AutoMapper pada ASP .Net Core 3.1

AutoMapper adalah object to object mapper yang memetakan obyek A menjadi obyek B yang memiliki properti dan tipe yang berbeda. Seperti contoh kita perlu melakukan pemetaan Data Transfer Object ke object model. AutoMapper memudahkan proses pemetaan konvensional yang harus memetakan secara manual satu per satu.

Untuk menggunakan AutoMapper pada ASP .Net Core 3.1 terlebih dahulu harus menginstal AutoMapper melalui NuGet atau command pada NuGet Package Manager seperti ini.

Continue reading
CategoriesProgramming

Menggunakan OData dengan ASP .Net Core API

OData Atau Open Data Protocol merupakan salah satu best practice untuk membangun atau menggunakan sebuah web api, OData sendiri dapat digunakan secara optional untuk membantu memanipulasi atau mengimplementasikan data secara khusus, kita dapat menggunakan query dalam protokol OData melalui endpointnya,  Odata dalam Asp .Net Sendiri dapat diakses secara optional misalkan data yang ada di web api endpoint default kita tidak akan diubah seluruhnya ke OData, sehingga data tersebut masih dapat diakses secara default. berikut merupakan langkah untuk konfigurasinya

Konfigurasi OData di ASP .Net Core 3.1

Pertama, Tambahkan “Microsoft.AspNetCore.OData” reference di NuGet Packages ke project kita

Buka file Startup.cs pada project kita,

Tambahkan “services.AddOData();” di dalam Method ConfigureServices untuk mengenalkan aplikasi kita tentang OData

 public void ConfigureServices(IServiceCollection services)
 {
     services.AddControllers();
     services.AddOData();
 }

jangan lupa untuk menambahkan reference pada file startup.cs juga

using Microsoft.AspNet.OData.Extensions;

Kemudian kita perlu menambahkan dependency Injection pada method Configure di file yang sama pada UseMvcnya, dan juga tambahkan funsi query -query yang akan kita gunakan untuk memanipulasi data kita nantinya.

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseMvc(routeBuilder =>
            {
                routeBuilder.EnableDependencyInjection();
                routeBuilder.Expand().Select().Filter().Count().OrderBy();
            });
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }

Hal yg perlu dilakukan selanjutnya adalah membuat route untuk mengakses ke format ODatanya sendiri sehingga data dalam endpoint kita masih bisa di akses dalam format default.

Buat method baru pada file startup.cs untuk menentukan Entity data model untuk ODatanya

IEdmModel GetEdmModel()
 {
     var odataBuilder = new ODataConventionModelBuilder();
     odataBuilder.EntitySet<BDFEntitlement>("IniPegawai");

return odataBuilder.GetEdmModel();
}

Tambahkan reference pada file startup.cs

using Microsoft.OData.Edm;
using Microsoft.AspNet.OData.Builder;

nb: dalam code diatas “BDFEntitlement” adalah model yang akan menjadi format result dari data kita, “IniPegawai” adalah web api controller kita. jadi kita dapat menambahkan Entityset seperlu kita.

Kemudian Kembali ke Method Configure untuk comment fungsi UseEndpointsnya karena kita akan menggunakan route dari ODatanya.

sama seperti alasan diatas, pada UseMvc kita perlu menambahkan

routeBuilder.MapODataServiceRoute("odata", "odata", GetEdmModel());

Kemudian karena kita menggunakan mvc di sini perlu untuk mendisable EndpointRoutingnya di method ConfigureServices pada service “AddController”, Rubah seperti dibawah ini.

services.AddControllers(mvcOptions => mvcOptions.EnableEndpointRouting = false);

Dengan ini konfigurasi di file startup.cs sudah selesai, dan dapat dilanjutkan ke webapi controllernya

langkah terakhir, hanya perlu menambahkan configurasi di setiap atas method controller yang akan kita gunakan dengan bersama OData seperti

// GET: api/IniPegawai
  [HttpGet]
  [EnableQuery()]
  public IEnumerable Get()
  {
      return _context.BDFEntitlement.AsNoTracking().ToList();
  }

Tambah reference pada controller Anda

using Microsoft.AspNet.OData;


Implementasi sederhana menggunakan OData

1. tanpa OData dengan endpoint

https://localhost:44383/api/inipegawai

2. Dengan OData dan mencoba querying pada endpoint nya

https://localhost:44383/odata/inipegawai?$Select=ProgramName,Remark,id&$filter=ProgramName eq 'Program Algostudio A'


Konklusi :

OData bisa berguna untuk membantu kita memanipulasi data sesuai yang kita butuhkan tanpa harus membuat endpoint lain, selain itu banyak query-query OData yang berguna misalkan expand yang memiliki fungsi untuk dapat menggabungkan lebih dari 1 data di endpoint berbeda dan banyak lainnya. mudahnya memanipulasi di data dari resultnya ini yang menurut Saya menjadikan Entity Framework yang menggunakan OData lebih fleksibel dari Entity Framework yang tidak menggunakan OData, untuk pembahasan lebih perbandingannya mungkin akan ada di artikel selanjutnya.

Terima kasih & Semoga artikel ini bermanfaat.

CategoriesProgramming

Menambah IdentityUser Property di Identity ASP.Net Core

Identity pada ASP.Net Core ada untuk memudahkan kita menambahkan user dan mengatur user management pada website. Bahkan Identity sudah bisa menghandle  TwoFactorAuthentication, ExternalLogins dll. Secara default, identity akan membuat user dengan bentuk model seperti berikut.

Bisa kita lihat IdentityUser hanya terdiri dari beberapa property dan tidak bisa kita ubah. Lalu bagaimana jika kita butuh untuk menambah property?

Continue reading