geçen tbt den bir arkadaşın bilgisayarına bağlanmıştım, o da byle context i sınıf bazında oluşturuyordu, sayfayı değiştirince son yaptığı değişiklik kaybolmuyordu çünkü context i ilk sınıf yaratıldığında new ile oluşturuyordu ama bir daha dokunmuyordu, byle olunca da yapılan değişklikleri o context grmüyordu :) O yüzden byle sorunlar yaşamamak adına singleton design pattern i bu kısma uygulayabilirsin, bunun haricinde repository design pattern de işine yarayabilir. Google da rneklerini bulabilirsin bu metodları EF ye uygulanmış şekilde vardır rnekleri, onlar işini grecektir. Ama bu şekilde her context i direk burada oluşturma. Zaten şuanki tasarımda bile çok sıkıntı var ama başlangıç seviyesinde olduğun için pek bir şey sylemiyorum. Sadece şunu bil; şuan yaptığın DAL, users tarafı için yazılmış, onlarca tablon olduğunu düşün, hepsini mi EFUserDal ın içine ekleyeceksin? O kadar metodu bir sınıfa yazmak mantıklı değil, o zaman da farklı sınıflar/interface lere ihtiyaç duyacaksın ve haliyle her bu mantıkla her sınıfta bir dbcontext oluşturacaksın bu da üstte bahsettiğim soruna gtürecek seni. O yüzden o 2 design pattern i araştır. Belki bi süre sonra da Generic metod/class lara bakarsın. Bylece gereksiz yere her tablo için CRUD işlemi yapmak için fonksiyon oluşturmana gerek kalmaz.. unbalanced tarafından 02/Şub/16 02:25 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Hocam şyle düşün İnsanın yeme, sindirme ve boşaltma sistemi gibi katmanlarını oluştur. yeme dil. cs dis. cs yemekborusu. cs sindirme mide. cs asitler. cs bosaltma kalinbarsak. cs incebarsak. cs Daha sonra mesela incebarsak'a direk olarak mideden bir şey gndereceksen incebarsak. cs içerisine sindirme uzayını import edip adlı sınıfları kullanabilirsin. Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.

Projenin boyutuna gre değişir. Şuan business layer'ı tek bi yerde kullanmandan türü ne gerek var diyosundur. Fakat projenin içerisine webservice , workflow vs. girdiği zaman poco veya dto'ların gerekli olduğunu grürsün. http://blog.jorgef. net/2010/09/n-tiers-pocos-ef-1.html http://rlacovara.blogspot.com.tr/2009/03/what-is-difference-between-dto-and-poco.html İlk karşına çıkacak olan hata : http://stackoverflow.com/questions/17718153/circular-reference-error-when-serializing-objects-in-asp-net-web-api SinusX tarafından 02/Şub/16 01:15 tarihinde düzenlenmiştir Si vis pacem para bellum.

Projenin boyutuna gre değişir. Şuan business layer'ı tek bi yerde kullanmandan türü ne gerek var diyosundur. Fakat projenin içerisine webservice , workflow vs. girdiği zaman poco veya dto'ların gerekli olduğunu grürsün. http://blog.jorgef. net/2010/09/n-tiers-pocos-ef-1.html http://rlacovara.blogspot.com.tr/2009/03/what-is-difference-between-dto-and-poco.html İlk karşına çıkacak olan hata : http://stackoverflow.com/questions/17718153/circular-reference-error-when-serializing-objects-in-asp-net-web-api hocam senin dediğin işin biraz farklı boyutu. Web serviste kullanılacak modeller olsa dahi benim üstte yazdığım mantık ile gidebilir. Sadece ilgili class ların/enumların datamember olarak işaretlemesi kafi.. Kalan işi de business layer da operation larda yapacak. Ama arkadaş daha DAL kısmını çzememiş. Senin bahsettiğin serilizasyon olaylarının onlarca sıkıntısı var :) bu iş sadece. net tabanlı da olmuyor, java da ayrı bir sıkıntı çıkarıyor, dictironary de complex class kullanımında ayrı bir sıkıntı çıkarıyor vs. O yüzden dikkat edilmesi gereken yığınla şey var, en basitinden kullanılacak endpoint türü bile farklı. Ama restful servis yapacaksa bir şey kasmasına gerek yok, json/xml gnderip alabilir onların serileştirmesinde pek sıkıntı yok tüm diller ve platformlar için. Ama dediğim gibi sorun şimdilik farklı yerde. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

unbalanced bunu yazdı sen dbfirst yaklaşımı ile gittiğin için context oluşturmana gerek yok hocam, direk model üzerinden çalışabilirsin. Yapman gereken model instance ı oluşturup onun üzerinden CRUD işlemleri yapıp daha sonra create/update için save metodunu çağırman yeterli çok teşekkürler hocam dediğini anladım ama bu model intance mi nerde nasıl vereceğim ortadaki EfUsersDal class imda using ilemi ilerlemem gerekiyor yoksa başka bir şekildemi bana bir rnek kod gsterebilir misin? Project. Entities e gerek yok hocam bu durumda.. Direk Dal projende oluştur.. @zeybekustasi nin dediği kısım senin Business Logic Layer'in olacak sanırım onun da projesini oluşturmuşsun ama yapmamışsın henüz. Bu arada custom class lar oluştur ve business class ın presentation layer a bu custom class ları yollasın. Mesela şyle rnek vereyim.. Kişiler ve Adresler diye tablon var. Sana X kişisi ile ilgili şahsi bilgi ve adresi gerekiyor. Ama bunlar iki farklı tabloda oldukları için bir şekilde birleştirme yapman lazım. Başka bir proje oluştur ve modellerini burada oluştur ve atıyorum ismi Person olsun public class Person { public string Name public string Surname public string Address public string Country } grdüğün gibi kişi ve adres bilgileri için tek bir sınıf oluşturdum. DAL tarafında iki ayrı metodun olacak hem adres hem kişi çekebilmen için. Ancak business katmanında ise tek metodun olacak ve üstteki Person u dnderecek.. Mesela public Person GetPersonByEmail { Kisi kisi= dalprojen. GetPersonByEmail ; Adres adres = dalprojen. GetAdresByKisiId ; return new Person ; } bu şekilde grdüğün gibi custom class üzerinden iş yapıyoruz. İzlediğin set nedir bilmiyorum ama bu şekilde ilerlemen daha doğru olur. Bylece kullanıcılara işe yaramayan bilgi gndermezsin.. Not: kodları elle yazıyorum o yüzden syntax hataları olabilir. unbalanced tarafından 02/Şub/16 01:22 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

hocalar tekrar üşenmeden yazdığınız için teşekkürler @zeybekustasi hocam videoyu biraz ileriye aldım adam ayriyeten Project. Interfaces diye ayriyeten bi class library oluşturuyo orayada IUsersService diye bi class açıp gene IUsersDaldakileri yaziyor ama bunu bu sefer BLL katmanında çagariyor orda içini dolduruyor bahsettiğin şey bu mu acaba? @SinusX hocam senin dediklerini anlayamadım şimdi cahil cahilde konuşmak istemiyorum dediklerini biraz daha inceleyeceğim sanırım dediklerini şu bahsettiğin hatayı alınca anlayacağım. @unbalanced hocam entities katmanını sildim modeli aldım dal katmanına ekledim EfUsersDal dada aşağıda resimde gsterdiğim gibi çagardım umarım doğru anlamış ve doğru uygulamıştırım şu aklıma takıldı bu DbEntities 'i oluşturacağım her Ef... Dal classim için bu şekilde mi çagarmaliyim yani doğru kullanım bu mudur acaba? Ayriyeten bu custom class rneğini çok begendim bi kaç adım sonra çok işime yaracak Amatr forever

SinusX bunu yazdı Projenin boyutuna gre değişir. Şuan business layer'ı tek bi yerde kullanmandan türü ne gerek var diyosundur. Fakat projenin içerisine webservice , workflow vs. girdiği zaman poco veya dto'ların gerekli olduğunu grürsün. http://blog.jorgef. net/2010/09/n-tiers-pocos-ef-1.html http://rlacovara.blogspot.com.tr/2009/03/what-is-difference-between-dto-and-poco.html İlk karşına çıkacak olan hata : http://stackoverflow.com/questions/17718153/circular-reference-error-when-serializing-objects-in-asp-net-web-api hocam senin dediğin işin biraz farklı boyutu. Web serviste kullanılacak modeller olsa dahi benim üstte yazdığım mantık ile gidebilir. Sadece ilgili class ların/enumların datamember olarak işaretlemesi kafi.. Kalan işi de business layer da operation larda yapacak. Ama arkadaş daha DAL kısmını çzememiş. Senin bahsettiğin serilizasyon olaylarının onlarca sıkıntısı var :) bu iş sadece. net tabanlı da olmuyor, java da ayrı bir sıkıntı çıkarıyor, dictironary de complex class kullanımında ayrı bir sıkıntı çıkarıyor vs. O yüzden dikkat edilmesi gereken yığınla şey var, en basitinden kullanılacak endpoint türü bile farklı. Ama restful servis yapacaksa bir şey kasmasına gerek yok, json/xml gnderip alabilir onların serileştirmesinde pek sıkıntı yok tüm diller ve platformlar için. Ama dediğim gibi sorun şimdilik farklı yerde. Yok çok detaya inmeden için üstün krü geçtim kafasında canlanması için. Ne yapacağını bilmeden kafasında oluşmaz. Yeni başlayan çoğu kişi aynı duruma düşüyor Si vis pacem para bellum.

Merhaba hocalar çok uzatmayıp direk konuya gireyim bi video eğitim setinden çok katmanlı mimariyi grenmeye çalışıyorum ama tıkandığım bi nokta var videodaki adam Project. Entities class library sinde classlarını tek tek yaziyor anladığım kadarıyla code first deniyor buna ben sql serverda tablolarımı hazırladım doğru mu yaptım emin degilim ama dümdüz Project. Entities e sağ tıklayıp add new itemdan ado. net entity data modelimi ekledim sonra gittim project. dal ın referanslarına project. entity yi ekledim şimdi adam gitti EntityFramework klasrünün içinde projectcontext class ini oluşturdu içinede dbsetlerini yazdı sonra gitti EfUsersDal da private ile context ini tanımlayıp direk ekleme çıkarma kodlarını yazmaya başladı bende tam bu noktada takıldım çünkü ben data model ekledim benim dbsetlerim zaten data model içinde tekrar ProjectContext de yazmama gerek yok diye düşünüyorum şimdi ortadaki resimdeki using kodunu ben ekledim işin içinden çıkamadığım noktada burası şimdi ben ProjectContext emi bişiler yazip bu EfUsersDal 'a referans verip o şekildemi ilerlemem lazım yoksa bu using ilemi kullanmam doğru yada ben çok başka alemlere girip kayıp mı oldum bilmiyorum. Yardımcı olan arkadaşlara şimdiden teşekkürler. Amatr forever

sen dbfirst yaklaşımı ile gittiğin için context oluşturmana gerek yok hocam, direk model üzerinden çalışabilirsin. Yapman gereken model instance ı oluşturup onun üzerinden CRUD işlemleri yapıp daha sonra create/update için save metodunu çağırman yeterli çok teşekkürler hocam dediğini anladım ama bu model intance mi nerde nasıl vereceğim ortadaki EfUsersDal class imda using ilemi ilerlemem gerekiyor yoksa başka bir şekildemi bana bir rnek kod gsterebilir misin? Amatr forever

sen dbfirst yaklaşımı ile gittiğin için context oluşturmana gerek yok hocam, direk model üzerinden çalışabilirsin. Yapman gereken model instance ı oluşturup onun üzerinden CRUD işlemleri yapıp daha sonra create/update için save metodunu çağırman yeterli Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

unbalanced bunu yazdı sen dbfirst yaklaşımı ile gittiğin için context oluşturmana gerek yok hocam, direk model üzerinden çalışabilirsin. Yapman gereken model instance ı oluşturup onun üzerinden CRUD işlemleri yapıp daha sonra create/update için save metodunu çağırman yeterli çok teşekkürler hocam dediğini anladım ama bu model intance mi nerde nasıl vereceğim ortadaki EfUsersDal class imda using ilemi ilerlemem gerekiyor yoksa başka bir şekildemi bana bir rnek kod gsterebilir misin? Hocam, Başka bir katmana daha ihtiyacın var, EfUserDal classında DB işlemlerini yaptığını düşünüyorum intefaceye bağlı olarak. Senin EF işlemlerini yapan bu katmanı çağıraağın ayrı bir katmanın daha olmalı diye düşünüyorum. Interface Ok. EF İşlemleri OK. EF Context leri Ok. Peki bu işlemleri nerede çağıracaksın ayrı bir katmanda. Yani model instanceni diğer katmanda oluşturmalısın diye düşünüyorum. Using e gerek yok referans değil ki bu clasın kopyasını oluştursan kafi. zeybekustasi tarafından 02/Şub/16 01:12 tarihinde düzenlenmiştir https://www.youtube.com/watch?v=WC3-71NKwPw

geçen tbt den bir arkadaşın bilgisayarına bağlanmıştım, o da byle context i sınıf bazında oluşturuyordu, sayfayı değiştirince son yaptığı değişiklik kaybolmuyordu çünkü context i ilk sınıf yaratıldığında new ile oluşturuyordu ama bir daha dokunmuyordu, byle olunca da yapılan değişklikleri o context grmüyordu :) O yüzden byle sorunlar yaşamamak adına singleton design pattern i bu kısma uygulayabilirsin, bunun haricinde repository design pattern de işine yarayabilir. Google da rneklerini bulabilirsin bu metodları EF ye uygulanmış şekilde vardır rnekleri, onlar işini grecektir. Ama bu şekilde her context i direk burada oluşturma. Zaten şuanki tasarımda bile çok sıkıntı var ama başlangıç seviyesinde olduğun için pek bir şey sylemiyorum. Sadece şunu bil; şuan yaptığın DAL, users tarafı için yazılmış, onlarca tablon olduğunu düşün, hepsini mi EFUserDal ın içine ekleyeceksin? O kadar metodu bir sınıfa yazmak mantıklı değil, o zaman da farklı sınıflar/interface lere ihtiyaç duyacaksın ve haliyle her bu mantıkla her sınıfta bir dbcontext oluşturacaksın bu da üstte bahsettiğim soruna gtürecek seni. O yüzden o 2 design pattern i araştır. Belki bi süre sonra da Generic metod/class lara bakarsın. Bylece gereksiz yere her tablo için CRUD işlemi yapmak için fonksiyon oluşturmana gerek kalmaz.. evet @unbalanced hocanın bahsettiği arkadaş benim, OOP a geçince byle bir sıkıntı baş gstermişti kaldı ki @ANZAK ile aynı video üzerinden gitmişiz dosyalardan anladığım kadarıyla. Ben repository pattern ile olayı çzdüm dependency injection da ayarlamaları yapman konusunda sorun olursa yardımcı olabilirim. Onun dışında hepsine ayrı ayrı dal yazmak yerine çok daha kolay bir yntem oluyor tavsiye ederim.

hocam cevabın için teşekkürler katmanlı mimarinin ne oldugunu anladığımı sanıyorum benim şuan takıldıgım nokta o aradaki kprüyü doğru kurmak için yazılması gereken kod ve nereye yazılacağı tekrardan ilgilendiğin için teşekkürler. ANZAK tarafından 02/Şub/16 00:43 tarihinde düzenlenmiştir Amatr forever