Software developer who just learn to teach

Betul!!! Saya adalah Software Developer, dan dapat saya buktikan lewat untaian kode-kode yang telah saya tulis. Saat ini saya adalah seorang Software Developer yang belajar untuk dapat berbagi ilmu dengan orang lain. Saya belum berani menyebut diri sebagai pengajar apalagi dosen, karena saya belum melihat hasil dari proses bagi-bagi ilmu ini. Ilmu yang saya bagikan masih sangat sedikit, tetapi ini adalah proses. Semoga proses ini menghasilkan hal yang positif, bagi saya, teman-teman, almater dan bangsa.

You are not logged in - Login

ASP.NET 4.0 Web Form & URL Routing

Kesan pertama saat installasi adalah, kenceeeng…ngga sampai 3 putaran di meja Poker, proses installasi sudah kelar dilakukan. Eh ternyata setelah dicek baru kelar proses installasi .NET FX 4.0 Beta doang, setelah itu mesin melakukan restart dan proses installasi diteruskan.

image

Total space yang diperlukan bila dipilih opsi Full Install adalah 5,5 GB (kurang lebih), maka langkah paling paling cepat dan gampang untuk menguranginya adalah dengan menghilangkan centang pada checkbox Visual C++ dan space yang diperlukan akan segera turun sebesar 1,5GB.

image

Setelah proses intallasi selesai, maka terlebih dahulu langsung menjalakan VS2008. Loh? VS2008? Sekedar memastikan semua solusi dari semua project berjalan dengan aman, nyaman dan benar tanpa kurang suatu apapun. Hasilnya, aman…artinya memang benar VS2008 & VS2010 dapat saling berdampingan tanpa mengganggu.

Setelah menjalan VS2010 Ultimate, pertanya yang dilakukan adalah membuat Solution kemudian menambahkan 1 Web Project (ASP.NET Web Application) ke dalamnya, dan…

image

Secara otomatis VS2010 akan lebih memanjakan, lebih manja lagi dibandingkan yang dilakukan oleh VS2008. Karena seperti yang dilihat pada Solution Explorer di atas, telah dibuatkan MasterPage, script jQuery di dalam folder Script, css pada folder Styles, folder Account yang berisi halaman untuk untuk mengubah password, login dan register user. Serta telah dibuatkan konfigurasi membership, profile dan roleManager pada Web.config seperti berikut.

<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
         enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
         maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
         applicationName="/" />
  </providers>
</membership>

<profile>
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
  </providers>
</profile>

<roleManager enabled="false">
  <providers>
    <clear/>
    <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
  </providers>
</roleManager>

Dengan melakukan ‘View in Browser’ maka segera kita melihat antarmuka berikut ini.

image

Format seperti di atas tidak hanya akan diberikan oleh VS2010 bila menggunakan template project Web Application tetapi juga ketika digunakan template Web Site.

Web.config pada ASP.NET 4 ini juga terlihat lebih ramping dan singkat, seperti yang telah ditulis oleh Ahmad Masykur di sini.

{Web Form & URL Routing}

Hal baru lainnya adalah kemampuan Web Form menggunakan URL Routing yang lebih mudah seperti layaknya ASP.NET MVC.

Seperti halnya ASP.NET MVC, kita dapat ‘mendaftarkan’ mapping antara nama URL ‘bohongan’ dengan nama file fisik yang akan diakses oleh url tersebut.  Kita dapat menambahkan method seperti di bawah ini pada Global.asax.cs (pada Web Application).

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Web;
   5: using System.Web.Security;
   6: using System.Web.SessionState;
   7:  
   8: namespace WebApplication1
   9: {
  10:     public class Global : System.Web.HttpApplication
  11:     {
  12:         void RegisterRoutes(System.Web.Routing.RouteCollection routes)
  13:         {
  14:             routes.MapPageRoute("about", "AboutMe", "~/About.aspx");
  15:  
  16:         }
  17:  
  18:         void Application_Start(object sender, EventArgs e)
  19:         {
  20:             // Code that runs on application startup
  21:             RegisterRoutes(System.Web.Routing.RouteTable.Routes);
  22:         }
  23:     }
  24: }

Dapat dilihat pada baris 13, adalah cara untuk untuk mendaftarkan routing. Terdapat 3 parameter yang diisikan,

  • parameter pertama berisi nilai “about”, yang menjadi nama dari routing ini.
  • parameter kedua adalah URL ‘bohongan’ yang nanti akan dipanggil pada address bar untuk memanggil file About.aspx.
  • parameter ketiga adalah nama file fisik yang ingin di akses.

image

Kita juga dapat mengkonfigurasi agar routing ini dapat mengirimkan parameter. Dibawah ini contoh pengganti baris ke 14 apabila ingin dimasukkan parameter ke dalam URL ‘bohongan’.

   1: void RegisterRoutes(System.Web.Routing.RouteCollection routes)
   2: {
   3:     routes.MapPageRoute("about", "AboutMe/", "~/About.aspx");
   4:     routes.MapPageRoute("about-param", "AboutMe/{nilai}", "~/About.aspx");
   5: }

 

 

Dengan contoh di atas kita dapat menuliskan seperti cara pada gambar di atas, atau dengan cara pada gambar di bawah ini :

image

Untuk menangkap nilai dari parameter tersebut dapat menggunakan contoh di bawah ini.

About.aspx

<%@ Page Title="About Us" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="About.aspx.cs" Inherits="WebApplication1.About" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> </asp:Content> <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <h2> About </h2> <p> Put content here.<br /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </p> </asp:Content>

 

About.aspx.cs

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Web;
   5: using System.Web.UI;
   6: using System.Web.UI.WebControls;
   7:  
   8: namespace WebApplication1
   9: {
  10:     public partial class About : System.Web.UI.Page
  11:     {
  12:         protected void Page_Load(object sender, EventArgs e)
  13:         {
  14:             string nilai = Page.RouteData.Values["nilai"] as string;
  15:  
  16:             Label1.Text = nilai;
  17:         }
  18:     }
  19: }

Pada file About.aspx.cs, di baris 14 dapat dilihat cara untuk mengambil nilai parameter yang ditulis pada address bar.

image

Note :

Cara di atas dilakukan pada template project Web Application dan berhasil, tetapi bila cara di atas dilakukan pada Web Site…hmm…gagal.

0 comment(s)