Kategoriler


SON YORUMLAR
spiderman
tatar ramazan ODTÜ ve Sakarya mezunları süper ama İTÜ mezunlarını kapıdan içeri almıyorlar diyorsun ben de tam tersini biliyorum İTÜ mezunları mezun olmadan iş buluyor havada kapıyorlar OdTÜ ve sakarya mezunları iş arıyorlar sektörü bilmesek ?
Ömer karikutal
Php,mvc asp.net, c # ödevleriniz uygun fiyata yapılır. karikutalomer@gmail.com
Ercan Sezdi
Donanimsal ödevlerinizi de yapabilirim. Raspberry pi, Ardiuno, Msp430 donanimsal programlama yapabilirim. Programlama dilleri C++, Python, Assembly olabilir. Zorluk derecesine gore mobil uygulama da yazabilirim. Iletisim: ercansezdi007@gmail.com
Ercan Sezdi
Elektrik elektronik mühendisliği okuyorum. Pyhon ve C++ ödevleri yapabilirim. Iletisim: ercansezdi007@gmail.com
Senior Dotnet Developer
Merhaba arkadaslar, Yazilan yorumlari bikmadan usanmadan okudum. Ssagdan soldan duyacaklariniz yerine gercek hayat hikayesinden baslayayim. Elk elktrnk muhendisi olarak 7 yilda 2.2 ortalama Uldag unv den mezun oldum. Sene 2010. Askere gidip geldim.1 sene de bos bos kahvede okey oynayarak gecirdim :)) is aradimmi? Hayir. Nasilsa yillarca calisacagiz diyerek keyfime daha cok zaman ayirdim. Hafif bir giristen sonra hizli bir giris olsun. Aldigim maaslari yazayim heyecanli olsun:) 1. Firma :1250- 6 ay (asgari ucret:900) 2. Firma : 2500-10 ay 3. Firma : 3000-1 yil 4. Firma : 4000-10 ay 5. Firma : 6000- 18 ay 6.Firma : 9000+ istanbul ?? henuz baslamadim :) Bu kadar detayi verdim ki biraz motive olun. 7 yilda farkli muhendislikten gelen biri buraya gelebilirse calisan herkes icin bu sans var. Bu firmalardan son 3 tanesi hergun duydugunuz yerler. 2 kez de 2 farkli yerde terfi aldim. Herkesin girmeye can attigi iyi maas veren yerler. Cok da gozunuzde buyutmeyin. He soylemeyi unuttum java diil .net developer olarak calisiyorum. Bu maaslar ile cok javaciyi geciyorum. Piyasayi baya iyi tanidim.Maas skalalarini vs. Size tavsiyem her duydugunuza inanmayin. Yok pahasina calismayin, fazla da ucmayin hersey dozunda guzel. Kisacik bir detay daha. 2012 de istanbula ilk geldigimde 3 haftada 21 yer ile gorusmustum. Gecen ay 2 haftada 20 yer ile gorustum. Piyasa 2012 den beri acik. Torpilsiz sadece calisarak buralara geldim.Ise giremiosaniz cv nize bakan yoksa oturup dusunmekte fayda var. Birsryleri eksik yapiorsunuz belki de. Not ::::::: Gecenin 2sinde tum bunlari yazdim ki birilerinr faydam olsun. Ne yazikki her kafadan bi ses cikiyor guzelim Turkiyemde. Bilenler atanlar tutanlar bol bol. 70 den fazla yer ile gorustum buyuk kucuk. 50 tanesinden olumsuz donus yada hic donus olmamistir. Sonucta buralara gelebildim. Gelecek bilisimde. Motivasyonunuz hic kirilmasin. Kalin saglicakla.
Memet
Katılım ödevim var yardıma ihtiyacım var yardımcı olabilecek var mı
Halil
Tatar Ramazan
Bizim Sakarya üniversitesinden iyi yerlere gelen bir sürü adam var. Hatta ödevleri yapmayan tembel bilinen biri katılım bankasına girdi şimdi de Avustralyada programcılık yapıyor. Kurumsal firmalarda her üniversiteden eleman vardır zaten. Mesela Ford Otosan. Çok da para vermez hepsi. Memur maaşına çalışırsın. General Elektrik gibi yerler yüksek maaş verebilir. Ama oralara girmek zordur. İşi de zordur. Ben 2010 yılında KPDS İngilizceden 89 almıştım. Süper bilişim uzmanıyım. İyi öğretim almak, Üniversitede bol proje yapmak kişiyi 1-0 öne geçirir. Veya ortalamada yüksek puanlı, öğretimi iyi olan üniversite mezunları daha başarılı olabilir. İtirazım yok. Ama istisnalar da her zaman mevcuttur. Kocaelinin birincisi elbette yıldızın sonuncusundan daha başarılı olacaktır.
No One
Tatar, sen neye atarlanıyorsun? Boş işler dediğin bütün hayatını etkileyecek kariyer planın ve senin bütün hayatın. Herkes her yere gelemez, kimse kimseyi kandırmasın, en öncelikle de kendini kandırmasın. Verdiğin örnekler istatistik orsnında yüzde kaç acaba? Mesela anadolu okulundan mezun kaç kişi iyi şirketlerde çalışıyor, büyük çoğunluk iş bulamıyor kendi tanıdıklarım var, ben üzerine diyorumki iyi okuldakiler de her yerde istediği gibi bulamıyor, sen burada montajcılık yaparken amerikalısı avrupalısı senin kullandığın teknolojileri üretiyor, senin yaptığın mühendislik mi montajcılık mı şimdi? Tr de en iyi şirketlerde çalışan farklı 10 üzeründe onlarca kişiye sor bakalım neyin dizaynını neyin teknolojisini üretmişler? Söylediğin bakan ingilterede yaşıyorsa sterlin olarak maaş alır 70bin tl diyerek manipule etme 6 ya böl, 11 bin sterlin de, tr de veriyorlarsa kim kime o kadar parayı veeiyor kaç tane bölüm birincisi o parayı alıyor saçmalama lütfen. Ben diyorumki birincil hedef herşeyini kariyere odaklama veya tamamen boşa salma, herkes bir şekilde yaşıyor hayatını zaten ancak neyi istiyorsa ona çabalasın ama bazı şeyler olmuyorsa da hayatını mutsuz geçirme. Sen mesela bırak dünya işlerini ahiretini yaşa diyorsun, milyonluk girişimcilik yapsan ve işlerin tıkırında gitseydi ve birçok hayalini gerçekleştirseydin şu anda beyler şunu şunu yapın hayat çok güzel diyecektin, şimdi gelmiş hayat boş diyorsun, komik. Benim yazdıklarımdan herkes ne demek istediğimi anlamıştır zaten, bazı şeyleri görmek için 40 yaşına gelmeye gerek yok, çok fazla araştırıp çok fazla kişiye sorarsan ve işin içinde bizzat bulunursan görüyorsun zaten ki yazdıklarım çok az şey olmasına rağmen anlaşışır özet bilgiler, seversin kullanırsın, sevmezsin saygı duyar ve okumazsın bu kadar basit.
ali
amk bilgisayar mühendsiliği nerden seçtim seni mis gibi kolay bölümler varken çekilir dert değil...... tavsiye etmiyorum kardeşim.
Tatar Ramazan
No One bırak boş işleri başlarım kariyerine de üniversitesine de! Dünyada bir halt olmadığını anlayın işte. Ahirete yatırım önemli. Herkes bir şekilde yükseliyor ilerde zaten. ODTÜ mezununun 26 yaşında geldiği noktaya Sakarya mezunu 33 yaşında geliyor. Ortalamada ne kadar çalıştıysan hayat sana o kadar verir. Mesele Karadeniz Teknik Maliye bitiren biri vardı. 29 yaşında vergi denetmeni oldu. Ankara Siyasal bitirseydi 22 yaşında işe girerdi. Eski bakan Mehmet Şimşek bölüm birincisi oldu. İngilterede 70 bin lira maaş alıyordu. Her şey ve herkes derece derece.
No One
Yeni mezun olarak birkaç küçük şey yazmak istiyorum, kariyer net veya linkedin deki iş ilanlarına bakarsanız, özellikle yeni mezun olanlar için bile min 2 yıl deneyim ve birçok programlama dilleri vs isterler. 5 kişi işe alınacaktır, 500 kişi başvurur. Her yere gereksiz sayıda birçok üniversite açıldı, avrupanın en kaliteli üniversiteleri ingiltere ve almanyada bile max 50 civarı, bizde ise 150-200 arasında bunun siyasi bazı sebepleri var. Mesela siz her il e üniversite açarsanız, tüm ailelerin çocukları üniversite mezunu olacaktır, çocuk ve aile pskolojikmen rahatlar. Esnaf ise öğrencilerden ciddi gelir elde edecektir. Sorun ise bizim gibi ülkelerde bilim veya teknoloji geri plandadır ve iş istihdamı azdır, mesela 100 kişi işe alınacaktır ancak açılan birçok üniversite ile 1000 kişi mezun olur ve kalan 900 kişi işe giremez, bu sayı her yıl daha da artar ve işsizlik artar, insanlar da artık üniversite mezunu olma fark yapmıyor master yapayım, part time çalışayım der, zaten birçoğu çok kalitesiz eğitim alır ve giriş maaşları 1500-3000 arasında olur yılları işsizlik veya düşük maaşla geçirir. Kişi de sorunu kendisinde sanır, halbuki tüm suç sistemin böyle olmasını sağlayanlar, anca siz yıllar sonra para ve zaman kaybınızı anlarsınız, veya anlasanız bile elinizden çok fazla birşey gelmez. Peki şirketler insanları neye göre seçer, kendini geliştir denilen tavsiye ne kadar doğru? Arz-talep dengesini iyi analiz etmelisiniz, mesela şu anda çok fazla mezun var, ekonomik kriz dolayısı ile iyi okuldan mezunlar bile zannettiğiniz gibi hemen iş bulamıyor. Ya top 5 okul dan 3+gpa ile mezun olacaksınız, ya da torpiliniz olacak. Ben top 5 okuldan mezunum ve okulun zorluğundan dolayı mezun olan herkesin onlarca projesi, jaca, c, c++, python, matlab gibi dilleri, birçok farklı ideleri, oop, mvc, design pstterns, ve çok farklı çeşitte algoritma çeşitleri görmelerine ve ingilizce seviyesinin çok iyi olmalarına rağmen (toefl a girenelerin çoğu 80-100 arası) ve alese girenlerin çoğu 80-95 arası aldığını düşünürseniz, yine de işe girerken sizi beğenmezler, benim gördüğüm kadarıyla şirketlerin insan seçerken yaptıkarı sıralama şu şekilde, 1- okul ismi (boun, koç, itü, odtü, bilkent top 5, ytü, sabancı, tobb, hacettepe vs gibi ikincil seviye okullar, diğerleri daha geri planda, her şirketin kendince filtreleme sistemi var ve bazı okul mezunlarını asla almazlar) 2- gpa ortalama (kurumsal veya büyük şirketler savunma, telekom, banka vs hepsi önem verir, master yapmak istiyorsanız birinci kriterdir, küçük teknokent şirketlerinden de soran çok oluyor ben ve arkadaşlarıma staj için bile) 3- ingilizce (iyi okulların çoğunun ingilizce seviyesi upper dır, ingilizceniz yoksa bilgisayarcı sayılmazsınız) 4- yaptığınız projeler, staj, part time, iş deneyimi (bazı şirketler ilanlarda iyi yerde staj yapmış olma koşulu koyar, iş yaptığınız sektörde staj yapmanızı beklerler vs, 2017 den beri birçok şirket kurumsal ve normal hemen hemen hepsinde artık staj yapmak bile zordur, ya gpa 3+ olacak, ya da torpiliniz, top5 okuldaki ben ve birçok arkadaşım staj bulmada zorlandı, top5 te değilseniz part time veya normal iş tecrübesi sizi direk öne atar, iyi okuldakilerin çoğu derslerinde projeler çok ve zordur, o yüzden diğer okuldakilerin aradaki açığı iş tecrübesi ve hobby projelerle kapatması lazım) 5-referans (okuldaki hocanız veya staj, iş yerindeki mühendisin işe girerken size olumlu referans olması, şu anda yeni mezunlardan 2-3 tane referans istiyor birçok şirket 6-diğerleri, aklıma gelmeyen diğer işler, sosyal sorumluluk, klüp, sertifika, yarışma vs bunlara önem veren ik cı veya şirketler olabiliyor cv nin kenarında durması işe yarayabilir 0- torpil, çevreden veya akraba aile tanıdık ile torpiliniz var ise diğer herşeyden etkili hale gelip herkesin önüne geçebilirsiniz, batıda iş liyakat veya işi en iyi yapana verilir. Doğu toplumlarında ise iş güvenilir kişi ile yapılır, o yüzden tanıdıkları işe alırlar, şirket gizliliği ve güvenliği bazı şirketler için çok sıkıntılı olabiliyor vs, bu kozu olan çok fazla insan var piyasada, o yüzden siz bunlardan birisi değilseniz yukarıdaki beş maddenin hepsini yükseltmeye bakın. İyi okul hiçbirşey mi, veya herşey mi? Top5 ten gpa 2.0 - 2.5 arasında mezun olursanız biraz zor günler sizi bekliyor, master yapamazsınız, paranız yoksa yurt dışına gidemezsiniz, çok ağır ders ve projeler yaptınız ama okulu zor bitirdiniz ve dışarıdaki şirketler size çok önem vermeyebilir, iş bulurken ve bulduktan sonra da min 1 yıl falan zorluk çekersiniz, ilk başlarda iyi kurumsaldan başlamak zordur İyi okul mezunu Gpa 2.5-3.0 arası, savunmaya girmek zorlar, onun dışında bazı kurumsallara ilk başta giremezsiniz ama bazılarına girebilirsiniz, master içinde şartlar biraz zorlar İyi okul mezunu 3gpa+ ile master veya iş bulmak daha kolaydır ancak okuldaki zorluklardan sonra hiçbir zaman tatmin olamayabilirsin, çünkü hayat üniversitede zor projelerle uğraşırken kurduğun hayaller gibi değilmiş onu işe girince öğreniyorsun Diğer okullardan mezunlar, okulda gezip tozduysanız çok güzel, en güzel yıllarınız o yıllardı, zor okuldakiler kadar çalışmadınız ve gençliğiniz full çalışmayla geçmediyse iş hayatı ilk birkaç yıl zorlar, sonrasında kurumsal şirketlerin bazılarında hatta çoğunda devam edebilirsiniz belki (2-3 yıl sonra girenler var oran olarak bilmiyorum, bazı şirketlere çok zor) Yaş 28-30 üstü ise, srtık iş bulmak yeni mezun kadar zordur, çünkü maaş beklentisi fazla ancak şirketler siz ne kadar kaiteli olursanız olun sizden daha ucuza çalışacak birisini bulabiliyor, maaş zamları veya artışı düşük, tl nin alım gücü her seferinde düşüyor, kaygılar çocuk varsa dahada fazla Yurt dışına mastera gitsenizde, phd yapsanızda yaş ilerliyor, 30 una yaklaştığında hala öğrenci gibi takılmak zorunda olmak, avrupada 2-3-4 bin euro ya yaşamak, hangi ara evleneceksin, ev veya araba alacaksın, geri.dönecek misin, hayatın boyunca atomu mu parçalayacaksın? Tr dekiler en azından atom parçalamıyor Sonuçta top5 okuldan yeni mezun, tr de yine top şirketlerin birinde ben ve çoğu arkadaşım 3.5-4.5k ya başladık, savunmadakiler 5k üstü, ancak tavsiye verecek olursam, tünelin ucu bmbk bir yere çıkıyor. Hayatınızı doya doya yaşayın, çok zengin olmadığınız sürece para o kadar önemli değil, ben daha 22-25 yaşındayım (tam yaşım belli olmasın diye) ve umutsuzum bazı şeyler için, hayatınızı ev veya araba almaya mı harcamak istiyorsunuz, büyük şehirde zar zor yaşamaya mı? Öğrenciyken anlamanız pek mümkün değil kapitalist sistemin içine girip para kazanmaya başlayınca, insanların nasıl davrandıklarını çok daha net anlıyorsunuz, okuyun, gezin, eğlenin, anı yaşayın. Ne çok çalışın, ne de çok tembellik edin, herşeyi dozunda yaşayın. Daha çoook şey yazardım da boşver
Tatar Ramazan
Adam ÖSS ilk 3000 e girdi İTÜ mezunu doğru dürüst bir yere giremedi. ilk işini 26 yaşında buldu. O da kıytırık bir firma. Ekmek arslanın kuyruğuna indi. Siz ne bekliyorsunuz? Firmalar kollarını açtılar sizi bekliyorlar. :) :) :)
yazilimci
Java, C/C++, python ve bilgisayar müh. derslerinizin ödevleri garantili yapılır, yazilimcialper@gmail.com

Bilgisayar Mühendisleri
Here is the website inspired me to use 
it as a guide when I tried to define 
myself as an engineer candidate a few 
years ago. It really helped me to work
 and study feeling in confidence with 
being on the right way. I suggest this 
website to whom it may direct her/his 
to find the right career path. It 
includes many articles varies from 
real life experiences to detailed 
software engineering issues. But the 
most dignified parts for me are the 
articles in general and career titles.
Son okunan makaleler:
ASP.NET Output Cache Modeli
Martin FOWLER'dan XP Yorumları (Extreme Programming)
Türkiye İşlemcisini Tasarlıyor Yarışmasına 103 Başvuru
ASP.NET vs Classic ASP
Imagine Cup 2007 Yazılım Tasarımı Türkiye Finalist'leri Belirlendi
CD ve DVD olmadan USB bellekten Windows Vista nasıl kurulur?
Bilgisayar Mühendisleri Kaç Para Alır?
Yazılım Geliştirmede Sistematik Yaklaşımların Kime Faydası Var?
Microsoft API Savaşını Nasıl Kaybetti - Joel Spolsky
Motivasyona inanmıyorum!
Kişi Yetenek Olgunluk Modeli’ni Duydunuz Mu?
NY İÇİN PROGRAM YAZAN TÜRKLER
Staj Yeri Nasıl Bulunur? Staja hazırlık olarak neler yapmalıyım?
Bilgisayar Mühendisliğini yeni kazandım, neler yapmalıyım?
ORACLE - Lutz Hartmann 14-15 Mayısda Istanbul’da
Yeni mezun bilgisayar mühendisleri için 10 büyük günah!
Yeni mezun bilgisayar mühendisleri için 10 büyük günah!
Yeni mezun bilgisayar mühendisleri için 10 büyük günah!
Yeni mezun bilgisayar mühendisleri için 10 büyük günah!
Bilgisayar Mühendisleri Kaç Para Alır?

Bilgisayar Mühendisleri Portalı

ASP.NET Output Cache Modeli

ASP NET sitelerinde performansı arttırmak için kullanılan en önemli yapılardan biri olan Caching mekanizmasını anlatmaya çalışacağım. Caching’in Türkçesi önbellekleme demektir ki adından da anlaşılacağı gibi sayfanızın bir kopyasının önbellekte saklanması ve artık gelen isteklere de önbelleklenmiş sayfanın gösterilmesi ve bu sayede ASP.NET sayfamızın yeniden derlenmemesi ve böylece artan performans. Artık düşündüğümüzde 1000 lerce kişinin bağlandığı bir server da isteklere göre sayfaların derlenmesi ve kullanıcılara gösterilmesinin oluşturacağı gecikmeyi herhalde tahmin edebilirsiniz ama tabiî ki cachin’gin iyi yönleri olduğu gibi kötü yönleride vardır, aslında kötü yönleri demeyelim de dezavantajları diyelim ama ne güzeldir ki yine bu dezavantajları da caching için kullanacağımız kodlarda bazı değişikler yaparak giderebiliriz.

Caching olayını eğer sınıflamak gerekirse ana başlık altında 2 sınıfta toplayabiliriz.

1- OutPut Caching (*Çıktı Önbellekleme)
2- Data Caching (*Veri Önbellekleme)

Ve bunların dışında ama yukarıdakiler ile alakalı alt başlık olarakta koyabileceğimiz özelleşmiş cachingler ise Fragment Caching (*Parça parça önbellekleme) ki bu OutPut Caching’in özelleşmiş bir halidir ve DataSource Caching (*VeriKaynağı Önbellekleme) ki bu da Data Caching in özelleşmiş halidir.

Biz bu makalemizde Data Cacheing hariç diğer bütün yöntemlere göz atmaya çalıcağız.

OutPut Caching : Bu Cachleme sayesinde sayfamızın son HTML halininin önbellekte bir kopyası oluşturulur ve gelen isteklere bu sayfalar gönderilir ama unutmadan söyleyelim cache için bir yaşam süresi diyebileceğim Duration alt özelliğini eklememiz gerekecektir. Bunun sayesinde cache mizin ne kadar süre
önbellekte saklanacağını ayarlamış olacağız. Şimdi bu dediklerimizi bir örnekle açaklamaya çalışalım.

İlk başta kendinize yeni bir ASP.NET projesi oluşturun. Aşağıdaki resimde olduğu gibi sayfasınıza


<%@ OutputCache Duration="5" VaryByParam="None" %>
satırını ekleyin.



Bu kod satırını açıklamak gerekirse ;
*Duration : Sayfamızın önbellekte ne kadar saklanacağını belirttiğimiz alt özelliktir.
* VaryByParam : Bu alt özellikiğin “None” yapılması demek, Sayfamızın tamamının önbelleğe alınması demektir ki buna ileride daha detaylı değineceğiz.

Şimdi sayfamıza önbelleklemeyi somut bir şekilde görmek için Zaman ekleyelim. Bunu yapmak için tek yapmanız gereken sayfamıza bir tane label eklemeniz ve şu kodları yazmanız;

public partial class _Default : System.Web.UI.Page
{
         protected void Page_Load(object sender, EventArgs e)
         {
               label1.Text = DateTime.Now.ToLongTimeString();
         }
}

Yukarıda bulunan kodda sizinde göreceğiniz gibi Sayfa her Yüklendiğinde eğer önbellekleme yapılmamış ise o anki saati gösterir ama şimdi sayfamızı derleyelim ve sayfamızı devamlı Refresh yani yenileyelim , ne gördünüz? Tabiki saatin hiç değişmediğini, neden? Nedeni ni söyleyelim ; Önbellekleme tabiki. Sayfamızı devamlı yenilerseniz 5 saniyede bir saatin saniyesinin değişeceğini göreceksiniz. Çünkü biz önbellekleme süresini 5 saniye olarak ayarladık ve her 5 saniyede yeni bir cachimiz oluşturulur.

Bu olayın avantajları :

*Sayfamız yeniden derlenmedi
*Kullanıcılara değişmeyen yani static sayfalar daha hızlı bir şekilde gösterilir
*Server gereksiz yere yorulmaz
(Static sayfalarda performans için mükemmel bir yöntem.)

Kısacası performans artışı…

Dezavantajlar ise :

*Eğer sayfamız dinamik olsaydı ve dışarıdan QueryString ler ile farklı bilgiler gelseydi !

İşte yukarıdaki dezavantajtan sıyrılmanın yöntemi :

Yeniden bir proje açın ve bu sefer iki tane asp.net sayfası ekleyin projenize. İsimleri Default.aspx ve Default2.aspx olsun.Default2.aspx sayfasının Source kısmına şunu yazmayı uutmayın : <%@ OutputCache Duration="10" VaryByParam="None" %> Burada önbellekte kalma süresini 10 saniye yaptık. Şimdi Default.aspx sayfamızın Kod kısmı olan Default.aspx.cs sayfasının Button_Click olayına aşağıdaki kodları yazın ama bundan önce tabi sayfamıza bir tane TextBox ve bir tane de Button Kontrolu koymayı unutmayın.

protected void Button1_Click(object sender, EventArgs e)
{
      Response.Redirect("Default.aspx?giden=" + TextBox1.Text);
}

Burada Default2.aspx sayfamıza giden QueryStringi sayesinde TextBox1 den alınan veriyi gönderiyoruz şimdi de Default.aspx sayfasına bir tane Label koyun ve Default2.aspx.cs sayfasına ise şu kodları yazın ;

protected void Page_Load(object sender, EventArgs e)
{
      Label1.Text = Request.QueryString["giden"].ToString();
}

Burada ise gelen verimizi Request ile aldırdıktan sonra Labelimiza yazdırıyoruz. Evet şimdi deneyin bakalım ne olacak.Ben size söyleyeyim ilk gönderdiğiniz veri (TextBox a yazıp buttona bastıktan sonra gönderilen veri yani) Default2.aspx sayfamızda görülecek ama bunda sonra her göndereceğiniz veride yeni ilk gönderdiğiniz veri şeklinde gözükecek.Yani Label kontrolmuzde hep aynı yazı gözükecek taki 10 sn geçene kadar.İşte size Dezavantaj ?. İşte bundan şöyle sıyrılacağız : <%@ OutputCache Duration="10" VaryByParam="*" %> kodumuzun VaryByParam özelliğini “*” bu şekilde yapın ve bu sefer yeniden deneyin bakalım ne olacak o zaman. İşte şimdi problem çözüldü. Artık her gelen yeni QueryStringe göre bir cache oluşturulup kullanıcılara en taze hali gösterilir ama burada da çok ama çok önemli bir durum söz konusu: Şimdi siz mesela “Ahmet” diye bir QueryString gönderdiniz Default2.aspx sayfamıza ve doğal olarak ta label kontrolmuzda “Ahmet” gözükecektir.İşte bu sayfanın serverda A kopyası olarak saklandığını düşünelim.Peki başka bir kullanıcı ise “Mehmet” diye bir QueryString gönderdi o zaman Default2.aspx sayfamda ise “Mehmet” olarak gözükecektir Label kontrolum ama önceki A kopyam silindi mi peki? Cevap vereyim: Kocaman bir Hayır! A kopyam hala saklanmakta ve bu sefer ise “Mehmet” olan B kopyam olarak saklanıyor.Eğer başka bir tane daha farklı bir QueryString ile sayfama istekte bulunulursa bu sefer sayfam C kopyası olarak saklanacaktır. Peki bunlar saklandı ama ne olacak bunlara.Eğer bir kullanıcı sayfamı Ahmet QueryString ile çağırırsa o zaman ona A kopyası gösterilecek ve sayfam yeniden derlenmecektir.Eğer başkası ise “Mehmet” QueryString ile çağırırsa ona da B kopyası gönderilecektir ve bu sayede yine performans artışı sağlanacaktır.Nasıl ama? ? Peki ben eğer iki tane QueryString gönderirsem ama sayfamın sadece bir tane QueryStringim değiştiğinde cachleme yapmasını istiyorsam o zaman ne yaparım.Düşünün bir UrunlerID ve HizmetID diye iki tane QueryStringim var ve ben bunlardan sadece HizmetID değiştiğinde sayfamın serverda farklı bir cachlenmiş halinin saklanmasını istiyorum.O zaman yapmam gereken sadece şu : <%@ OutputCache Duration="10" VaryByParam="HizmetlerID" %> İşte bu kadar. Artık istediğim gibi oldu.(Unutmadan! Bakın bu yöntemler sadece QueryStringler için geçerlidir.Cookiler ve Sessionlar için geçerli yöntemler değillerdir) Eğer ki ben birkaç tane QueryString e göre cachleme yapmak istiyorsam o zaman ise Noktalı Virgül kullanmam yeterli olacaktır. Örneğin VaryByParam=”HizmetlerID;UrunlerID;SenID” vs gibi.Gayet kolay değil mi?

Şimdi diğer özellikleri inceleyelim (Bu makalede bunları yüzeysel geçeceğiz ama diğer makalelerde hepsine teker teker inceleyeceğiz) :

*VaryByCustom : Bu alt özellik ; kendi yazacağımız kodumuza göre Cahcleme yapabiliriz.Mesela Browser farklılıklarına göre bile Önbellekme yapabiliriz.Bir düşünün Nescape kullanan ve bir kullanıcı doğal olarak Nescape-Optimized sayfalara ulaşacaktır aynı şekilde IE kullanan ise Explorer-Optimized sayfalar kullanmak ister.İşte bu farklılık doğal olarak Cachlemeyede yansır. Aynı şekilde başta ta dediğimiz gibi kendinize Procuderler yazarak (Code-Behind a yazabileceğiniz gibi Global.asax dosyalarında yazabilirsiniz ) istediğiniz bir şeye göre cachleme yapabilirsiniz.Diğer makalemizde kodların nasıl yazılacağını göstermeye çalışacağız ki bu özelliğin kullanması ise özel bir kod yapısı kullanması gerekmektedir.

*DiskCacheable : Bu alt özellik ise diskinizin önbellenebilir veya olmadığını ayarlamanızı sağlar.Bool değer geriye dönderir.( True/False)

*VaryByHeader : Bu alt özellik ise HTML başlığınızın değişimine göre Cachleme yapılmasını sağlar.

*Location : Bu ise Cachlemenmiş dosyaların nerede saklancağını göstermenizi sağlar.

*NoStore : Depolama yapılıp yapılmayacağını belirtmenizi sağlar. (True/False)

*SqlDependency : Bu alt özellik ise gerçekten en önemli özelliklerden biridir ve Sql bağımlılığını gösterir. Şöyleki DataBase olarak Sql kullandığınız durumda eğer sayfanızı önbellekliyorsanız ve eğer değişen verileriniz (Delete/Update vs gibi) varsa doğal olarak sayfanın en güncel veriyi kullanıcılara göstermesi gerekecektir. Bu durumda bu özelliği kullanarak eğer veritabanınızda bir değişiklik olmuş ise yeni bir cachin oluşturulması sağlanır.

*VaryByControl : Bu ise istediğiniz kontrollere göre önbellekleme yapılmasını sağlar.

Unutmadan söyleyelim bu anlatılanları hepsi OuptPut Caching kapsamına girmektedir.

Fragment Caching : Bazen sayfamızın her tarafını değilde bazı yerlerini önbellekleme ihtiyacı duyarız ki bu bazen çok önemli bir ihtiyaçta olabilir.İşte bu durumlarda kullanılacak olan Fragment Cachingtir.Bunu yapmak aslından çok basittir ve User Controls kullanılmasını gerektirir. Eğer User Controls bilmiyorsanız ilk başta onları incelemenizde yarar var. User Controls oluşturun ve bunu VaryByControl özelliğine bağlayın ve bitti.Unutmadan söyleyelim eğer bu yapıyı kullancaksanız Cachleme zamanı bitmeden Önbelleklediğiniz User Controllerinin (*Kullanıcı Kontroleri) Event’ler (*Olayları) çalışmaz.

İlk başta anlattığımız ama örnek vermediğimiz Fragment cahcing ile devam edelim. Kısaca özetlemek gerekirse bu cachleme yöntemi parça parça cachleme olarakta türkçe bir karşılık getirebiliriz. Bu yöntemde amaç sayfamızın belli bölümlerini önbellekleme yapmak ve böylece istediğimiz doğrultuda performans artışına gitmektir. Unutmadan söylemek gerekki burada ki ince nokta user controls ( kullanıcı kontrolleri ) kullanmak. Tabi ki bu yöntemi uygulama sırasından tek user controls kullanılacak diye bir olay aynı şekilde subsitution kontrolunu kullanarak ta yapabiliriz.

Bu özetlerden sonra konumuza başlayalım. Önceki bölümlerde Directive bölümüne cachleme işlemi yapmak için hangi directive leri yazdığımızı görmüştük şimdi bunlardan yola çıkarak çok basit ve anlaşılır örnekler ile konumuzu inceleyelim.(Unutmadan eğer user controls hakkında bilginiz yoksa bu makaleyi okumada önce ilk başta user controls konusunu incelemenizi şiddetle tavsiye ederim.)

1.) İlk başta Toplama isimli bir user control ü projenize ekleyiniz ve aşağıdaki tasarimi yapınız

2.) Bu tasarımı yaptıktan sonra Kullanıcı Kontrolümüzde Source (kaynak) kısmına gelip şu direktivi ekleyelim sayfamızın üst kısmına
<%@ OutputCache Duration="5" VaryByParam="None" %>

2.) Yukarıda dikkatinizi çeken kısımlardan biri duration yani cache mizin kullanılma süresinini 5 saniye yaptık.
3.) Şimdi bu oluşturduğumuz Kullanıcı Kontrolunün Toplama isimli tuşun olay yordamına şunu yazın ;

protected void btnToplama_Click(object sender, EventArgs e)
{
       lblSonuc.Text = (Convert.ToInt16(txtSayi1.Text) + Convert.ToInt16(txtSayi2.Text)).ToString();
}

Evet bunları yaptıktan sonra artık iki sayıyı toplayan ve sonucunu bize veren bir kullanıcı kontolümüz olmuş oldu. Şimdi ise yapmamı gereken olay bunu Default.aspx sayfamıza eklemek. Ekledikten sonra cachlemeyi daha iyi farkedebilmek amacıyla Default.aspx sayfamıza bır tane label ekleyin ve Page_Load olayına şu kodları yazın :

protected void Page_Load(object sender, EventArgs e)
{
     Label1.Text = DateTime.Now.ToLongTimeString();
}

Evet artık sistemimiz çalışmaya hazırdır ve şimdi derleyiniz. Evet açılan sayfamızda bulunan Kullanıcı Kontrolümüzde sayıları girip Toplama tuşuna basınız. Neler gördünüz ? Tabiki herhangi bişey değişmedi ama Default.aspx sayfasına eklediğiniz Label baktığımzda ise her sayfayı yenilemede değiştiğini göreceksiniz ve 5 saniye sonra ise Kullanıcı Kontrolümüz değişir. Burada önemli noktalardan biri ise Cache in kullanımı sırasında Kullanıcı Kontrolu için yazılan Code-Behind (Toplama.ascx.cs) deki kodun derlenmeyeceğidir. İşte sizde Fragment önbelleklemenin ne kadar kolay olduğunu gördünüz.

Peki ben Default.aspx sayfasına koyduğum Label1 kontrolunun içeriğinin Herhangi bir kontrole göre değişmesini isteseydim yani, Default.aspx sayfamda yeni bir cache oluşturulmasını tetikleyici etkenin benim belirlediğim kontrolümün olmasını isteseydim bunu nasıl yapardım ? Bunun için tek yapmanız gereken olay şu :

Default.aspx sayfasına bır tane örnek olması amacıyla DropDownList ekleyiniz. Ve EnableAutoPostBack özelliğini true yaptıktan sonra 3-4 tane içine item ekleyiniz yada direk aşağıda bulunan kodu Default.aspx sayfanızın Source kısmına ekleyiniz :

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
<asp:ListItem>Visual C#.NET</asp:ListItem>
<asp:ListItem>ASP.NET</asp:ListItem>
<asp:ListItem>CSharpnedir.com</asp:ListItem>
</asp:DropDownList>

Şimdi bunu ekledikten sonra Default.aspx sayfamızda Directive bölümüne şunu eklemeniz gerekecek :

<%@ OutputCache Duration="5" VaryByControl="DropDownList1" %>

Evet şimdi burada önemli olan nokta VaryByControl ( Kontrole göre değiştir ) özelliği. Burada amacımız DropDownList1 kontrolünün değişimine göre önbellekleme yapmak. ( Tabiki hala önceden eklediğimiz ve güncel zamanı gösteren Label1 kontrolümüz duruyor olması gerekir.) ve sayfamızı derleyelim. İlk başta sayfamızı yenileyelim bakalım zamanı gösteren label kontrolünde herhangi bir değişim oluyo mu? Dikkat ettiyseniz her 5 dakikada bir değişim olduğunu göreceksiniz ve şimdide eklemiş olduğumuz DropDownList1 kontrolümüzün seçili olan indexini değiştirin. Ne oldu ? Tabiki sayfamız önbellekleme zamanının bitmesini beklemeden yeniden bir önbelleği oluşturuldu ve güncel sayfa önümüze geldi. İşte bu şekilde herhani bir kontrole göre de nasıl önbellekleme yapabileceğimizi görmüş olduk.

Bu arada değinmeden geçmek istemediğim bölümlerden birisi ise Önceki örneğimizde Kullanıcı Kontrolleri ile çalışırken şöyle bir ifadeninde Kullanıcı Kontrollerinde önbellekle yapma sırasında gözükebileceği :

<%@ OutputCache Duration="5" Shared="true" %>

Peki buradaki Shared özelliği ne işimize yarıyor. İlka başta adından da anlaşılacağı gibi paylaşılmış manasına gelen bu özellik : aynı kullanıcı kontrolünü birden fazla yerde kullanabilirsiniz ve her farklı sayfa için asp.net bu kullanıcı kontrolünün farklı bir önbelleklenmiş kontrolünü oluşturur. Ama eğer biz böyle bir gereksinime ihtiyaç duymuyorsak ve her sayfa için aynı önbelleklenmiş kullanıcı kontrolünü kullanmak istiyorsak o zaman Share özelliğini true yapmamız sorunumuzu giderecektir.

Bu makaleyi beğendin mi? Yorumunu Yaz!







Sizden Gelen Yorumlar:

Yorum Yazın

Erol(22.7.2011 10:26:28)
Çok güzel ve açıklayıcı anlatım olmuş, ben bildeadam da bu kadar net görmedim bunları, tşk. ediyorum.
%33 %0 %67
Katılıyorum Çekimserim Katılmıyorum



Samet(15.6.2010 17:28:35)
eline koluna sağlık

harika bir makale
%62 %12 %25
Katılıyorum Çekimserim Katılmıyorum



Master(15.2.2010 15:30:14)
yalnız biraz daha siteyi açık hale getirebilirdiniz ne bileyim bir programcı olarak bu siteyi mat görüyorum
%31 %8 %62
Katılıyorum Çekimserim Katılmıyorum



Master(15.2.2010 15:29:16)
slm arkadaşlar kolay gelsin
%20 %20 %60
Katılıyorum Çekimserim Katılmıyorum






Copyright© 2001-2018. Bilgisayar Mühendisleri Portalı | Bütün hakları saklıdır.