Windows Server 2003 R2’den Windows Server 2012 R2 Migration (Yükseltme) İşlemi

Şirketimizdeki artık ıskartaya çıkması gereken Windows Server 2003 R2’yi Windows Server 2012 R2’ye migration işlemi sistem tarafında ne kadar köreldiğimi anlamama yardımcı oldu.

Migration işlemini nasıl yaptığımı soracak olursanız birinci ağızdan aşağıdaki linkten inceleyebilirsiniz. Bizzat tarafımdan 2 defa denenmiş ve sorunsuzdur, tavsiye ederim.

http://www.mcitp.gen.tr/windows-server-2003-r2den-server-2012-migration-yukseltmeyi-islemi/

Ama!

İlk seferde bütün masterları taşıyıp, global cataloguda yeni server yaptım ama eski serveri dcpromo ile kaldırdıktan sonra Active Directory komple çakıldı 🙂

Burada sebep aramadım, belki benim hatam, belkide değil ama geçiş sürecini kısa tutmak akıllıca değil onu öğrendim.

Bu deneyimimden çıkardıklarım 1 günde migration olmuyor. Eğer sizde migration yapacaksanız, bırakın 3-4 gün iki DC birlikte replication yapsın, bu dönemde logları izleyin ve anlaşamadıkları yerleri tespit edin. Neden 3-4 gün diyorsanız, araştırmalarıma göre default schema replicationları 72 saatmış. 3-4 gün sonra eski DC’yi networkten ayıracağıım ve 3 gün daha bekleyeceğim ve bu arada loglara bakmaya devam edeceğim. Eğer bir sorun yoksa eski DC’yi dcpromo ile kaldıracağım ve hyper-v ile diğer sanallarımı kuracağım.

Entity Framework An error occurred while updating the entries. See the inner exception for details.

Ana tablonuzdaki ID ile referans tablonuzda ilişkilendirdiğiniz alanın; değerlerinin birbirinden farklı olmasından kaynaklanan hatadır.

Örnek vermek gerekirse aşağıdaki gibi tablo yapımız var. TBL_KULLANICI tablomuzdaki Id ile TBL_KULLANICI_YETKI tablomuzdaki Kullanici_Id birbiri ile ilişkilidir.

TBL_KULLANICI (Id, Ad)
TBL_KULLANICI_YETKI (Id, Kullanici_Id, Baslik)

Eğer TBL_KULLANICI tablosuna yeni kayıt eklerken aynı anda TBL_KULLANICI_YETKI tablosunada yeni kayıt ile alakı kayıt ekliyorsak; Id ile Kullanici_Id aynı değer olmak zorundadır. Farklı değer olduğunda bu hata ile karşılaşırsınız.

MVC 4 ve Ben

Değişmeyen tek şey değişimdir.

Bir yazılımcı olarak ne kadar değişimlere açığız? Arkadaşlarımızın baskılarıyla ASP’den ASP.NET’e geçtiğinizde, kendi kendinize ne dediğinizi hatırlıyormusunuz? Ben “Allah benim cezamı versin, ASP.NET’e şimdiye kadar neden geçmedim” demiştim.

Geçişlerimizdeki en büyük sorun işe elimizdeki işlerin yoğunluğu ve hiç bir zaman bize yetmeyen zamandır. En azından benim düşüncem, “Ya nasıl olsa, ASP.NET ile yapılanları ASP’lede yapabiliyorum, ne gerek var” dı ama kazın ayağın öyle değilmiş.

ASP’den ASP.NET’e geçiş beni şaşırtmıştı ama ASP.NET’den MVC 4’e geçiş beni büyüledi diyebilirim.

Şunu itiraf etmem gerekir ki yazılım geliştirme süreci biraz uzun gibi olsada, aslında çok eğlenceli. Uygulamayı geliştirken yazılımın esnek olmasıyla uğraşmanıza gerek yok, zaten ister istemez esnek bir hale geliyor.

MVC 4 ile ilk hafta mı bitirdim ve elimdeki ciddi bir projeyide MVC 4 ile yapıyorum. Bu süreç içinde sizlerle paylaşacağım çok güzel bilgiler olacak.

Şimdiden ben bile sabırsızlanıyorum 🙂

SQL Server 2008 “Saving changes is not permitted” Hatası ve Çözümü

Eğer sizde oluşturduğunuz tabloyu düzenleyemiyor ve aşağıdaki gibi hata alıyorsanız yazının devamını okumaya devam edin.

Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.

Menüden Tools > Options yolunu izledikten sonra karşınıza Options penceresi açılacak. Oradan Designers sekmesinin altında Table and Database Desingers‘ı bulun ve “Prevent saving changes that require table re-creation“daki checkboxın işaretini kaldırın ve yaptığınız bu değişikliği “OK” butonuna basarak kaydedin.

MS SQL Veri Tipleri

Bu yaşıma kadar bütün web, mobil ve masaüstü uygulamalarımda MySQL kullanmış biri olarak hiç aklıma bir gün MS SQL kullanacağım aklıma gelmezdi. Bir üstadım bana yazılımcının dili olmaz derdi, demek ki yazılımcının veri tabanıda olmaz.

Bütün veri tabanlarında veri tipleri neredeyse aynı ama bir kaç farklılıklar ve değişik veri tipleride yok değil. Bana lazım oldu, sizede olabilir.

Tam Sayı ve Kesirli Sayı Veri Tipleri;

  • BigInt – 8 bayt yer kaplar ve en geniş aralığı olan sayısal veri tipidir.
  • Int – 4 bayt yer kaplar ve en çok kullanılan sayısal veri tipidir.
  • Smallint – 2 bayt yer kaplar.
  • Tinyint – 0-255 arasında 1 bayt yer kaplar.
  • Bit – 0 veya 1 değerini alır True yada False olarak kullanılır.
  • Decimal – Ondalık veya tam sayıları tutar. Genelde ondalık sayı olduğunda kullanılır.
  • Money – Bellekte 8 byte yer kaplar ve parasal değerleri tutmak için kullanılır.
  • SmallMoney – 4 bayt yer kaplar ve küçük miktardaki parasal değerleri tutmak için kullanılır.
  • Real – Hassas değerli ondalıklı sayıları tutar. Boyutu en büyük olan kesirli sayı tipidir.
  • Float – Bu veri tipi de real gibi hassas ondalıklı veri tiplerini tutar. Ancak boyutu Real’in yarısı kadardır.

Tarih Veri Tipleri;

  • DateTime – 1 Ocak 1753 ile 31 Aralık 9999 tarihleri arasında veri alır. Bellekte 8 byte yer kaplar.
  • DateTime2 – 1 Ocak 0001 ile 31 Aralık 9999 tarihleri arasında veri alır. Bellekte 8 byte yer kaplar ve 100 nano saniye hassasiyetinde tarih tutabilir.
  • SmallDateTime – 1 Ocak 1900 ile 6 Haziran 2079 tarihleri arasındaki verileri alır.
  • Date – 1 Ocak 0001 ile 31 Aralık 9999 tarihleri arasında veri alır. Ancak sadece tarih verisini tutar.
  • Time – 100 nano saniye hassasiyetinde saat verilerini tutar.
  • DateTimeOffset – Normal datetime aralığında veri alır ek olarak bölgeye bağlı olan saat farkını da tutar.

Unicode Desteği Olmayan Karakter Veri Tipleri:

  • Char – En fazla 8000 karakter alabilen ve girilecek verinin uzunluğu belli olduğunda kullanılır. Unicode desteği yoktur.
  • VarChar – Bu da char gibi en fazla 8000 karakter alabilen ancak girilecek verinin uzunluğu belli olmadığında kullanılır. Unicode desteği yoktur.
  • VarChar(Max) – En fazla 2 GB boyutuna kadar karakter verisi alır. (Max) bölümüne sayısal değer yazarsak VarChar veri tipinin maksimum uzunluğu o sayı kadar olur. Unicode desteği yoktur.
  • Text – En fazla 2,147,483,647 karakter uzunluğunda değer alabilen veri türüdür. Unicode desteği yoktur.

Unicode Desteği Olan Karakter Veri Tipleri:

  • Unicode nedir ? Bilgi İçin (http://www.unicode.org/standard/translations/turkish.html)
  • NChar – En fazla 4000 karakter tutan ve Unicode desteği olan veri türüdür ve gireceğimiz karakter sayısı belli ise bu kullanılır.
  • NVarChar – En fazla 4000 karakter alır ve Unicode desteği olan veri türüdür ayrıca gireceğimiz karakter sayısı belli olmadığında kullanılır.
  • NVarChar(Max) – En fazla 2 GB boyutuna kadar karakter verisi alır. (Max) bölümüne sayısal değer yazarsak VarChar veri tipinin maksimum uzunluğu o sayı kadar olur. Unicode desteği vardır.
  • NText – En fazla 2,147,483,647 karakter uzunluğunda değer alabilen veri türüdür. Unicode desteği vardır.

Binary Veri Tipleri:

  • Sql’de dosyaları saklamak için kullanılır.Türleri şunlardır;
  • Binary – En fazla 8000 bytelık veri saklar.
  • VarBinary – En fazla 8000 bytelık veri saklar ve girilecek byte miktarı değişken olduğunda kullanılır.
  • VarBinary(MAX) – En fazla 2 gb boyutunda veri alabilir. (MAX) değerine 2 GB’dan az olmak şartı ile boyut belirtebiliriz.
  • Image – Grafik nesneleri için kullanılmaktadır.

Diğer Veri Tipi Çeşitleri ;

  • Sql_Variant – Girilecek olan verinin tipi belli olmadığında kullanılır. Kısacası tüm türleri kapsayan genel veri türüdür.
  • XML – Xml verilerini saklamak için kullandığımız veri türüdür.
  • Hierarchyid – Bir hiyerarşi içerisinde olan yapıları saklamak için kullanılılır.
  • Geometry – X ve Y eksenindeki koordinat bilgilerini tutar.

Özel İfadeler;

  • Primary key; Oluşturulacak olan sütunun içindeki verinin o sütun içerisinde benzersiz olmasını sağlar.
  • Identity; Belirli bir sayıdan başlayıp, belirlediğimiz aralığa göre artan veya azalan bir şekilde sayısal değer üretir. Genellikle primary key ile birlikte kullanıp kimlik numarası (id) oluşturulur.
  • Default; Kullanıcı tarafından sütunda veri belirtilmeden SQL Server tarafından otomatik olarak verilen değerlerdir. Örneğin eleman tablosunda şirket sütunu olsun ve herkes aynı şirkette olduğundan bu bilgi default ile otomatik verilebilir.
  • NULL / NOT NULL ; Null kavramı boş anlamına gelmektedir. Eğer bir sütunda null olarak belirlemişsek içeriğine bir şey yazmadan dahi tablomuza kayıt ekleyebiliriz. Ancak Not Null olarak belirlersek içeriğine aldığı veri tipinden kayıt girilmesi zorunludur. Yoksa verileri kaydetmez ve hata alırız.
  • Unique ; Primary key mantığındadır. Bir tablodaki sütuna sadece tekil bilgi girilmesini sağlar. Primary key ve Unique birlikte kullanılmaz.

NuGet Konsol Komutları

Paket Arama: Get-Package -ListAvailable -Filter paket_adi veya Get-Package -Filter aranacak_kelime -ListAvailable
Paket Kurma: Install-Package paket_adi
Paket Listeleme: Get-Package
Paket Silme: Uninstall-Package paket_adi
Paketleri Toplu Güncelleme: Get-Package -updates
Paket Güncelleme: Update-Package paket_adi

Adınıza Kayıtlı Hat Sayısının Öğrenilmesi

Bilgi Teknolojileri ve İletişim Kurumu (BTK) Başkanı Tayfun Acarer, ”açık hat” olarak tanımlanan, onay ve haberi olmadan kimlik bilgileri kullanılarak yapılan aboneliklerin, mağduriyetlere yol açtığını söyleyerek, vatandaşa adına kayıtlı cep telefonu abonelik bilgilerinin kısa mesajla bildirileceğini açıkladı.

BTK sitesinde yapılan açıklamada;

“Abonelerin TC Kimlik Numaralarını kullanarak güvenli bir ortam içerisinde internet sayfamız üzerinden şahısları adına kayıtlı hat sayısını öğrenebilmelerine olanak sağlayan çalışma devam etmektedir.

Söz konusu çalışmada, yazılım tamamlanmış olup anılan hizmetin vatandaşlara sunulabilmesi için test aşamasına geçilmiştir.”

diye bu haberi 05 Aralık 2012 tarihinde vermiştik ve BTK test aşamasını bitirip hizmeti sunmaya başladılar. Mutlaka sizde kontrol edin.

Sorgulama sayfa için https://hat-sorgulama.btk.gov.tr ziyaret ediniz.

Türkiye Bilişim Derneği Antalya Şubesi 3. Genel Kurul Toplantısı

tbdAntalya’ya yaşamaya başladığım süre içinde en büyük çektiğim sıkıntılardan biri meslektaşlarımı tanıyamam ve fikir alışverişi yapamadığımdır. Benim kişisel fikrim bilişimciler arasında dayanışma diğer meslek gruplarında yok gibi geliyor.

Antalya’daki mesleki çevremi genişletmek için mesleki dernek ve kulüplerden iyisi yoktur. Bu derneklerden Türkiye çapında en organiza olanı su götürmez bir gerçekle Türkiye Bilişim Derneği (TBD)‘dir. Hemen araştırma yaparak TBD Antalya Şubesine nasıl üye olabileceğimi öğrendim. 2013 yılbaşından sonra hemen kayıdımı yaptırdım ve 12 Ocak 2013 yapılan 3. Genel Kurul toplantısına katıldım.

Derneğin en genç üyeleri olarak TBD Antalya şubesi 3. Genel Kurul toplantısına Divan başkanlığı eden Prof. Dr. Osman Saka‘nın yanında Divan üyesi olarak görev aldım. İki yılda bir seçimleri yapılan şube genel kurul toplantısında; yönetim, onur, denetleme kurullara göreve gelen dernek büyüklerimize görevlerinde başarılar dilerim ve dernek büyüklerimizin beni tavsiye etmesi sonucunda bende TBD Antalya Şubesi Denetleme Kurulunda görev almaya başladım.

Bilişimciler olarak TBD gibi dernek, vakıf ve kulüplerde birbirimize destek çıkarak, Türkiye’deki gerekli olan gelişmelere öncülük yapıp geleceğe ışık tutmamız lazım ve bunun yoluda TBD gibi sivil toplum derneklerinden geçiyor. TBD 1971 yılında kurulmuş olup, 1994 yılında toplum faydasına çalışan dernek olarak kabul edilmiştir ve derneğin 9000 bin üzerinde üyesi bulunmaktadır.

Eğer sizde Antalya, Ankara, Eskişehir, İstanbul, İzmir veya Samsun’da yaşayan bilişimci veya bilişime gönül veren biriyseniz derneğimize bekleriz. Eğer bu iller dışındaysanız, bağlı bulunduğunuz şube hakkında TBD İletişim sayfasından bilgi isteyebilirsiniz.

Antalya şubesinin kapsadığı iller Burdur, Isparta ve Muğla’dır. Bu illerde yaşayan arkadaşlar üye olmak isterse buradan nasıl üye olabileceğini öğrenebilirler.

Msn Messenger emekliye ayrılıyor!

Günümüzde eskisi gibi kullanılmasada milyonlarca kullanıcısı olan Msn Messenger hizmetini Nisan 2013’te sonlandırmaya karar verdi ama hesabınızı Skype’a devredebileceksiniz. Msn Messenger’in kapatma kararının arkasındaki en büyük nedeni ise sosyal ağ sitelerin bir hayli artması ve özellikle Facebook’un sohbet modülüne video aramasınıda ekleyince Msn Messenger kullanımı bir hayli düştü.

Bu birleşme belki kimi kullanıcıları alternatif yollara başvurmayı sevk etsede, Skype’ın sunduğu harika tecrübe ve ekran paylaşma, sabit telefonları arayabilme ve ek özellikleriyle daha zengin bir iletişim deneyimi yaşayacaksınız.

Msn Messenger servislerini son zamanlarda aksamaya başladı, bunun için bir an önce www.skype.com ziyaret ederek Skype’ın en son sürümünü hemen indirip Skype hesabınız varsa dahi Msn Messenger hesabınızla birleştirmeyi tavsiye ediyoruz.

Visual Studio 2012 RC

Microsoft muhteşem Visual Studio’nun yeni versiyonunu açıkladı. Yeni Visual Studio 2012’de .net yazılımcıları heyecanlandıracak bir çok özellik mevcut. Özellikle web geliştiricelerin işine yarayacak bir çok özellik mevcut.

Özellikler hakkında daha detaylı bilgi için http://www.hanselman.com/blog/VisualStudio2012RCIsReleasedTheBigWebRollup.aspx

İndirmek için http://www.microsoft.com/visualstudio/11/en-us