.NET Conf 2019

Pada tanggal 15 November 2019 telah dilangsungkan acara Seminar & Workshop .NET Conf yang bertempat di Gedung Perpustakaan Fakultas Teknik Universitas Gadjah Mada. Acara ini diselenggarakan oleh MIC UGM Yogyakarta.

NET Conf merupakan sebuah agenda tahunan yang diselenggarakan oleh komunitas developer .NET di seluruh dunia. Di Indonesia pada tahun ini, salah satunya di selenggarakan di kota Yogyakarta, lebih tepatnya di Perpustakaan Fakultas Teknik UGM pada 15 Oktober 2019. Acara ini diikuti oleh 42 peserta dengan latar belakang yang berbeda, seperti profesional dan mahasiswa dari beberapa universitas di Kota Yogyakarta. Kegiatan ini diisi oleh tiga pembicara, yakni Ridi Ferdiana – Microsoft MVP, Erick Kurniawan – Microsoft MVP, dan Nindi Kusuma Ningrum – Chief Project Officer dari OkeSayur. Para pembicara memberikan beberapa insight menarik bagi para peserta, seperti bagaimana meningkatkan produktivitas .NET dengan Visual Studio, DevOps for .NET Developer, Mengembangkan aplikasi Full-stack C# Web Apps dengan Blazor di .NET Core 3.0, Machine Learning for .NET, dan sebagainya.

Pada kesempatan ini saya membahas topik tentang apa yang baru pada Xamarin Forms dan Visual Studio 2019. Adapun topik yang dibahas pada seminar ini adalah:

  • Introduction to Xamarin Forms and Visual Studio 2019
  • Using Xamarin Shell
  • Xamarin Essentials
  • XAML Hot Reload
  • Xamarin Forms with ASP.NET Core Backend on Azure Apps
  • etc

3

6

6

Untuk materi dari seminar .NET Conf ini bisa didownload pada tautan berikut ini.

Video Tutorial ASP Core Part 1–Controller

Pada video tutorial kali ini dibahas cara untuk membuat project ASP Core baru. Tools yang digunakan adalah .NET Core SDK versi 2.2 dan Visual Studio Code.

Setelah membuat project akan dijelaskan cara menambahkan MVC library dan cara untuk membuat Controller.

Xamarin Forms with Prism–Master Page

Pada blog kali ini akan dibahas cara menggunakan Master Page dengan menggunakan Prism Framework.

Untuk membuat Master Page langkah pertama pada folder Views tambahkan Prism MasterDetailPage dengan nama PrismMasterDetailPage.

image

Kemudian pada PrismMasterDetailPage.xaml tambahkan kode xaml berikut ini:

<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
                  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                  xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
                  prism:ViewModelLocator.AutowireViewModel="True"
                  x:Class="ContohPrism.Views.PrismMasterDetailPage">

    <MasterDetailPage.Master>
        <ContentPage Title="Menu">
            <StackLayout Padding="20">
                <!-- TODO: // Update the Layout and add some real menu items  -->
                <Button Text="List Artikel" Command="{Binding NavigateCommand}" CommandParameter="PrismMasterDetailPage/NavigationPage/ListArtikelPage" />
                <Button Text="Calculator" Command="{Binding NavigateCommand}" CommandParameter="PrismMasterDetailPage/NavigationPage/CalculatorPage" />
            </StackLayout>
        </ContentPage>
    </MasterDetailPage.Master>
</MasterDetailPage>

Halaman ini adalah halaman utama dari master page yang akan berisi menu dan halaman detail yang akan ditampilkan.

Dua button yang ada di dalam stacklayout akan berisi menu navigasi ke halaman yang lain. Perhatikan bahwa untuk navigasi ke halaman lain digunakan alamat halaman yang lengkap yang terdiri dari {Nama master page}/NavigationPage/{nama halaman yang dituju}.

Kemudian pada file PrismMasterDetailPageViewModel.cs tambahkan kode berikut untuk menangani event handler ketika button navigasi pada menu dipilih.

	public class PrismMasterDetailPageViewModel : ViewModelBase
	{
        private INavigationService _navigationService;
        public PrismMasterDetailPageViewModel(INavigationService navigationService)
            : base(navigationService)
        {
            _navigationService = navigationService;
            NavigateCommand = new DelegateCommand<string>(NavigateAsync);
        }

        private async void NavigateAsync(string page)
        {
            await _navigationService.NavigateAsync(new Uri(page, UriKind.Relative));
        }

        public DelegateCommand<string> NavigateCommand { get; set; }

    }

Method NavigationAsync digunakan untuk navigasi menu ke url halaman yang diinginkan.

Pada file App.xaml.cs jangan lupa untuk mendaftarkan halaman master page dan halaman yang akan diakses dari master page.

        protected override async void OnInitialized()
        {
            InitializeComponent();
            await NavigationService.NavigateAsync("PrismMasterDetailPage/NavigationPage/CalculatorPage");
        }

        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            containerRegistry.RegisterForNavigation<NavigationPage>();
            containerRegistry.RegisterForNavigation<MainPage, MainPageViewModel>();
            containerRegistry.RegisterForNavigation<AboutPage, AboutPageViewModel>();
            containerRegistry.RegisterForNavigation<SampleDelegateCommandPage, SampleDelegateCommandPageViewModel>();
            containerRegistry.RegisterForNavigation<CalculatorPage, CalculatorPageViewModel>();
            containerRegistry.RegisterForNavigation<ListArtikelPage, ListArtikelPageViewModel>();
            containerRegistry.RegisterForNavigation<PrismMasterDetailPage, PrismMasterDetailPageViewModel>();
        }

Untuk melihat hasilnya jalankan aplikasi ini pada android emulator.

image

Menambahkan Master Detail Options

Interface master detail option dapat digunakan jika anda menghendaki navigation menu tidak otomatis tertutup ketika salah satu tombol navigasi dipilih. Untuk hal tersebut anda dapat merubah nilai properti IsPresentedAfterNavigation menjadi true.

    public partial class PrismMasterDetailPage : MasterDetailPage,IMasterDetailPageOptions
    {
        public PrismMasterDetailPage()
        {
            InitializeComponent();
        }

        public bool IsPresentedAfterNavigation
        {
            get { return true; }
        }
    }

Akses PostgreSQL Database pada Azure VM

Pada tutorial kali ini akan dibahas cara untuk mengakses database PostgreSQL yang dipasang pada Azure VM dengan sistem operasi Windows Server 2016.

Setelah database PostgreSQL terpasang pada Windows Server 2016, langkah selanjutnya adalah membuka port 5432 pada Azure VM dan pengaturan firewall pada Windows Server 2016.

Pada Azure VM masuk ke menu Networking, kemudian tambahkan pengaturan berikut pada inbound port role.

image

Setelah ditambahkan maka port 5432 sudah ada pada daftar port yang diijinkan untuk diakses

image

Kemudian masuk kedalam Windows Server 2016 pada Azure VM, dan akses menu Windows Firewall dan Advanced Sercurity, kemudian tambahkan juga port 5432.

Pada inbound role – New Role

image

image

image

image

Masukan nama kemudian tekan tombol Finish.

image

Langkah terakhir adalah mengakses file pg_hba yang ada pada folder C:\Program Files\PostgreSQL\11\data. Kemudian tambahkan pengaturan berikut pada akhir file

hostnossl    all          all            0.0.0.0/0  trust

image

Kemudian restart postgresql services, dan silahkan akses database server dari aplikasi pgadmin4. seharusnya anda sudah dapat mengakses database server tersebut.