Sayfalar

23 Aralık 2010 Perşembe

Psikolojik bozukluk belirtileri.


Psikolojide önemli anahtar kelimelerden biridir psikolojik bozukluk. İnsan bazı zamanlar kendi ifadesiyle aklı yerinde olmayabilir. Deyim yerindeyse o zaman dilimi içinde kendini yöneten kendi değildir. Evet yanlış duymadınız. Kendini yöneten değildir o an. Peki kim bu içimizdeki bizi yöneten?...

 İnsan o an tamamen dış dünyaya kapalıdır. Ne yaptığını çoğu zaman bilemez. Kendininizi bir anda iç ortamdan dış ortamda bulabilirsiniz. Ayrıca kontrol edebilme gücünüz kalmamıştır o an. Çevrenizdeki insanların sizin numara yaptığınızı bile düşünebilir.Belkide...Evet belki de artık o an her şey bitmiştir sizin için.Acımasız bir gerçek ama ölümü bile düşünebilirsiniz.

Sevgili arkadaşlar, Psikolojik tabirler  son dönemlerde çok kullanılan ve artık yaşantımızda önemli yerleri teşkil etmeye başlamıştır. Evet insan psikolojisi… Ülkemizde önemli ruh bozuklukları insanların genelde dış dünyadaki yaşadıkları büyük ,kalıcı ve derin yaralar bırakan olumsuz olaylardan olsa gerek.Bazı zamanlar küçük bir olayı bir anda büyütebilir ve olay, içinden çıkılamaz bir hal alabilir.Düşünme gücünüzü yitirirsiniz.Herşey bir anda gözünüzün önünde hiç olur ve YETER!! dersiniz.Hayat zindan gibi gelmeye başlar size. Bir anda çevrenizdekileri göremez olursunuz gözleriniz kararır ve etrafa bir farklı bakarsınız o an. Hiç bir şeyin değeri kalmaz yaşamdan lezzet alamazsınız.Hattaki yaşamayı bile artık o andan itibaren istemezsiniz. İşte insan psikolojisinde psikolojik bozuklukların belirtileri, sizde de başlamış demektir.
Bu yazımızda belirtileri üzerinde durduk.Diğer yazımızda çözümleri üzerinde duracağız..Sağlıcakla kalın..

Yazan: Psikiyatri Uzmanı Serdar Yönveren

22 Aralık 2010 Çarşamba

Baskıcı Ruh Hali


Kültürler nasıl gelişti?

İnsanı hayvandan ayıran en önemli özelliği kültürel yapısı, kollektif bilinçaltı oluşturarak kültürel miras bırakmasıdır. Bin yıl önceki örümcek, yuvasını nasıl yapıyor ve nasıl yaşıyorsa, şimdiki örümcek de aynı şekilde yaşar. Ancak insan bin yıl öncesi gibi yaşamamaktadır. İnsanoğlu bilgi ile gelişir, inanç ve kültürle yaşamını şekillendirir.

İkinci Dünya Savaşı sırasında biri Fransa’da, diğeri Japonya’da iki çocuk ormanda kayboluyorlar. İleriki yıllarda bu çocuklar ergenlik dönemlerinde bulunuyorlar. Konuşma öğrenmemiş, insanca yaşamayı öğrenmemiş bu gençlere insanlık değerleri öğretilemiyor. Bu olay tıp literatürüne “Vahşî Çocuk Vak’ası” olarak geçmiştir. Bu gençlerin beyinlerinde öğrenme ile ilgili network oluşumu artık körelmiştir. Bir hayvan gibi yeme içme, seks, saldırma dışında birşey bilemeyen bu genç örneği bizi ilk insana götürürse, karşımıza bazı sorular çıkar: Şu anda insanlar arasında geçerli olan ahlâkî erdemler nasıl gelişti? Yalan söylememek, başkasının hakkına saygı duymak, dürüst olmak, namuslu olmak, ensestten kaçmak, cömert olmak, paylaşmak, iyilik yapmak neden evrensel doğrular oldu? Neyin iyi, neyin kötü, neyin doğru neyin yanlış olduğuna dair ahlâkî gelişim, kültürel birikim nasıl belirlendi? Bu konu akademik tartışma konusu olarak sürüp gitmektedir. Semavi tezi savunanlar, bu ahlaki erdemlerin deneme yanılma ile öğrenilemeyeceğini,bunların ancak peygamberler yoluyla öğretildiğini belirtiyorlar. Materyalist düşünce, evrimsel bir süreçle insanlığın mükemmele doğru gittiğini savunuyor. Genetik bilginin böyle geliştiğine inanan bu görüş, sembolik düşünce, sanatsal düşünce ve ruhsal deneyimlerin nasıl oluştuğunu açıklayamıyor. Ayrıca ilk canlının DNA yapısının mükemmelliği, dış bir gücün varlığına kanıt olarak dikkat çekiyor.

İnsanın içinde iyicil ve kötücül güçlerin olduğu, bu güçleri nasıl kontrol edeceğini bilmeyen bir insanın kolayca bencil çıkarları uğruna, acımasız bir canavara dönüşmesinin mümkün olduğu son yılların psikolojik gözlemleri ile doğrulandı. İçgüdüleri serbest bırakılmış insan; ben merkezci, ihtiraslı, acımasız, sadece kendisini seven ve kendisi için yaşamaya çalışan, şiddete yatkın, gerekirse ve yakalanmazsa suç işleyebilen bir birey haline gelebildi. Psikiyatrinin kötülüğü tanıma yeteneğini belirlemek için New York Üniversitesi Adli Psikiyatri Birimi “Ahlaka aykırılık ölçeği” geliştirdi. Materyalizmin ahlaki değer olarak kabul edildiği geçtiğimiz yüzyıl, savaşların en çok yaşandığı yüzyıl oldu. Ahlaki olarak mükemmele gidilemedi. Daha önceki yüzyıllarda Materyalizm yoktu ama insanlar, başka bir içgüdü olan Püriten ahlak etkisindeydi.



PÜRİTEN AHLAK

Püritenler; baskı, ceza, korkutma, tehdit ve sindirme gibi unsurları uygulayarak, dünyayı doğru, adaletli, sevgi dolu yapmaya çalışırlar. Demokrasi kültürünün Püriten ahlaka tepki olarak geliştiğini söyleyebiliriz. Liberal yöntemleri saçma, aptalca ve vakit kaybı olarak gören bu kültürel miras, gerçekte insanın içindeki kötücül güçlerin bir aldatmasıyla gelişmiştir.

Püritenler dar kafalıdırlar. Onlara göre kurallara uyanlar iyi, uymayanlar kötü insanlardır. Her şeyi siyah beyaz kodlarında algılarlar. Gri rengi kabul etmezler. Ahlaki erdemleri yaşamanın, bizzat bir ödül olduğunu düşünmezler. Her şeyi cennet ve cehennem ikilemi gibi katı ve esnek olmayan kalıplara oturturlar. Eğer suç ve günahkarlık söz konusuysa, kendilerini Tanrı’nın görevini yapma konumunda hissederler.

İddiacıdırlar, çalışmayı ve başarıyı çok severler.Tedbirli davranmak tutkularıdır. Her zaman doğru olanı yapmak isterler. Püriten kişiye göre hiçbir hata, önemsiz değildir. Beklentileri daima yüksektir. Göğüslerine birkaç madalya eklemek diğer bir tutkularıdır. Büyük püritenler, küçük püritenleri madalya, makam ve rütbe ile çılgınca çalıştırırlar.

Bu püriten eğer baskın kültüre mensup biri ise, diğer kültürleri yok etmekten zevk alır. Bunların “Ya sev, ya terk et” tarzındaki şovenizmi sloganlaştırdıkları görülür.

Silahları; çok çalışmak, kurallara bağlılık, ayrıntılara önem vermek, hoşlanma duygusunu ertelemek, gerekirse başka yaşama bırakmaktır.

Kişiliklerini işleten en büyük mekanizma, yanlış bir şey yapmaktan ölesiye korkmalarıdır. Onlara göre hiçbir hata önemsiz değildir. Her şeyi sıfır hata ile isterler. Sadece kendileri için değil, diğer insanlar içinde hissederler. Hatasız bir ortamda olduklarına inandıklarında ancak kendilerini güvende hissederler.

Püriten kişi toplumdaki tatsız, can sıkıcı işleri başarı ile halleder. Bu kişi birinci adam olursa, vay onun yanında çalışanların haline demek gerekecektir. İkinci adam olurlarsa büyük bir boşluğu doldururlar.

Püritenlerin kontrol duygusu

Püritenler eğer yönetici iseler, başkalarının yaşamını kontrol ederek ancak kaygılarından kurtulabildikleri için, son derece yıpratıcı ve yıkıcı olurlar. Obsessif kişiler bir insanın ne yaptığını ve nasıl yaptığını kontrol eder, onlarda mükemmeliyetçidir. Püriten kişi ise diğer insanların ruhunu kontrol etmek isterler. Başkalarının onu sevmek gibi bir zorunluluğu vardır. Kendisini sevmeyen insanı kolayca düşman kategorisine atabilir.

Sorumluluk sahibi, akıllı, çalışkan fakat katı, esnek olmayan yapıları nedeniyle kolayca öfkelenirler. Yakınlarına hayatı dar ederler. Doğru ve ateş gibi yakıcı eleştirileri vardır.

Kötü bir dünyada değeri bilinmemiş, başkalarının gevşekliği yüzünden bunalmış hayal kırıklığı içindeki insanın ruh hali ile hep kızgın ve gergindirler. Kontrolü kaybetme duygusu onların öfkesini çok artırır. Başkasını onayladıklarında veya evet dediklerinde hata yapabilecekleri korkusu içerisindedirler. Ne yapmanız gerektiğini size söyleme istekleri en büyük tutkularıdır.



Toplumsal etkisi

Geçtiğimiz yüzyıllarda doğru, iyi ve güzeli topluma kabul ettirmek için baskıcı yaklaşımlar bir yöntem olarak benimsendi.. Ancak günümüzde insanların iyi, doğru, güzel olması yetmiyor. Özgürlük duyguları, iletişim teknolojisi, insanca yaşamak arzusu, iyiyi iyi şekilde yaşamak duygusunu insanlarda pekiştirdi.

İnsanlar çoğulculuğu, farklı kültürel mirası yaşamayı ve kültürel duyarlılığı önemsiyorlar. Toplumsal barışın sağlanması için farklı düşüncelerin ifadesine fırsat vermek gerekmektedir. Birilerinin çıkıp “sizin iyiliğiniz ve toplumun iyiliği için” diyerek bize ızdırap çektiremeyecekleri bir dünyada yaşıyoruz artık.

Baskıcı yöneticilere nasıl davranılmalı ?

Adalet ve güzellik, kendilerini hak edenlerden çok almasını bilenlere gitmektedir. Hakkını aramasını bilmeyen insan, o hakka layık değildir. Hak arama bilinci, baskıcı yöneticilere karşı en büyük çözümdür. İnsanlar haklarını aramazlarsa, o ülkeyi yönetenlerin baskıcı olması içgüdüsel bir gidiş olacaktır. Çünkü insan doğuştan adil ve iyi değildir. Birilerinin dengelemesi ve ayna işlevi görmesi gerekir. Bunun için demokrasilerde muhalefet ve hak arama çabası desteklenmiştir. Hatta sivil toplum örgütleri, hükümetlerin sadece katılımcısı değil ortağı olması, yönetenlerin sorgulanması Habitat II toplantılarında karar altına alınmıştır.

Püriten ahlak sahibi yöneticilerden hiçbir zaman tam not beklenilmeyeceğini bilmek gerekir. Küserek sonuç alamazsınız, sizi o zaman yetersiz olarak algılar ve önemsememeye devam ederler. İsyan etmek de faydasızdır. Bu defa haklıyken haksız duruma düşersiniz. Fakat incindiğinizi söylemelisiniz. Bir kişi bile olsa doğruyu doğru şekilde söyleyen kişiye, yönetici Püritenler saygı duyarlar.

Öfkeli davranışlar, baskıcı ahlaktaki kişi tarafından kendisine haksız bir saldırı ve hakaret olarak algılandığı için onlarla kararlı ve tutarlı bir diyalog, uzlaşmacı yaklaşım daha doğru olacaktır.

Püriten ahlaktaki kişiler, diğer insanlardan daha doğru, daha iyi ve başarılıdırlar. Bunu kabul edip takdir edin. Ama kullandıkları yöntemin çağdışı olduğunu, önceliklerinin yanlış olduğunu açık ve dürüstçe ifade edin.

Kendilerini en vatansever, en çalışkan, en disiplinli gören bir yöneticiyi, kullandığı yöntemler konusunda kendisiyle yüzleşmesini sağlamak gerekir. İnsanların davranışlarını düzeltmek ve toplum mühendisliği için ceza vermek ve yasaklamak korkunç bir stratejidir. İnsanlarda cezadan kurtulma içgüdüsü vardır. İnsan köpek gibi ceza ve otoriteyle değil ,kedi gibi başını okşamayla daha iyi ve kalıcı eğitilir. Merak duygusu insanda sansürlü şeylere kolay yönelir. Görmesine izin verilmeyeni daha çok görme arzusu insanda vardır. Cezaya misilleme yapma, özgür yapıdaki insanlarda olan bir güdüdür. Özellikle haksız olduğuna inanıyorsa.

Püriten ahlakta olan insanlara, yanlış ve günahla mücadele biçimlerinin yanlış ve günahı arttırdığı, onlara Psikoloji bilimi ölçekleri ile anlatılmalıdır. Ancak bu şekilde baskıcı kültür, yerini demokrat kültüre bırakır. Tabii bu da yavaş yavaş olacaktır. Kültürel değişim hiç aceleye gelmez

Yazan: Prof. Dr. Nevzat Tarhan

Bunalım Üzerine

     Bir düşünelim insan neden bunalıma girer, neden diğerleri bu durumu anlayamaz? Tabi herkes için olayların gelişimi aynı olmayabilir. Kendimden örnek vererek anlatayım. Öncelikle bunalım dediğimiz durumu tarif edelim; sıradan, çok da canımızın sıkıntılı olduğu zaman dilimleri bence bunalım değildir. Bir süreç yaşarız bazen, birçok olumsuz durum üst üste gelir, bu durumdan kurtulmak için elimizden geleni yaparız ve kayda değer bir sonuç elde edemeyiz. İşte bu noktada, yavaş yavaş ümidimizi yitiririz, mücadele gücümüzün azaldığını hissederiz. Bununla birlikte bitkinlik, bıkkınlık ve herşeye karşı bir isteksizlik başlar. Gayret etsem de artık düzelmez hiçbir şey deriz ve böylece bunalıma buyur etmiş oluruz. Aslında böylesi bir halden herkes kurtulmak ister ama elimizden geleni yapsak bile sonuca ulaşamadığımızda ve bu uzun bir süre devam ettiğinde içinden çıkılmaz bir durumla karşı karşıyayızdır. Bunalımdaki insanları neden anlamadığımıza gelince, bir örnek vererek açıklayalım. Diş ağrısını hiç yaşamamış birisine "dişim yüzünden kafam şöyle zonkluyor, böyle sızlıyor " deseniz de başına gelmeden tam olarak anlamayacaktır halinizi. Bunalım da bunun gibi birşeydir.
     Bu çaresiz duruma düşmememiz dileğiyle, sağlıcakla kalın...


     Yazan: Psikiyatri Uzmanı  Fatih Yılmaz

16 Aralık 2010 Perşembe

What is IT Consultant?



What are consultants???

  Consultants are hired by companies to solve their problems while creating sustainable value



What are  IT consultants???


Information consultant, institutional sense, considering all the possibilities of information technology industry, applicable to new and performance, productivity-enhancing technology solutions to corporate clients, presenting updated and less.


Roles of IT Consultant

-İnformation

-Request

-Capability

-Application 

---When do this roles come together, Success be inevitable



Consultant must have this feature:

-Competence

-Honesty 

-Research & Developer trend

-Sensitive and respectful


What am I have about consultant?

-For the most important, I like R & D 

-I believe that contribute to firm

-Entrepreneurship,business developer

-Competitive,participant,imperious


If I will be working at Firm 

-I believe to,

  -- Speeding up work

  -- Will be results- oriented

  -- Can solve problems

  -- And bring a new perspective 


for more details, go to http://www.ibrahimpektas.com or http://www.ibrahimpektas.blogspot.com

14 Aralık 2010 Salı

Danışmanlık nedir? Nasıl bilişim danışmanı olunur?

Danışmanlık
Her hangi bir konu hakkında bir kurum veya kişiye uzmanlık alanı ile ilgili gerekli altyapı ve bilgi birikimine sahip olarak, yön verebilecek bilgi verme hizmetidir. Danışmanlık karşınızdaki kurum veya kişiye bildiklerini değil bilmediklerini öğretmektir.

Bilişim Danışmanı
Bilişim danışmanı,kurumsal anlamda düşünülürse bilişim sektöründe teknolojik bütün imkanların, yeni uygulanabilir ve performansı,verimliliği artıran  teknolojilerin kurumsal müşteriye güncellenerek çözümler sunulması  denebilir.
Bu kapsamda, bilişim danışmanın rolleri;
-          -Bilgi 
-          -İstek
-          -Beceri
-          -Uygulama 
Bu roller bir araya geldiğinde başarı kaçınılmazdır.

Bilişim Danışmanı seçiminde cevap aranması gereken sorular
-Firma sektörümüz hakkında bilgiye sahip mi?
-Daha önce bu alanda hizmet vermiş mi?
- Uzman kadroya sahip mi?
- Ön araştrmalar yaparak,raporlar ve cizelgeler dahilinde bize sunabiliyor mu?
-Şirketimiz adına bize ne gibi katkılar sağlayacak?
gibi sorulara cevap aramalıdır.Bilişim sektöründe danışmanlık önemli bir konudur.
Her firma bunu göz önüne alamaz.Danışmanlık,firmaya bildiklerini değil bilmedikleri öğretmek içindir.

12 Aralık 2010 Pazar

Bir Bilgisayar Mühendisi hangi alana yönelmeli?

Belki de bu soru ile bu zaman dilimine kadar çok defa karşılaşmışımdır. Özellikle de Bilgisayar Mühendisliğini yeni kazanan öğrenciler için çok defa sorulur bu soru?
Öncelikle şunu  belirtmek isterim ki; bir bilgisayar mühendisi bu konuda tabi ki araştırma yapmalı ama her şeyden önce bu soruya cevabını  kendisi vermelidir. Yani son karar veren yine kendisi olmalıdır. Bir mühendis Çok iyi ASP.Net kulanıyor olabilir yada Java konusunda uzman olabilir Bu mühendis için sen Oracle DBA ol demek mantıksız olsa gerek.Yanlış anlamayın olamaz demiyorum. Bir mühendis çok şey bilmeli ama bir alanda uzmanlaşmalıdır
Mühendisliğin ilk yıllarında “Hangi alana gitsek?” yada “hangi alanda daha çok para kazanırız?” beklide çoğumuz “Tekrar sınava mı girsek?”  diye düşünüyoruzdur. Her mühendis adayı için kaçınılmaz sorulardan biridir bu. Çoğumuz sabahlara kadar kod yazmışızdır. Yada bilgisayarla sabahlamışızdır gün ışığına kadar. Sabahlara kadar da kod yazılır mı be demeyin? Yazılır. İnsan kod yazarken zamanın nasıl geçtiğini bile fark edemez. İşte bir mühendis için karar aşmalarından biri olsa gerek bu?
 Güzel bir söz takıldı bugünlerde aklıma.”Kimse sizi sizden daha çok düşünemez  ”.Önceleri bu söze pek inanmıyordum.Tabi ki ilk aklıma ailem geldi.Ancak zaman içinde yaşadıklarım fikrimi biraz değiştir gibi.Belki çoğumuz aklına ailen mutlaka senden çok düşünüyordur gibi gelebilir.Bence şöyle; mutlaka ki ailemiz bizi düşünüyordur.Fakat aile her zaman seni düşünemeyebilir.(aklına gelmeyebilir).O açıdan tabiî ki seni senden fazla düşünen ailelerde vardır.Ama istisnalar kaideyi bozmaz.Çoğumuz için geçerliliği mutlak olan bir söz diye düşünüyorum.

Son olarak insan ıssız bir adada tek başına ve adada nasıl yaşayacağına ve dahası adadan çıkış yolu bulmak zorunda.Tek başınasınız.Ve tabiî ki de araştırma yapması  için de koskoca bir ada.

Bu yıla kadar yaşadığım zaman diliminden kısa bir kesit aktarmak istedim.Faydalı olması dileğiyle…

Asp'de Yenilikler

Active Server Pages (ASP) teknolojisinin bu yeni sürümü, iç performans geliştirmelerinin ve iyileştirmelerin yanı sıra aşağıdaki yeni özellikleri de içerir:
+Daha İyi Uluslararası ve UTF-8 Desteği
+İyileştirilmiş POST Desteği
+ASP Asılı Kalma Algılaması
+Yaygın Kullanılan Dosyaları Önbelleğe Alma
+UNC Geliştirmeleri
+ASP'deki COM+ Hizmetleri

     +Grup Modeli Seçimi
     +Yan Yana Birleştirmeler
     +COM Bölümleri
     +İzleyici
     +İşlemler
+ASP için Yeni Meta Tabanı Özellikleri
+ASP Hata Ayıklama


Daha İyi Uluslararası ve UTF-8 Desteği


UTF-8 desteği, ASP'deki tüm yerleşik nesne özelliklerini ve yöntemleri kapsayacak biçimde genişletilmiştir. ASP'nin son sürümü yalnızca Response.Write için UTF-8 desteği içeriyordu.

İyileştirilmiş POST Desteği
ASP artık istemciden gelen yığınlı kodlanmış POST verilerini okuyabilir.

ASP Asılı Kalma Algılaması
Bir IIS sitesi meşgul olduğunda, ASP iş parçacığı sayısı üst sınırına ulaşılması ve bazı ASP iş parçacıklarının askıda kalması nedeniyle performans düşebilir. HSE_REQ_REPORT_UNHEALTHY ve World Wide Web Publishing Service (WWW hizmeti), ASP.dll işlemini barındıran çalışan işlemi geri dönüştürür ve olay günlüğüne bir girdi ekler.

Yaygın Kullanılan Dosyaları Önbelleğe Alma

ASP artık bir önbellek tutmanın yanı sıra, en son kullanılan dosyaları diskte önbelleğe alır. Disk önbelleğinin varsayılan konumu: %systemroot%\System32\inetsrv\ASP Derlenen Şablonlar'dır. AspDiskTemplateCacheDirectory Metabase Property ayarlayarak disk önbelleğinin konumunu değiştirebilirsiniz.

UNC Geliştirmeleri
ASP artık ASP komut dosyalarındaki UNC yollarını işleyebilir.

ASP'deki COM+ Hizmetleri
IIS'nin önceki sürümlerinde bir ASP uygulamasındaki COM+ hizmetlerini kullanmak istediğinizde, bu hizmetlerin yöntemlerini çağıracak bir COM bileşeni oluşturmanız gerekiyordu. Şimdi, ASP uygulamanızı, bir COM bileşeni oluşturmanıza gerek kalmadan aşağıdaki COM+ hizmetlerini kullanacak biçimde yapılandırabilirsiniz:

  • Grup Modeli Seçimi:
    ASP artık tüm iş parçacıklarını çoklu iş parçacıklı grupta (MTA) çalıştırabilir. COM bileşenleriniz çoğunlukla serbest iş parçacıklarından veya iki modelli iş parçacıklarından oluşuyorsa, ASP iş parçacıklarını MTA'da çalıştırmak performansı önemli ölçüde artırabilir.
    Bir ASP uygulamasının MTA içinde çalışmasını etkinleştirmek için uygulama düzeyinde, AspExecuteInMTA Metabase Property metatabanı ayarını kullanabilirsiniz. Bu ayar, bir uygulamayı ASP MTA iş parçacıklarında çalıştırırken, bir diğerini ASP STA (tek iş parçacıklı grup) iş parçacıklarında çalıştırmanızı sağlar. ASP iş parçacıkları için varsayılan yine STA'dır.  


  • Yan Yana Birleştirmeler:
    Yan yana (SxS) birleştirmeler, ASP uygulamalarının, sistem DLL dosyası veya klasik COM bileşenlerinin hangi sürümünü kullanacağını belirtmesine olanak tanır, örneğin WinHTTP 5.1, Kabuk Genel Denetimleri sürüm 6.0 (Comctl32.dll), GDI Plus sürüm 1.0 (GDIplus.dll) ve Visual C++ Çalışma Zamanı Kitaplıkları sürüm 6.0 Örneğin, ASP uygulamanız MSXML sürüm 2.0 ile çalışıyorsa, sunucuya hizmet paketleri uygulandıktan sonra bile uygulamanızın MSXML sürüm 2.0 kullandığından emin olabilirsiniz. MSXML'nin yeni sürümleri bilgisayara yüklenir, ama sürüm 2.0 kaldırılmaz ve uygulamalarınız tarafından kullanılır. SxS birleştirmelerini yapılandırmak için, DLL dosyasının yolunu bilmeniz ve DLL dosyasını kullanması gereken her sanal dizinde COM+ bildirim dosyasının bulunması gerekir. COM+ bildirim dosyası, DLL dosyasının yüklendiği konum hakkında bilgiler içeren bir XML dosyasıdır. IIS, bildirim dosyasının varolduğunu doğrulamaz. Bildirim, aşağıdaki dosya alıntısı gibi görünür:
     kaynak: microsoft

12 Kasım 2010 Cuma

DataAdapter Kullanımı?

DataAdapter nesnesi DataSet nesnesi ile veritabanı arasında tercümanlık yapar diyebiliriz. Veritabanından aldığı bilgileri DataSet içerisine doldurur ve DataSet den aldığı bilgileri veritabanına geri gönderir. Dört önemli metoda sahiptir:

SelectCommand

UpdateCommand

InsertCommand

DeleteCommand

SQLDataAdapter ve OLEDBDataAdapter olarak iki nesne kullanılabilir. MSSQL Server a bağlantı için SQLDataAdapter nesnesi, diğer veritabanlarına bağlantı için OLEDBDataAdapter nesnesi kullanılır.

SelectCommand Metodu

Bu metod kullanılarak veritabanından bilgiler 2 şekilde listelenir: ya DataAdapter’in bu metoduna doğrudan bir Command atanır, yada SelectCommand’in Text özelliğine doğrudan bir Sql ifdesi içeren string atanabilir.

Bir örnek ile açıklamaya çalışalım. Bir select ifadesi ile veritabanından bilgileri listeleyip DataSet içine dolduralım. Ardından bu bilgiyi DataGrid içerisinde gösterelim;

Bu işlem için Imports System.Data.SqlClient kütüphanesini kullanmamız gerekli. Örneğimizde MSSQL Server a bağlanıp, Northwind veritabanında Customers table’ındaki bilgileri göstereceğiz.

Dim baglanti As SqlConnection = New SqlConnection("server=localhost;uid=sa;pwd=;database=northwind")
Dim cmd As SqlCommand = New SqlCommand("SELECT CustomerID, CompanyName FROM Customers", baglanti)
Dim adapter As SqlDataAdapter = New SqlDataAdapter()
adapter.SelectCommand = cmd
Dim ds As DataSet = New DataSet()
adapter.Fill(ds, "Customers")
DataGrid1.DataSource = ds
DataGrid1.DataBind()

UpdateCommand Metodu

Dim adapter As SqlDataAdapter = New SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn)
adapter.UpdateCommand = New SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " & _
"WHERE CategoryID = @CategoryID", nwindConn)
adapter.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName")
Dim param As SqlParameter = adapter.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int)
param.SourceColumn = "CategoryID"
param.SourceVersion = DataRowVersion.Original
Dim ds As DataSet = New DataSet
adapter.Fill(ds, "Categories")
Dim cRow As DataRow = ds.Tables("Categories").Rows(0)
cRow("CategoryName") = "AspNedir"
adapter.Update(ds)

InsertCommand Metodu

Dim adapter As SqlDataAdapter = New SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn)
adapter.InsertCommand = New SqlCommand("Insert Into Categories (CategoryName) Values @CategoryName", nwindConn)
adapter.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName")
Dim ds As DataSet = New DataSet
adapter.Fill(ds, "Categories")
Dim cRow As DataRow = ds.Tables("Categories").Rows(0)
cRow("CategoryName") = "BitirmeOdevi"
adapter.Update(ds)

DeleteCommand Metodu

Dim SqlIfadesi As String = "SELECT * FROM Categories ORDER BY CategoryID"
Dim baglanti As String = "server=localhost;uid=sa;pwd=;database=northwind"
Dim adapter As New SqlDataAdapter(SqlIfadesi, baglanti)
adapter.DeleteCommand.CommandText = "DELETE FROM Categories WHERE CategoryName='BitirmeOdevi'"
adapter.DeleteCommand.Connection = CType(adapter.SelectCommand.Connection, SqlConnection)

Kaynak:Sahhan

DataSet Nedir? Nasıl kullanılır?

DataSet nesnesi herhangi bir veri kaynağı ile ilişkilendirilmiş veri kümesini temsil eder. Bu veri kaynağı bir veritabanı olacağı gibi XML formatlı bir kaynakta olabilir. Nitekim DataSet nesnesinde tutulan veriler hafızada XML formatında tutulmaktadır. DataSet içindeki veriler aynen veri tabanında olduğu gibi tablolar şeklinde saklanır. Yani bir DataSet nesnesi bir yada birden fazla tablo barındırabilir. DataSet'in yapısındaki tablolar DataTable isimli sınıfla temsil edilir. Bu da DataSet'in DataTable türünden nesneleri olan bir kolekesiyona sahip olduğunu gösterir. Bu koleksiyonun adı Tables' dır. Tables koleksiyonun Add() ve Remove() metotları kullanılarak DataSet'e yeni tablo eklenip çıkarılabilir. Tables koleksiyonundaki tablolara indeksleyici yardımıyla erişilebilir. İndeksleyincinin parametresi tablonun ismi olabileceği gibi tablonun DataSet'teki sıra numarası da olabilir.6

Her bir DataTable nesnesinin Rows ve Columns koleksiyonu bulunmaktadır. Rows koleksiyonu DataTable'daki kayıtların kümesidir. Bu kümedeki her bir kayıt ise DataRow isimli sınıfla temsil edilir. Bir kayıttaki veriler sütunlara ayrılmıştır. Bir kayıt birden fazla sütundan oluşmuştur. Dolayısıyla her bir kaydın ilgili sütununa erişmek için DataRow sınıfındaki indeksleyici kullanılır. DataTable'da olduğu gibi indeksleyicinin parametresi sütunun adı yada sıra numarası olabilir.

DataSet nesnesinde veri ile direkt ilişkili olan bu nesnelerin yanı sıra ilişkisel veri tabanı modelinin gerektirdiği yapıları barındırmak içinde çeşitli sınıflar vardır. Bu sınıflardan en önemlisi DataRelation ve Constraint sınıfıdır. İki tür Constraint(kısıt) sınıfı vardır. Bunlar UniqueConstraint ve ForeignKeyConstraint sınıflarıdır. Constraint sınıfları temel olarak verinin tablolara yerleştirilme kurallarını belirler. Örneğin UniqueConstraint tablodaki bir kaydın tekil olmasını sağlarken, ForeignKeyConstraint sınıfı birbirleriyle ilişkili tablolardan birinde meydana gelen değişikliğin diğerinde nasıl bir etki yaratacağını belirler. DataTable nesnelerinin Constraints isimli koleksiyonuna oluşturulan bu Constraint nesneleri aktarılarak kısıtların çalıştırılması sağlanır. Dikkat edilmesi gereken nokta kısıtların çalışması için DataSet'in EnforceConstraints özelliğinin true olması gerektiğidir. Diğer bir önemli sınıf ise DataRelation sınıfıdır. Bu yazıda DataRelation detaylı bir şekilde anlatılacaktır. Bundan sonraki yazımda ise Constraint sınıfları üzerinde duracağım.6

Yukarıda bahsi geçen bütün sınıflar verinin hafızada modellenmesi için gerekli olan sınıflardır. Tüm bunlar için verinin DataSet içine doldurulması gereklidir. DataAdapter bir DataSet'in yada DataTable' ın içini doldurmak için veri kaynağı ile bağlantı kurar. Bu işlemi yapan DataAdapter sınıfının Fill() metodudur. Bu metot parametre olarak bir DataSet nesnesi alabileceği gibi DataTable nesnesi de olabilir. Eğer paramatre bir DataSet nesnesi ise DataSet nesnesi içinde yeni bir DataTable nesnesi oluşturulur ve veriler bu nesneye aktarılır. Veri kaynağına DataAdapter ile erişirken dikkat etmemiz gereken önemli bir nokta var : Her DataAdapter nesnesi ile ancak bir DataTable nesnesi oluşturulabilir. Dolayısıyla birden fazla tablo içeren DataSet nesneleri ile çalışmak için birden fazla DataAdapter nesnesi oluşturmalıyız. DataSet içinde yapılan değşikliklerin orjinal veri kaynağında güncellenmesi içinde DataAdapter kullanılır. DataAdapter'in güncellenen verileri düzgün bir biçimde ele alabilmesi için UpdateCommand, InsertCommand ve DeleteCommand gibi özelliklerinin belirtilmesi gerekir. Command nesneleri bir SQL dizgesi ve Connection nesnesi ile kurulur.

Nasıl Kullanılır?

DataSet Oluşturma

DataSet nesnesinin bir örneği yaratılacağı zaman DataSet constructor’ı kullanılır. Yeni bir DataSet nesnesi yaratırken isterseniz parametresiz çağırarak taban constructor’ını kullanabilirsiniz veya kendiniz bu metodu overload edebilirsiniz bu durumda ise constructor’e DataSet nesnesinin adını parametre olarak gönderirsiniz. Aşağıda bu iki durumun kullanımı gösterilmiştir.

Dim dataSet as DataSet = new DataSet();  Taban constructor’ı kullanılmış

Dim dataSet as DataSet = new DataSet("ornekDataSet");  overload edilmiş

DataSet nesnesinin içini doldurnayı .Net data providerları bir arabirim işlevi görerek yapar. DataSet nesnesi veriyi tutar, veri üzerinde update(güncelleme), delete(silme), add(ekleme) işlevlerinin yapılmasına da izin verir. Ancak bu DataSet nesnesinin o sırada veritabanı ile bağlantısı olmadığı için Update metodu çağrıldığı zaman veri üzerinde yapılan değişiklikler DataAdapter nesnesi aracılığı ile veritabanına gönderilirler.



Kayıt Ekleme

Yeni bir DataRow nesnesi yaratarak DataSet’e yeni kayıt eklemesi yapılır. Bu ise DataTable nesnesinin NewRow metodu kullanılarak gerçekleştirilir. Bu metod ile boş bir row(sıra) yaratılır. Kayıt ekleme için basit bir örnek kod aşağıda belirtilmiştir.

Dim row as DataRow = dataSet.Tables[0].NewRow()

row["soyad"] = "soyad"

row["ad"] = "ad"

dataSet.Tables[0].Rows.Add(row)

Değişiklikleri Kabul Etme

DataSet üzerinde herhangi bir veri üzerinde değişklik yapıldığı zaman veride değişiklik yapıldığına dair işaretlenir. Eğer veri üzerinde yapılan değişkliğin doğruluğu onaylanırsa veri üzerinde yapılan değişiklikler kabul edilmek üzere DataSet nesnesinin AcceptChanges() metodu çağrılır. Ayrıca tüm DataSet’ler üzerinde yapılan değişiklikleri kabul etmek istemiyorsanız DataRow yada DataTable’ın AcceptChanges() metodunu kullanabilirsiniz. Bu sayede veriler üzerinde tam bir yönetim söz konusu olabilir.4

Yalnız DataSet üzerinde yaptığınız değişiklikler veritabanını değiştirmez.(Eğer DataSet’inizin veritabanı bağlantısı kesilmişse ki performans açısından bağlantının kesilmiş olması daha yararlıdır.). Bu yüzden DataAdapter nesnesinin Update() metodunu kullanarak veritabanına sadece değişiklik yapılan kısımların gönderilmesi sağlanır. (Dikkat tüm veriler gitmiyor sadece değişiklikler gidiyor.)

Veri Bileşenlerini Bağlama

Yeni .Net bileşenleri(component) sayesinde verileri bağlamak hem Windows Formlarında hem de Web Formlarında oldukça basitleşti. DataSetleri Windows veya Web Formlarına bağlayarak DataSetin içindeki bütün verileri görmek mümkün.

Bu bileşenlerden bir tanesi olan DataGrid’ler çoklu DataTable nesnesini içlerinde barındırırlar. Bu DataTable’lerin her biri de çoklu data row nesneleri içerirler. DataGrid’in DataSource özelliğine sadece DataSet nesnesini bağlamamız DataSet’lere erişmemiz için yeterli olur. Tabii bir de DataSet içerisinden hangi DataTable nesnesinin gösterileceğini belirtmemiz gerekir. Aksi halde DataGrid üzerinde DataSet’in sahip olduğu bütün DataRow’lar gösterilir. Bu işlemi ise DataGrid’in DataMember özelliğini kullanarak yapabiliriz.

Veri Bağlama nedir? Nasıl yapılır?

Klasik ASP uygulamalarında, belirli bir kaynakta saklanan verilerin kullanıcıya sunulması, veritabanına bir bağlantı açılıp bu bağlantı aracılığı ile istenilen verilerin “RecordSet” nesnelerine alınması ve bir döngü içerisinde ekrana yazdırılması işlemlerinin adım adım gerçekleştirilmesi sonucu tamamlanmaktadır. Eğer okunan kayıtların yine kullanıcılar tarafindan degiştirilmesine izin verilecek ise, geliştiriciler güncelleme ile ilgili adımları da kodlamak zorundadırlar.

ASP.NET teknolojisinde ise veri sunumu, güncellenmesi, veri sıralanmasi gibi niteliklere sahip farklı kontrollerin (tekrarlanan verileri HTML biçiminde sunan kontroller) kullanılmasi ile, belirli kaynaklarda bulunan verilerin kullanıcıya sunulması ve bu verilerin güncellenebilmesi işlemleri kolaylaştırılmıştır. Böylelikle yazılım geliştiriciler gereksiz detaylarla ugrasmak zorunda kalmamakta, yoğunluklarini iş mantığı geliştirmesine kaydırabilmekte, daha okunabilir ve kaliteli yazılımlar geliştirebilmektedirler.

ASP.NET teknolojisinde ise veri sunumu, güncellenmesi, veri sıralanması gibi niteliklere sahip farklı kontrollerin (tekrarlanan verileri HTML biçiminde sunan kontroller) kullanılması ile, belirli kaynaklarda bulunan verilerin kullanıcıya sunulması ve bu verilerin güncellenebilmesi işlemleri kolaylaştırılmıştır. Böylelikle yazılım geliştiriciler gereksiz detaylarla uğraşmak zorunda kalmamakta, yoğunluklarını iş mantığı geliştirmesine kaydırabilmekte, daha okunabilir ve kaliteli yazılımlar geliştirebilmektedirler.

Yukarıdaki paragrafta bahsedilen kontroller “DataRepeater”, “DataList” ve “DataGrid” kontrolleridir. Üç kontrolde de “header template”, “item template” ve “footer template” bölümleri bulunmaktadır. Yazılım geliştiriciler bu bölümler içerisinde yapacakları değişiklikler ile kontrolleri özelleştirebilmektedirler (“template” kullanımları kod örnekleri ile daha net anlaşılacaktır). Adlarından da anlaşılacağı üzere “header” ve “footer” kalıpları (“template”) baş ve son kısımları kontrol etmektedir, “item” kalıbı ise tekrarlanan veriyi yönetmektedir. “DataGrid” kontrolünde “item template” sütunlara karşılık gelmektedir. Üç kontrolün birbirleri ile temel farkları incelenirse; “DataGrid” ve “DataList” kontrolleri veriyi güncelleme yeteneğine sahiptirler, “DataRepeater” bu yeteneğe sahip değildir. “DataGrid” i “DataList” ten farklılaştıran özellikler ise sayfalama ve sıralamadır.

Kontrollere Veri Atanması

“CheckBoxList”, “RadioButtonList”, “ListBox” ve “DropDownList” gibi kontrolleri “DataSet” (veri taşıyan nesne) nesneleri ile bağlayabiliriz. Burada bağlamak kelimesi ile kast edilen, “DataSet” nesnelerinde saklanan verinin ilgili kontrollerde sunulmasıdır. Bağlama işlemi kabaca, veri kaynağının belirlenmesi ve “DataBind” metodunun kullanılarak kontrole atanması adımlarından oluşmaktadır.

Kaynaklar:

1. Microsoft ASP.NET Professional Projects – Hersh Bhasin
ISBN:1-931841-21-7
2. www.msdn.microsoft.com