ASP.NET MVC’de Mevcut Veritabanından Code First İle Model Oluşturma

Son yıllarda sık kullanılan Code First ile modelleme, var olan bir veritabanını esas alarak tersine mühendislik yoluyla yapılabiliyor. Aslında bu seçenek, Entity Framework 6.1.1 ile gelen bir özellik. O yüzden ilk olarak buradan Entity Framework 6.1.1 sürümünü indirip kuruyoruz. Örneğin anlaşılabilir olması için veritabanını oldukça basit seçtim.

1Projemize sağ tıklayıp Add->New Item->ADO.NET Entity Data Model seçiyoruz. Modelimize bir isim verdikten sonra karşımıza aşağıdaki gibi bir seçenek çıkıyor. Burada Code First From Database seçeneğini işaretliyoruz.

2Daha sonra önceden oluşturulmuş veritabanımızı belirterek connectionString ve ayarlamaların yapılmasını sağlıyoruz.

3Oluşturulan Haber.cs, Kategori.cs ve HaberContext.cs modellerini görebiliriz.

[Table("Haber")]
    public partial class Haber
    {
        public int Id { get; set; }

        [Required]
        [StringLength(50)]
        public string HaberAd { get; set; }

        [Column(TypeName = "ntext")]
        public string HaberMetin { get; set; }

        public int? KategoriId { get; set; }

        public virtual Kategori Kategori { get; set; }
    }

[Table("Kategori")]
    public partial class Kategori
    {
        public Kategori()
        {
            Haber = new HashSet<Haber>();
        }

        public int Id { get; set; }

        [StringLength(50)]
        public string KategoriAd { get; set; }

        public virtual ICollection<Haber> Haber { get; set; }
    }

public partial class HaberContext : DbContext
    {
        public HaberContext()
            : base("name=HaberContext")
        {
        }

        public virtual DbSet<Haber> Haber { get; set; }
        public virtual DbSet<Kategori> Kategori { get; set; }
        public virtual DbSet<sysdiagrams> sysdiagrams { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Haber>()
                .Property(e => e.HaberAd)
                .IsUnicode(false);

            modelBuilder.Entity<Kategori>()
                .Property(e => e.KategoriAd)
                .IsUnicode(false);
        }
    }

Web.config içinde Context adının kullanıldığı bağlantı ayarı da aşağıdaki gibi otomatik olarak oluşturulmaktadır.

<connectionStrings><add name="HaberContext" connectionString="data source=nevra-nevra\sqlexpress;initial catalog=Haber;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /></connectionStrings></configuration>

İyi Bir Bakıma Rahatsızlık Vericidir: Fargo

Franz Kafka, Aforizmalar’da şöyle der; İyi, bir bakıma rahatsızlık vericidir. 1996 yılında yapılmış filmine tam olarak bağlı kalmasa da göndermelerde bulunan ve gerçek bir hikayeyi konu edindiğini vurgulayan çarpıcı biri dizi Fargo. Dizide olup biteni(2. sezonu yakında) iki grup arasına almak istesek bu gruplar İyiler ve Kötüler olurdu mutlaka. Ama bunlar bildiğimiz ya da genel kabul görmüş özellikleri barındıran insanlar değil.

1987 yılında Minnesota eyaletinde yaşanmış bu hikayenin ana karakterlerinden Lester Nygaard bir yandan küçüklüğünden beri itilip kakılan, korkak ve beceriksiz bir sigorta şirketi çalışanını diğer yandan sessiz ve içten öldüren, masum olmayan bir adam. Bu iki karanlık karakteri büyük bir başarıyla canlandırmış Martin Freeman. Öyle ki bir diyalogla, bir hareketle hatta sessiz kalışıyla gerçek bir psikopat havası yaşatıyor her bölümde.

  Continue reading “İyi Bir Bakıma Rahatsızlık Vericidir: Fargo”

Özelleştirmeye Dair Sorunlar

Özelleştirme ifadesi, hangi dönemde sözü geçerse geçsin vatandaşı huzursuz eden ve gelecekte sorun teşkil edecek bir adım gözüyle bakılmıştır. Maliye Bakanı Mehmet Şimşek öncülüğünde hazırlanan -dev özelleştirme hamlesi, ikinci özelleştirme dalgası gibi ifadelerle anılmaya başlayan- plan, ülkenin köklü sorununu da gündeme(!) getirdi. Özelleştirme nedir, ne değildir? Çok tehlikeli midir, savunulması doğru bir altyapıya mı dayanıyor? Soracak çok şey var ve cevaplar çok da karışık değil.

Özelleştirme, temel olarak Kamu İktisadi Teşebbüsleri’nin (KİT) mülkiyetinin ve yönetiminin tümünü veya bir kısmını (en az %51) özel sektöre doğrudan ya da dolaylı yollarla devretmektir. KİT ise kamu kaynaklarını kullanarak ekonomik yaşamını devam ettiren devlet kuruluşlarını kapsayan bir kavram. Bu yazıda özelleştirilen kurumları listelemek amacında değilim, başta Maliye Bakanının ve özelleştirme taraftarlarının öne sürdüğü yorumlarının ve savunma noktalarının ne kadar bozuk bir zeminde gelişerek yayıldığını göstermek ve bu konuda fikir edinmek yeterli olacaktır.

Continue reading “Özelleştirmeye Dair Sorunlar”

Kayseri’nin İlk Hackathon’u Erciyes Teknopark’ta Gerçekleşti

Microsoft Açık Akademi‘nin destek verdiği ve Kayseri‘de yapılan ilk hackhathon etkinliği Meet4App, Android, iOS, Windows Phone ve Windows 8 platformlarında uygulama geliştirmek isteyen üniversite öğrencileriyle yapıldı. 21 Aralık’ta başlayan ve 24 saat süren etkinlikte Microsoft ürünleri kullanılarak ve MSP‘lerin de desteğiyle çok sayıda uygulama geliştirildi.

Etkinlikte yer alan katılımcılara verilen Windows Azure hesabı için de en iyi kazanımlardan biriydi.

1519933_675706945803155_745917714_o

d
Teknopark Sera’dan bir kare

İlgili Haberler

Microsoft Blog

Elektrikport

Erciyesera

Webrazzi

Facebook Etkinlik Sayfası

C# : Metin İçinde Metin Arama – 2

İlk yazıda kullandığımız IndexOf metodu yerine aynı sorunu LINQ sorguları ile çözmeye çalışacağız. Öncelikle LINQ mimarisine bakarsak, üzerinde çalıştığımız çeşitli arayüzler içeren veri kümelerinde ve veri kaynaklarında(XML, JSON vs.) sorgulama yapmamızı sağlayan ifadelerdir. Aslında LINQ yapısı programlama diline, sorgulama becerisi ekler, sorgulama ve sonuç kümesi döndürme gibi işlemleri ise sağlayıcı(provider) dediğimiz yapılar gerçekleştirir. Bu sorun için LINQ yapısının veri kümeleri üzerinde sorgulama yapmamıza imkan veren ifadeler olduğunu bilmemiz yeterli. Yazıda bir metin içinde aranan kelimeyi LINQ to Objects sağlayıcısının bize sunduğu Count metodunu kullanarak bulmaya çalışacağız.

 string metin, aranan;
 char[] noktalama= { ',', '!', '#', '$', '%', '&', '(', ')', '*', '+', '-', /*'.',*/ '/', ':', ';', '<', '=', '>', '?', '@', '[', '/', ']', '^', '{', '|', '}', ' ' };
 Console.WriteLine("Metni giriniz: ");
 metin = Console.ReadLine().ToString();
 Console.WriteLine("Aranan kelimeyi giriniz: ");
 aranan = Console.ReadLine().ToString();
 string[] kelimeler = metin.Split(noktalama);
 int adet = kelimeler.Count(kelime => kelime == aranan);
 Console.WriteLine(aranan + " kelimesi " + adet + " adet bulunmustur.");
 Console.ReadLine();

iTunes Radio Nasıl Kullanılır?

Apple‘ın yeni işletim sistemi iOS 7‘nin müzik dünyasına kattığı bir başka yeniliği iTunes Radio‘nun sıradan bir radyo olmaması için üzerinde düşünülmüş diyebiliriz. iTunes Radio şimdilik Amerika’da kullanılabilir durumda, 2014’ten itibaren İngilitere, Yeni Zelanda ve bir kaç ülkede daha ulaşılabilir olacak. Ancak şimdiden denemek istiyorsanız küçük bir çözümü var.

Gerekli olan iki şeyden biri iTunes yazılımınızı 11.1 sürümüyle güncelleştirmek (buradan indirebilirsiniz), diğeri ise ABD konumunu kullanarak Apple ID almak.

iTunes 11.1‘i kurduktan sonra altta yer alan Türk bayrağına tıklayarak United States’i seçin. Daha sonra yukarıdaki menüden AppStore’a giderek herhangi bir uygulamaya tıkladığınızda çıkacak Apple kimliği yarat seçeneğine tıklayarak hesap oluşturun. Oluşturduğunuz hesabı doğruladıktan sonra iTunes üzerinden dinlemeye başlayabilirsiniz.

30 farklı kategoriyi ya da sanatçıları seçerek istasyon oluşturabilirsiniz. Diğer bir seçenek de önceden hazırlanmış 200 istasyondan birini seçmek olabilir.

Adsız

iOS cihazınızda kullanmak için Ayarlar -> iTunes Store/App Store yolundan ABD konumlu Apple kimliği ile girmek yeterli olacaktır. Daha sonra Müzik uygulamasında iTunes Radio’nun simgesi görünecektir. Kullanımı için daha fazla bilgiyi buradaki videodan edinebilirsiniz.

Denemek isteyenlerin aklına ilk etapta ücreti gelebilir. Apple, iTunes Radio’nun tüm kullanıcılara ücretsiz olacağını ancak bu kullanımın beraberinde reklam gösterimini ve radyoları dinlerken şarkıları geçmenin sayı sınırını getirecek. Reklamları kapatmak isteyen kullanıcılar ise uygulamaya ayda 24.99 $ ücretiyle abone olmaları gerekecek.

Bir diğer soru ise Pandora kullanıcılarından gelebilir, Pandora Radio ile çalışma şekilleri benzer olan iTunes Radio’nun en önemli farkları kullanıcıların kendi seçimleriyle radyolarını oluşturabilmesi ve iTunes’dan gelen oldukça geniş müzik arşivi. Apple, hem bu iki özellikle hem de Pandora Radio’nun kullanılamadığı ülkelere (İngiltere, Kanada vs.) hizmet sağlayarak geç girdiği online radyo sektöründe önemli bir yer edinmeyi amaçlıyor.

C#: PadLeft ve PadRight Metotları

C# dilinin string sınıfı için sağladığı çok sayıda yararlı özellik bulunuyor, Pad metodu da karakter sayısının önemli olduğu işlemlerde kullanılan pratik bir metot.

PadLeft ve PadRight metotlarını kısaca açıklarsak string ifadelerimizin karakter sayısı ne olursa olsun belli bir karakter sayısına uymasını istiyorsak o sayıya tamamlamasını sağlıyor. Bir örnek olarak decimal sayıları binary olarak çevirdiğimizde soldaki 0 değerlerini göremeyiz, ancak uygulamada göstermek istiyorsak PadLeft metotundan yardım alabiliriz.

for (int i = 0; i < 16; i++)
  {
     dizi[i] = Convert.ToString(i, 2);
     dizi[i] = dizi[i].PadLeft(4, '0');
  }

Burada 0-15 arasındaki sayıları binary hale getiriyoruz ancak PadLeft metotunu kullanmasaydık örneğin 2 sayısı ’10’ olarak görülecekti. Biz string ifadenin değerine bakmaksızın 4 karakter halinde kaydetmiş olduk.

Metodun ilginç bir özelliği de aritmetik işlemlerde kullandığınızda yeni bir sayı olarak kabul etmesi. Ancak bu durum, metotların string bir ifadeyi değiştirmediğini, sadece istenen karakter sayısına tamamladığını unutmamak gerek.

string deger = "3";
int sonuc = Convert.ToInt32(deger.PadRight(2, '0')) - 1;
Console.Write(sonuc); // 29 yazdırır.
Console.Read();

Eğer string ifadenin soluna ya da sağına herhangi bir karakter yerine boşlukla doldurmak istiyorsak metoda sadece istenen karakter sayısını vermek yeterli oluyor.

string str = "'Solda 10 bosluk olacak'";
Console.Write("Pad Kullanımı");
Console.WriteLine(str.PadLeft(32));
Console.Read();

str değişkenimiz 22 karakterden oluştuğundan soldan 10 karakter boşluk bırakmak için PadLeft metoduna 32 değerini vermiş olduk. PadRight metodu da sağdan karakter doldurmak için PadLeft ile aynı mantıkta kullanılabilir.