2 Mayıs 2010 Pazar

Compiler Error Message BC30002 Type

DotNetNuke yazılımınızı  5.2 serisinden 5.3 veya 5.4 serisine yükseltmeye çalıştığınızda aşağıdaki gibi bir hata ile karşılaşabilirsiniz.

Line 32:         Implements System.Web.IHttpHandler
Line 33: 
Line 34:         Private Sub RenderToResponseStream(ByVal Response As Web.HttpResponse, ByVal controller As XmlController)
Line 35:             ' save script timeout
Line 36:             Dim scriptTimeOut As Integer = HttpContext.Current.Server.ScriptTimeout


Sisteminizde XML modülü yüklü ise bu sorunla karşılaşabilirsiniz. Çözüm için App_Code >> XML >> Handlers klasöründe yer alan download.vb isimli dosyayı silmeniz yeterli olacaktır. (İşlemi yapmadan önce yedek almayı unutmayın!)


DotNetNuke 5.4.1'de Telerik Rad Editor'u Etkinleştirmek

DotNetNuke 5.4.1 sürümü kullanıyorsanız, standart olarak paketin içinde yer alan bir sürprizden yararlanmak isteyebilirsiniz. Telerik RAD Editor'den bahsediyorum tabii ki. Telerik Rad Editor daha önceki yazılarımda da belirttiğim gibi varsayılan içerik düzenleme bileşeni olan FCK'nın alternatifi olarak kullanabileceğiniz ve çok daha iyi menülere ve özelliklere sahip bir yazılım.

DotNetNuke 5.4.1 sürümünde Telerik RAD Editor'u etkinleştirmek isterseniz, web.config dosyasında aşağıdaki satırı bulun.
<htmlEditor defaultProvider="FckHtmlEditorProvider">

Daha sonra bulduğunuz satırı aşağıdaki satır ile değiştirin.

<htmlEditor defaultProvider="TelerikEditorProvider">

Web.config dosyasını kaydedin ve Telerik Rad Editor'u kullanmaya başlayın :)


30 Nisan 2010 Cuma

DotNetNuke 5.4.1 Sürümü Duyuruldu

Açık kaynaklı içerik yönetim sistemi yazılımı DotNetNuke 5.4.1 sürümü ile karşımızda. Yeni sürümde Net Framework 4.0 desteği ile birlikte gelen yeni özelliklerde yapılan iyileştirmeler dikkat çekiyor. Henüz DNN 5.4.1 sürümünü test etme fırsatını bulamasam da, önümüzdeki hafta içinde bu sürüme ilişkin testlerime başlamayı planlıyorum. Sürüm notlarını önümüzdeki günlerde paylaşacağım.


19 Nisan 2010 Pazartesi

DotNetNuke 5.3.1 Sürümünde Yerelleştirme Sorunu

Bu sabah DotNetNuke 5.3.1 sürümü için Türkçe Dil Paketi çalışmalarına başladığımda ilginç bir sorunla karşılaştım. Aslında dil paketi oluşturma işlemini yarıda bırakmıyor, ancak bu sorun süreci biraz geciktirecek bir sorunmuş gibi görünüyor...

Sorunun Tanımı
  • DotNetNuke 5.3.1 sürümünü kur ya da mevcut sürümü bu sürüme yükselt
  • Host kullanıcısı ile giriş yap ve Admin > Languages menüsüne git
  • Dil Düzenleme menüsünde Sistem ve Türkçe ayarlarını seç
  • Düzenlemek için sol panelden bir sayfa seç ve birkaç anahtarı düzenle
  • Değişiklikleri kaydet
Sonuç

Güncelleme/kaydetme işleminden sonra aynı sayfada kalmanız gerekirken, sistem sizi Dil Kütüphanesi'nin anasayfasına götürüyor.

DüzeltmeŞimdilik bir düzeltme yok, ancak kaynak kodlarını inceliyorum. Düzeltmeyi bulduğumda bu sayfada paylaşacağım.


14 Nisan 2010 Çarşamba

DotNetNuke'de Friendly URL ve Türkçe Karakter Sorunu

Not defterimde DotNetNuke ile ilgili çalışmalarımdan sık sık bahsediyor ve zaman zaman ziyaretçilerimden geri bildirim alıyorum. Geçtiğimiz günlerde de bir ziyaretçim iletişim formundan bana ulaşarak sayfa adında kullanılan Türkçe karakterlerin hem navigasyon menüsünde hem de sayfa adresinde (url) sıkıntı yarattığını ve bu sorunu nasıl giderebileceğini öğrenmek istediğini belirtti.

Detaylara çok fazla girmeden yapılabileceklerden bahsedelim:

DotNetNuke varsayılan olarak TabName (sayfa adı) alanına girilen veriyi değiştirmeden TabPath alanına da (\\ ön eki (prefix) ile) kayıt ediyor.

Eğer sayfa adında Türkçe karakter varsa, bu durum bazı arama motorlarının (örn. Google ve Yahoo) sitenizi ziyaret eden örümceklerinin tuhaf bir şekilde Olay Günlüğü'ne hata logları bırakmasını da beraberinde getiriyor.

Özetle hiç de istenilmeyen bir durum gerçekleşiyor. Düşünsenize, sitenize her gün giren robotlar giriş yaptıkları (Türkçe karakter içeren) her sayfa için Event Viewer'a bir işaret bırakıp ayrılıyor.

Bir programcı persfektifinden baktığımızda, DNN'in yapı olarak son kullanıcı tarafından düzenlenebilen bir TabPath (sayfa lokasyonu) sütununa sahip olması gerekiyor. Bu özellikle ilgili Support Tracker'a daha önceden açtığım kayıtlara göz atabilirsiniz.

Bu konuyu ayrıca Documents Modülü'nü geliştirirken birlikte çalıştığımız Mitch Sellers ve Yerelleştirme konusunda zaman zaman fikir alışverişi yaptığımız Sebastian Leupold ile de görüştük. Her ikisi de bu dezavantajın yakın gelecekte düzeltileceğini düşünüyor.

Peki sorunu çözmek için ne yapmalıyız?

Eğer oluşturduğunuz sayfaya ait seçenekleri (sayfa adı, açıklama, anahtar kelimeler, ana sayfa, sayfa yetkileri, tema vb) bir daha asla düzenlemeyecekseniz, veritabanına doğrudan müdahale edebilirsiniz.

Bu müdahaleyi yapmak için SQL Server Management Studio'yu (eğer direkt erişim imkanına sahipseniz), ya da barındırma hizmetini sağlayan firmanın veritabanı yönetim panelini kullanabilirsiniz.

Yapacağınız işlem, Tabs tablosunda ilgili sayfaya ait TabPath değerini değiştirmek. Örneğin, sayfa adımız İletişim olsun. Arama motorlarına ve ziyaretçilere sayfayı sevdirmek için tabpath girdisini iletisim olarak ayarlayabilirsiniz.

İşi biraz daha ilginç hale getirmeye ne dersiniz?Tabpath sütununda ilgili satıra isterseniz sayfa adından tamamen bağımsız bir değer de girebilirsiniz. Örn. sayfa adında kullanılan İletişim yerine iletisim-formu girdisini tabpath'e ekleyebilirsiniz.

Sonuçları almak için ne yapmalı?Elbette bu yöntemi kullandığınızda, sonuçları görebilmek için uygulamayı Host > Host Ayarları menüsünden yeniden başlatmanız, ya da sistemin kök dizininde yer alan web.config dosyasında ufak bir hileye (dosyaya boş bir satır eklemek) başvurmanız gerekecek.

Unutmadan!

Tekrar belirtmekte fayda var. Eğer tabpath yöntemini kullanacaksanız, sayfa ayarlarını güncellemek zorunda kaldığınızda tabpath değeri yeniden eski değerine (ya da o an sayfa adına hangi değeri yazdıysanız o değere) dönecek. Eğer sorun değil, ben uğraşmayı severim derseniz, tekrar bahsettiğim yöntemi uygulayabilirsiniz.

Alternatif olarak pazarda sunulan ücretli ve ücretsiz modülleri kullanabilirsiniz. Bunlardan bir tanesi Bruce Chapman tarafından geliştirilen iFinity URL Master (ücretli) modülü. Daha önceki denemelerimde başarılı sonuçlar aldığım bu modülü (yukarıdaki senaryo size uymuyorsa) alternatif olarak önerebilirim.


12 Nisan 2010 Pazartesi

Stored procedure dbo FAQSearch doesn't exist

Dün Google Map ile olan denemelerimin yanında FAQ (SSS) modülünü de denediğimi belirteyim. Google Map modülünün kurulumunda yaşadığım sıkıntıya benzer şekilde FAQ modülünde de sql data provider ile ilgili bir sıkıntı yaşadım. Neyse ki uyguladığım çözüm Google Map için uyguladığım çözümün aynısıydı.

Eğer FAQ modülünü DotNetNuke 5.3.1 sürümü üzerine kurmaya çalışıyor ve benzer bir hata alıyorsanız, stored procedure eksikliği ile ilgili çözümü uygulayabilirsiniz. (Not: orada map modülüne göre anlattım, siz Sık Sorulan Sorular modülü için uyarlarsınız)


11 Nisan 2010 Pazar

Stored procedure 'dbo.Map_GetMaps' doesn't exist

Bu gece DotNetNuke 5.3.1 ile geliştirdiğim kurumsal bir portalda Map modülünü kullanarak şirketin adresini portal üzerinde görsel olarak göstermeyi planlıyordum. Ne var ki, Map bileşeninin kurulumunu ilk denememde başarılı bir şekilde tamamlayamadım.

Host > Bileşenler menüsünden Kullanılabilir Bileşenler altında yer alan Map modülünü kurmak için işaretledikten sonra kurulumu başlattım. Ancak bir süre sonra hata mesajıyla karşılaştım.

Object reference not set to an instance of an object.

Bir programcı için bu hata kodu fazla yabancılık çekmediğimiz bir kod olsa gerek, öyle değil mi :)

Modül ile ilgili denemelerime devam ediyorum, eğer tahmin ettiğim gibi düzeltilemeyen bir sorun ise Bug Tracker'dan rapor etmem gerekebilir.

Ekleme:

Saat sabaha karşı 3 ve ben çalışmaya devam ediyorum :) Modülün kurulumunda bir sıkıntı old. düşünüp bu sıkıntıyı daha iyi anlamak için bir test sayfasına modülü eklemeye karar verdim. Map modülü sayfaya başarılı bir şekilde eklendi, bir ümit çalışır mı diye düşündüm ama daha önceki tecrübelerim bir sonraki yapılandırma menüsünde muhakkak bir sorunla karşılacağımı söylüyordu.

Ve... Yanılmadım. Aşağıdaki hata kodunu aldım.


Stored procedure 'dbo.Map_GetMaps' doesn't exist

Google'da kısa bir arama yaptım ve karşıma aşağıdaki sonuç çıktı.

Stored procedure 'dbo.Map_GetMaps' doesn't exist

Kevin sağolsun, soruyu soran arkadaşa sadece hangi sürümü kullandığını sormuş. Aslında haksız da sayılmaz. Neyse, ben olaya başka bir boyut katıp, "belki işe yarar" diye düşündüğüm bir yöntemi denemeye karar verdim.

Google Maps modülü paketini zip dosyasından çıkardım ve içindeki üç adet SQL dataprovider dosyasının içeriğini not defteri ile açtım. Oradan kesip Host > SQL penceresinden Kod Çalıştır'ı işaretledikten sonra İliştir'e tıklayarak sorguları gerçekleştirdim.

Ve... Bingo!!!!

En azından modülün ana yapılandırma menüsüne şimdi ulaşabiliyorum.

Google Map modülü ile ilgili maceralarımı anlatmaya devam edeceğim. Çözümü buradaki arkadaşlarla da paylaşalım da yararlansınlar :)