Category Archives: NASIL?

OPEN SOURCE NE ZAMAN TEHLİKELİDİR?

open_source.jpgUzun zamandır blogumda tartışmaya açmayı düşündüğüm bir konu var , o da kurumsal alanda Open Source kullanımı üzerine… Ne zaman bir blogda yada mail grunda Open Source ‘u destekleyen bir haber yada yazı paylaşılsa bunlara karşı ortaya hep aynı karşıt görüşler atılıyor. Kurumlarında Open Source ürünleri kullanmayan veya istemeye istemeye kullananlar hep şu açıklamayı yapıyor: Open Source iyi güzel ama totalde maliyetleri göründüğünden daha fazla oluyor. (TCO: Total Cost of Ovnership) Herkesin en büyük sıkıntısı bu ürünlerde sorun yaşadıklarında ciddi manada yardım alabilecekleri bir danışman bulamamaları yada buldukları danışmanların uçuk fiyatlar talep etmesi. Bir diğer şikayet edilen nokta ki bu daha sık gündeme geliyor: Open Source ürünlerle çalışan ekibimizdeki kişiler bu ekipten ayrıldığında çok büyük problemler yaşıyoruz yada bu adamlara ekibimizden ayrılmamaları için daha fazla para ödemek durumunda kalıyoruz. Yani ürüne ödemediğimiz paranın (hala insanların aklına Open Source denildiğinde para geliyor??) daha fazlasını çalışanlara ödüyoruz. Özetle yöneticiler bu ürünleri kullanarak uygulama geliştiren çalışanlarının ANAHTAR ADAM olmalarından şikayetçiler. Read more »

ECLIPSE SOURCE ATTACHMENT

Bitirme projem nedeniyle bir süre Visual Studio ile haşır neşir olduktan sonra şimdi de iş dolasıyla Eclipse ‘e geri dönüş yaptım. Bu geçiş sırasında ister istemez bazı kıyaslamalara gidiyorum.

Geçen hafta Eclipse 3.2 ‘yi kurduktan sonra bir kaç satır kod yazıp IDE ‘ye yeniden adapte olmaya çalıştım ama bir eksiklik hemen gözüme çarptı.

Kullandığım metodlar noktaya basınca yada CTRL+Space yapınca listeleniyordu fakat bu metodlara ait açıklamaları göremiyordum. Belliydi ki bir yerlerden JDK ile standart olarak gelen sınıflara ait kaynak dosyaları bulup Eclipse göstermem gerekiyordu.

Bölümden arkadaşımın yolladığı linki takip ederek sorunu çözmeye çalıştım ama kendimce daha basit bir yol buldum. Eclipse ‘i açıp sıkça kullandığımız System.out ‘u yazıp üzerine sağ tıklayarak “Open Decleration” dediğinizde kaynak kodunun bulunmadığını söyleyecek ve browse edebilmeniz için bir pencere açacaktır. (Source Attachment dialog)

Bir diğer yol olarak da Project Properties->Java Build Path -> Libraries yolunu takip edip listelenen kütüphanelerin yanındaki ” + ” işareti ile expand ederek “Source attachment” üzerine tıklayıp sağdaki menüden Edit diyerek de Java kaynak dosyalarını gösterebilirsiniz.

JDK ile standart Java kütüphanelerine ait kaynak kodlar da gelmektedir. Windows platformu için jdk kurulumunu yaptığınız ana dizinde src.zip dosyasının içinde kaynak kodlar yer almaktadır.

Zamanla Eclipse ile ilgili daha faydalı yazılar yazmaya çalışacağım. Hatta bundan 6-7 ay önce Eclipse için bir mail grubu kurmak adına ufak bir girişimde bulundum ama sadece grubu kurup bıraktım. Belki zamanla o mail grubunu da hayata geçiririm. Ne de olsa Eclipse JAVALOPER ‘lar için standart olma yolunda emin adımlarla ilerliyor.

Ek kaynak olarak buraya bakabilirsiniz.

ASP.NET MEMBERSHIP ve LOGIN SORUNSALI

aspnet.pngUzun zamandan beri fırsat bulup da bir türlü kullanamadığım ASP.NET Login kontrollerini bu sabah 7:30 gibi denemeye karar verdim. Hevesle bilgisayarın başına oturup elimdeki kaynakalardan bir kaç örnek inceledikten sonra uygulama yapma vaktinin geldiğini düşünerek ilk uygulama için kolları sıvadım.

Öncelikle web.config içinde gerekli değişiklikleri yapmam gerekiyordu. Bunun için araç çubuğundan Website->ASP.NET Configuration yolunu izledim. Hepimizin alışkın olduğu Webadmin arayüzüne , buradan da Security sekmesine geçip ayarları yapacaktım ki… Beni  dünyalar güzeli bu hata mesajı karşıladı:

There is a problem with your selected data store. This can be caused
by an invalid server name or credentials, or by insufficient
permission. It can also be caused by the role manager feature not being
enabled. Click the button below to be redirected to a page where you
can choose a new data store
.

Yazının bundan sonrasını dikkatli okumanızı öneriyorum. Bu sorunu çözmek için uğraşırken öğrendiğim şeyleri de paylaşıyor olacağım.

Belli ki Webadmin gerekli veritabanına ulaşamıyordu. Eğer ulaşsaydı burada tanımlayacağım ilgili kuralları veritabanına aktaracaktı yada veritabanında hali hazırda bulunanları bana gösterecekti. ASP.NET ile gelen çoğu API ‘nın (Roles , profile vb.) default olarak SQL SERVER 2005 EXPRESS EDITION ile çalıştığını biliyorum. Fakat ben kuruluma bunu dahil etmeyip ayrıca kullandığım SQL SERVER 2005 DEVELOPER EDITION ile uygulamalarımı geliştiriyorum. Demekki bir yerlerde bu bağlantıyla ilgili ayarlar olmalı . (Hard coded olacak değil ya)

C:\WINDOWS\Microsoft.NET\Framework\v2.0.xxx dizinine gittim. Zaten bir haftadır sürekli bu dizine gidiyorum :) ve ASP.NET ile uygulama geliştirecek arkadaşlara burayı dikkatlice incelemelerini öneriyorum. Mesela Webadmin dediğimiz arayüze ait dosyalar burada. Yada Asp.net ‘in ilgili yerlere kaydının yapılması için gerekli reg_xxx araçları da burada. Yukarıdaki hata mesajından sonra asp.net_regsql aracını kullanmamı söyleyen bir ekranla da karşılaşmıştım.

Hemen bu aracı çalıştırdım. (Neye yaradığını biliyorum ama size anlatmak için gene de yazıyorum :) ) Bu araç ASP.NET 2.0 ile gelen ve bahsi geçen API ‘ları kullanabilmek için belirteceğiniz veri kaynağında kendisi için gerekli veritabanı, tablo , trigger , stored proc. gibi bileşenleri oluşturuyor. Bunları oluştururken kullandığı SQL komutlarını yine bulunduğunuz dizin içerisinde görebilirsiniz. Hem oluşturmak hem de silmek için gerekli tüm komutlar C:\WINDOWS\Microsoft.NET\Framework\v2.0.xxx dizininde mevcut. (Çalıştığınız yerdeki DBA pürüz yaparsa bu dosyaları ona  gösterirmeniz gerekebilir).

Yeri gelmişken bir konuya daha değinmek istiyorum. Aslında Login kontrollerinin pek de tercih edilmemesinin altında yatan neden bu yani  veritabanı sunucunuzda kendince birşeyler oluşturmak ve kullanmak istemesi. Çoğu profesyonel uygulama geliştirici kontrolü elden bırakmamak adına bu hazır API ‘lardan kaçınıyor. Ama bir gerçek varki o da bu yardımcı uygulamalar sayesinde işlerin hızlıca halledilebildiği.

Asp.net_regsql aracını çalıştırdıktan sonra veritabanı sunucunuza bağlanabilmek için gerekli bilgileri vermeniz ve next diyerek olayı halletmeniz mümkün. Bu noktada bilmeniz gereken çok da birşey yok. Ama işlemleri doğrudan SQL dosyalarını kullanarak yapmak istiyorum diyorsanız (Benim gibi anti-wizard biriyseniz yani) bu noktada sıralamaya dikkat etmelisiniz. Bunun için de dosyalarda yerlana yorum satırlarını dikkatlice okumalısınız. İşlemlerin sonucunda aspnetdb ve ASPSTATE adlı 2 yeni veritabanımız oluyor. Gerekli veritabanları da hazır . Şimdi bağlantı olayını da hallettik mi herşey tamamdır.

Yukarıdaki hata mesajında bahsi geçen  butona tıklayınca MemberShip Provider gibi şeylerin geçtiği bir yazı karşıladı beni. Sonra da daha önce ISS MANAGER ‘da görüp de “nedir bunlar” diye düşündüğüm MemberShip Provider alanları geldi aklıma ve ISS MANAGER ‘ı çalıştırdım. Zaten çözüme gitmemdeki en büyük adım da bu oldu. ISS MANAGER içinde gezinirken gözüme çarpan diğer birşey de data source=.\SQLEXPRESS;IntegratedSecurity=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true ifadesi oldu. Bu yazıyı görünce anladım ki uygulamamda App_Data dizininde aspnetdb.mdf dosyası aranıyordu ve buna bağlanılmaya çalışılıyordu. Bu ayarı kendi veritabanı sunucum için gerekli Connection String ile değiştirerek sorunu çözmüş oldum. Her ne kadar ben bunu ISS MANAGER kullanarak yapmış da olsam , sizler doğrudan web.config içine aşağıdaki bloğu ekleyerek sorununuzu çözebilirsiniz:

<connectionStrings>
   <
remove name=LocalSqlServer/>
   <
add name=LocalSqlServer connectionString=” GEREKLİ CONNECTION STRING BURAYA”  providerName=System.Data.SqlClient/>
</
connectionStrings>


Yukarıda yaklaşık 2 saat önce yaşadıklarım yer alıyor. Burada önemli olan sorunu çözmeye çalışırken ne öğrendiğim. Öncelikle ASP.NET configuration (Webadmin) denilen araç sadece web.config dosyası ile çalışabilmek için gerekli arayüzü sunuyor. Kendiniz de aynı işlemleri doğrudan web.config dosyasını düzenleyerek yapabilirsiniz. Bu araç çalışma sırasında gerekli bilgileri uygulamanızın web.config dosyasından ve bilgisayarınızdaki machine config dosyasından okuyor.
IIS Manager dediğimiz araç da yine web uygulamanız için gerekli ayarları yaparak,  bu ayarları ya uygulamanın web.config dosyaysına yada sistemimizin genel machine.config dosyasına yazar. IIS Manager ‘da Properties ->ASP.NET yolunu izlerseniz karşınıza çıkan EDIT GLOBAL CONFIGURATION (Sadece default web site için aktiftir) ile ISS üzerinden yayınlanan tüm sitelerde geçerli olacak ayarları yapıp machine.config ‘e kaydederken Edit Configuration ile de seçmiş olduğunuz site için gerekli ayarları yapıp o sitenin web.config dosyasına kaydedersiniz.

Şimdilik benden bu kadar. Umarım faydalı bir yazı olur ve bu hata mesajı ile arama yapıp bloguma gelenlerin sorununu çözer. Bugün saat 15:00 ‘da nedirtv tarafından düzenlenen ASP.NET AJAX seminerinde olacağım. Seminer notlarımı da fırsat bulunca blogumda paylaşacağım. Bir sonraki yazıya kadar sağlıcakla kalın…

NASIL? KATEGORİSİ

how.jpgKategori sayım hızla artıyor farkındayım :) . Zamanla içine yazacaklarımın sayısı da artacak. Beni okuyanlara sözüm olsun.

Yeni kategorimi adı NASIL? . Yabancılarda çok yaygın olan “HOW TO”  bla bla bla olayına benzer birşey. Ama onlarda genelde How To serileri belirli bir konu üzerine yoğunlaşır. Mesela nasıl daha iyi proje yönetirsiniz , nasıl daha optimize kod yazarsınız yada müşterinizi nasıl daha kolay kazıklarsınız tarzında seriler olur.

Ben ise bu kategoride aklıma gelen herşeyle ilgili yazmayı planlıyorum. Yani yine kendimi kısıtlamadım ve geniş bir domain seçtim. Mesela nasıl daha düzenli olursunuz , nasıl blog yazarsınız , nasıl iş bulursunuz , şu nasıl daha iyi olur hatta abartıp nasıl zengin olursunuz diye yazabilirim hiç belli olmaz….

Burada yeralacak olan tüm yazılar tamamen KİŞİSEL GÖRÜŞÜMDÜR . Yani kimse sonradan gelip de “yaa ben böyle böyle yaptım ama olmadı hatta daha kötü oldu”  gibilerinden birşeyler demesin. Hiç bir iddiam yok. Sadece ben yaptım siz de bir deneyin gibi tavsiye seviyesinde olacak.

Denemekten korkmayanlar ve girişimci arkadaşlar burayı takip etsinler. Bu kategori tam onlara göre olacak. İnandığım birşey varki o da insanların birbirlerinden öğrenecek çok şeyi olduğu. Burası da benim bildiklerimi ,deneyim ettiklerimi paylaşmam için iyi bir fırsat .

Hepimize hayırlı uğurlu olsun. Şimdilik benden bu kadar. Beni okumaya devam edin …