ASP.NET Universal Providers

image

Bukan!!! Itu Universal Soldier. Tentu tidak ada hubungannya dengan Universal Providers yang akan bahas pada posting ini.

Sebelum kita bicara tentang Universal Providers, kita mengingat dulu yang namanya SqlMembershipProvider atau SqlRoleProvider dan teman-teman-nya. Kedua hal tersebut sangat membantu sekali untuk mengelola role dan user, tanpa susah dan keringat. Tetapi tentu saja keduanya hanya “berlaku” jika kita menggunakan SQL Server atau SQL Server Express sebagai database-nya.  Jika menggunakan database lain seperit MySQL atau Oracle, kita harus “mengubah” provider tersebut agar juga “berlaku” dengan database yang digunakan.

Kemudian datanglah Universal Providers (sttt … jangan langsung mikir bisa digunakan untuk MySQL dan Oracle ya), yang support untuk digunakan pada Microsoft SQL Azure dan Microsoft SQL Server Compact.

Berikut adalah perbandingan antara Sql Providers dan Universal Providers :

image

Dengan berbekal perbandingan kedua hal di atas kita dapat mengetahui apakah suatu aplikasi web telah menggunakan Universal Providers atau belum.

Berikut ini akan dibuat masing-masing sebuah aplikasi web dengan menggunakan template Web Application dan Web Site pada Visual Studio 2012 yang telah diupdate dengan ASP.NET dan Web Tool 2012.2.

{Web Application}

image

Berikut telah dibuat sebuah project dengan menggunakan template ASP.NET Web Forms Application, dengan nama UniversalWebApplication.

image

Mari kita liat-liat isi Web.config untuk mengetahui apakah Universal Providers telah langsung digunakan atau belum.

   1: <connectionStrings>

   2:   <add name="DefaultConnection" 

   3:         providerName="System.Data.SqlClient" 

   4:         connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-UniversalWebApplication-20130305214720;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-UniversalWebApplication-20130305214720.mdf" />

   5: </connectionStrings>

Pada baris ke-4 dapat kita lihat database yang digunakan adalah menggunakan “engine” SQL Express.

   1: <profile defaultProvider="DefaultProfileProvider">

   2:   <providers>

   3:     <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />

   4:   </providers>

   5: </profile>

   6: <membership defaultProvider="DefaultMembershipProvider">

   7:   <providers>

   8:     <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />

   9:   </providers>

  10: </membership>

  11: <roleManager defaultProvider="DefaultRoleProvider">

  12:   <providers>

  13:     <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />

  14:   </providers>

  15: </roleManager>

Pada baris ke-3, ke-8 dan ke-13 dapat dilihat digunakan namespace System.Web.Providers, hal ini sangat cocok namespace-namespace Universal Providers yang telah disebutkan di atas. Untuk sementara kita bisa simpulkan project yang kita buat telah menggunakan Universal Providers.

Tetapi untuk lebih memastikan hal tersebut, kita bisa coba dengan menggunakan MS SQL Server Compact yang cirinya adalah file database yang digunakan ber-extension SDF. Maka kita cukup mengubah connection string menjadi berikut ini :

   1: <connectionStrings>

   2:   <add name="DefaultConnection" 

   3:        providerName="System.Data.SqlServerCe.4.0" 

   4:        connectionString="Data Source=|DataDirectory|\MyUniversalDB.sdf;" />

   5: </connectionStrings>

Dan setelah aplikasi dijalankan dan aksi untuk register user, maka dapat kita lihat file MyUniversalDB.sdf pada Solution Explorer.

image

{Web Site}

Selanjutnya kita coba untuk membuat aplikasi web dengan template ASP.NET Web Forms Site (web site).

image

Dari penglihatan yang ada pada Web.config, pada web site pun memiliki isi yang sama dalam hal penggunaan konfigurasi membership, role dan profile seperti halnya yang terlihat pada Web.config aplikasi sebelumnya yang dibuat dengan template Web Application. 

Setelah aplikasi web ini dijalankan dengan configurasi connectionString yang menggunakan database MS SQL Server Compact juga menghasilkan penampakan file SDF pada folder App_Data, persis seperti yang kita liat pada aplikasi sebelumnya.

image

{Kesimpulan}

Dengan Visual Studio 2012 dan Update ASP.NET and Web Tool 2012.2 maka kita telah dapat menikmati Universal Providers :)

Selamat menikmati.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.