Yazarlar
   
MyBloglog

   
Technorati

Favori bloglarım arasına ekle
   
Okuduğum Bloglar
   
İstatistikler
eXTReMe Tracker
   
Duyuru

 

Merhaba arkadaşlar,

Uygun fiyata bazı bilgisayar parçalarını satıyorum. İzmir içi önceliklidir.

Listelediğim ürünlere aşağıdaki adresten ulaşabilirsiniz.

 

http://forum.donanimhaber.com/dukkan.asp?mem=14977

 

   
Blog

Güncel Yazılar | Kategoriler | Ara | RSS

27 Aralık 2007 Perşembe
DotNetNuke 4.8 Sürümünde Uppercase Lowercase Problemi
Gönderen: Dumlupınar @ 01:11 :: Okunma: 774 :: 8 Yorum :: :: DotNetNuke

Arkadaşlar DotNetNuke 4.8 sürümünü sakın ola websitenizde kullanmayın. Az önce yaptığım testlerde birçok yönetimsel sayfada (Admin sayfaları) Uppercase-lowercase problemi ile karşılaştım.

Örneğin DotNetNuke 4.8 sürümünü kurup, menüden Türkçe bayrağına tıkladığınızda bayrak ikonlarının düzgün görüntülenemediğine şahit olacaksınız. Bu sorunu daha önce de bildirmeme rağmen anlaşılan o ki çözüm henüz uygulanmamış.

Bir diğer sorun ise I karakterinin kullanılması gereken bazı öğelerde İ karakteri gözüküyor. Yani case sensivity problemi mevcut.

Önceki sürümlerde bu kadar yoğun olmasa da case sensivity problemi mevcuttu. Ancak bu sürüm gerçekten de hatalar diyarına dönmüş.

Sorunla ilgili olarak gönderdiğim hata raporunu incelemek için:

http://support.dotnetnuke.com/issue/ViewIssue.aspx?id=6896&PROJID=23

http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/108/threadid/192585/scope/posts/Default.aspx

http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/108/threadid/192594/scope/posts/Default.aspx

adreslerini incelemenizi ve yorumlarınızı eklemenizi rica ediyorum. Eğer daha çok kişi istekte bulunursa sorun daha çabuk giderilir.

 

linkibol linkibol | digg digg | del.ico.us del.ico.us | facebook facebook | facebook stumbleupon | reddit reddit

Puan
Yorumlar
berk cavan @ 27 Aralık 2007 Perşembe 23:32
saat 21:54 itibari ile sorunun çözümüne lokal olarak yaklaşmayı denerken genel bir çözüm buldum zannedersem. henüz testleri tam olarak yapamadım, acak şu an 3 satırlık bir ilaveden sonra girdiğim sayfalarda sorunun ortadan kalktığını gözlemledim.

CBO katmanı da yer alan CBO.VB içerisinde "GetOrdinals" fonksiyonun başlangıcında
---
Dim Bfcltinfo As CultureInfo
Bfcltinfo = Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
---
.... ve bitiminde ...
return dan hemen önce
--------
Thread.CurrentThread.CurrentCulture = Bfcltinfo
------
satırlarını ekledim.
------------------
eğer DNN başka ülke dillerinde de etkileniyorsa bu yöntem tüm dillerde işe yarar gibi görünüyor.
-------------------
bizler yani Türkler, Japonlar, Alman, ve daha farklı dillerde konuşan programcılar, program geliştirirken ingilizceyi (en-US) formatını doğal olarak kullanıyoruz ve dikkat ediyoruz. özel dile mensup karakterleri sadece sunum katmanına gönderirken ve alınırken ilgili dil kod sayfasına çeviriyoruz çoğunlukla.

Bence dnn takımını DAL ve CBO da parametrik değerleri (kolon isimleri, anahtar kelimeleri vs.) sadece en-US olarak kodlayarak işlem yapacak şekilde yönlendirmek gerek türkçe gerekse başka dillerde yaşanan program hataları problemi çözecek gibi görünüyor.

yukarıdaki kod eklentisi bunu kısmen simüle ediyor.

kısa zamanda bukadar yaza bildim. geliştirmelerden haberdar ederim.
bulentcavan@istanbul.gov.tr; bfcavan@gmail.com

Ismet Dumlupinar @ 28 Aralık 2007 Cuma 00:42
Sevgili Berk, gece vakti beni heyecanlandırdın, söylediğin yöntemi hemen deniyorum, umarım sonuç alabilirim. DNN forumlarında da dün açtığım konulara Chris Hammond cevap yazdı ve sorunla ilgili olarak ofiste kontrol edeceğini belirtti.

Ismet Dumlupinar @ 28 Aralık 2007 Cuma 01:18
Az önce denedim ancak düzgün olarak uygulayamadım sanırım. CBO.vb dosyasında yapılması gereken değişikliklerin hangi satırlarda yapılması gerektiğini detaylı olarak anlatır mısın? (Örnek: Line 152 şu kodu yaz, line 55 şunu çıkar gibi)

Teşekkürler.

berk cavan @ 28 Aralık 2007 Cuma 11:24
Merhaba; dün yaptığım işlem adımları aşağıdaki gibidir.

**Adım01: DNN 4.8.0 source code paketini yüklendi.
**Adım02: VisualStudio ile proje dosyası açıldı.
**Adım03: Visual Studio Solution penceresinde yeralan "DotNetNuke.Library" projesi içerisinde(bu konum disk üzerinde d:\DNN480KaynakpaketiXX\Library\Components\Shared konumuna karşılık gelmektedir.) yer alan orjinal CBO.VB dosyası açıldı.
**Adım04: CBO.VB içerisinde
##_29 nolu satırda(sınıf kütüphanelerinin bulunduğu yerdeki boşluşa) :
##_29 : Imports System.Threading kütapanesini eklendi.
-------
122 nolu satırda yer alan "GetOrdinals" fonksiyonun hemen altına yeni kodlar için üç satır boşluk açıldı.
##_123 nolu satırda: Dim tmp_ActiveCultureInfo As CultureInfo = Thread.CurrentThread.CurrentCulture '// kullanıcının aktif kültür bölgesini değişiklikten sonra eski haline getirmek için saklıyoruz. EKLENDİ.
##_124 nolu satıra: Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
eklendi. (bu ekleme kodun çağırdığı özellik anahtar isimlerinin kullanıcının seçtiği kültürden ayrı olarak en-US formatında yüklenmesini sağlıyor)
##_147 (Return arrOrdinals satırından 1 önceki satır.):
##_147 satıra: Thread.CurrentThread.CurrentCulture = tmp_ActiveCultureInfo
eklendi. bu ekleme kullanıcının mevcut kültürüne geri dönmesi sağlandı.


### bu değişiklikliklerden sonra "DotNetNuke.Library" Release modda derlendi ve ...\library\bin klasörü içerisindeki oluşan "DotNetNuke.dll" dosyası
...\Website\bin klasörü içerisine kopyalandı.
(bu işlem derleme sırasında da otomatik gerçekleştiriliyor olabilir. emin olmak için tekrar manuel kopyalandı.)



*********************
CBO.VB fonksiyonun modifiye edilmiş tam hali (yukarıdaki Imports System.Threading eklenmeli)
*********************

''' -----------------------------------------------------------------------------
''' <summary>
''' GetOrdinals gets the array of Ordinals in the dataReader that corresponds to the
''' ArrayList of properties in the class
''' </summary>
''' <param name="dr">The DataReader</param>
''' <param name="objProperties">An ArrayList of properties for the type</param>
''' <returns>An Array of ordinals</returns>
''' <remarks></remarks>
''' <history>
''' [cnurse] 06/29/2007 Documented
''' </history>
''' -----------------------------------------------------------------------------
Private Shared Function GetOrdinals(ByVal objProperties As ArrayList, ByVal dr As IDataReader) As Integer()
Dim tmp_ActiveCultureInfo As CultureInfo = Thread.CurrentThread.CurrentCulture '// kullanıcının aktif kültür bölgesini değişiklikten sonra eski haline getirmek için saklıyoruz.BFC27.12.20007
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US") '//BFC27.12.2007

Dim arrOrdinals(objProperties.Count) As Integer
Dim propertyName As String

Dim intIndex As Integer
Dim columns As New Hashtable

If Not dr Is Nothing Then
'Get the column names from the DataReader
For intIndex = 0 To dr.FieldCount - 1
columns(dr.GetName(intIndex).ToUpper()) = ""
Next intIndex

For intIndex = 0 To objProperties.Count - 1
propertyName = DirectCast(objProperties(intIndex), PropertyInfo).Name.ToUpper()
If (columns.ContainsKey(propertyName)) Then
arrOrdinals(intIndex) = dr.GetOrdinal(propertyName)
Else
arrOrdinals(intIndex) = -1
End If
Next
End If
Thread.CurrentThread.CurrentCulture = tmp_ActiveCultureInfo '// BFC27.12.2007
Return arrOrdinals
End Function

*************************************
*************************************


Gözlem Notları:
01- yeni yada yükselme kurulumundan sonra Türkçe Aktif iken kontrol alınan hata mesajları önlendi.
02- Yönetim sayfaları sorun görünmüyor.
03- Ülke bayrakları her iki moddada düzgün görünüyor.
04- yeni kurulumda ise eğer diller den türkçe dil eklenmiş ise, Türkçe dil paketinin de mutlaka yüklü olması gerekiyor.

NOTLAR:
***01: yukarıdaki değişiklik kısa zaman içerisinde geliştirilmiş bir çözüm.
daha uygun bir yerde yapılacak değişiklikle, Kurulum aşamasındaki web.config deki en-US zorunluğu da ortadan kalkabilir.

***02: DNN yapısı tekrar analiz edilmeli ve DUyurular ve benzeri modüllerdeki dil sorunları çekirdekten düzeltme yoluna gidilebilir.


Özetle
*********
sorun temeli kullanıcının seçtiği veya ayarlanan kültür yapısı çağrılan anahtar isimleri ve parametrik değerleri etkiliyor. Anahtar kelimeler ve Parametre isimleri kültür değişikliğinden etkilenmeyecek şekilde tasarlanmalıdır.


Yazdıklarımı tekrar kontrol edecek zamanım olmadığı için bu ve önceki yazılarımda yer alan imla ve yazım hatalarını lütfen hoş görünüz :)
iyi çalışmalar.


bulentcavan@istanbul.gov.tr; bfcavan@gmail.com (google talk aktif)

Ismet Dumlupinar @ 29 Aralık 2007 Cumartesi 18:28
http://www.mynetnuke.com/Blog/tabid/525/articleType/ArticleView/articleId/271/How-to-Fix-GetOrdinals-Exception.aspx
adresinde sorunun nasıl giderileceğini İngilizce olarak anlattım. Resimli anlatımla hazırladım, ayrıca yazının sonunda dileyen arkadaşlar için düzeltilmiş dosyaları ekledim. ProjectFiles rar dosyasını indirerek bin klasörü içindeki dosyaları websitenizin /bin dizinine upload ettiğinizde sorun giderilecektir.

Bulent Bey'e katkılarından dolayı tekrar teşekkürler.

Gökhan Ercan @ 03 Şubat 2008 Pazar 04:23
Dnn'e bildirilerini gördüm, hatta bir cevap da yazmıştım. Gerçekten 4.8 versiyomnu rezalet durumda. Sadece localizasyon derdi değil, daha başka problemler de var.

Bu konu beni çok tedirgin etti. Destek gerektiği zaman katılabilriim, çok sesim çıkmasa da yıllardır bende sizlerle aynı mücadeleyi vermekteyim. paylaşımlarınız için teşekkürler.

Ismet Dumlupınar @ 03 Şubat 2008 Pazar 12:16
Merhaba, desteğiniz için teşekkürler. Sanırım yapılacak çok şey var. Programlama bilginiz var mı acaba? Danışmak istediğim bazı ufak sorunlar için yardımınız olabilir :) Tabii eğer katılmak isterseniz yerelleştirme ile ilgili yeni projelerim var.

Gökhan Ercan @ 04 Şubat 2008 Pazartesi 14:37
Merhaba,

Evet 4-5 yıldır .net programcısı olarak çalışmaktayım. DNN mimarisi ile de bilgim var ama Dnn konusunda çok aktif olarak programlama yapmıyorum. Birşey eklemeden değiştirmeden önce çok fazla araştırmam gerekiyor ama bu aralar bu konuda daha aktif çalışmayı planlıyorum. Bana eposta atarsanız konuşabiliriz.

Yorum eklemek için buraya tıklayın.
   

 
Tüm Haklar © 2005-2007 www.mikroproje.com
 
Tema: Nina Meiers