19 Kasım 2016 Cumartesi

HttpPostedFileBase mapping error at Entitiy Framework

'HttpPostedFileBases: EntityType: EntitySet 'HttpPostedFileBases' is based on type 'HttpPostedFileBase' that has no keys defined.'

This error comes with object by HttpPostedFileBase class.I am using that type to perform my processes about image files.There is sample an image class below :

  public enum UsageType
    {
        Logo,
        Profil
    }

    public class Image : BaseObject
    {
        public const int MAX_IMG_SIZE = 3072;
        public static readonly string[] ALLOWED_IMG_TYPES = { "image/jpeg", "image/png" };

        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")]
        [ReadOnly(true)]
        [DisplayName("Size")]
        public double Size { get; set; }

        [ReadOnly(true)]
        [DisplayName("Type")]
        public string Type { get; set; }

        [Required]
        [DisplayName("Alt")]
        public string Alt { get; set; }

        [Required]
        [DisplayName("File")]
        [NotMapped]
        public HttpPostedFileBase File { get; set; }

        [DisplayName("Data")]
        public byte[] Data { get; set; }

        [DisplayName("Base64")]
        public string Base64String { get; set; }

        [DisplayName("Src")]
        public string Src { get; set; }

        [DisplayName("Usage Type")]
        public UsageType UsageType { get; set; }
........................

Solution : In Entitiy Framework when you update your schema the error appears on package manager console which is I have mentioned above.You need HttpPostedFileBase object to catch image file.For that reason just type that annotation inside the code below colored blue(Not Mapped).After that migration system wont try to convert this File property to a database column.We use file object to fill other fields of our class such as size,data.etc.

Entitiy Framework 'The Name value should be a comma separated list of foreign key property names' Error

'The ForeignKeyAttribute on property 'Owner' on type 'MyProject.Models.Comment' is not valid. The foreign key name 'OwnerId' was not found on the dependent type 'MyProject.Models.Comment'. The Name value should be a comma separated list of foreign key property names.'

I have encountered that error above while i was uploading my database using package manager console.(update-database process on consele)

My problem is about with two classes named User and Comment.There is one to many relation between them.Each user can have comments more than one and every comment belongs to an owner(user).Below are my classes:

   public class Comment : BaseObject
    {
        [ForeignKey("OwnerId")]
        public virtual User Owner { get; set; }

        public Guid OwnerId;

        public virtual ICollection<Comment> Replies{ get; set; }
    }

  public class User : BaseObject
    {
       public virtual ICollection<Comment> Comments { get; set; }
    }

Solution 1 :

In such cases be sure that your foreign key is available as primitive(int,guid,etc) and sign it using data annotation that is [ForeignKey] on related object property.In this sample you have to write like that :

        [ForeignKey("OwnerId")]
        public virtual User Owner { get; set; }

        public Guid OwnerId;

! Don't forget that which key is going to be used  for Owner object.

Solution 2 :

And also you need to declare your primitive key carrier as property.Not like above.

public Guid OwnerId{get;set;}



31 Ekim 2016 Pazartesi

The Visual Studio component cache is out of date. Please restart visual studio. Error !!!

Bugün arkadaşın MsSql üzerinde New Query derken ekranda beliren bu hata üzerine kafa patlattık.İnternette yaptığım araştırmalarda genellikle Visual Studio 2015 kullanırken meydana geldiği söyleniyor. Arkadaş,ilginçtir MsSql üzerinde bu hatayı aldı.Bulduğumuz çözüm altta ki fotoğrafta görünen dizinde var olan dosyayı silmek.Ardından VS'yi veya MsSql'i tekrar baştan başlatmak.Umarım işinize yarar.



Dizin : AppData>>Local>>Microsoft>>Visual Studio>>Version Folder

30 Ekim 2016 Pazar

Neden Lig TV'nin Bir Videosu Kadar Değerli Değiliz?

        Geçtiğimiz günlerde Lig Tv'nin web sitesine girip bir maç özetine bakayım dedim.Reklamlardan sıyrılabilirseniz ulaşmak istediğiniz 3-5 dakikalık videoya ulaşabiliyorsunuz.Daha acı yanı bu 3-5 dakikalık özet videolarını,teknoloji kullanmayı beceremeyen vatandaşımızı saatlerce ilgili kanallarda az sonra maçın özet görüntüleri diyerekten bekleterek acı çektirme amacıyla kullanıyorlar.Ne yazık ki ülkemizde futbol keyif anlamında bu kadar yerlerdeyken ve aynı zamanda kalitesiz iken halen var olan ilgi devam etmektedir.Hadi bir maçı izlemek bu kadar maliyetliyken bu topraklarda maçın özetini izlemek için televizyonların karşında bekleyenlere neyin acısın çektirilmek isteniyor? Siz bize direk para kazandırmadınız onun için saatlerce reklama ve saçma sapan oynanmış maçın davasına yönelik yorumlara maruz kalacaksınız mantığı mı? Evet,ne var! İnsanlar bu hale getiriyor bu durumu,madem onlarda izlemesin diyebiliriz.Peki her şeyi geçtim şuna ne diyeceğiz? İzlediğim videoların altında bir yasal uyarı dikkatimi çekti.Uyarıda şöyle diyordu:

Yasal Uyarı:

www.ligtv.com.tr web sitesi içerisindeki her türlü yazılı ve görsel (video, fotoğraf, vs) içeriğin bilgisayara indirilmesi (download edilmesi), kopyalanması, çoğaltılması, bir web sitesinde veya diğer herhangi bir mecrada yayınlanması, bir web sitesinin içinde frame, i-frame ve benzeri şekillerde gösterimi, izin alınmadan link verilmesi yasaktır. Aksine davranışlar Fikir ve Sanat Eserleri Kanunu uyarınca suç teşkil edecek olup, bu tip davranışlarda bulunan www.ligtv.com.tr sitesinin kullanıcıları, www.ligtv.com.tr web sitesinin sahibi olan Digital Platform İletişim Hizmetleri A.Ş'ye cezai şart olarak her bir ihlal için 25.000 USD'yi (Yirmibeşbin Amerikan Doları) ödemeyi, bu cezai şartın fahiş olmadığını ve mahkemelerden tenkisini talep etmeyeceğini kabul, beyan ve taahhüt eder.

        Burada yazılı olan şey klasik hak ihlallerine karşı bir şirketin sergilediği davranış biçimi.Peki 25 bin AMERİKAN DOLARI mevzusu nedir yahu? Ne zamandan beridir dolarlarla konuşuruz oldu güçlü Türkiye'nin güçlü şirketleri. Bu bir kenara 25 bin doların ne demek olduğunu düşündüğümde herhalde insan öldürmek bu kadar pahalı değildir bu ülkede diye aklımdan geçirmiyor değilim ki gerçekten de öyle.Şimdi soruyorum boktan bir futbol maçının videosunu bir şirketten izinsiz başka bir yerde yayımlamanın bedeli asgari ücretin 1300 TL olduğu bir ülkede 25 bin Amerikan Doları olduğu aşikarken otobüste açık giyindi diye bir kadını tekmeleyen şahsa ne ceza uygulayacağını bilmeyen hakimler yasaları başka yerde mi sorguluyorlar? İzinsiz bir adet futbol videosu paylaşımı 25 bin dolar,iki adet 50 bin dolar iken peki kadın tekmelemenin cezası nedir? Bütün siyasi partilere sesleniyorum: Neyde uzlaşıp durup maddeler ekliyorsunuz anayasaya ? Daha bu ülkenin yasalarında kadın tekmelemenin net cezası yok ama futbol maçı yayımlamanın cezası ortada.Pes doğrusu !!!

22 Ekim 2016 Cumartesi

Windows 10 Continuum Nedir ? (Telefonlar Bilgisayarların Yerini Alabilir mi ?)

     
         Windows 10 işletim sistemiyle beraber bir çok şey değişecek gibi görünüyor.Öncelikle Windows 10 ile Microsoft'un yapmaya çalıştığını görmeye çalışalım.Bütün cihazlarda kullanılan ortak bir işletim sistemi.Ne anlama geliyor bu ? Xbox olsun,kişisel bilgisayarımız olsun,cep telefonlarımız olsun,sanal gerçeklik gözlükleri ve diğer akıllı cihazlar olsun eğer bunlarda Windows 10 işletim sistemi varsa artık ortak bir pazardan beslenecekler demek oluyor.Peki daha önceden işler nasıl yürüyordu ? Aslında sıkıntılar genelde yazılım üreticileri üzerindeydi diyebiliriz.Çıkarılan ürünler mobil için ayrı bir proje olarak geliştiriliyordu,mobil için ayrı geliştiriliyordu.Microsoft'un UWP(Universal Windows Platform) hamlesiyle en azından Windows ayağında geliştiriciler rahatlayacak gibi duruyor.Nedeni UWP projesi olarak oluşturulmuş bir ürün Windows 10 yüklü bütün cihazlarda çalışacak olması.Ne gibi faydası var? Geliştiricilerin az uğraşla çok kullanıcıya ulaşmasını sağlaması(Windows 10 ile beraber gelen Windows Store sisteminin Linux'ta olan paket kavramının para kazanılabilen halini alması sonucu masaüstü kullanıcılarına ürünü ulaştırma sıkıntısı çözülmüştür) ve dolayısıyla kullanıcıya daha çok uygulamaya erişim avantajı sağlaması bekleniyor.Muhtemelen şimdiye kadar aşina olduğumuz eski programların yeni nesil cihazlarda çalışmasıda bekleniyor.O nasıl olacak,Desktop Bridge ile.



        Desktop Bridge ile Win32,.Net,Windows Form,COM uygulamalarını(yani şu ana kadar kullandığımız bütün masaüstü programları) Windows 10 uygulamasına çevirebiliyoruz.Bununla beraber şimdiye kadar kullandığımız gelmiş,geçmiş bütün programların yeni nesil cihazlarda örneğin mobil olanlarında çalışabilir hale gelmesi hayal değil gibi duruyor. Daha çok ayrıntı için bu linkten incelemenizi tavsiye ediyorum.

        Peki nedir bu Windows 10 Continuum ? Bir Windows 10 işletim sistemi yüklü telefon ile sanki bir bilgisayar kasasıymış gibi çalışabilmemize olanak sağlayan teknolojidir.Burada aslında Windows 10 durumuna takılmamak gerekiyor. Burada asıl dikkat etmemiz gereken mesele bir mobil cihazı sanki bir bilgisayarmış gibi kullanabilmemiz.Sundukları dışarıdayken cebimizde akıllı bir telefonla standart olarak yapabileceklerimiz veya o telefonla birlikte monitor,klavye,mouse yardımıyla masaüstü bilgisayar deneyimi yaşamak.Wifi üzerinden ilgili cihazlara bağlantı yapabildiğimiz gibi telefonumuzu yerleştirebileceğimiz Microsoft Display Dock denen aparatla bağlantımızı sağlayabiliyoruz.


        Microsoft Display Dock denen bu aparatın üzerinde USB girişleri,HDMI Portu,USB Type-C portları mevcuttur.Ayrıntılarını yukarıda vermiş olduğum link üzerinden cihazın sayfasında bulabilirsiniz.
        



        Düşünsenize artık cebinizdeki telefonu çıkarıp kişisel bilgisayar gibi kullandığınızı.Yani telefonunuzun donanımını bir bilgisayar kasası gibi kullandığınızı.Taşınabilir bilgisayar kavramına çok daha farklı bir yerden bakmamıza neden olabilecek bir gelişme.Halihazırda mevcut akıllı telefonların donanım güçleride kişisel bilgisayarların performanslarına yaklaşmaya başladı dersek yalan olmaz heralde.Örneğin şu an program yazdığım ve boş zamanlarımda Dota 2 gibi bir oyunu oynadığım Asus laptopumun RAM'i 3 GB sizin cep telefonunuzun ki kaç? İleride cebinizden çıkardığınız telefonunuz ile GTA V oynayabildiğinizi,göz sağlığınız açısından daha uygun bir monitorde video izlediğinizi,Word,Excel veya Photoshop gibi uygulamaların her ayrıntısını rahat bir şekilde kullanabileceğiniz bir ekranda telefonunuzu kullanarak işlerinizi halledebildiğinizi göreceğimiz günler yakın diyebiliriz.Belkide ekonomik durumların sıkışık olduğu dönemlerde telefon ve bilgisayar isteyen çocuğunuza bir Continuum destekli telefon alarak bir taşla iki kuş vuran ebeveyn olabilirsiniz.Telefon demişken geçenlerde karşılatığım bir cihazın inceleme videosunu paylaşmak istiyorum.HP Elite X3 işte karşınızda,şov başlasın.


20 Ekim 2016 Perşembe

DevExpress's GridView,WriteXlsToResponse Doesn't Display Image Column

        DevExpress in GridView lerinde Excel çıktısı alırken kullanılan ASPxGridViewExporter sınıfının WriteXlsToResponse fonksiyonu ile alınan raporlarda GridViewDataBinaryImageColumn(byte[] tipinde)lar çıkmıyordu.Yani Image dosyalarını excel raporlara dökümde sıkıntı oluyordu.Onun yerine altta ki kodu denediğinizde sorun hallolmuş olacaktır.

        ASPxGridViewExporter1.WriteXlsxToResponse(new XlsxExportOptionsEx { ExportType = ExportType.WYSIWYG });

19 Ekim 2016 Çarşamba

Debriyaj Üst Merkezi,Vites Geçmiyor Problemi(ÇÖZÜLDÜ)

        Doblo 1.9 JTD 2004 Model araca sahibim.Bir haftasonu ailemle beraber bir yere gideceğimiz sırada viteslerin zor geçtiğini farkettim.(Geçiş yapamama nedeninizin paspas olmadığından emin olun!) Acil işimiz olduğundan o şekilde yola koyulduk ki şükür başımıza bir iş gelmedi.Yolda giderken vites geçişleri eski normal haline döndü.Ertesi günü tekrar arabayı çalıştırdığımda bu sefer 1.vitese bile geçiremediğim bir vaziyetle karşılaştım.

        Problem,motor çalışırken vites geçişi yapamıyorum,kapalıyken yapabiliyorum.Şanzıman yağ kaçırma problemi vardı arabanın.İnternette yaptığım araştırmalarda yağın etkileyebileceği veya havaların soğuk olmasınında bu durumu yaratabileceğinden bahsediliyordu.Motoru kapatarak 1.vitese aldığım arabamı çalıştırarak en yakınımda ki ustanın yolunu tuttum.Yukarıda fotoğrafta gördüğünüz debriyaj üst merkezi problemi olduğunu söyledi.İlgili parçanın temini ile sorun çözülmüştür.Şu an geçişlerle ilgili hiç bir problem kalmadı.2016 rakamlarıyla 150-200 arası değişen bir fiyatı var.

12 Ekim 2016 Çarşamba

Entity Framework: Solution of foreign key constraint may cause cycles or multiple cascade paths?


While I was working on a Project that is ASP.NET MVC using Entity Framework as ORM, I have encountered an error was writen on nuget packet  manager console.It says 'Introducing FOREIGN KEY constraint 'FK_dbo.Skill_dbo.Image_ImageId' on table 'Skill' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.' which spotted after I typed 'update-database' commend to update my tables on sql server.

My code contains two class here.As shown below,these tables are Skill and Image.

public class Skill


   {
        [
Key]

         public int Id { get; set; }

         [
MaxLength(50)]

         public string Name { get; set; }

        [
MaxLength(50)]

        public string Title { get; set; }

       [
MaxLength]

       public string Description { get; set; }

       [
MaxLength]

       public string Lore { get; set; }

  
    [ForeignKey("ImageId")]
      public virtual Image Image { get; set; }

      public int ImageId { get; set; }


      [
MaxLength(20)]

      public string ManaCost { get; set; }

      [MaxLength(20)]

       public string CoolDown { get; set; }

}



public class Image
{
      [MaxLength(2083)]

      public string OriginalSource { get; set; }

      [MaxLength(2083)]

       public string ServiceSource { get; set; }

       [MaxLength(2083)]

       public string AppSource { get; set; }

       [Key]

       public int Id
      {
        
get;

         set;
       }



       [
MaxLength(50)]

        public string Name
      {
        
get;

         set;
       }



       
public DateTime? CreateDate
       {
        
get;

         set;
         }



        
public DateTime? UpdateDate
       {
        
get;

         set;
        }
}  


! SOLUTION : Skill table has a relationship with Image table but Image table does not.Assume that a skill has image data whose id is 77.After that I want to remove the image with id=77,what is gonna happen? Lets discuss what we have until now.We have Skill and Image tables.Inside Skill table there is a skill data that has an image whose id is 77.Inside the Image table we have an image as we said before number 77. I  want to remove id's 77 from the Image table.But also we have not NULLABLE image column inside Skill table.The skill row that is connected with the image data  will not reach to the image date after removing process.Thus,SQL wont give us permission to do this.Solution is simple. We need to allow image column to be nullable inside Skill table.That give us chance to delete an image data and set skill data's image column NULL.Just do it inside Skill class as you see below.

public int? ImageId{get;set;}   or public Nullable<int> ImageId{get;set;}

If your problem looks more complicated than mine or my solution is not fit for your code also I prefer you to check this link out.

21 Eylül 2016 Çarşamba

Microsoft Will No Longer Serve Ads That Use Older Advertising SDK

"Starting in January 2017, we will no longer serve banner ads to apps that use older advertising SDK releases from Microsoft. In order for your app to continue to receive banner ads in January 2017, you may need to update your app to use the latest advertising SDK and resubmit your app to the Store. To determine whether your app is affected by this change and learn how to update your app if necessary, see the instructions here

To provide some additional context about this change, we are removing support for older advertising SDK releases that do not support a minimum set of capabilities, including the ability to serve HTML5 rich media via the Mobile Rich-media Ad Interface Definitions (MRAID) 1.0 specification from the Interactive Advertising Bureau (IAB). Many of our advertisers seek these capabilities, and we are making this change to help make our app ecosystem more attractive to advertisers and ultimately drive more revenue to you. 

We recommend that you make the required updates soon to leave time to resolve any issue you encounter. Additionally, early completion means that your apps will be ready for the winter holiday season when we tend to have the highest advertising demand. 

If you encounter any issues or you need assistance, please contact support. "

     Today I recieved this mail from Microsoft Developer Commumications.It says that Microsoft wont serve ads to our applications which use older SDK (Anyhow,all of them were created by OLD System). After now It seems we need to upgrade our application to better systems. What do you mean with better system? I mean UWP(Universal Windows Platform),not Windows Phone 8.1 Project.I think the time came to build UWP application.


     The migration of my applications is hard work for me to have not enough time.But I can create new applications for UWP.This is what i need to focus on after January 2017. Maybe i would change my apps status for getting paid.It might be an eve to work on cross-platform progrraming,windows universal app,monogame...

25 Şubat 2016 Perşembe

Ve Microsoft Xamarin'i Satın Alır

     
        Microsoft 2013'ten beri geliştiricilerin Visual Studio üzerinde en kolay şekliyle Native uygulamalar geliştirebilmeleri için Xamarin ile partnerlik yürütüyordu.Sonunda bu satın alma gerçekleşti.Xamarin,.C# dili ile(şu anda programlamaya nereden başlamalıyım sorusunun muhtemel cevabı olan dil) piyasada bulunan aklınıza gelebilecek bütün platformlara uygulama geliştirme imkanı sunuyor.Örnek olarak bazıları Windows,IOS,Android mobil uygulamaları,Linux,Windows,Mac masaüstü uygulamaları,ve Monogame(Eski XNA) ile neredeyse bütün oyun platformları.

       2016 yıldır belkide uygulama geliştirmek için şu andan daha iyi bir zaman olmadı.Tabiki de öyle muhtemelen daha iyiside olacak.Ama şu an bizi bekleyen market potansiyeli ve SDK bolluğu yüzünden ne yapacağımızı şaşırmıyorda değiliz.Bence Android SDK mı yok Xamarin mi,yok Unity mi yok Unreal mı ... diye giden kıyaslara hiç girmeyin.Tüketim mi,üretim mi? Asıl mesele bu konuda taraf olmaktan ibaret.Dünya üzerinde çok güzel uygulamalar,web siteleri vs mevcut,bunları tüketmekte bir o kadar güzel ve eğlenceli.Ama bir kere üretim kısmına bulaşmış kimseler için işler tüketmek kadar kolay değil.O yüzden üretim kısmında isek bir şeyler tasarlamak istiyorsak zaten kısıtlı olan imkanlarımızı doğru kullanmaya çalışalım.Sadece Java ile uğraşmış tiplerin boşverin diğerlerini demesini veya .NET'çilerin tam tersini söylemesine aldırış etmeyin.Siz mümkünse hepsini deneyin çok fazla zamanınız yoksa bir taşla iki kuş vurma platformlarına bir göz atın.Xamarin bu durum için şu an piyasada en uygun konumda diyebiliriz.

        Xamarin ile Visual Studio ortamında C# dili ile örneğin Android veya IOS için uygulama yazabiliyorsunuz.Performans şöyle böyle diyen kişilere kulaklarınızı tıkayınız.Biz bir şeyler üretebilmenin peşindeyiz.Eğer varsa Java ile bütün platformlara mobil uygulama yazabileceğimiz bir şeyler veya Objective-C ile Android veya Windows Phone onuda kullanırız.Microsoftun zaten birlikte çalıştığı Xamarin'i satın almasından sonra direk Visual Studio içerisinde bütün Xamarin platformlarına ekstra bir ücret ödemeden ulaşmamız en büyük temennim.

        Beni en çok heyecanlandıran şey ise Monogame'in Visual Studio ortamında C# ile aklınıza gelebilecek bütün platformlara oyun programlama desteği verebilecek olması.Monogame'in 'Write once,Play everywhere' sloganı indie geliştiricilerin ağzını sulandırıyor.(XNA 5 mi geliyor?) Umarım bu konudada işler biz geliştiricilerin dilediği gibi gider.Android veya IOS için Monogame ile oyun geliştirmek C# bilenler için çokta zor olmayacaktır.

        Bir sonraki Visual Studio sürümünü merakla bekliyor olacağız.O zamana kadar Windows 10 Universal Project konusunu incelemenizi öneririm.Artık eskisi gibi mobile ayrı masaüstüne ayrı tablete ayrı uygulama yazma devri bitiyor gibi.

        Yazımı yazarken dinlediğim Metallica-Fade to Black şarkısıyla ve ayrıca ilk XNA oyunum Paint Trek'in örnek videosuyla bitiriyorum,hoşça kalın.