Subscribe:

26 Aralık 2013 Perşembe

Azure Management Studio'da Subscription Bağlantısı ve Sertifika Ekleme

İlk olarak azure portalımıza girip subscription id olan kodu kopyalıyoruz.

Daha sonra aşağıdaki resimde görüldüğü üzere "Add Subscription Connection" linkine tıklayarak yeni bir bağlantı oluşturmaya çalışacağız. Daha önce kopyaladığımız subscription id parçasını ilgili yere yapıştırıyoruz.(Azure Management Studio Aracına sahip olmak için burayı tıklayınız.)

Visual Studio ile Azure'da Web Sitesi Yayınlama

Visual Studio'da Publish Web Site sihirbazını kullanarak Azure'da web sitesi nasıl yayınlanır onu anlatmaya çalışacağım.
İlk önce azure portalı giriş yapıyoruz. Web Sitesini seçip sağ taraftaki panelden "Download the publish profil diyoruz". Bu işlemi yapmamısınz sebebi, daha önce oluşturduğumuz web sitesi üzerinde değişiklik yapmak içindir.

Web Matrix

Bu aracı azure ile uğraşırken keşfettim. Bir hayli kolay kullanımı olmasına karşın sağladığı faydalar bakımından da oldukça işe yarar. Microsoft'un geliştirdiği bir araç. Aynı zamanda açık kaynak kodlu. Ben Visual Studio'da asp.net ile yaptığım projeyi azure servislerinde saklamak ve kullanmak istedim. Azure platformuda dashboard ekranında bu aracı indirmem gerektiğini önerdi. Bende indirip kurarak bu programı bu yazıya dökmek istedim.


Programa http://www.microsoft.com/web/webmatrix/ adresinde "Free Download" diyerek sahip olabilirsiniz.

24 Aralık 2013 Salı

Görev Zamanlayıcısı ile Belli Zaman Aralıklarında Sql Sorgusu Çalıştırma

Bir sorgunuz var ve hergün belli saatlerde otomatik olarak çalışmasını istiyorsunuz. Bunu gerçekleştirmek için çeşitli yöntemler bulunmakta...

Mesela Waitfor time ifadesini kullanabilirsiniz. waitfor time ile birlikte çalıştıracağınız sorguyu bir döngü içerisine alabilirsiniz. "waitfor" ifadesi ile ilgili yazıya buradan ulaşabilirsiniz.

Sql Agent servisini kullanarak yapabilirsiniz.(Not: Mssql'in express sürümlerinde agent yapısı bulunmuyor.)

Bu yazımda Windows 8 işletim sisteminde zamanlanmış görevler oluşturarak sql sorgu parçasının belirlediğim zaman aralığında otomatik olarak çalışmasını göstereceğim.

İlk önce " D:\deneme" dizininde ilgili sorgumuzu oluşturarak(metin belgesini kullanabilirsiniz) scriptimizi .sql formatında kaydedelim. (Ben "sorgumuz.sql" isminde bir dosya oluşturdum.Not: Dosyaları kaydederken Kayıt Türü olarak "Tüm Dosyalar" seçeneğini seçiniz.)

Daha sonra tekrar yeni bir metin belgesi açarak "sqlcmd -S localhost -i D:\deneme\sorgumuz.sql" ifadesini belgeye kopyalayalım. Daha sonra "çalıştır.bat" diye kaydedelim.

Sql'de Waitfor İfadesi

WAITFOR ifadesi, hazırladığımız kod bloğunun çalışmasını belirlenen bir zamana kadar veya belirlenen bir süre kadar bekletiyor.
Delay:parametre olarak verilen zaman kadar sonra çalıştırılır.
Time:Parametre olarak verilen zamanda çalıştırılır.
Kullanım şekli
WAIT FOR DELAY/TIME 'saat:dakika:saniye'
Örnekler:
waitfor time '22:15:00' --Kodlar saat 22:15'te çalıştırılır
waitfor time '22:15:00' --Kodlar 22 saat 15 dakika sonra çalıştırılır







Windows Azure Üzerinde Sanal Makine Oluşturma

Microsoft'un genel bulut ve altyapı platformu olan azure üzerinde bir sanal makine nasıl oluşturulur adım adım anlatmaya çalışacağım.
Azure hesabına sahip değilseniz daha önce yazdığım ilgili yazıya buradan ulaşabilirsiniz.

http://www.windowsazure.com/tr-tr/ bu adresten aşağıdaki ekran görüntüsüne sahip siteye ulaşacaksınız. Eğer bir hesaba sahipseniz üst kısımdaki "PORTAL" kısmına tıklayabilirsiniz.


Daha sonra mail adresinizi girmeniz istenecek. Girdikten sonra sizi tekrar microsoft hesabına yönlendirmek için bu sefer mail adresi ve parolayı isteyecek.


Bu kısma azure hesabını oluşturduğunuz mail adresinizi ve şifrenizi giriniz.

22 Aralık 2013 Pazar

MSDN Hesabıyla Windows Azure Hesabı Oluşturma

Öncelikle Azure'dan kısaca bahsetmekte fayda var.
Windows Azure, Microsoft tarafından yönetilen veri merkezlerinden oluşan global bir ağda hızlı bir şekilde uygulamalar oluşturmanızı, dağıtmanızı ve yönetmenizi sağlayan açık ve esnek bir bulut platformudur. Herhangi bir dili, aracı veya çerçeveyi kullanarak uygulamalar geliştirebilirsiniz.
Ücretsiz hesaba sahip olmak için olması gerekenler.
1-Microsoft Hesabı
2-Cep Telefonu
3-Kredi Karı

Windows Azure hesabına 90 günlük olmak şartıyla ücretsiz sahip olabilirsiniz.(Dikkat:Bir microsoft hesabından en fazla bir kere deneme hizmetinden faydalanabilirsiniz.90 günlük süre sonunda aynı microsoft hesabıyla başvuramazsınız.)
Ben bu yazımda msdn hesabına sahip birinin nasıl azure hesabı oluşturabildiğini anlatacağım. Burada kredi kartı bilgileri istemeyecek. Cep telefonuna gelen kodu girmek yeterli olacaktır. 90 günlük ücretsiz hesap ile msdn hesabına sahip birinin oluşturacağı hesap arasındaki fark 90 günlük ücretsiz hesap oluştururken kredi kartı bilgilerinin istenmesidir.
Başlıyoruz...
İlk olarak buradan azure resmi web sitesine ulaşın.

Sağ üstteki "ücretsiz deneme" butonuna tıkladığınızda ilgili sayfaya yönlendirileceksiniz. Sonrasında sizden herhangi bir microsoft hesabıyla giriş yapmanız istenecek

21 Aralık 2013 Cumartesi

Windows 8 Türkçe Kuran Meali Uygulaması Gizlilik Politikası (Privacy Policy)

Bu gizlilik politikamız Türkçe Kur'an Meali uygulaması için geçerlidir.
Bu uygulama herhangi kişisel bir bilginizi toplamaz.
İleride olabilecek değişiklikler yine bu sayfa üzerinden yayınlanacaktır. Belli aralıklarla bu sayfayı takip etmenizi öneririz. Ve ya bize mail adresinizi bırakırsanız biz size güncel bilgileri göndere biliriz.


This privacy policy applies to Meal Turkish Qur'an App.
This app does not collect any personal information.

Possible changes in the future will be posted on these pages again. At regular intervals we recommend that you follow this page. Or if you leave us your email address and we'll know to send you updated information.

15 Aralık 2013 Pazar

Windows Komutlarıyla Şaka Yapma Yöntemleri

1-Bilgisayarı Kapatma veya Yeniden Başlatma
Masaüstünde yeni bir kısayol oluşturun. Karşınıza çıkan sihirbazda konum alanına  “shutdown /s /t 0″  yazın. Kısayol için bir isim girin. Bu sık kullanılan bir isim olmalı. "Bilgisayarım" mesela. Sonra girdiğiniz isim ile ilgili kısayola bir simge atamak için kısayola sağ tıklayıp özellikleri açalım. Simge değiştir bölümünden dilediğiniz simgeyi seçebilirsiniz.
Kullanıcı o simgeye tıkladığında bilgisayar kapanacaktır. (Bu oldukça kötü bir şaka olabilir :) Şakazedenin kaydedilmemiş bilgileri olabilir. Sorumluluk tamamen size ait.)

Yeniden başlatmak için ise sihirbazdaki konum alanına "Shutdown.exe -r -t 00" yazmanız gerekiyor.
2-Uykuya Alma
Yöntem 1. yöntemle aynı. Sadece kısayol oluştururken sihirbazdaki konum alanına "rundll32.exe powrprof.dll,SetSuspendState 0,1,0" yazmanız gerekiyor.

3-Kısayol oluşturun. Öğrenin konumuna "shutdown -s -t 600" yazınız. (Burada kaç saniyede kapanmasını istiyorsak o kadarlık sayı giriyoruz.) Sonra -c yazıp oraya herahangi bir metin yazabilirsiniz.
shutdown -s -t 600 -c "Bilgisayarınız Sadık tarafından ele geçirilmiştir :)"

4-Not defterini açalım ve sonra aşağıdaki metni kopyalayıp yapıştıralım

color 0a

cd ..

cd ..

dir /s

14 Aralık 2013 Cumartesi

CD-ROM Açma Kapama Şakası

CD-Rom kapanığınızın açıldığını,kapatınca yine açıldığını ve sürekli bu döngünün tekrarlandığını görmek ne kadar sinir bozucu olurdu değil mi :) Aşağıda anlatacağım teknikle bu şakayı istediğinize yapabilirsiniz.

Notepad'i açın ve aşağıdaki Visual Basic Script kodlarını kopyala yapıştır ile notepad'in içine yapıştırınız.

Set oWMP = CreateObject("WMPlayer.OCX.7")
Set colCDROMs = oWMP.cdromCollection
if colCDROMs.Count >=1 then
do
For i=0 to colCDROMs.COunt -1
colCDROMs.Item(i).Eject
Next ' cdrom
For i=0 to colCDROMs.COunt -1
colCDROMs.Item(i).Eject
Next ' cdrom
loop
End If

Notepad'de iken Dosya'dan Farklı Kaydet'e gelin ve dosya adını mesela sadık.vbs yazınız.
(Kayıt türü olarak Tüm Dosyalar seçiniz.)

Sonra sadık.vbs dosyasını iki kere tıklayın. CD-Rom kapağı açılacaktır. Kapağı kapattığınızda tekrar açılacaktır. Bu böyle sonsuz döngü şeklinde gidecektir.(Yukarıdaki script parçasında kodlandığı üzere.)

Peki bunu nasıl sonlandırıyoruz? Bunun için Görev yöneticisinden wscript.exe dosyasını bulup Görevi Sonlandır yapabilirsiniz.
wscript.exe nedir peki? Bu bir windows tabanlı komut dosya yürütücüsüdür.(Komut tabanlı satırı ise cscript.exe dir).

9 Aralık 2013 Pazartesi

Yazılımı Konu Alan Filmler

Yazılım, bilgisayar sistemleri ve programlama temalı filmleri kısa bilgilendirmeleri ve fragmanları ile birlikte aktarmaya çalışacağım. Özellikle yazılım sektöründeki kişilerin ufkunun açılması açısından aşağıdaki filmlerin hepsini zaman buldukça izlemelerini tavsiye ediyorum. 

Silikon Vadisi Korsanları
1999 yapımı olan “Pirates of Sillicon Valley” (Silikon vadisinin korsanları) Paul Freiberger ın “Fire in the Valley: The Making of The Personal Computer” (Vadide ateş: zatî bilgisayarların yapılması) ünlü kitabından uyarlanmış. 
Apple'in ilk bilgisayarlarını nasıl üretti ve kimler işin içindeydi. Dos ve Windows'un ortaya çıkışı nasıldı? Bir iş nasıl büyür?
İlk kişisel bilgisayarın çıkışından, IBM'in o zamanki sektöre nasıl hakim olduğuna dair belgesel tarzında bir film.


İnternette Av (The Net)
Angela Bennett (Sandra Bullock) bir bilgisayar uzmanı. Genç ve güzel kadın yıllardır modemsiz ve bilgisayarsız bir yerde bulunmamış. Bilgisayarlar dışındaki tek aktivitesi, annesini görmek olan Bennett birgün İnternet üzerinden konuştuğu arkadaşı Dale Hessman'dan (Ray McKinnon) bir program alıyor. Program bir şifre-çözücü olarak tasarlanmış. O gece, Hessman bir uçak kazasında ölüyor. Angela bu sırada elindeki diskte gizli bilgiler olduğunu keşfediyor. Ancak sanal dünya, Bennett'e acı sürprizler hazırlamış durumda.


Windows 8 Uygulamamıza Arama Özelliği Ekleme (Search Contract)

Search Contract(Arama Kontratı), bu sistem kontratıyla uygulamamız içerisinde yapılacak olan arama işlemlerinin "charms" menüsü altında yer alan Ara(search) simgesi ile gerçekleştirilmesini sağlayabiliriz.(Charms menüsünü açmak için windows tuşu+C kısayolu yada fare imlecinizi sağ üstten aşağıya doğru çekebilirsiniz.)

Uygulamamız açıkken charms menüsünden Ara(search) seçeneği ile uygulama içerisinde arama yapılmasını ya da Paylaşım(Share) seçeneği ile uygulamamızda yer alan verilerin paylaşılmasını sağlayabiliriz.

Şimdi ele alacağımız konuda,temel bir veri uygulaması üzerinde Search Contract kullanarak arama özelliğinin nasıl entegre edileceğine değineceğiz. Kuran-ı Kerim Türkçe Meal Uygulamasında sureler içerisinden arama yapacağız.

Geliştirmiş olduğum uygulamamı çalıştırıp Ara simgesine tıkladığımızda aynı ekran açılacak fakat arama kutusuna herhangi bir şey yazdığımızda uygulama tepki vermeyecektir.

Uygulamayı açmış olmamız bir anlam taşımıyor çünkü bizim uygulamamız şu an için charms menüsünde yer alan arama işlevini desteklemiyor. Öncelikle uygulamamıza bu desteği eklemeli sonrasında da arama sırasınna kullanılacak olan iş mantığını koda dökmeliyiz.

17 Kasım 2013 Pazar

İnternet Bilgi İhbar Merkezi'ni Biliyor muyuz?


Sürekli internetle içiçe olan kişiler olarak internette dolaştığımızda suç unsuru içeren veya uygunsuz içerikli yayınlara rastgelebiliyoruz. Bunları farkettiğimiz zaman ilgili kurum yada birimlere bildirirsek sağlıklı bir iş yapmış olacağız.
Uygunsuz veya suç unsuru içeren internet yayınlarını, Telekomünikasyon İletişim Başkanlığı'nın kurduğu İnternet Bilgi İhbar Merkezi’ne bildirebilirsiniz. Örneğin, herhangi bir web sitesinde tehlikeli madde temini konusunda uyuşturucu veya uyarıcı madde kullanımını kolaylaştırma veya özendirme suçlarının işlendiğini düşünüyorsanız buradan ihbar edebilirsiniz.
"Bilgi İhbar Merkezi, Telekomünikasyon İletişim Başkanlığı tarafından 4/ 5/2007 Tarihli ve 5651 Sayılı İnternet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen Suçlarla Mücadele Edilmesi Hakkında Kanununun 10. Maddesinin 4. Fıkrasının (d) bendi uyarınca kurulmuştur."
5651 sayılı yasanın 8. maddesinde yer alan herhangi bir konu ile ilgili yeterli şüpheye sahip olduğunuz içeriği ihbar edebilirsiniz.

Yazılım Mühendisliği - Bilgi Sistemleri ve Güvenliği


Bilgi güvenliği denildiğinde akla gelen kendimize ait olan bilginin başkasının eline geçmemesidir.

Aslında güvenlik sadece bilginin başkasının eline geçmesi anlamına gelmez. Güvenlik, “gizlilik”, “bütünlük” ve “erişilebilirlik” olarak isimlendirilen üç unsurdan oluşur.
Gizlilik : Bilginin yetkisiz kişilerin eline geçmemesidir.
Bütünlük : Bilginin yetkisiz kişiler tarafından değiştirilmemesidir.
Erişilebilirlik : Bilginin ilgili ya da yetkili kişilerce ulaşılabilir ve kullanılabilir durumda olmasıdır.
Örneğin;İnternet bankacılığına ait hesap bilgimiz bir saldırganın eline geçince gizlilik unsuru zarar görmüş olur. Bir web sayfasının içeriği saldıdrgan tarafından değiştirildiğinde bütünlük zarar görmüş olur. Bir web sayfasına erişim engellendiğinde ise erişebilirlik zarar görmüş olur.
Bilgi güvenliğinin sağlanmasından kim sorumlu? Tabiki hepimiz.
Bu sorumluluklar yasal olarak da ifade edilmiş ve 5651 sayılı kanun "İnternet ortamında yapılan yayınların düzenlenmesi ve bu yayınlar yoluyla işlenen suçlarla mücadele edilmesi" amacı ile düzenlenmiştir.

Güvenlik Yönetim Pratikleri

  • Gizlilik,Bütünlük,Erişebilirlik
  • Risk değerlendirmesi ve yöntemi
  • Politika,prosedür ve rehberler
  • Politika Uygulamaları
  • Eğitim
  • Denetim

13 Kasım 2013 Çarşamba

BANKA DOLANDIRICILIKLARINA KARŞI DİKKATLİ OLALIM

kartsız havale işlemlerine dikkat
Bankacılık işlemleriyle dolandırıcılık yapanlar türlü türlü tekniklerle insanlardan kara para aklamaya devam ediyor. Özellikle kendilerini polis,savcı gibi sıfatlarla arayıp profesyonelce olaya yaklaşan dolandırıcılar işlerini büyük bir soğukkanlılıkla ve koordineli olarak genelliklede bir ekiple yapıyorlar.

Sık sık yöntem ve strateji geliştirmeleri en büyük özelliklerinden biri. Çok etkili sosyal mühendislik tekniklerini kullanarak aldatma yoluna başvuruyorlar.
Dolandırıcı telefonla aradığında tane tane sakin bir şekilde mağdura kendini tanıttıktan sonra(tabiki sahte isim ve soyisimlerle) senaryoladıkları bir hikayeyi mağdura anlatmaya başlar. Mesela kimlik bilgilerinin başka kişilerin eline geçtiğini ve yasa dışı işlemlerde kullanıldığını iddia ederler. (Banka hesapları üzerinden teröristlere para aktarıldığını veya dolandırıcılık işlemleri yapıldığını söylerler). Özellikle hikayelerinde duygusal tetikleyiciler kullanırlar.(PKK,operasyon,gizli görev,tehlike,terör vb.) Bu durumda kişinin ruhsal durumunda bir şok, şaşkınlık ardından korku ve endişe duyguları tetiklenir. Biyoloji bilgisinden yola çıkarakta bu tür duygular etkinleştiğinde beynin korteks dediğimiz düşünen, mantıklı karar veren bölgesi devre dışı kalabiliyor.(Özellikle ilk defa bu tür olaylara maruz kalan kişilerde bu durum kat kat baskın oluyot.) Bunun için teknolojiyi de oldukça iyi kullanıyorlar. Örneğin 155,banka numarası gibi özel numaralar mağdurun telefon ekranında görünebiliyor. Emniyetten aradığını söyleyen kişilerin ise şubede konuşuyormuşçasına arkada telsiz sesleri ve farklı kişilerin sesleri olur. Ayrıca madura olayı anlattıktan sonra "yetkili kişiye yönlendireceğim şimdi sizi" diyerek farklı bir kişiye telefonu vererek durumu daha da profesyonelleştirirler.

11 Kasım 2013 Pazartesi

KRİTERLERE UYGUN WINDOWS PHONE UYGULAMALARI GELİŞTİRENLER NOKIA LUMIA KAZANIYOR

Açık akademi kampanyalarına devam ediyor. Windows phone için uygulama geliştirenlere veya geliştirmek isteyenlere güzel bir fırsat bence. Açık akademiye kayıt olup windows phone eğitimlerine hemen başlayabilirsin. Açık akademi hakkında daha önce yazdığım yazıya buradan ulaşabilirsiniz.

Açık akademinin geçtiğimiz günlerde başlattığı kampanyaya katılmak için yapman gerekenlere kısaca değinecek olursam;

Uygulamanı geliştirip windows phone 8 mağazada yayınladıktan sonra geliştirdiğin uygulamaları max. 500 kelimelik açıklama ile yarisma@msakademik.net adresine göndermen gerekiyor.
Uygulamalarından en az biri 50 derecelendirme almalı ve derecelerinin ortalamaları minimum 3,5  olmalı...
Son tarih 31 Aralık 2013!


Detaylı kampanya koşullarını görmek için buraya tıklayınız...

8 Kasım 2013 Cuma

AÇIK AKADEMİ

Online Yazılım Okulu2012 yılının başlarında Microsoft Türkiye'nin öncülüğünde Ulaştırma ve Haberleşme Bakanlığı'nın katkılarıyla açılışı yapılan açık akademi platformuna değinmek istedim.
Gerçekten eğitimlerini zevkle tamamlamaya çalıştığım güzel bir yapılanma oluşturulmuş.
Ülkemizin ihtiyaç duyduğu uygulama geliştirici sayısını artırmak ve uygulama pazarını geliştirerek özellikle biz gençlerin istihdamına destek olmak için güzel bir örnek.
Yeri geldiğinde üniversitedeki derslerde bile hocalarımız açık akademiden faydalanıyor.
Açık akademi projesi her yaş grubundan yazılım geliştirmek isteyen herkese açık. Bilgisayar kullanmasını bilen herkesin faydalanabileceği bu platform sayesinde, evden para da kazanılabilir.
Katılımcılar,
  • Bilgisayar Programcılığına Giriş,
  • Temel Programlama I-II 
  • Temel Veritabanı 
  • İleri Programlama & Nesne Yönelimli Programlama, 
  • Veritabanı programlama, 
  • Web Uygulama Geliştirme, 
  • Windows Masaüstü Uygulama Geliştirme,
  • Windows 8 Uygulama Geliştirme, 
  • Windows Azure Uygulama Geliştirme, 
  • Sanal Sınıf Eğitimleri, 
Ana başlıkları altında, farklı seviyelerde eğitim alabiliyorlar. Ayrıca kişisel gelişim ile ilgili eğitimlerde mevcut durumda. Dileyen herkes bu eğitimleri tamamlayıp uygulama ve proje geliştirme seviyesine kolayca erişebilir. Derslere istediğimiz anda istediğimiz yerden devam edebiliyoruz.
Açık akademideki tüm sınavları geçip eğitimleri başarıyla tamamlayanlar Microsoft'tan Katılım Belgesi almaya hak kazanıyor.

8 Ekim 2013 Salı

YAZILIM MÜHENDİSLİĞİ-AĞ SİSTEMLERİ

2013-2014 Fırat Üniversitesi Teknoloji Fakültesi Yazılım Mühendisliği Ağ Sistemleri Dersi
Dersle ilgili bağlantılar, ödevler, notlar vs. zamanım oldukça burada paylaşmaya çalışacağım.
Her bölümün konu başlıklarını yazıyorum ki bir konuyu aradığınızda hangi bölümde olduğu rahatlıkla bulunsun.

7 Ekim 2013 Pazartesi

YAZILIM MÜHENDİSLİĞİ WEB TASARIMI VE PROGRAMLAMA DERSİ

2013-2014 Güz Dönemi Web Tasarımı ve Programlama Dersi
Her hafta buraya Yrd.Doç.Dr Ferhat Bahçeci'nin hazırladığı ve derste işlediği slaytı atıp, ilgili slayttaki konu başlıklarını da maddeler halinde yazacağım. Yine dersin içeriği ile ilgili ek açıklamalar, notlar veya ödevler olursa buradan takip edebilirsiniz.
Tavsiye:http://www.w3schools.com/ Geniş kapsamlı bir site. Çalışırken bu siteden de faydalanmanız yararınıza olacaktır.

5 Ekim 2013 Cumartesi

YAZILIM MÜHENDİSLİĞİ-1. SINIF-1.DÖNEM DERSLERİ HAKKINDA

Bu yazımda yazılım mühendisliği 1. sınıfta olan arkadaşlara veya bu bölüme ilgi gösteren kişilere, 1. dönemdeki dersleri ve içeriklerini kendi deneyimlerimi göz önünde bulundurarak öneri ve eleştirilerle anlatmaya çalışacağım.
Öncelikle yazılım mühendisliği bölümünün önemine değinmek istiyorum. Oldukça gerekli ve önemi her geçen gün artan bir bölüm. Bu programdan mezun olan kişiler dolayısyla "yazılım mühendisi" ünvanına sahip oluyor. Bu meslek dalıyla ilgili daha önce üzerinde durduğum yazıya buradan ulaşabilirsiniz.
Gelelim Yazılım Mühendisliği 1. Sınıf 1. Dönem Derslerine... Dersleri kendimce önem sırasına göre açıklamaya çalışacağım.
1-Algoritma ve Programlama
Bu ders, iki dönemde alınabilecek bir şekilde planlanmış. İlk dönem Algoritma ve Programlama-1 adı altında bu ders alınmakta. Bu derste genel olarak programlama ile ilgili kavramlar, problem çözme yöntemleri,
algoritma, akıs diyagramları vb. anlatılır. Labaratuvar kısımlarında ise problemlerin çözümlerinin bir dil 
 kullanılarak çözülmesi için gereken komutlar giriş düzeyinde anlatılır. Bir programlama diline basit düzeyde giriş yapılır. Bu programlama dili ise benim dönemimde(2011-2012) Java olarak gösterilmişti. Sonraki dönemde C dili üzerinde duruldu. İfade etmem gerekir ki bu derste şu bu programlama dilinin pek fazla önemi yok. İleriki yıllarda görülecekki pek çok farklı programlama dilleri gösterilecek.(Mesela ben 1.sınıfta Java ve C, 2.Sınıfta Pascal,Matlab ve C# programlama dillerini görmüştüm.) Pek çok farklı programlama dilinin üzerinde durulmasının amacının programlama dilleri üzerinde uzmanlaşmak değilde genel programlama mantığını öğretmek olduğu söylenir. Ben ilk sene java üzerine yoğunlaşmıştım ve bu dil ile projeler geliştirmiştim. 2. senemde ise lisedende deneyimim olan C# programlama dili üzerinde durdum ve halende bu dil ile projeler geliştirmekteyim. Programlama dillerinde uzmanlaşmak tamamen size kalmış.

25 Eylül 2013 Çarşamba

YAZILIMIN EVRİMİ

Her ne kadar darwin teorisinde anlatılan evrimi saçma bulsamda geçmişten günümüze olan yazılım için en uygun ve özet başlık bu gibi duruyor. Bu yazımda, ilk bilgisayarlardan günümüze olan yazılım sektöründeki gelişmeleri araştırıp kendi üslubumla özet bir şekilde aktaracağım.
Eniac Programlama
Eniac Programlama
5 Dönemde Yazılım Evrimi
İlk Dönem(1945-1965)
Bilgisayarların doğduğu dönemden bahsediyorum. O 30 tonluk bilgisayarlar. İlk başlarda amacı sadece savaşlarda silah olarak kullanılmakmış. (Mesela ENIAC, 2. Dünya savaşında ABD'li bilim adamları tarafından üretilmiş.Amacı daha az isabet hatalı uzun menzilli top ve füzelerin hesaplanmasında kullanılması...) Bilgisayarların üretildiği bu yıllarda yazılımlar ilk olarak yığınsal kökenli(kullanıcı ile birebir iletişimde bulunmayan,işlerin toplu olarak verilip yalnızca yazıcı çıktılarının alındığı) biçimde geliştirilmişti. Ayrıca bugünün bilinen anlamında ürün tarzında değil bütünüyle kendisi için yapılan kuruluşa özel yapılmaktaydı. Bu dönemde ilk başlarda programlama delikli kartlarla yapılıyordu. Daha sonraki dönemde(1955'lerden sonra) kullanılan programlama dillerine baktığımızda ise Fortran,Algol 58, Cobol,Lisp gibi diller gelmektedir. Piyasada IBM şirketinin ezici üstünlüğü dikkatleri çekmektedir.
İkinci Dönem(1965-1975)
Bilgisayarların geliştiği, bugünün baba bilgisayarları olarak adlandırılan çok kullanıcılı sistemlerin ortaya çıktığı bu çağda,çok kullanıcılı gerçek zamanlı yazılımlar üretilmeye başlanmıştı. Veri tabanı yönetim sistemleri önce yapılandırılmış kütük sistemleri ile ortaya çıkmıştı. Bugün bildiğimiz bir çok veri tabanı yönetim sisteminin geçmişi bu yıllara dayanır. Ürün türü yazılımlarda bu dönemde ortaya çıkmıştır. Bu dönemin programlama dillerine baktığımızda başta C olmak üzere Pascal,Basic,Snobol gibi diller gelmektedir.

24 Eylül 2013 Salı

SWEBOK

Swebok (Software Engineering Body Of Knowladge), yazılım mühendisliğinin uluslararası standartlara sahip bilgi rehberi olarak tanımlanabilir. Bir kaç meslek kuruluşu ve endüstri üyeleri arasında işbirliği gerçekleştirilerek oluşturulmuş. IEEE Computer Society tarafından yayınlanmış ve halen desteklenmektedir.
SWEBOK İÇERİĞİ
2013 yılındaki sürümünden itibaren yazılım mühendisliği çevrelerinde 15 başlık altında tanımlandı.
-Yazılım Gereksinimleri
Gerçekleştirilecek olan sistemin amacı doğrultusunda gerçekleştirilmeden önceki planlamalardır. Kullanıcının sistemin işlevleri ile ilgili beklentileridir.
-Yazılım Tasarımı
Sistem çözümleme sırasındaki mantıksal tasarımın fiziksel tasarıma dönüştürülme çabasıdır. Tasarım çalışmasının temel çıktıları olan genel tasarım, yazılım birim ya da bileşenlerinin ayrıntılı yapısı ve veri yapısı programcılar için girdi olarak alınır ve bu yapılar kullanılarak yazılımın kodları üretilir. 
-Yazılım İnşası
Tasarım sonucu üretilen süreç ve veri tabanının fiziksel yapısını içeren fiziksel modelin bilgisayar ortamında çalışan yazılım biçimine dönüştürülmesi çalışmalarını kapsar. Yazılımın geliştirilmesi için her şeyden önce belirli bir yazılım geliştirme ortamının seçilmesi gerekmektedir. 
Söz konusu ortam, kullanılacak programlama dili ve yazılım geliştirme araçlarını içerir. Bu ortamda belirli bir standartta geliştirilen programlar, gözden geçirilir, sınanır ve uygulamaya hazır hale getirilir. Üretilen kaynak kodların belirlenecek bir standartta üretilmesi yazılımın daha sonraki aşamalardaki bakımı açısından çok önemlidir. Tersi durumda kaynak kodların okunabilirliği, düzeltilebilirliği zorlaşır. Yazılımın işletimi süresince ortaya çıkabilecek sorunlar ilerde sıkıntı çıkarır ve düzeltilmesi de oldukça zaman alır.
-Yazılım Testi
Yazılım belirtimlerinin ve proje yaşam sürecindeki her bir etkinlik sonunda alınan çıktıların, tamam, doğru, açık ve önceki belirtimleri tutarlı olarak betimler durumda olduğunun doğrulanması gerekir. Proje süresince her bir etkinlik ürününün teknik yeterliliğinin değerlendirilmesi ve uygun çözüm elde edilene kadar aktivite tekrar edilir. Projenin bir aşaması süresince geliştirilen anahtar belirtimler önceki belirtimlerle karşılaştırılır. Yazılım ürünlerinin tüm uygulanabilir gerekleri sağladığının gerçeklenmesi için sınamalar hazırlanıp yürütülür.
-Yazılım Bakımı
Test işlemleri bitirilen yazılımın kullanıcı alanına yüklenmesi ve uygulamanın başlatılması gerekmektedir. Yazılım kullanıma geçtikten sonra, yaşam döngüsünün en önemli ve hiç bitmeyecek aşaması olan "bakım" aşaması başlar.
-Yazılım Konfigürasyon Yönetimi
Tüm yazılım yaşam döngüsü aşamalarının planlanması, düzenlenmesi ve izlenmesiyle ilgili bilgileri içermektedir.
-Yazılım Mühendisliği Yönetimi ( Mühendislik yönetimi )
Tüm aşamaların mühendislik disiplini içerisinde uygulanması gerekir.
-Yazılım Mühendisliği Süreci
Hem geliştirilen ürünlerin kalitesini hem de bu ürünleri geliştirmek için kullanılan süreçlerin kalitelerini belirtir.
-Yazılım Mühendisliği Araçları ve Yöntemleri
Bir sistemin gerçekleştirilmesi için en uygun olan araçlar ve yöntemler tercih edilmelidir.
-Yazılım Kalitesi
Yazılım mühendisliği çerçevesinde sözü geçen yöntem ve araçların amacı, üretilecek olan yazılımda yüksek kalite düzeylerine erişmek olmalıdır. Kalite bir çok boyutu olan bir özelliktir. Program yazıldıktan sonra düşünülecek bir konu olmaktansa, bütün geliştirme evrelerine yönelik etkinlikler ile sağlanmalıdır.
-Yazılım Mühendisliği Ekonomisi
Yazılımın önemi her geçen gün artıyor dolayısıyla büyük bir pazar payınada sahip oluyor.
-Bilgisayar Temelleri
Yazılım mühendisliğinin bilgisayar çağının başından beri sürekli artan önemi ve karmaşıklığı vardır.
-Matematiksel Temelleri
Bütün mühendisliklerin temelinde matematik vardır.
-Yazılım Mühendisliği Mesleki Uygulama
Bir meslek dalı olarak yazılım mühendisliği üzerinde durulması gereken geniş bir konudur.
-Mühendislik Temelleri
Diğer mühendislik dallarından farklı özelliklere sahip olmasıyla zaman zaman tartışma konusu olmuştur.

SWEBOK aynı zamanda Yazılım Mühendisliği ile bağlantılı disiplinleride tanımlar. Bu disiplinler şunlardır.
-Bilgisayar mühendisliği
-Bilgisayar bilimi
-Yönetim
-Matematik
-Kalite yönetimi
-Yazılım ergonomi ( Bilişsel ergonomi )
-Sistem mühendisliği

Daha fazla bilgi için ilgili siteye buradan ulaşabilirsiniz

YAZILIM MÜHENDİSİ

Yazılım Mühendisini, bilişim teknolojilerinin yazılım yaşam süreçlerini yapılandıran ve bunları sisteme entegre edip, aktif kullanıma sunulmasında başrol oynayan kişidir diye kısaca tanımlayarak konuya giriş yapayım.
Öncelikle mühendislik kavramına değinmek istiyorum. Mühendis, en az maliyetle en iyi ürünü ortaya çıkarması gereken kişidir bana göre.  Modern anlamda ise mühendis kavramını şu şekilde tanımlamışlar. "Bilim insanlarının ürettiği teorik bilgiyi tekniker ve teknisyenlerin uygulayabileceği pratik bilgiye dönüştürebilen kişidir." Yukarıdaki tanımdan yola çıkarsak yazılım mühendisi, gerçekleştirilecek olan yazılımın iskeletini oluşturan proje ekibi içerisindeki diğer kişilerin koordinasyonunu sağlayan kişidir.
Hazır yeri gelmişken yanlış anlaşılan bir algıdan da bahsedeyim. Yazılım mühendisi sadece programcı değildir. Ancak programcının tüm yeteneklerine sahip olmalıdır diye düşünüyorum. Programcı, ağırlılkı olarak kodlama, sınama işi ile ilgilenir. Yazılım mühendisinin işi daha çok insanlarla ilişkiyi gerektirir. İnsanlardan aldığı talepler doğrultusuna göre ortaya çıkacak yazılımın planlamasını yapar. Yazılımın daha çok mantıksal boyutuyla ilgilenir. Yazılım mühendisi yazılımın tüm aşamalarında yer alır.
Peki bu meslek dalı nereden çıkmış. Araştırdığımızda yazılım mühendisliği kavramı ilk olarak 1968 yılında Almanya'daki NATO toplantısında gündeme gelmiş. Bu disiplini alan kişilerse yazılım mühendisi olarak ünvanlaştırılmış. Eskiden(Günümüzdede devam etmekte) bu ünvana sahip kişiler elektrik-elektronik mühendislerinden oluşuyordu. 2000'li yıllara doğru bilgisayar mühendisleri bu ünvanı kullanabiliyorlardı. Günümüzde artık Türkiye'de de olmak üzere bir çok üniversitede bir ana bilim dalı olarak sektöre kişiler yetiştirmektedir.
Görevlerinden de bahsedecek olursam...
  • Söz konusu üretimin en az maliyet ve en yüksek nitelikli biçimde yapar.
  • Hazırlanacak yazılımla ilgili müşteri ilişkilerini kurar.
  • Müşteriden gelen talebe göre analiz ve tasarım yapar.
  • Program yazar,test eder.
  • Yazılım bittikten sonra yazılımı kullanacak kişilere yazılım ile ilgili eğitimleri verir
Görev tanımı Tübitak Bilgem'de şu şekilde tanımlanmış.
"Yazılım geliştirme projelerinin; analiz, tasarım, kodlama, birim ve entegrasyon faaliyetleriyle ilgili olarak kendine verilen görevleri yerine getirmek, yazılım birimlerinin doğrulama (test, gözden geçirmeler, vb.) ve geçerleme faaliyetlerinde görev almak, gerçeklenmesinde görev aldığı yazılım birimlerine ilişkin olarak doğrulama ve geçerleme faaliyetleri sonucunda ortaya çıkan uygunsuzlukları gidermek, sorumlu olduğu yazılım kodu ile birlikte veya yazılım koduna ilişkin olarak üretilmesi gereken her türlü dokümantasyonu hazırlamak, kendisine atanan yazılım birimlerine ilişkin yeterlilik testleri ve kabul-muayene faaliyetlerine yerinde destek vermek, kendisine atanan yazılım birimlerinin kesintisiz ve en etkin şekilde kullanımına yönelik olarak kullanıcılara yerinde destek vermek ve kullanıcıların ihtiyaç duyduğu eğitimleri sağlamak, görevinin gerektirdiği diğer yazılım destek süreçleri kapsamında üzerine düşen sorumlulukları yerine getirmek."
Artık günümüzde yazılımın uygulanamayacağı yer yok gibi. Dikkat edildiğinde çevremizdeki çoğu teknolojik aletlerin yapısında karmaşık yazılımlar yer almaktadır. "Akıllı" diye tabir edilen birimler, çeşitli yazılımlar ve yapay zeka yöntemlerinin birlikte kullanılmasıyla olagelmiştir.
Bilgisayar dünyası, baktığımızda kaba tabirle 2 şekilde kategorize ediliyor. Yazılım ve Donanım. Bilgisayarın ilk çıktığı yıllara baktığımızda sektör donanım ağırlıklıydı. Donanım maliyeti yazılımdan kat kat fazlaydı. Fakat günümüzde tam tersi bir durum sözkonusu. Donanım maliyetleri yazılımdan az olmakla beraber dönem dönem  giderek düşme eğilimi göstermektedir. Yazılım ihtiyaçları giderek artmakta, maliyet ve karmaşıklıkta buna paralellik göstermektedir. Karmaşık yazılımları gerçekleştirmek ve bakımını yapmak oldukça zor ve masraflı. Bu yüzden yazılımlar, yazılım mühendisleri tarafından istenilen düzende planlı bir proje şeklinde gerçekleştirilmektedir. Bu tertipli, düzenli geliştirme planına "yazılım geliştirme süreci" adı verilmektedir. Bu konuya da ayrı bir yazıda değinmek istiyorum.
Bu yazımda şu an öğrencisi konumunda olduğum yazılım mühendisliği disiplinin temel yapı taşı olan yazılım mühendisi kavramına değinmeye çalıştım. İnşallah ülkemizde de bu alanda kaliteli ve açığı kapatacak olan kişiler en doğru bir şekilde yetişir.

26 Temmuz 2013 Cuma

LİNQ YAPISI İLE FARKLI TABLOLAR ARASINDA İLİŞKİ KURMA

Linq yapısına daha önceki ilgili yazımda değinmiştim. Kısaca; veritabanı işlemlerini uygulama katmanında yapmamıza olanak sağlıyordu. Bu yazımda yine örneklerle konu başlığını açıklamaya çalışacağım.

Örneğin;veritabanımızda öğrenci ve veli adında 2 tane tablomuz olsun.



Uygulamamız içerisinde nesneler oluşturup bu yapıyı kulanabilememiz için aynı tablo adlarına ait sınıflar oluşturulsun. Tablolardaki her alan adları bu sınıflarda değişken olarak girilsin.

Veli Sınıfı
Öğrenci Sınıfı

21 Temmuz 2013 Pazar

EĞİTİM VE DANIŞMANLIK FİRMALARI İÇİN BİLGİSAYAR PROGRAMI

Bu yazıda eğitim ve danışmanlık hizmeti veren firmalara, özel ders veren kişi ve kuruluşlara yönelik hazırlanmış bir yazılıma değinilecektir. Yazılım artırımsal bir geliştirme süreci içerisinde gelişimini tamamlamış ve talep edilirse ek özellikler de eklenebilecektir.
Genel olarak ekran görüntüleri üzerinden programı anlatacağım.
Özel Ders Ücret Takip Programı
Program, özel ders veren eğitim ve danışmanlık firmalarının ihtiyaçlarını karşılayabilecek niteliktedir. İsteğe göre hem bilgisayar üzerinde hemde sunucu üzerinde veritabanına sahip olabilecek şekildedir. Kullanıcı adı ve şifreyle programa girildiği için herhangi bir kişinin kayıtlara ulaşması engellenmiştir.
Programın kullanımı her yaştan kişinin kullanabileceği kolaylıktadır.
Programa giriş yapıldığında sizleri aşağıdaki ekran karşılayacaktır. (Veriler tamamen örnektir.)
Özel Ders Ücret Takip Programı


















Özel Ders Ücret Takip ProgramıDevam\Ücret Takip İşlemleri : Veritabanınızda bulunan öğrenci ve öğretmenlerin ders ve ücret takibi bilgileri bu form aracılığıyla girilir ve takip edilir. Aşağıda numaralandırma yoluyla daha ayrıntılı bir şekilde anlatılmıştır.

1.Öğrencilerin bulunduğu alandır. İşlem yapılacak öğrenciyi seçmeniz gerekmektedir.
2.Derslerin bulunduğu alandır. Dersler ayarlar kısmından eklenir. Aynı zamanda ders ve öğretmen eşleştirmeleride ayarlar kısmından yapılır.
3.Öğretmenlerin bulunduğu alandır. Dersi seçtiğiniz anda bütün öğretmenlerin içerisinden sadece o derse eşleştirilmiş öğretmenler listelenir.

13 Temmuz 2013 Cumartesi

LINQ YAPISI - SORGU OLUŞTURMA

Linq ile ilgili daha önce bir yazı yazmıştım. Linq yapısını kısaca anlatmaya çalıştığım o yazıya buradan ulaşabilirsiniz.
Bu yazıda da bir linq sorgusu nasıl oluşturulur ondan bahsedeceğim. Oluşturacağımız sorguları veri kaynağından istediğimiz veriyi elde etmek için kullanacağız.
İlk önce verileri ilgili veritabanından elde etmemiz gerekecek. Linq yapısıyla veritabanından elde ettiğimiz verileri nesneler haline dönüştüreceğiz.


Yukarıdaki örnekte "Ogrenci" isminde bir sınıf oluşturdum. Veritabanı tablolarımda bulunan alanları burada değişken olarak tanımladım. Sonra sınıfın yapıcı yordamına bu alanları parametre olarak verdim. Bu sınıfın içerisinde  List<Ogrenci> logrenci=new List<Ogrenci>(); diye bir değişken tanımladım. Bu değişkeni tanımlama sebebmii aşağıda açıklayacağım.


Yukarıdaki kod bloğunda veritabanındanki "ogrenci" tablosundan çektiğim verileri yukarıda bahsettiğim logrenci dizisine ekliyoruz. Bir kere verileri eklediğimiz zaman artık veritabanı ile işimiz kalmıyor. Sorgularımızı artık veritabanına bağlanmayla değilde linq yapısını kullanarak gerçekleştireceğiz.



Yukarıdaki kod bloğunda ise bütün öğrencileri dataGrid nesnesi içerisine atıyoruz.
var vogrenci = from c in Ogrenci.logrenci select c;
sorgu yapısıyla bütün öğrencileri foreach döngüsü içerisinde teker teker dataGrid içerisine ekliyoruz.
Artık her türlü sorgulama işlemlerimizi bu yapıyı kullanarak gerçekleştirebiliriz. Bir örnek daha verecek olursam: adı "Sadık" olanları messagebox içerisinde gösteren kod parçası aşağıdaki gibidir.
Aslında dikkat ederseniz bu yapı sql yapısına oldukça benziyor. Where ifadesi de burada sql de olduğu gibi şart ifadesi olarak kullanılmaktadır.

Daha bir çok örnek verilebilir bu yapıyla ilgili. Ama asıl üzerinde durulması gereken bütün sorgulama işlemlerimizi sürekli veritabanına bağlanma şeklinde değilde linq yapısını kullarak rahatlıkla gerçekleştirebiliyor olmamızdır. Bu bize hem veritabanındaki sorgulama işlemlerini programlama dili çatısı altında oluşturmamıza olanak sağlıyor hemde hızlılığı ve verimliliği ciddi bir şekilde artırıyor.

5 Temmuz 2013 Cuma

STORED PROCEDURE OLUŞTURMA - SQL DİLİNDE IF YAPISI

Stored procedure güvenlik, hızlılık ve verimlilik gerektiren veritabanı uygulamalarında sıkça kullanılan bir yapıdır. Bu yapı ile ilgili daha önce yazdığım yazıya buradan ulaşabilirsiniz.
En basit ifadeyle stored procedure şu şekilde oluşturulur.

CREATE PROCEDURE [Procedure İsmi](
--Girilecek parametre isimleri buraya yazılacak
)
AS
BEGİN
--İlla BEGİN-END kullanmak zorunda mıyız? -Hayır, kullanılmasada olur.
END

Stored procedure ler bir defa derleniyor demiştik. Eğer her defasında derlenilmesi isteniyorsa "AS" den önce "WITH RECOMPİLE" kullanılması yeterli.

Şimdi aşağıdaki örnek resime odaklanalım. "spOgrenciEkle" isimli stored procedure oluşturulmuştur. Begin-end içerisine girdiğimizde "Declare" kod yapısı ile @bak isimli değişken oluşturulmuştur. Bu arada değişkenler oluşturulurken "declare" komutu başa yazılarak oluşturulur. Değişken isminin önünde de "@" sembolü kullanılır. Aynı zamanda değişkenin veri tipi de değişken isminden sonra belirtilir.(Aşağıdaki örnek: "declare @bak int"). Sonrasında öğrenciler tablosunda aynı T.C. Numarasına ait kayıt olup olunmadığına bakılıyor. Select sorgusundan dönen değeri @bak değişkenine atamıştık. Eğer @bak değişkeninden dönen değer sıfır olursa aynı veri olmadığı anlamına gelir. Eğer o şekildeyse veritabanına kayıt gerçekleştirmek için ilgili sql ifadesi kullanılmıştır.
IF yapısı normal programlama dillerindeki yapıya çok benzerdir. "{}" kapsam işaretlerinin yerine begin-end takısı almıştır. Şart kodlarımızı begin-end arasına yazıyoruz.

Şimdi yukarıdaki örnek resime odaklanalım. "spOgrenciEkle" isimli stored procedure oluşturulmuştur. Begin-end içerisine girdiğimizde "Declare" kod yapısı ile @bak isimli değişken oluşturulmuştur. Bu arada değişkenler oluşturulurken "declare" komutu başa yazılarak oluşturulur. Değişken isminin önünde de "@" sembolü kullanılır. Aynı zamanda değişkenin veri tipi de değişken isminden sonra belirtilir.(Aşağıdaki örnek: "declare @bak int"). Sonrasında öğrenciler tablosunda aynı T.C. Numarasına ait kayıt olup olunmadığına bakılıyor. Select sorgusundan dönen değeri @bak değişkenine atamıştık. Eğer @bak değişkeninden dönen değer sıfır olursa aynı veri olmadığı anlamına gelir. Eğer o şekildeyse veritabanına kayıt gerçekleştirmek için ilgili sql ifadesi kullanılmıştır.
IF yapısı normal programlama dillerindeki yapıya çok benzerdir. "{}" kapsam işaretlerinin yerini begin-end takısı almıştır. Şart kodlarımızı begin-end arasına yazıyoruz.
Stored procedure çağırmak için "exec" ifadesini kullanıyoruz.
exec <stored procedure ismi> varsa parametreler.
Aşağıdaki sorgu sonucunda dönen değer "0" olduğuna göre bu demek oluyorki veritabanında bu tc numarasına ait kayıt yokmuş ve bu sebepten dolayı veritabanı kayıt eklenmiş bulunmaktadır.
Bu yazıda sizlere kısaca stored procedure oluşturmadan bahsettim. Aynı zamanda sql de IF şartlı ifadesini ve değişken oluşturmayada değinmiş olduk. Stored procedure kavramıyla ilgili sorularınız varsa yorum olarak yazabilirsiniz. Bir başka yazıda görüşmek üzere. İyi çalışmalar.

STORED PROCEDURE

sadık dereköy, stored procedure anlatımı
Stored Procedure yapısının faydaları oldukça fazladır
Bu yazımda özellikle orta ve büyük çaplı projelerde olmazsa olmazlardan olan stored procedure yapısına değineceğim. En basit açıklamayla bu yapıyı bizim uygulamalarda kullandığımız fonksiyon yapısı gibi görebilirsiniz. Zaten kelime anlamı da saklı yordam, methot anlamalarına geliyor.
Konuya giriş yapmadan önce kendimden örnekler vererek bu yapıya giriş yapmak ist
edim. Ben bir proje yaparken ilk başlarda temel sql ifadelerini kullanarak veritabanı işlemlerini gerçekleştiriyordum. Nasıl oluyordu bu? Mesela en basit ifadeyle veritabanına kullanıcı eklediğinizi düşünün. "İnsert" ifadesini kullanarak işlemi gerçekleştiriyoruz. Sonra eklediğimiz kaydın veritabanında olup olmadığını kontrol etmemiz gerektiğinin farkına varıyorsunuz. Onun için "select" ifadelerini kullanarak tekrar veritabanına bağlanıp o kaydın veritabanında olup olmadığının kontrol edilmesine ihtiyaç duyuluyor. Bunun gibi daha bir çok veritabanına sürekli bağlanıp işlem yapılması gereken durumlar ortaya çıkıyor. Durum böyle olunca stored procedure kavramını kullanmak en mantıklı ve sağlıklı çözüm oluyor. O kadar fazla faydası var ki şimdi onlardan bir kısmına kısaca değineceğim.
Stored Procedure'ler veritabanı sunucularında tutulduğu için çok hızlı çalışırlar. Bunun sebeplerinden biri, bir defa derlendikten sonra bir daha derlenmeye ihtiyaç duymamalarıdır. Bir de uygulama katmanında yazmış olduğumuz koda bakalım. Burada sql kodu her çağırmada tekrar tekrar derlenmek zorunda. Büyük çaplı projelerde oluşacak zaman ve performans kaybını siz düşünün.
Programlama dili ile veritabanı dili dediğimiz kavramları birbirinden ayrı tutmaya olanak sağlıyor.
Güvenlik açısından da kullanılması mutlaka önerilen bir yapıdır. Tablo isimlerimizi ve alanların görülmemesi için bu yapıyı kullanmak şart.
Bir kere yazıp bir yerde kullanmak gibi daha bir çok faydası olan bu yapıyı kısaca anlatmak istedim. Farkı büyük çaplı projelerde daha belirgin olan bu yapıyı karmaşık veritabanı işlemleri gerektiren projelerle uğraşırken mutlaka öğrenmeniz gerekecektir.

2 Temmuz 2013 Salı

LINQ YAPISI


LINQ(Language Integrated Query-Dile Entegre Edilmiş Sorgulama)
Bu yapı bize veritabanı üzerinde gerçekleştirdiğimiz gelişmiş sorgulama işlemlerini programlama dili ile oluşturduğumuz veri yapılarımız üzerinde gerçekleştirme fırsatını sunuyor.
Bu veri yapısını C# ile nasıl kullanmaya başladım ondan bahsedeyim biraz. Sunucu üzerindeki veritabanına sürekli gidip gelerek sorgulama işlemleri yapmam gerektiği durumlar oluyordu. İnternet bağlantısının düşük olduğu durumlarda işlemler oldukça büyük zaman alıyordu. Bu da tabi kullanılabilirliği ve hızlılığı olumsuz yönde etkiliyordu. Araştırdığımda bu linq yapısı karşıma çıktı. İlk başta yapı biraz karmaşık gelsede sonra çok faydalı bir şey olduğunu anladım. Sadece verileri bir kez veritabanından yükleyip uygulamam üzerinde uygun sınıflar oluşturarak veritabanına bağımlılığı azalttım.
Dolayısıyla bu teknoloji, veritabanı ile kullanılan programlama dili arasıda kodsal bir bütünlük sağlıyor. Bu sayede veritabanındaki sorgulama işlemlerini programlama dili çatısı altında kodlarla yönetebilir hale geliyoruz. LINQ teknolojisi kullanılmadığı durumlarda uygulama katmanı ile veri katmanı birbirinden bağımsız bir görüntü çiziyor.
LINQ yapısı sayesinde veritabanından çektiğimiz verileri nesneler haline dönüştürüyoruz.
Bu yapıyı zamanım oldukça örnekler üzerinde göstererek anlatmayı hedefliyorum. O zaman daha iyi anlaşılacaktır. LINQ ile ilgili farklı konuları ayrı bir yazı dizisi şeklinde ele alıp aşağıdaki gibi bağlantı vererek paylaşıyor olacağım.

LİNQ YAPISI İLE SORGU OLUŞTURMA
LİNQ YAPISI İLE FARKLI TABLOLAR ARASINDA İLİŞKİ KURMA

25 Mayıs 2013 Cumartesi

TRACKER PROGRAMI

Bu yazımda sizlere bilgi güvenliği ve özellikle taşınabilir bilgisayarları çalan hırsızları deşifre etmek üzerine geliştirdiğim ve geliştirmeye devam edeceğim bir programdan bahsediyor olacağım.
Hemen herkesin başına gelebilecek olan elektronik eşya kayıpları günümüzde sıklıkla karşılaşılan bir durum oldu. Kayıplardan ziyade bu tür eşyaların çalınması daha olasılıklıdır. Özellikle dizüstü bilgisayarlar için bu durum söz konusu diyebiliriz. Şüphesiz eşyaların kendisi değilde içindeki veriler madur olan kişileri daha fazla tedirgin etmektedir. Bu gibi durumlar karşısında “Tracker” adında bir bilgisayar programı geliştirdim ve daha da geliştirmeye devam edeceğim.
Open Security Foundation’ın DataLossDB aracılığı ile kişisel bilgilerin kayıp, çalınma ve sızdırma kategorilerinde toplanan bilgiler dikkate alındığında;
2012 yılında 1606 olay
2011 yılında; 1090
2010 yılında; 828
2009 yılında; 727
2008 yılında; 1048
2007 yılında; 774
2006 yılında; 644
2005 yılında; 157
2004 yılında; 43
2003 yılında; 21
2002 yılında; 10 olay olarak gerçekleşmiş.
Çalıntı Notebook, %16
Web, %11
Dolandırıcılık, %11
İmha edilen doküman, %8
Çalınan bilgisayar, %6
Geleneksel Posta, %4
Çalınan Doküman, %4
E-Mail, %3
Kayıp Doküman, %3
Kayıp Medya, %3
Kayıp Sürücü, %2
Çalıntı Sürücü, %2
Virüs, %1
Kayıp Teyp, %1
Kayıp Notebook, %1
Çalınan Medya, %1
Çalınan Teyp, %1
Tanımsız, %6
Dolandırıcılık, %20
Çalıntı Notebook, %11
Web, %9
Geleneksel Posta, %5
Çalınan Doküman, %5
İmha edilen Document, %2
E-Mail Kaybı, %2
Çalıntı Medya, %2
Kayıp Medya, %2
Tanımlanamayan, %4
Hükümet, %19
Eğitim, %16
Sağlık, %17
%23 kazara,
%10 içeriden zararlı bir yazılım tarafından,
%6‘sı içeriden bir personel tarafından gerçekleştirilmiş.

15 Mayıs 2013 Çarşamba

SEN DE YAZ 2.0

Geçen yıl ilki düzenlenen "Sen de Yaz" Yazılım Projesi Yarışması'nın bu yıl ikincisi düzenlenmiştir. Organizasyon, Fırat Üniversitesi Mühendislik Fakültesi Kongre Merkezi'nde gerçekleştirilmiştir. Koordinatörü olduğum bu yarışma Yazılım Kulübü tarafından gerçekleştirilmiştir. Bu yazıda yarışma ile ilgili bilgileri sizlere aktaracağım.
Yarışmaya başvurular 24 Ocak 2013 tarihinde alınmaya başlamıştı. Maalesef yarışmaya katılım beklenenden az oldu. Bu yarışmayı düzenlemekteki en önemli amaç üniversitedeki proje konusunda kendini geliştirmeye başlamış arkadaşlara fırsatlar sunmaktı. Bu gibi organizasyonlar proje konusunda tecrübesi olmayan arkadaşlar için daha büyük bir önem taşımaktadır.
Fazla detaya girmeden direkt yarışma gününe girelim. Yarışma 14 Mayıs 2013 tarihinde saat 10:00'da standların açılmasıyla başladı. Yarışmacılara jüri ve seyirci önünde performanslarını sergilemeden önce standlarda projelerini sergilemeleri için özel standlar açtık. Bu standlarda yarışmaya katılmayıp projelerini sergileyenlerde oldu. Yazılım projelerinin sergilenmesi deyince proje yapan kişilerin etrafındakilere projelerini anlatması şeklinde düşünebiliriz.


Yarışma jüri ve seyirci önünde Kongre Merkezi Mimar Sinan Salonunda saat 14:00 gibi başladı. Yarışmaya sırayla katılan takımları listelersem:
1-Gökhan Özbek & İlkay Altınay - Plaka Tanıma Sistemi
2-Ömer Faruk Doğru - İnternet Cafe Takipçi Programı
3-Veysel Gündüzalp - Amire
4-Mehmet Aslantaş - Lord of Mafia
5-Figen Önün - Kelime Anlamını Bul
6-Serhat Erçel - NANS Asistant
7-Kamil Kalkan & Veysel Demircioğlu
8-Kerim Torun - Bilgi Yarışması

Sunumların ardından dereceye giren yarışmacıları ve projelerini yazacak olursam.
1.Mehmet Aslantaş - Lord of Mafia
İnternet üzerinden karşılıklı oynanılacak web tabanlı strateji oyunu. Java programlama diliyle yazılmış olup, kendine has algoritma mantığıyla dikkatleri üzerine çekti.
2.Veysel Gündüzalp - Amire
Program 3 ana modülden oluşmaktadır. (crm ,matbaa fiyatlandırma ve iş takip) Bu ana modüllere bağlı modüller mevcut. Örneğin, crm'in altında firma kayıt, kişi kayıt, hareket kayıt, takvim vs. işlemleri yer almaktadır. Genel anlamda matbaa otomasyonu diyebiliriz.
CRM (Customer Relationship Management) : Şirketin müşterileri ile yaptığı görüşmelerin kayıt altına alındığı sistem olarak tanımlayabiliriz. İş sadece kayıtılar ile sınırlı değil yapılan satışlarda kayıt altına alındığı için ilerde satış kayıp nedenlerinizi görebilir ona göre değişikler yapabilirsiniz.
3.Serhat Erçel - NANS Asistant
Temelde görme ve fiziksel engellilerin bilgisayar kullanımındaki verimini artırmak için yazılmış NANDS Assistant programı sesli komutlar ile bilgisayarınızı yönetebilmenize olanak tanıyor. Microsoftun Speech kütüphanesi kullanılmıştır. Program içerisinde komutlara karşılık gelen sesli ingilizce ifadeleri işleyerek bilgisayar işlemler yaptırıyor. Örnek vermek gerekirse. "Notepad" dediğimizde bilgisayar notepad ortamını sizlere açıyor. 



Dereceye giren kişilere dijimecmuadan 1 yıllık olmak üzere 6 tane dijital dergi aboneliği verilecektir.

Katılan her yarışmacıya ve bu organizasyonda emeği geçen herkese teşekkür ederim.


30 Nisan 2013 Salı

ELMS (ELECTRONIC LICENCE MANAGEMENT SYSTEM)


Elektronik Lisans Yönetim Sistemi, dreamspark için hiçbir ek ücret ödemeden her dreamspark premium aboneliğini kapsayan bir elektronik yazılım dağıtım çözümüdür. Dreamspak için ELMS bir web store aracılığıyla yazılım lisanslarının kolayca yönetilebilmesi için siz öğrencilere, öğretim görevlilerine ve personele en kolay bir biçimde kullanma olanağı tanır. ELMS ile her zaman ve her yerde ilgili yazılımları indirmek mümkündür.
ELMS kolay kullanımlı arayüzü sayesinde kullanıcı doğrulama, politika uygulama, yazılım teslim, raporlama dahil olmak üzere yazılım dağıtımı ve yazılım tedariki ile ilgili tüm işleri kolaylaştıran otomatik bir çözümdür. ELMS'nin sağladığı avantajlara kısaca maddeler halinde bakacak olursak:
-Erişim:7/24 ilgili eğitim kurumundaki öğrenciler ve öğretim görevlileri online olarak ulaşabilir.
-Özelleştirme: Bölüme ve kuruma özel tasarım yapma olanağı sağlar.
-Kimlik Doğrulama
-Hesap oluşturma özelliği ile tüm bölüm öğrencilerinin bu yapıdan faydalanabilmesini sağlamak
-Yazılım ürün anahtarı yönetimi ve dağıtımı
-Gerçek zamanlı raporlama
-ELMS tüm Microsoft ve kurum gereksinimleri ile uyumludur.
-Esneklik:Farklı anlaşmalar çerçevesinde kullanıcılar için ürün katalogları yapılandırma yeteneği
-Birden fazla dil desteği: ELMS web store 14 dilde kullanılabilinir. Bu diller;Japonca, Korece, Portekizce-Brezilya, Rusça, İspanyolca, İsveççe Türkçe, İtalyanca, Almanca, Fransızca, Hollandaca, Danimarkaca İngilizce ve Çince.
Peki dreamspark web store nasıl elde edilir?
Dreamspark için özelleştirilmiş ELMS web store almak için buradaki talep formunu tamamlamanız gerekmektedir. Bundan sonra ilgili e-posta adresine bununla ilgili bir yönlendirme maili gelecektir. Bu genellikle yaklaşık 5 iş günü kadar sürmektedir.
Daha sonrasında bu sistemle dreamspark programı kolayca yönetilebilmekte ve kullanılabilinmektedir.
Bu sisteme kaydı bulunan Fırat Üniversitesi Teknoloji Fakültesi Yazılım Mühendisliği'nin ELMS Web Store arayüzüne buradan ulaşabilirsiniz.


MICROSOFT DREAMSPARK

Microsoft aynı zamanda bir çok yönden öğrencilere yönelik teşvik ve avantajlarıyla da tanınan bir şirket konumunda. Teknolojilerini kullanma ve yazılım geliştirmeye teşvik için yaptığı bu olanakların meyvesini dünyanın en büyük bilişim firması olarak toplamakta. Microsoft düzenlediği; Microsoft Student Partner, ImagineCup, Microsoft Açık Akademi, DreamSpark vb. etkinlik ve organizasyonlar ile başta öğrenciler olmak üzere yazılım geliştirmeye ücretsiz olarak çok büyük destek vermektedir. Bu yazımda da Dreamspark programı ile ilgili bilgilendirmelerde bulunmak istedim.
Dreamspark kendi arasında standart ve premium olmak üzere ikiye ayrılmaktadır. Dreamspark standart üye olunan tüm üniversite öğrenci ve öğretim görevlilerine açık olan bir programdır. Standart üyeliğe sahip olan eğitim kurumunun öğrencileri .edu.tr ile biten e-mail adreslerini kullanarak bu programdan yararlanabilirler. Ayrıca bu programdaki kişilere Dev Center üyeliğinden de faydalanabilmesininin sağlamasıyla windows phone ve windows 8 uygulamalarının barındığı microsoft markette uygulama geliştirme inceleme ve edinme imkanı doğuyor..
Dreamspark premium ise standarttaki imkanlarla birlikte ondan daha fazla ürün kataloğuna sahip sadece 
STEM (Science, Technology, Engineering, Math) kategorisine giren bölümlerin başvurabileceği bir programdır. Bu programa sadece bölüm olarak başvurulabilmekte ve sadece başvuran bölümün öğrenci ve öğretim görevlileri programdan faydalanabilmektedir.

Örneğin; Fırat Üniversitesi Teknoloji Fakültesi Yazılım Mühendisliği'nin bu programa üyeliği bulunmaktadır. Buradan bu bölümün ilgili sayfasına ulaşabilirsiniz.
Bu programa bölüm olarak nasıl başvurulabilineceği ile ilgili merak edenler burayı inceleyebilirler. 
Dreamspark için ELMS sistemi ise bu programı daha kolay yönetebilmeye ve kullanabilmeye olanak sağlıyor. Bununla ilgili yazdığım yazıya ise buradan ulaşabilirsiniz.
Dreamspark ile ilgili sıkça sorulan sorulara buradan ulaşabilirsiniz.
Kullanım Kılavuzu: https://www.dreamspark.com/Institution/DS-Usage-Guidelines.aspx
Lisans Anlaşması: https://www.dreamspark.com/Institution/DS-EULA.aspx