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 :)


Thread Was Being Aborted

Az önce harita modülünün (Map Extension) kurulumu ile ilgili problemden bahsetmiş ve kaynağını araştıracağımı yazmıştım. Şu an incelemeye devam ediyorum. Olay Günlüğü'nde (Event Viewer) konuyla ilgisi olmayan başka bir hata mesajı dikkatimi çekti.

Scheduler (Zamanlanmış Görevler ya da hangi isimle anacaksak) altındaki DotNetNuke.Services.Search.SearchEngineScheduler isimli elemanımız bir yamukluk yapıyor :) Sıkıntının türü ise Thread was being aborted.

Neyse ki bir önceki yazımdaki hata mesajının aksine bu mesajda indeksin bir sonraki indekslenme zamanını görebiliyorum.


5 Nisan 2010 Pazartesi

Platform ve Modül Güncellemeleri için Çalışma

Bugün epeydir fırsat bulamadığım DotNetNuke çalışmalarına kaldığım yerden devam ediyorum. Öncelikle DotNetNuke Kullanıcı Topluluğu için hazırladığım sitenin altyapısını DotNetNuke 5.2.2 sürümünden DotNetNuke 5.3.1'e yükseltdim.

Sürüm yükseltme işlemi sorunsuz bir şekilde gerçekleşti. DotNetNuke 4.6.2 sürümünden bu yana Upgrade süreci çok rahat oluyor. Bunda XMLMerge (kod birleştirme) tekniğinin çok büyük katkısı var.

Çekirdek platformda gerçekleştirdiğim güncellemelerden sonra, bu çekirdeğe entegre olan diğer modüllerin (şimdilik büyük bir bölümünü kullanmasam da) update paketlerinin mevcut olup olmadığını kontrol ettim.

Kontrollerim sırasında News Articles modülünün yeni bir sürümünün (ki bu yeni sürüme ait güncellemeyi kişisel blogda daha önce uygulamıştım) mevcut olduğunu görüp hemen update paketini indirdim.

Update süreci görünürde sancısız bir şekilde tamamlansa da arkaplanda ters giden birşeyler olmuş. Sisteme yeni bir yazı eklemeye çalıştığımda, garip bir şekilde Error Definition Msg kod adıyla bir hata mesajı aldım.

Be arkadaş, hata tanımlaması diyorsun ama yanında ne bir kod ne de kullanıcı dostu bir mesaj veriyorsun.

Öyle ya da böyle bu sorunu da çözdükten sonra (detayları yarın sabah fırından çıkacak yeni makalede bulacaksınız) kontrollerime devam edebilirim.

Ola ki sitede bir tuhaflık görüne, biline ki bu sorun benim çalışmalarımda kullandığım yöntemlerden ve bu yöntemlerin sonuçlarından kaynaklanabilitesi anlaşıla :)


XML Modülü Kullananların Dikkatine

DotNetNuke 5.3 serisine geçiş yapmayı planlayan kullanıcılardan biri iseniz, yeni sürüme yükseltme yapmadan önce dikkat etmeniz gereken önemli bir detaydan bahsetmek istiyorum.

21 Mart'ta yayınlanan şuradaki yazıya göre, sisteminizde XML modülü (bileşeni ya da her ne olarak anıyorsanız) yüklü ise DotNetNuke 5.3.1 ve sonraki sürümlere yükseltme yapmadan önce, XML modülünün Release Tracker'a şutlanan yeni sürümüne geçiş yapmanız öneriliyor.

Genelde bu tür hatırlatmaları yapar, uygulamaya gelince kendim unuturum :) Ama siz sakın unutmayın!


Doyana Kadar Ücretsiz DotNetNuke Teması İndirin!

Aslında DotNetNuke Tema Tasarımı Yarışmasını (Skinning Contest) daha önce duyurmadığım için aranızda bana öfkelenenler olabilir, ama ben işin tembeller için güzel tarafına değineceğim :)

Tema yarışması geçtiğimiz günlerde sona erdi ve yarışmaya renk katan onca tema ücretsiz olarak DotNetNuke kullanıcılarına sunuldu. Nerede mi?

DotNetNuke Tema Yarışmasına Katılan Temalar

Yarışmaya 4 farklı kategoride 19 tasarımcı katıldı ve katılımcıların çalışmaları DotNetNuke Design Challange (DotNetNuke Tasarım Yarışması) sayfasında ücretsiz olarak dağıtılıyor.

Not: Temaları indirmeden önce DotNetNuke sitesine giriş yapmanız gerekiyor.

Uyarı: Temaları sitenize yüklemeden önce ise sisteminize yedekleme yapmanız öneriliyor.