(Free) ASP.NET Banner Management, anyone ?
26 May 08 05:20 AM | danni | with no comments

Naaah sebenarnya ga murni ASP.NET karena aplikasi untuk banner  managementnya pake produk tetangga yg gratis, yap, gratis dan featurenya pun mayan lengkap. Untuk platform ASP.NET sendiri sebetulnya ada beberapa produk untuk banner management, yaitu admentor, Ban Man Pro dll. Dari sisi fungsionalitas tentu ok, secara mereka produk komersial :D dan dibandrol dari harga $200 keatas kalo g salah. Untuk versi gratisnya lom nemu kecuali kalo mo bikin sendiri ahahhaay ...

Jika anda sedang mengembangkan website personal, ato website komersil dengan budget pas-pasan, aplikasi ini bisa menjadi alternatif terbaik untuk banner management dan bisa menjadi pembuktian juga kalaupun mereka ada dalam 2 platform yang berbeda tapi masi bisa akur :p ...

OpenX (was OpenAds)

Yup, ini nama aplikasinya, bisa anda dapatkan di www.openx.org, aplikasi ini dibuat menggunakan PHP dan MySQL. Untuk detail instalasi dan penggunaan anda bisa explore lebih jauh di websitenya. Versi yang digunakan saat artikel ini ditulis adalah v 2.4.6. Selain OpenX ada banyak program lainnya cuman yg terbaik sejauh ini (menurut aku) ya OpenX ini.

Coba tengok situs lokal dan perhatikan bagaimana mereka menangani banner di situs mereka. Beberapa masih ada yang hanya menampilkan gambar dan ketika klik banner tersebut akan membuka link website advertisernya -- standar si, hanya saja tanpa memberikan informasi/statistik kepada advertisernya berapa jumlah klik yg didapat dari banner yg terpasang, impression dan lain sebagainya rasa2 nya ada yg kurang :p ... nah, inilah yg salah satunya sudah ditangani oleh OpenX ini.

Banner Management = ASP.NET Website + OpenX

Gag sulit menggabungkan keduanya, asal server anda bisa menjalankan PHP dan MySQL (kebanyakan windows hosting sekarang sudah bisa menjalankan keduanya, ASP.NET dan PHP, ato jika anda mengelola server Windows sendiri dan berniat menambahkan fitur PHP dan MySQL kedalam IIS, Anda bisa mencoba petunjuknya disini.)

Alternatif lain, semisal tempat hostingnya ga support PHP, ga masalah jika OpenX ini diinstall di website/server yg berbeda.

Struktur Folder

MyASPNETWebSite
---bin
---images
---banner

Jika ASP.NET dan PHP ada dalam satu server, idealnya dibuat menggunakan struktur folder diatas. Folder "MyASPNETWebSite" adalah folder dimana aplikasi ASP.NET kita disimpan dan sub folder "banner" adalah folder dimana kita menyimpan aplikasi OpenX. Dan mungkin ada baiknya juga kalo PHP hanya diaktifkan di folder banner saja.

Instalasi

Upload aplikasi OpenX ke folder banner dan lakukan konfigurasi (dengan mengunjungi http://URL_ANDA/banner). Pada akhir instalasi anda akan ditawari untuk menginstall sample data, iya kan saja -- untuk keperluan eksplorasi, toh nanti bisa dihapus sendiri.

Snap2

The Key : Invocation Code

Snap1

Sampai tahap ini, Anda sudah bisa menyerahkan manajemen banner kepada OpenX. Agar banner tersebut dapat dijalankan dari halaman ASP.NET kita, maka dibutuhkan invocation code. Ada beberapa invocation code yg disupport oleh OpenX: image, javascript, xml-rpc, iframe tapi untuk kasus ini kita bisa menggunakan javascript invocation ato image invocation. Caranya cukup sederhana, copy & paste saja invocation code nya ke halaman ASP.NET kita, beres sudah. Banner akan tampil dan ketika halaman di render ato banner di klik, secara otomatis, OpenX akan melakukan pencatatan/logging dan URL dari situs yg diiklankan akan dibuka.

snap3

Selanjutnya sang advertiser (yang sudah kita set sebelumnya), bisa login dan melihat laporan/statistik dari banner yang dia pasang. Canggih kan ?

Hail to OSS heuueheuhue

Share this post: | | | |
Project Otak - Cover design #1
10 March 08 04:59 AM | danni | 4 comment(s)

Nyambung dari requestnya PM project otak, idenya aku si nerusin konsep yg dulu, karena yg dah jalan toh ga sesuai ma yang dulu diharapkan :p ...

konsep yg doeloe itu harusnya tiap ebook dikasi identitas unik dgn menggunakan tempat/situs di indonesia, misal borobudur, monas, pura besakih, gn tangkuban perahu gitu2 deh jadi kan di tiap edisi tjap indo nya selalu ada (biar sekalian promosi juga).

umm buat contoh si liat aja bukunya oreilly yg pake binatang, ato wrox yg pake foto penulis dgn cover merah, itu kan konsisten & liat covernya aja org pasti ngeh itu bukunya o'reilly ato wrox.

nah yg kemaren di pake justru fotonya itu2 aja heheheh .. perkara foto (yg idealnya harus ori) bisa minta sumbangsih anak indc, cabeijo ato mugi yg kebetulan punya foto koleksi diatas ato yg kebetulan hobi fotografi pasti punya stocknya :D

Sebagai contoh ni aku attach, contoh covernya (fotonya aku dapet dari flickr).

So, kalo ada yg punya stock foto spt diatas bisa kontak aku ato mas agus deh.

 

 

 

Share this post: | | | |
Filed under: ,
Ngedit CSS ? CSSVista - comes to rescue
21 September 07 11:47 AM | danni | 2 comment(s)

umm ..ngedit theme di Community Server daku biasa pake notepad++ and preview pake browser ? cuman ya itu : edit - refresh .. edit - refresh .. mending di 1 browser kalo ditesnya di beberapa browser ? heuheuehue .. tapi mayan si kalo buat ngabuburit :p

hohoho ... lupain cara diatas sekarang bisa pake CSSVista !! program all in one & FREE buat edit & bisa preview sekaligus di ie & firefox :D


Share this post: | | | |
Filed under: ,
Unloading dynamically-loaded assembly
06 September 07 04:48 AM | danni | 2 comment(s)

I've come to a case, where, in my application, i need to load the assembly dynamically. Its not a big deal in .net as we can use reflection, adrian have post about this.

Okay, loading the assembly would be a simple task but how about unloading the dynamically-loaded assembly ? it's not that easy, to unload such assembly you need to close its AppDomain, means if they're in one application you need to close the app itself.

If you're confuse about the difference between AppDomain and Application, please read these article :

Some say, we can load each assembly to diferent AppDomain & to unload them just shutdown its AppDomain. Make sense , but later just make things complicated (at least for me). -- better read this blogpost for the details Why isn't there an Assembly.Unload method?.

When my app running, initially it will consume about 20 Megs, loading several assembly ... and now its 80 Megs, can you imagine if the application running all day long, loading assembly without no-clue how to unload them ? by the end of day, i think it will consume hundreds of megs or probably freeze the PC ?

Until i found this magical thing :p ...

Current state, the application consume about 80 Megs and i minimize the application window, turns out the app now consume ONLY 7K !!! WHAT THE ...

I have no technical explanation but maybe thats the beauty of the managed code, you know, better memory management ?

The solution would be simple then, i check the application idleness and if certain interval reach, e.g idle for 15 min, the application will be automatically minimized :D

What do you think ?

Share this post: | | | |
Filed under:
SandCastle+DocProject=CHMv1+RUNTIME_ERROR
06 September 07 04:45 AM | danni | with no comments

Anda mungkin sudah membaca tentang SandCastle (gimana ga, tiap buka IDE Visual Studio pasti nongol di newsnya start menu ^^...). Overall, Sandcastle ini adalah complier document untuk managed class library & dipake internal di microsoft buat bikin dokumentasi net framework, visual studio 2005 & 2008 BETA ? tetapi sekarang aplikasi ini sudah tersedia untuk umum. Sandcastle sendiri sebetulnya berupa commandline utility, contoh penggunannya bisa dilihat link ini : http://blogs.msdn.com/sandcastle/archive/2006/07/29/Creating-a-Chm-build-using-Sandcastle.aspx

Nah, kalo ngerasa ribet dengan command line utils buat compile dokumentasi diatas, alternatifnya bisa menggunakan DocProject, karena ..

1. Highly integrated withn Visual Studio IDE (2005 & 2008 BETA)
2. Ada beberapa template buat UI nya (template untuk VS2005 tetep paling lucu .. )
3. Bisa menghasilkan output dalam bentuk Compiled HTML v1 ato v2
4. Kustomisasi UI
5. Lebih banyak feature bisa dibaca di websitenya deh .. :p

Buat bikin output dalam CHM v2 belum aku coba, sementara cukup menggunakan CHM v1. Proses kompilasi (dalam IDE Visual Studio) berjalan lancar tapi pada akhir proses *selalu* muncul error seperti dibawah ..


Sebetulnya g fatal, pada kasus diatas HTML Help compiler mencoba mengkompilasi file binary --bingung dia heuheuhu, solusi untuk masalah ini mudah saja : pada folder project DocProject anda, buka file [NamaProject].HHP dengan HTMLHelp Workshop, klik tombol Add/Remove Topic Files (kedua dari atas di panel sebelah kiri), HAPUS semua reference KECUALI reff ke HTML.


Recompile project (masih dalam HTMLHelp Workshop) .. and you're done :)

Share this post: | | | |
36,374,400 seconds from the last post ..
06 September 07 04:36 AM | danni | with no comments

gee where i've been  these days Stick out tongue ?

Share this post: | | | |
Filed under:
DocsDiag.NET
11 July 06 11:58 PM | danni | with no comments

For those using cable modem as their broadband internet connection maybe you're familiar with this tool : Docsdiag. With this application you can check the signal quality of your internet connection from your home to your ISP. Sure the cable modem has built-in feature to display the information from its web interface but this program has more feature & advantages which is not discussed here.

 
Original DocsDiag

By the way, if you check the URL above, you'll find out that application itself is written using Java and so the story begin :) ... couple months ago I had this "homework" to run the Docsdiag on PDA using Pocket PC 2003. First time I thought ? okay, this supposed to be easy since I often heard that java has "write once run everywhere" jargon, and that, of course, as long as you have the right VM, especially for Pocket PC.

Find the right VM

I've download and tested several VM from IBM, Jeode, etc, etc. The conclusion is : Jeode is the best from all, the program can run just as I expected with minor alteration. But still, it has several limitations, eg : there's no scrollbars available for the output window, and the most important is I can't (find a way to) save the output to text file !

VS.NET comes to rescue :)

After lots of snacks, finally this idea cross my mind : yeah, why not create your own docsdiag application using Visual Studio.NET, since its support the smart devices. FYI, docsdiag itself is not a complicated application, it's just take values from cable modem via SNMP. So, I create a test application using Windows application, and yes, using WMI (Windows Management Instrumentation) we can read the SNMP value from any devices but unfortunately (by the time I wrote the program) the namespace (system.Management) is not available neither in .net compact framework or OpenNETCF.

Praise the IPWorks

Looking for the alternate way means find the right 3rd party controls heuheueu, finally the search is over and I stuck with this control from IPWorks, with this control finally you can get all the fun networking stuff, such as SNMP, ping, pop3, smtp, ftp, etc. And fear nothing, because there's a trial version available for you to test.

The output

Voila ! .... Snacks+NET+DOCSIS Spec =

 
My DocsDiag.NET

Conclusion

Well, in my case, the coding part is quite easy but the hardest part would be reading the RFC for the DOCSIS spec .. yay !

So moral of the story is ... always put some snacks in case you get stuck ^_^v

Share this post: | | | |
Kirim Email
28 January 06 11:34 PM | danni | with no comments

Untuk mengirim email di vs 2005 sama mudahnya dengan versi sebelumnya, hanya saja di net 2.0 menggunakan namespace system.net.mail (sebelumnya system.web.mail) dan beberapa perintah sudah obsolete (g bisa dipake lagi). Ok, langsung ke kodenya :

Dim MySMTP As New System.Net.Mail.SmtpClient
Dim MyMessage As New System.Net.Mail.MailMessage

‘ SMTP server
MySMTP.Host 
"192.168.0.3"
‘ Port yang digunakan
MySMTP.Port 
25

‘ Nama dan Email pengirin
Dim Sender As New System.Net.Mail.MailAddress("source@domain.com""Source")

MyMessage.From 
Sender
MyMessage.
To.Add("target@domain.com")
MyMessage.CC.Add(
"2ndtarget@domain.com")
MyMessage.Subject 
"This should be the subject"
MyMessage.IsBodyHtml = False
MyMessage.Body "There she goes ..."
MySMTP.Send(MyMessage)

Autentikasi

Karena kebanyakan SMTP server sekarang ini mengharuskan kita untuk melakukan proses autentikasi terlebih dahulu (biasanya karena alasan keamanan atau mengindari SMTP server tsb digunakan pihak lain misalnya untuk ngirim SPAM...), dengan memberikan informasi username dan password. Informasi tersebut dapat diisi melalui koding (dengan menambahkan baris berikut) :

Dim SMTPLogin As New System.Net.NetworkCredential("sender@domain.com""myPassword")
MySMTP.UseDefaultCredentials 
= False
MySMTP.Credentials SMTPLogin

Ataupun bisa juga informasi tersebut disimpan di web.config, melalui ASP.NET Configuration Manager ataupun secara manual dengan menambahkan baris berikut ini dibawah :

...
...
<system.net>
<mailSettings>
<smtp from="source@domain.com">
<network host="192.168.0.3" userName="source@domain.com" password="mypassword" />
</smtp>
</mailSettings>
...
...

Untuk informasi lebih lanjut, seperti menambahkan attachment, mengirim email dalam format HTML dan lain sebagainya, anda bisa kunjungi situs www.systemnetmail.com.

Share this post: | | | |
Filed under: ,
Basic Date Picker
24 December 05 09:57 PM | danni | 3 comment(s)

Jika untuk mengisi tanggal pada aplikasi ASP.NET anda masih menggunakan textbox ataupun textbox yang dikombinasikan dengan javascript untuk menampilkan kalendar dalam window popup, anda perlu mencoba tool ini : Basic Date Picker. Fungsinya lebih kurang sama dengan kontrol DateTimePicker pada WinForm, jadi untuk menampilkan tanggal gag perlu pusing lagi, apalagi kontrol ini hampir bisa jalan disemua browser. Download versi lite yang dapat digunakan gratis (dengan beberapa limitasi)

BDP in Action
Share this post: | | | |
Logo INDC @Firefox & Opera
22 December 05 11:25 PM | danni | 1 comment(s)
Baca blognya said di http://blogs.netindonesia.net/sagiarsyad/archive/2005/12/20/8177.aspx, disana logo indc emang kliatan kegedean, aneh buat diliat :( ... & dicoba di opera 9 ternyata tampilannya sama aja. Mungkin ukuran logonya kegedean, btw, buat benerin tampilannya, bisa ukuran logonya dikecilin ato edit file login.aspx & cari baris yang ada DIV#Main { .... trus tambahin ";width:250px;" dibelakangnya. gmn ?
Share this post: | | | |
Filed under:
Instal Quickstart Sample (w/o SQL Express)
22 December 05 11:21 PM | danni | 1 comment(s)

Kayaknya rugi kalo ga install .NET 2 SDK and quickstart sample-nya, masalahnya ada banyak contoh yang bagus 2x disana. Buat instalasinya cukup jalanin ConfigSamples.exe dari folder SDK, in my case :

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Samples\Setup\ConfigSamples.exe

Tapii kayaknya gag masalah kalo di komputer pake SQL Express, tapi kalo pake SQL Server 2005 pasti ada bagian dimana kita diminta buat download & install SQL Express .. Nah, buat skip proses itu & install quickstart database ke default instance dari SQL 2005, cukup jalanin :

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Samples\Setup\ConfigSamples.exe -sql_instance:.

Share this post: | | | |
Filed under: