• 23-03-2021, 20:08:31
    #55
    imas adlı üyeden alıntı: mesajı görüntüle
    Merhaba Hocam,

    İnternetten araştırmama rağmen bir cevap bulamadım daha doğrusu derdimi anlatamadım Google'a.

    Sorum şöyle:
    Asp.net MVC tarafında geliştirme yapmaktayım. Sizden fikir yada araştırma yapacağım konuyu söylemenizi istiyorum. En basit örnek ile ürün listelerken ürüne ait seçenekleri (k=kırmızı,s=siyah,y=yeşil gibi) select nesnesine dolduruyorum kullanıcı renk seçeneğini seçip sepete ekleme methoduna değerleri gönderiyor ve sepete ekliyorum. Ancak ürüne ait seçenekleri tarayıcıda incele diyerek value değerini değiştirip sepete ekle diyebilir ve yani k=kırmızı değerini p=kırmızı yapabilir ve ben gelen renk detayının eklenen stok için olup olmadığını veritabanına ilgili stok için sorgu çekerek kontrol etmem gerekiyor. ama bu da yavaşlığa sebep olurken bana mantıksız geliyor. Doğru olan işleyiş ve yol nedir onu öğrenmek istiyorum.

    Yani benim select nesnesine dolduruduğum değerler post edilirken gerçekten benim doldurduğum değerler mi bunu kontrol etmek istiyorum

    Teşekkürler.
    Merhabalar,

    Öncelikle şunu söylemek istiyorum; Form datalarından gelen kritik bilgileri backend kısmında mutlaka kontrol etmelisiniz.

    1. Önerim; Bu tarz verileri form üzerinde şifreleyerek göstermeniz, controller kısmında ise o şifreyi çözerek işlem yapmanız.
    Herhangi bir şifreleme yöntemi kullanabilirsiniz. Zaten kullandığınız şifreleme yöntemi size özel olacağı için, herhangi biri onun yerine ne yazarsa yazsın controller'da yapacağınız basit bir if kontrolü ile tespit edebilirsiniz.
    Örneğin;
    <select name="Varyant">
    <option value="1a221">Kırmızı</option>
    <option value="2fg44">Beyaz</option>
    </select>
    Buradaki value bilgileri sizin oluşturduğunuz bir algoritma ile şifrelenmiş durumda.
    Controller;
    public JsonResult KayitYap(Urun model)//ürün bilgilerini içeren sembolik sınıfımız
    {
    string varyant = SifreCozmeMethodu(model.Varyant);//select elementinin seçili value'sunu şifre çözme fonksiyonuna göndererek şifrelenen değerin çözülmesini sağladık.
    //... diğer işlemler
    }
    
    Not: Bu örnek genellikle ID vb kritik bilgilerin saklanması ve çözümlenmesi için kullanılır. Siz select üzerinden örnek verdiğiniz için bende yukarıdaki örneği yazdım. Select vb elementler için 2.önerime göz atmanızı öneririm.
    2.Önerim; Özellikle e-ticaret sitelerinde varyant eklerken(renk, tür, boyut vb.) oluşturmuş olduğunuz varyantlar veritabanına şifrelenerek eklenir. Dolayısı ile herhangi bir şifreleme işlemine gerek kalmadan işlemi gerçekleştirebilirsiniz. Örneğin GUID olarak eklediğiniz bir bilgiyi, kişi kaynak koddan değiştirse de, controller kısmında kayıt ekleme-güncelleme gibi işlemlerde ilgili kayıt veritabanında bulunamadığı için hata verecektir. İşlem sonlanacaktır.

    Birkaç farklı yöntem daha var bu konu için. Yukarıdaki örneklerden yola çıkarak kendinize göre bir algoritmada oluşturabilirsiniz. Sınırı yok

    İyi çalışmalar
  • 24-03-2021, 11:35:22
    #56
    umutulukurt adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,

    Öncelikle şunu söylemek istiyorum; Form datalarından gelen kritik bilgileri backend kısmında mutlaka kontrol etmelisiniz.

    1. Önerim; Bu tarz verileri form üzerinde şifreleyerek göstermeniz, controller kısmında ise o şifreyi çözerek işlem yapmanız.
    Herhangi bir şifreleme yöntemi kullanabilirsiniz. Zaten kullandığınız şifreleme yöntemi size özel olacağı için, herhangi biri onun yerine ne yazarsa yazsın controller'da yapacağınız basit bir if kontrolü ile tespit edebilirsiniz.
    Örneğin;
    <select name="Varyant">
    <option value="1a221">Kırmızı</option>
    <option value="2fg44">Beyaz</option>
    </select>
    Buradaki value bilgileri sizin oluşturduğunuz bir algoritma ile şifrelenmiş durumda.
    Controller;
    public JsonResult KayitYap(Urun model)//ürün bilgilerini içeren sembolik sınıfımız
    {
    string varyant = SifreCozmeMethodu(model.Varyant);//select elementinin seçili value'sunu şifre çözme fonksiyonuna göndererek şifrelenen değerin çözülmesini sağladık.
    //... diğer işlemler
    }
    
    Not: Bu örnek genellikle ID vb kritik bilgilerin saklanması ve çözümlenmesi için kullanılır. Siz select üzerinden örnek verdiğiniz için bende yukarıdaki örneği yazdım. Select vb elementler için 2.önerime göz atmanızı öneririm.
    2.Önerim; Özellikle e-ticaret sitelerinde varyant eklerken(renk, tür, boyut vb.) oluşturmuş olduğunuz varyantlar veritabanına şifrelenerek eklenir. Dolayısı ile herhangi bir şifreleme işlemine gerek kalmadan işlemi gerçekleştirebilirsiniz. Örneğin GUID olarak eklediğiniz bir bilgiyi, kişi kaynak koddan değiştirse de, controller kısmında kayıt ekleme-güncelleme gibi işlemlerde ilgili kayıt veritabanında bulunamadığı için hata verecektir. İşlem sonlanacaktır.

    Birkaç farklı yöntem daha var bu konu için. Yukarıdaki örneklerden yola çıkarak kendinize göre bir algoritmada oluşturabilirsiniz. Sınırı yok

    İyi çalışmalar
    Cevabınız için teşekkür ederim. Anlattığınız mantığı anladım ancak n11 sitesini incelediğimde ve hepsiburada sitesini incelediğimde varyant seçeneklerinin şifrelenmemiş olduğunu fark ettim. Buradaki veri güvenliği mantığı nasıl çalışmaktadır bunun hakkında bilginiz var mı acaba. Örnek olarak hepsiburada sitesindeki telefon için kodları incelediğimde mavi renk için data-value değerinin yine "mavi" olduğunu gördüm şifrelenmiş bir değer yok ancak data-value değerini console üzerinden değiştirmeme rağmen sorun oluşmadı yine mavi renk seçilebildi?

    Örnek ürün:
    link: https://www.hepsiburada.com/samsung-...-hbv00000qxqia
  • 24-03-2021, 14:48:39
    #57
    imas adlı üyeden alıntı: mesajı görüntüle
    Cevabınız için teşekkür ederim. Anlattığınız mantığı anladım ancak n11 sitesini incelediğimde ve hepsiburada sitesini incelediğimde varyant seçeneklerinin şifrelenmemiş olduğunu fark ettim. Buradaki veri güvenliği mantığı nasıl çalışmaktadır bunun hakkında bilginiz var mı acaba. Örnek olarak hepsiburada sitesindeki telefon için kodları incelediğimde mavi renk için data-value değerinin yine "mavi" olduğunu gördüm şifrelenmiş bir değer yok ancak data-value değerini console üzerinden değiştirmeme rağmen sorun oluşmadı yine mavi renk seçilebildi?

    Örnek ürün:
    link: https://www.hepsiburada.com/samsung-...-hbv00000qxqia
    Merhaba,

    Ekran görüntüsünü ilettiğiniz elementler üzerinde farklı farklı data-bind eventları tanımlanmış. Bu eventların ne iş yaptığını bilmeden net olarak "şu şekilde yapmışlar" demek pek mümkün değil.
    Ben size 2 farklı yöntem söylemiştim, yukarıdaki kod bloguna benzer bir yöntem daha söyleyeyim;
    JS yardımı ile sadece click eventında bir hidden elementin üzerinde tutabilirsiniz. Böylelikle mouse click event'ı çalışmadığı sürece orada değerler değişse de form gönderilirken siz tuttuğunuz hiddendan alırsınız ve böylelikle console kaynak kısmında değişiklik yapılmasının önüne geçmiş olursunuz.
    Not: Bu yöntemi hemen site üzerinde test etmek isterseniz hayal kırıklığına uğrayabilirsiniz. Çünkü bu tarz veriler genellikle olduğu şekliyle tutulmaz, şifrelenerek tutulur.

    İyi çalışmalar
  • 24-03-2021, 20:44:22
    #58
    Hocam merhabalar ben xox oyunu yapmaya çalışıyorum. Oyun tek bilgisayardan oynanacak multiplayer ama tek bilgisayardan oyuncular sırası ile X ve O şeklinde oynayacak. Bununla ilgili tic tac toe c# web app veya tic tac toe c# asp.net veya tic tac toe c# mvc gibi bir sürü arama yaptım fakat bulamadım.
  • 24-03-2021, 21:03:35
    #59
    Bruuzy adlı üyeden alıntı: mesajı görüntüle
    Hocam merhabalar ben xox oyunu yapmaya çalışıyorum. Oyun tek bilgisayardan oynanacak multiplayer ama tek bilgisayardan oyuncular sırası ile X ve O şeklinde oynayacak. Bununla ilgili tic tac toe c# web app veya tic tac toe c# asp.net veya tic tac toe c# mvc gibi bir sürü arama yaptım fakat bulamadım.
    Selamlar,
    Az önce Google'da yaptığım araştırmada, C# ile geliştirilen bir çok XOX oyununun kaynak kodları ile yayınlandığını gördüm.
    http://www.gorselprogramlama.com/gelismis-xox-oyunu-c/ mesela bunda çoklu oyuncu desteği de var.
    Bunlardan bir tanesini baz alıp, istemiş olduğunuz özelliklerde kendiniz geliştirebilirsiniz.

    İyi çalışmalar
  • 24-03-2021, 21:06:05
    #60
    umutulukurt adlı üyeden alıntı: mesajı görüntüle
    Selamlar,
    Az önce Google'da yaptığım araştırmada, C# ile geliştirilen bir çok XOX oyununun kaynak kodları ile yayınlandığını gördüm.
    http://www.gorselprogramlama.com/gelismis-xox-oyunu-c/ mesela bunda çoklu oyuncu desteği de var.
    Bunlardan bir tanesini baz alıp, istemiş olduğunuz özelliklerde kendiniz geliştirebilirsiniz.

    İyi çalışmalar
    Evet hocam ben de baya bir araştırdım fakat benim aradığım web form olarak yapmak tarayıcı üzerinde çalışacak şekilde. Windows form uygulamasını web form uygulamasına çevirmeye de baktım fakat bir türlü bir çözüm üretemedim.
  • 25-03-2021, 00:11:06
    #61
    Bruuzy adlı üyeden alıntı: mesajı görüntüle
    Evet hocam ben de baya bir araştırdım fakat benim aradığım web form olarak yapmak tarayıcı üzerinde çalışacak şekilde. Windows form uygulamasını web form uygulamasına çevirmeye de baktım fakat bir türlü bir çözüm üretemedim.
    Burada WebForms ya da MVC ile ilgili bir durum söz konusu değil aslında. Javascript ile yapabilirsiniz.
    https://github.com/KukuruzaAndrey/XOX mesela burada bir örnek var. Node JS ve WS kullanılmış.
  • 25-03-2021, 04:55:54
    #62
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Selamlar hocam,

    Kurumsal mimari yapısında generic bir repository oluşturmaya çalışıyorum aslında bunu entity framework ile yaptım fakat ef yerine postgresql kullanmam gerekiyor. Postgresql örneklerine baktığımda crud işlemlerinin controller yapısı altında yapıldığını görüyorum. Bu ne kadar doğru ve mantıklıdır ? Elinizde kurumsal mimari yapısında postgresql kullanılmış bir proje ya da örnek varsa paylaşabilir misiniz ? İnceleyim. Teşekkür ederim.
  • 25-03-2021, 15:49:39
    #63
    dnzdmrl91 adlı üyeden alıntı: mesajı görüntüle
    Selamlar hocam,

    Kurumsal mimari yapısında generic bir repository oluşturmaya çalışıyorum aslında bunu entity framework ile yaptım fakat ef yerine postgresql kullanmam gerekiyor. Postgresql örneklerine baktığımda crud işlemlerinin controller yapısı altında yapıldığını görüyorum. Bu ne kadar doğru ve mantıklıdır ? Elinizde kurumsal mimari yapısında postgresql kullanılmış bir proje ya da örnek varsa paylaşabilir misiniz ? İnceleyim. Teşekkür ederim.
    Merhabalar,
    Controller içerisinde CRUD işlemleri yapabilirsiniz.
    Mantık olarak, oluşturmuş olduğunuz repoya EF ya da PostgreSQL'in Get, Add, Select, Remove gibi CRUD fonksiyonlarını implement etmeniz aynı şey. Burada önemli olan hangi ORM'i kullanıyorsanız onun context nesnesini oluşturmuş olduğunuz repo classında kullanabiliyor olmanız. Burada da Dependency Injection uygulayabilirsiniz. Constructor injection, property injection vb gibi.
    https://medium.com/net-core/reposito...e-21e01c6664d7 buradaki örneğe göz atabilir misiniz?
    Edit: .NET Core yapısı gereği DI uygulamaktadır. Bu da geliştirmekte olduğunuz uygulama için fazlasıyla kolaylık sağlar.