<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6180642</id><updated>2012-02-01T22:55:05.344+02:00</updated><category term='XML Kitap'/><category term='Çok Satan Kitap'/><category term='Sosyal ağlar'/><category term='LINQ'/><category term='Web Development'/><category term='Visual Studio'/><category term='Visual Studio 2008'/><category term='internet'/><category term='AJAX'/><category term='MVP'/><category term='Dynamic Data'/><category term='Mobillife Dergisi Yazılarım'/><category term='ASP Kitap'/><category term='Mobile-Web Development'/><category term='kitaplarım'/><category term='jquery mobile'/><category term='Genel'/><category term='ASP.NET'/><category term='Silverlight'/><category term='HTML 5'/><title type='text'>Zafer Demirkol</title><subtitle type='html'>Zafer Demirkol έ Blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>88</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6180642.post-5706006496576487710</id><published>2012-01-27T15:07:00.000+02:00</published><updated>2012-01-27T15:14:10.747+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML 5'/><title type='text'>HTML 5</title><content type='html'>&lt;br /&gt;&lt;div class="p1"&gt;&lt;b&gt;HTML 5&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;(Bu makalem ocak 2012 mobillife dergisinde yayınlanmıştır)&lt;br /&gt;Uzun zamandır bahsettiğim HTML 5’in teknik detaylarına değinmenin zamanı geldi sanırım. HTML 5 bundan önceki sürümlerine pek çok yeni özellik ilave ederek geliyor. Aslında HTML 5 ile birlikte her 10 yılda bir kırılma yaşayan web’in görsel arabirim alt yapısı&lt;span class="s1"&gt; yeniden &lt;/span&gt;tanımlanıyor&lt;span class="s1"&gt; denebilir.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;Halen geliştirilme aşamasında olan ve epey de bu aşamada&lt;span class="s1"&gt; kalacak&lt;/span&gt; olan HTML 5; bulut- pc-mobile-smart devices teknolojilerinin - css ile birlikte- arabirimini sağlayacak teknikleri, web’in doğal tag’lama (etiketleme) alt yapısıyla sunan yeni bir HTML sürümü.&amp;nbsp;&lt;/div&gt;&lt;div class="p2"&gt;Daha yalın anlatmak istersem; HTML ve javascript bir karışım olan HTML5 kolay etiketlemeler vasıtasıyla bir browser üzerinde animasyon, video, naviga&lt;span class="s1"&gt;syon gibi yeni nesil arabirimleri kolayca &lt;/span&gt;oluşturmamızı sağlayan yeni teknikler-etiketlemeler sunuyor.&amp;nbsp;&lt;/div&gt;&lt;div class="p2"&gt;Böyle bir şeye ihtiyaç vardı çünkü artık browser üzerinde&lt;span class="s1"&gt;n&lt;/span&gt; talep edilen şeyler oldukça fazlalaşmıştı. Örneğin bir naviga&lt;span class="s1"&gt;sy&lt;/span&gt;on-haritalama işinin daha kolay yapılması isteniyordu. Bir video’nun sadece bir tag’la ilave edilmesi neden olmasın ki? Veya animasyonları neden doğal etiketlemeler ve bir takım javascript alt yapılarla oluşturmayalım? Böylece kimse kendine ait standartlaşmalar yoluna gitmez. Henüz geliştirme aşamasında olan ve daha uzun bir süre bu aşamada olacak olan HTML 5 şu anki haliyle bile pek çok soruna çözüm üretmiştir.&amp;nbsp; Artık pek çok site HTML5 standartlarına dayalı yapılıyor.&lt;/div&gt;&lt;div class="p2"&gt;HTML5 sadece yukarıda içerdiğim popüler maddeleri kapsamıyor tabii ki, aslında alt yapısal olarak pek çok farklı yapıyla geliyor. Tarihsel sürece ve bütün bu alt yapısal teknik konularla kafa karıştırmadan doğrudan işin pratik yönlerini sizinle paylaşacağım.&lt;/div&gt;&lt;div class="p2"&gt;Öncelikli olarak şunu belirtmeliyim HTML5 kodlarınızın (etiketleme) çalışması için browser’ımızın HTML 5 uyumlu olması gerekiyor.&amp;nbsp; &lt;span class="s1"&gt;Günümüzdeki &lt;/span&gt;hemen her&amp;nbsp; browser en yeni sürümleriyle HTML 5’i desteklemektedir. Bazısı bazı HTML5 özelliklerini desteklerken bazısı desteklememektedir.&lt;/div&gt;&lt;div class="p2"&gt;Bunun sebebi de şudur. HTML5 halen geliştirilme aşamasındadır. Browser üreticileri her yeni sürümde bazı yeni özellikleri eklemektedir. Dolayısı ile mutlak bir ortak uyumluluktan şu an için söz etmek zor. Ancak pek çok bilinen HTML5 özelliğini hemen her bilinen browser desteklemektedir.&lt;/div&gt;&lt;div class="p4"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;Browser’ınızın Hangi HTML5 özelliklerini&amp;nbsp;&lt;span class="s1"&gt; deste&lt;/span&gt;klediğini öğrenmek istiyorsanız, bunun için pek çok site var. Bunlar karşılaştırmalı tablolar sunarak hangisinin hangi özelliği desteklediğini detaylı olarak gösteriyor. Daha pratik bir site de &lt;a href="http://www.html5test.com/"&gt;&lt;span class="s2"&gt;http://www.html5test.com/&lt;/span&gt;&lt;/a&gt; bu siteye girdiğinizde, kullandığınız browser’ın hangi HTML5 özelliklerini desteklediğini maddeler halinde görebiliyorsunuz. Hatta daha da ileri gidip bir puanlama da yapıyor.&lt;/div&gt;&lt;div class="p5"&gt;&lt;span class="s3"&gt;Örneğin önce ben &lt;/span&gt;Firefox’un 8.01 sürümüyle &lt;a href="http://www.blogger.com/%22http://www.html5t"&gt;&lt;span class="s4"&gt;www.html5test.com/&lt;/span&gt;&lt;/a&gt;&lt;span class="s3"&gt; a bağlandım :&lt;/span&gt;&lt;/div&gt;&lt;div class="p4"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p4"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-hBh4SU9r5_0/TyKgIlVihMI/AAAAAAAABi4/pqq_a57r--Y/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/-hBh4SU9r5_0/TyKgIlVihMI/AAAAAAAABi4/pqq_a57r--Y/s640/01.jpg" width="345" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;aşağıya doğru uzun bir liste olan HTML5 elemanlarını destekleme puanlamasından 314 almış Firefox 8.01 sürümü.&lt;/div&gt;&lt;div class="p4"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;Aynı test’i chrome 16.0.912.63 sürümüyle yaptığımızda:&lt;/div&gt;&lt;div class="p4"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-aI-BgriRn6c/TyKgJ39WRGI/AAAAAAAABjA/PojbSPldf_s/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/-aI-BgriRn6c/TyKgJ39WRGI/AAAAAAAABjA/PojbSPldf_s/s640/02.jpg" width="314" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p4"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;343 almış. Detayları dikkatlice incelerseniz HTM5 ile ilgili yenilikleri görürsünüz. Buradan da anlaşılacağı üzere HTML5 bazı özelliklerini bazı browser sürümleri desteklerken bazıları desteklememektedir. Ancak temel HTML 5 elementlerinin hemen her browser’ca desteklendiğini tekrar vurgulamakta &lt;span class="s1"&gt;fayda&amp;nbsp; var.&lt;/span&gt; Ben de zaten ağırlıklı olarak Temel özelliklerden bahsedeceğim.&lt;/div&gt;&lt;div class="p4"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s5"&gt;&lt;b&gt;HTML 5’&lt;/b&gt;&lt;/span&gt;&lt;b&gt; in temel yapısı&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;HTML5 ile ilgili kaynakları incelediğinizde hemen hepsi semantik bir yapıya sahip olduğundan bahseder. Peki nedir semantik yapı?&lt;/div&gt;&lt;div class="p2"&gt;Burada semantik kavramı en basit, temel anlamıyla kullanılmıştır. Yani HTML5 tagları aslında ne dediklerini ifade ederler. Mesela HTML5 &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;header&gt; tagı bir başlık olduğu açıklamasına gerek duymaz. Zaten tag’ın kendisi bunu gösteriyor.&lt;br /&gt;&lt;div class="p5"&gt;Veya footer&lt;/div&gt;&lt;footer&gt; veya article&lt;article&gt;&lt;br /&gt;&lt;div class="p2"&gt;HTML5 de taglar bu şekilde oluşturulmuştur ve kullanımı,&lt;span class="s1"&gt; &lt;/span&gt;algılanması son derece kolaydır.&lt;/div&gt;&lt;div class="p2"&gt;HTML5 Koduna uzaktan baktığınızda son derece&amp;nbsp; düzenli, simetrik ve anlaşılır bir yapı görürsünüz&lt;/div&gt;&lt;div class="p4"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p4"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-VeI-qoGDnHk/TyKgM-bcMlI/AAAAAAAABjI/gd14op1bGY8/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/-VeI-qoGDnHk/TyKgM-bcMlI/AAAAAAAABjI/gd14op1bGY8/s640/03.jpg" width="436" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p4"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;Bu HTML 5 kodunu incelerseniz ne demek istediğimi daha iyi anlayacaksınız. Gördüğünüz gibi yapı son derece simetrik, açık ve anlaşılır. Başlık&lt;br /&gt;&amp;lt; header&amp;nbsp;&amp;nbsp;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;header&gt; etiketleri arasına konumlandırılmış. İçerikler &lt;article&gt;&lt;span lang="TR" style="font-family: Cambria;"&gt;&lt;span style="font-family: Times; font-size: small;"&gt;&amp;lt; article &amp;nbsp;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;article style="font-size: 12pt;"&gt;&amp;nbsp;altlık&lt;/article&gt;&lt;article&gt;&lt;span style="font-family: Times; font-size: small;"&gt;&amp;lt; footer &amp;nbsp;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;footer&gt;&lt;footer&gt;&lt;span style="font-size: small;"&gt; tagları arasında yazılmış. HTML5 dosyasını ve kullanılan dili tanımlayan ifadeler de&lt;/span&gt;&lt;/footer&gt;&lt;footer&gt;&lt;br /&gt;&lt;div class="p5"&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="font-size: 12pt;"&gt;&lt;span lang="TR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;!--EndFragment--&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&amp;lt;html lang="en" &amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-size: 12pt;"&gt;&lt;span lang="TR"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="p5" style="font-size: 12pt;"&gt;&lt;/div&gt;&lt;div class="p2" style="font-size: 12pt;"&gt;şeklinde son derece basitleştirilmiş.&lt;/div&gt;&lt;div class="p2" style="font-size: 12pt;"&gt;HTML 5 de XML e ait açılan tag kapanır gibi yazım teknikleri geçerlidir.&amp;nbsp; Yukarıdaki sayfada CSS tanımlamalarına da dikkatinizi çekmek isterim. &lt;span class="s1"&gt;Bunlar&lt;/span&gt; da semantik yapıdadır. İlk bakışta hangi elementle ilgili işlem yapıldığı kolayca anlaşılmaktadır.&lt;/div&gt;&lt;div class="p2" style="font-size: 12pt;"&gt;Özet olarak HTML5 daha ana yapısından başlayarak HTML e yeni bir anlamsal yapı getirmiş ve kullanımı daha sade anlaşılabilir kılmıştır.&lt;/div&gt;&lt;div class="p2" style="font-size: 12pt;"&gt;Bir dahaki yazımda HTML5 taglarını ve kullanımlarını incelemeye devam edeceğim.&lt;/div&gt;&lt;div class="p4" style="font-size: 12pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p4" style="font-size: 12pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/footer&gt;&lt;/footer&gt;&lt;/article&gt;&lt;/span&gt;&lt;/article&gt;&lt;/header&gt;&lt;/article&gt;&lt;/footer&gt;&lt;/header&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-5706006496576487710?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/5706006496576487710/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=5706006496576487710&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5706006496576487710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5706006496576487710'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2012/01/html-5.html' title='HTML 5'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-hBh4SU9r5_0/TyKgIlVihMI/AAAAAAAABi4/pqq_a57r--Y/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-3548538534161466478</id><published>2012-01-23T21:04:00.002+02:00</published><updated>2012-01-23T21:10:14.867+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile-Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery mobile'/><title type='text'>JQuery Mobile – II</title><content type='html'>&lt;style&gt;&lt;!-- /* Font Definitions */@font-face	{font-family:Arial;	panose-1:2 11 6 4 2 2 2 2 2 4;	mso-font-charset:0;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:-536859905 -1073711037 9 0 511 0;}@font-face	{font-family:"ＭＳ 明朝";	mso-font-charset:78;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:1 134676480 16 0 131072 0;}@font-face	{font-family:"ＭＳ 明朝";	mso-font-charset:78;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:1 134676480 16 0 131072 0;}@font-face	{font-family:Cambria;	panose-1:2 4 5 3 5 4 6 3 2 4;	mso-font-charset:0;	mso-generic-font-family:auto;	mso-font-pitch:variable;	mso-font-signature:-536870145 1073743103 0 0 415 0;} /* Style Definitions */p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-unhide:no;	mso-style-qformat:yes;	mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:Cambria;	mso-ascii-font-family:Cambria;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:"ＭＳ 明朝";	mso-fareast-theme-font:minor-fareast;	mso-hansi-font-family:Cambria;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:"Times New Roman";	mso-bidi-theme-font:minor-bidi;	mso-ansi-language:TR;}.MsoChpDefault	{mso-style-type:export-only;	mso-default-props:yes;	font-family:Cambria;	mso-ascii-font-family:Cambria;	mso-ascii-theme-font:minor-latin;	mso-fareast-font-family:"ＭＳ 明朝";	mso-fareast-theme-font:minor-fareast;	mso-hansi-font-family:Cambria;	mso-hansi-theme-font:minor-latin;	mso-bidi-font-family:"Times New Roman";	mso-bidi-theme-font:minor-bidi;}@page WordSection1	{size:595.0pt 842.0pt;	margin:72.0pt 90.0pt 72.0pt 90.0pt;	mso-header-margin:35.4pt;	mso-footer-margin:35.4pt;	mso-paper-source:0;}div.WordSection1	{page:WordSection1;}--&gt;&lt;/style&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="TR" style="font-family: Arial; font-size: 20pt;"&gt;JQuery Mobile – 2&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;&amp;nbsp;(Bu Makalem Aralık&amp;nbsp; 2011 tarihinde mobillife dergisinde yayınlanmıştır)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Bir önceki makalemde jquery mobile’a bir girişyapmıştım. Orada Visual Studio, Dreamweaver gibi gelişkin editörlerin jquerymobile’ı desteklediğini yazmıştım. Bu yazımda bu konuyu biraz dahadetaylandıracağım.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Örneğin Dreamweaver’da (5.5 sürümü) projeoluşturma seçenekleri içinde &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-pW0ORSu-pRY/Tx2th1EE2cI/AAAAAAAABa4/N5vLqu-g5lE/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="473" src="http://1.bp.blogspot.com/-pW0ORSu-pRY/Tx2th1EE2cI/AAAAAAAABa4/N5vLqu-g5lE/s640/01.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span lang="TR"&gt;“More...”&lt;/span&gt;&lt;/i&gt;&lt;span lang="TR"&gt; a tıkladığınızda &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BD_mqJeaYDo/Tx2tms0RWWI/AAAAAAAABbA/0LOxxWDZU84/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="414" src="http://1.bp.blogspot.com/-BD_mqJeaYDo/Tx2tms0RWWI/AAAAAAAABbA/0LOxxWDZU84/s640/02.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Resimdeki gibi size jquery mobile şablonu oluşturanbir seçenek sunuluyor. Burayı tıkladığınızda gerekli sayfa(lar) ve bağlantılaroluşturulup getiriliyor:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-zEv1y9wux-E/Tx2tpk8dH0I/AAAAAAAABbI/K2FPy8RgLVs/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="152" src="http://3.bp.blogspot.com/-zEv1y9wux-E/Tx2tpk8dH0I/AAAAAAAABbI/K2FPy8RgLVs/s320/03.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Burada da görüldüğü gibi pencerenin sol tarafındajquery mobile’a ait tag’lar (etiketler), sağ tarafta da bunların sayfaüzerindeki konumları gözükür. Gerçek çıktıyı görmek için yukarıdaki “Live View”butonuna basmak gerekli:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-eenZ2-M9srY/Tx2tr0SZLYI/AAAAAAAABbQ/-98qFw_qCw4/s1600/04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://1.bp.blogspot.com/-eenZ2-M9srY/Tx2tr0SZLYI/AAAAAAAABbQ/-98qFw_qCw4/s640/04.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Böylece yazdığımız tag’ların nasıl çıktıüreteceği anında görülür. Her şeyin bildirimsel (tag-etiketlerle) olarakyapılması Jquery mobile kullanımını son derece kolay hale getiriyor. Gereklişekilsel düzenlemeler yukarıdaki linklerde belirtilen javascript kütüphanelerive CSS ler tarafından yapılıyor.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="TR" style="font-family: Arial; font-size: 20pt;"&gt;Sayfa Mimarisi&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Jquery mobile’da sayfa mimarisi bildirimselbir yapıya sahiptir. Diğer bir ifadeyle Jquery mobile sayfaları&amp;nbsp; tek bir html sayfası (veya aspx, php vs)üzerinde bildirimsel olarak yapılandırılan sayfalardan oluşur ve bu etiket veyatag ise:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-role="page" id="page"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;gibi “data” rolünü “page” olarak belirtenbildirimdir. Dikkatle baktığınız zaman&amp;nbsp;Jquery mobile nitelik bildirimlerinin “data” &amp;nbsp;ile başladığını &amp;nbsp;görürsünüz. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;“data“ bildirimleri “jquery mobile” ı temsileder. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Yeni bir sayfa bildirimi de aynen yukarıdaoluğu gibi bu rolün bir sayfa yani “page” oluşturmak olduğunu söyler.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Devamında bir mobil sayfada gerekenbildirimler yapılır. Bunlar temel olarak başlık, içerik ve altlıktır. Böylecetipik bir “jquery mobile” sayfa yapısı:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jf5E70UZkkU/Tx2tshIio2I/AAAAAAAABbU/jHJBZXCeNeI/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-jf5E70UZkkU/Tx2tshIio2I/AAAAAAAABbU/jHJBZXCeNeI/s1600/05.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;şeklindedir.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Burada dikkat edilmesi gereken diğer bir hususher bir sayfanın bir “id” ile kimliklendirilmiş olmasıdır. Bu bize birazdananlatacağım sayfalar arası “gezinim” (Navigasyon) imkanını sağlar. Nitekimbirinci sayfa bildirimine baktığımız zaman:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jGg_TUSMTj4/Tx2ttb0IUxI/AAAAAAAABbg/TeB1Aa94-w8/s1600/06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://4.bp.blogspot.com/-jGg_TUSMTj4/Tx2ttb0IUxI/AAAAAAAABbg/TeB1Aa94-w8/s320/06.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Şeklinde # (hash) ile başlayan link adreslerigörüyoruz. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Bu link adresleri fiziksel olarak aynı dosyadabulunan fakat sunumsal olarak sadece bir tek sayfa görünümü sağlayan jquerymobile&amp;nbsp; sayfaları arasında bağlantı kurmaimkanı verir. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Nitekim link adresleri sayfa “id” lerindenoluşuyor. Bu sayede işte o meşhur yana kayan sayfalar arası gezinim imkanıoluşuyor.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Konu linklerden açılmışken, örneğin linkinizinbir buton görünümünde olmasını istiyorsanız sadece:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;data-role="button"&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;ifadesini kullanmanız yeterli:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dkf1SG_kdww/Tx2tt_RJnCI/AAAAAAAABbo/bAf6MQkRjnU/s1600/07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/-dkf1SG_kdww/Tx2tt_RJnCI/AAAAAAAABbo/bAf6MQkRjnU/s640/07.jpg" width="328" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Veya tıkladığınız linkin bir “pop up” “dialog”şeklinde gözükmesini istiyorsanız:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;data-rel="dialog"data-transition="pop"&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;şeklinde bildirimlerde bulunmanız veya diğerbir ifadeyle nitelikleri tanımlamanız gerekir:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-LkBbqlqGtSI/Tx2tvC-N6OI/AAAAAAAABbw/xn45HZg35kY/s1600/08.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-LkBbqlqGtSI/Tx2tvC-N6OI/AAAAAAAABbw/xn45HZg35kY/s640/08.jpg" width="328" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="TR" style="font-family: Arial; font-size: 20pt;"&gt;Toolbar’lar&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Jquery mobile’da standart iki toolbarmevcuttur. Bunlar “header” ve “footer” dır. &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Yukarıda da açıkça görüldüğü gibi:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span style="font-family: Courier; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;img alt="" src="data:image/png;base64,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T37yk+m+jdvzltn2TDi/8sor4YQTTghLL7102G233cJTTz3VlD8EHD0+hOZSRFtvvXW44IILdNhUVKZXx9dee+3wyCOPhCeeeCK7ZTPes0JNdp5//nk9y3C0VYfWpJohcYp2wUgDDboKtNBCCwX+INumHS/H+X3zzTezW0lCwXn22WfD5z//eeVvoO2xk4c07NJtHsc//elP4ZOf/GRYbrnlwtlnnx36YX7p5NkG85pZB7Ny6uZjO+uss8LFF1+svfcXvvCF8MUvfrFGu6Tcv//974CJ4g9/+ENYeOGFw+abb87hQvrmN78ZeKEQQ88TTzwxzDLLLDXlf/nLX4brr79eh1FoQrvssktYd911w/333x8uv/zyrJfGdHLwwQfXXNvOD+ykN910U3j00UfVDPOJT3yi8PK33347XHPNNYHh75///OfwwgsvqP1t++23104rfQYmULB9GmHbtI9r3nnntcM1W57txz/+sdbNkHv22WcPH/7whwM202WXXbambLs/Jk2alJlXttlmm7DVVluptoM5h3ttscUWYfz48Vm1DF/BH7MM59GWVl55ZR3p5D/O7KI2dphnuPDCC8MDDzwQnnvuOf2wt9tuu5DHn3mLadOmNa0Z3uA/paOPPjqg6UGMXo499tjwkY98JC1St49N9aCDDgoPPvigjgKOOOIIfeZ8wbK8c107bcbuQ4dx7733BmzOZcxDP//5z8MPf/hD/aYwOay66qoq0PPvqd02AD/rr7++YrfWWmspe+DIqCSlj33sY9pGzj333HDMMceEiRMnhgMOOCBghkEezJAkH9CgkNhI46677hpnnXXWKBpwPP/886Nofg3v9atf/SrKcDaKYIoytI2LLLJInG222eKnPvUppsajCLG66770pS/FjTfeOIrg0TIyLKor873vfS+K7VfPy8uPIkS0zJ133hlFuEQRcFEaX5TOou7asgeuvvpqrQc+7U+Gutl+nvfdd989O/e+970vyiRT9ls6mOy2f//73+N8882XnbO6bStD6SgfXlaeHemsFEMrw7PZvgxto4xeasq380NMDFEEfVbfvvvuGw877LDst92HdwnJhG4cNWpU3XnKLbDAAlHmCQpvf8opp+h1H/rQhwrL3HrrrVE0sYb1iwYW4ddIhG7DcsazbWVuwy5pa/vMM89k9Yv9OdunXhFC8b///W9Nfe3w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" /&gt;&lt;div class="MsoNormal"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-role="page" id="page"&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;şeklinde bir bildirimle oluşturulurlar vegörüntüsü de aksi belirtilmedikçe siyah arka plana beyaz metin şeklindedir.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Toolbarlar’a aşağıdaki gibi butonlar eklemekistiyorsanız:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-IAvNuDfr8bw/Tx2tvmC8b_I/AAAAAAAABb0/ndrBhhWIyBo/s1600/09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="43" src="http://3.bp.blogspot.com/-IAvNuDfr8bw/Tx2tvmC8b_I/AAAAAAAABb0/ndrBhhWIyBo/s320/09.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;Şu şekilde bir bildirimde bulunmalısınız:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-position="inline" data-role="header"&gt;&amp;nbsp;&lt;img alt="" src="data:image/png;base64,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4vOf/3xPisRK6MADD+xqC6InBekikX7VD9JByJggu//iF7/Y8jVI7kYD9bJdVfle8ELKCuMDMQHlsauSThqmV23h/fff135x1113pcmP+etxYbxIK9H6bKc+nMbp9nqSSSYJ0003XbfJ9Dz+cPTHnhdylCU44Sgrb2lxJ5yw/FPuuOOOgB7CJz/5ydL4w/GiXZnq5HfKKacEBvqDDz44jDfeeHWiDkzYXmFR94PKBlAbUC29CSaYwC4H/ncksQQ/mB5rd9znsasLWK/K/+STT4ZDDz1Us1922WXrFmNUh19mmWVUr2388YeuYzuNF/0aD5sCXrUP9/q7ytppr/Opg8tw9Mc6+Y+LYYf2oAH6yttvv123laoUyQZp+03jwPywgh7pic7KYr9pmapeo5z3yCOPVA0+sOG6waCbjyoaQBncpp9++pZk+1W+lkJUvLGy2m/FaI2C5ZkeG4QbJfZxJCu3/TZN6957720addTHg/lhTGNLJKUq40W/xsO0nHWuq/bhXn9XWfvsdT51sUgXIfn+iHT0/PPPV/29OumO6bBi5TFQ9Je//CWeeuqpcc4558SkKl522WVDyverX/0qio5J/NrXvhZlMouLLbZYFMVXDb/NNttk4cUCKC6//PJxwQUXjHPPPXd87LHH9J2sIOMKK6wQl1tuOf1bccUVoyjD6TuxMIurrLJK9m7llVeOYuGVpVl0IZYz8YwzzoiyVxxnmmmmKFsrcbPNNovTTDONlumNN94YEu3++++PO++8c/zqV78aZdssLr744vH4449vCffMM8/ENdZYQ9MAC1ntZuU68sgjs7BiMRB/9KMfxVVXXTWK7pP+rbvuuvHll1/OwnS6ACtwWGihhRSrJ554Iv7ud7+LW265ZZTtiyiiYb1P06Ee9t13X8VfOqbmf+aZZ8Z///vfaTC9ph75hu22227IOxm443nnnRc33njjSDpLL710POywwyK4dksffvhhpL4tLer32WefHZLsFVdckbUfwv7whz+M8803n5bn29/+dmkbqFP2uvXUpF1VKU+duhYl0CjKtxleL730Unzvvfey+04XVfuqpVMFI3A5++yzo2xZaJ3NPPPMWb+gT6f9rUo/s7zLfo844ggda0RXJB5wwAGRNnXCCSfE+eefX/va+uuvH1944YXC6FaHG220kYZdeOGF41ZbbRVfeeWVwvD0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" /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span lang="TR"&gt;data-icon bildirimi buton üzerindeki icon’u belirtir. Bu bildirimiyapmazsak “icon” suz bir buton görünümü alınır:&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Q2GkyZh9nmQ/Tx2tv98zCVI/AAAAAAAABb8/1BXQjfcLgB8/s1600/10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="41" src="http://3.bp.blogspot.com/-Q2GkyZh9nmQ/Tx2tv98zCVI/AAAAAAAABb8/1BXQjfcLgB8/s320/10.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;br /&gt;&lt;span lang="TR"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span lang="TR"&gt;Başka bir açıdan bakarsak Toolbarlar da tanımlanan linkler butonşeklinde gözüküyor eğer özel “icon” lar isteniyorsa bunu da açıkça bildirimselolarak belirtmeliyiz.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;span lang="TR"&gt;jquery mobile’a gelecek yazılarımda devam edeceğim.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-3548538534161466478?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/3548538534161466478/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=3548538534161466478&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3548538534161466478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3548538534161466478'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2012/01/jquery-mobile-ii.html' title='JQuery Mobile – II'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-pW0ORSu-pRY/Tx2th1EE2cI/AAAAAAAABa4/N5vLqu-g5lE/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-7816557727054445129</id><published>2011-11-15T12:59:00.001+02:00</published><updated>2011-11-15T13:08:42.750+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile-Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery mobile'/><title type='text'>jquery mobile</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-UnYRmXBjVUs/TsJGXr76IyI/AAAAAAAABMY/sVmV1bDaJYM/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: x-large;"&gt;&lt;b&gt;JQuery Mobile&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;(Bu yazım kasım 2011 mobillife dergisinde yayınlanmıştır)&lt;br /&gt;Geçen yazılarımda da anlattığım gibi mobil yazılım geliştirme iki ana teknikte ilerliyor. Bunlardan bir tanesi mobil cihazın kendine ait olan platformu üzerinden uygulama geliştirmek (Native) diğeriyse standart web teknolojileriyle browser uygulamaları geliştirmek. Bunların artı ve eksilerini daha öncedeki yazılarımda aktarmıştım. Bugünkü makalemde mobile web uygulamalarının (development) yükselen yıldızı JQuery Mobile’ı tanıtmaya çalışacağım. &lt;br /&gt;JQuery Mobile bütün popüler mobil cihazları destekleyen, dokunmatik ekranlar için optimize edilmiş bir framework. Alt yapısında JQuery ve JQuery UI framework’lerini kullanan JQuery Mobile kullanıcı arabirimi olarak HTML5 üst yapısını kullanıyor. &lt;br /&gt;Daha da basit anlatmaya çalışırsam dokunmatik ekran arabirimleri, tuş takımlı mobil cihazlara göre daha farklı tasarlanır. İşte JQuery bu arabirimleri oluşturmak için geliştirilmiş ve bu yapılırken de web’in doğal teknolojilerinden başka teknik kullanılmamış. Yani JQuery kütüphaneleri, CSS ve HTML5 teknolojileri kullanılmış.&lt;br /&gt;JQuery Mobile ile sadece etiketlerden (tag) oluşan bir bildirimle çok hızlı dokunmatik arabirimler oluşturulabiliyor. Üstelik bunların şekil ve renkleri tek bir bildirimle değişebiliyor.&lt;br /&gt;http://jquerymobile.com/ adresinden erişebileceğiniz bu kütüphaneyi web sayfasının altında yazan adobe, Nokia, blackberry&amp;nbsp; dahil pek çok firma destekliyor.&lt;br /&gt;“Docs and Demo” linkindeki&amp;nbsp; sayfada&amp;nbsp; JQuery Mobile a ait örnekleri hemen görüyorsunuz, çünkü bunlarda JQuery Mobile tekniği ile dokunmatik ekran mantığına göre hazırlanmış:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-UnYRmXBjVUs/TsJGXr76IyI/AAAAAAAABMY/sVmV1bDaJYM/s1600/01.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276" src="http://3.bp.blogspot.com/-UnYRmXBjVUs/TsJGXr76IyI/AAAAAAAABMY/sVmV1bDaJYM/s640/01.jpg" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bu sayfaya iphone’dan baktığınızda:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-nQXfhHBHkJ4/TsJGjut26XI/AAAAAAAABMg/G5SwuTkrSAI/s1600/02.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-nQXfhHBHkJ4/TsJGjut26XI/AAAAAAAABMg/G5SwuTkrSAI/s400/02.jpg" width="205" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp; Görünüm sanki native bir uygulamaymış gibidir. Kolay kolay bir web uygulaması olduğu anlaşılmaz.&lt;br /&gt;İşte bu arabirimleri uygulama geliştiricilerin kolayca oluşturabilmesi için JQuery Mobile kütüphanesi veya Framework’ü geliştirilmiştir. Şu an nihai sürümden önceki son sürümlerinden biri olan (RC2) JQuery Mobile çok yakında nihai sürümüyle kullanımda olacak. Ancak bu hali de hemen hemen nihai sürüm gibi. Çünkü RC sürümler de sadece ufak değişiklikler yapılır.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;JQuery Mobile’ı Kullanmak&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;JQuery Mobile ‘ı kullanmak için bilgisayarınıza hiçbir şey kurmanıza gerek yok. Hatta hiçbir şey depolamanıza da. Birer js ve CSS dosyası olan kütüphaneleri linkleyerek hemen kullanmaya başlayabilirsiniz.&lt;br /&gt;Dilerseniz bu dosyaları kendi bilgisayarınızda da saklayıp referans gösterebilirsiniz.&lt;br /&gt;http://jquerymobile.com/download/ linkini tıkladığınızda, JQuery Mobile’ı kullanmak için&amp;nbsp; size bir çok seçenek sunuyor. &lt;br /&gt;Buraya baktığınızda 3 temel dosyanın kullanılması gerektiğini görüyorsunuz. Bunlar uzantıları js olan JQuery, JQuery.Mobile ve uzantısı css&amp;nbsp; olan JQuery.Mobile. İfadelerin devamında gelen sayılar ise hangi sürüm olduklarını belirtir. Daha net bir ifadeyle şu dosyalarla çalışılır:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-9dMZsk5Q5Eg/TsJH7jRp5KI/AAAAAAAABNQ/PeTlA-jsn_w/s1600/12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="85" src="http://2.bp.blogspot.com/-9dMZsk5Q5Eg/TsJH7jRp5KI/AAAAAAAABNQ/PeTlA-jsn_w/s320/12.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Bu dosyaları indirip kendi bilgisayarınızda da kullanabilirsiniz veya doğrudan bunların web adresini vererek referans gösterip kullanabilirsiniz:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qPeUL1M9LYY/TsJIJDKca-I/AAAAAAAABNY/ymHhRIbYgKk/s1600/13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="130" src="http://2.bp.blogspot.com/-qPeUL1M9LYY/TsJIJDKca-I/AAAAAAAABNY/ymHhRIbYgKk/s640/13.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Bu linklerden CSS ile biteni, kullanıcı arabirimini CSS tekniğine dayanarak oluşturan dosya. JS lerde bildiğimiz javascript altyapılı JQuery kütüphaneleri. Bunlar işleyişi kontrol ederler.&lt;br /&gt;yapmanız gereken html sayfanızın head tagları arasına yukarıdaki referansları kopyalamak:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-MKDjhwXHT0w/TsJGwNuMI2I/AAAAAAAABMo/eIHuxWQOWrk/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276" src="http://3.bp.blogspot.com/-MKDjhwXHT0w/TsJGwNuMI2I/AAAAAAAABMo/eIHuxWQOWrk/s640/03.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;artık JQuery Mobile ile çalışmaya hazırsınız. Bundan sonrası sanki HTML tagı yazıyormuşçasına JQuery Mobile’a ait bildirimleri sayfaya eklemek. Bu bildirimlerden bir kaçını birazdan örnekleyeceğim. Ancak bütün bildirimleri ve ifadeleri bulmak için http://jquerymobile.com/demos/1.0rc2/ sayfasından veya diğer referans kaynaklardan faydalanabilirsiniz. &lt;br /&gt;JQuery Mobile ile çalışan editörler mevcut. Bunun anlamı şudur; JQuery Mobile’ı otomatik olarak ekleyip, bildirimlerini otomatik olarak kullanıcıya sunar bu editörler. Bunlardan biri&amp;nbsp; Visual Studio diğeriyse Dreamweaver’dır. &lt;br /&gt;Dreamweaver CS 5.5 sürümünde JQuery Mobile ifadelerini yazmaya başladığınızda kullanabileceğiniz bildirimler otomatik olarak&amp;nbsp; sunuluyor. Diğer bir ifadeyle kod tamamlama var:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-oglw4gI7PJo/TsJG4wY4XXI/AAAAAAAABMw/IQz7S1MqObQ/s1600/04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="388" src="http://3.bp.blogspot.com/-oglw4gI7PJo/TsJG4wY4XXI/AAAAAAAABMw/IQz7S1MqObQ/s640/04.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Tipik bir JQuery Mobile sayfa yapısı aşağıdaki gibidir:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-aO2kBi87Mzc/TsJG9Wfd1JI/AAAAAAAABM4/iKWOSULJHFI/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="402" src="http://3.bp.blogspot.com/-aO2kBi87Mzc/TsJG9Wfd1JI/AAAAAAAABM4/iKWOSULJHFI/s640/05.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Mobil cihazımızda dokunarak yana kaydırdığımız her bir ekran “page” (sayfa) denilen bölümlerden oluşur bu bölümlerde kendi içinde Başlık, içerik ve taban olarak ayrılır. Bir html sayfası içinde birden fazla “page” bildirimi yapılabilir. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-AT0hBoeooGo/TsJHEAVC2II/AAAAAAAABNA/SdkXewRDr4Y/s1600/06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-AT0hBoeooGo/TsJHEAVC2II/AAAAAAAABNA/SdkXewRDr4Y/s400/06.jpg" width="205" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;yukarıdaki ekranda, sayfanın cihazımıza tam olarak sığmadığını görüyoruz. Bunun için head etiketleri arasına şöyle bir bildirimde bulunursak sorun ortadan kalkar:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-N-p7pq0lXnw/TsJFlRukGKI/AAAAAAAABMQ/wCsHC7f2RN4/s1600/11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="27" src="http://3.bp.blogspot.com/-N-p7pq0lXnw/TsJFlRukGKI/AAAAAAAABMQ/wCsHC7f2RN4/s320/11.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Bir link eklemek istediğimizde:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-wpk2ecG8w8M/TsJCjKAN5cI/AAAAAAAABMA/GNPBP7MHGJ8/s1600/09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="34" src="http://3.bp.blogspot.com/-wpk2ecG8w8M/TsJCjKAN5cI/AAAAAAAABMA/GNPBP7MHGJ8/s320/09.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jfihDo0kh2M/TsJCm4RdmrI/AAAAAAAABMI/A_VlnouhvCw/s1600/10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Bildiğimiz html linki tanımı yapıyoruz. Farklı olarak örneğin bu linkin buton şeklinde gözükmesini istiyorsak:&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-jfihDo0kh2M/TsJCm4RdmrI/AAAAAAAABMI/A_VlnouhvCw/s1600/10.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="30" src="http://1.bp.blogspot.com/-jfihDo0kh2M/TsJCm4RdmrI/AAAAAAAABMI/A_VlnouhvCw/s400/10.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;şeklinde bir ifade kullanmak gerek:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-nCMxqKep3p8/TsJHVk4tFLI/AAAAAAAABNI/xvd1E8mMlr0/s1600/07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-nCMxqKep3p8/TsJHVk4tFLI/AAAAAAAABNI/xvd1E8mMlr0/s400/07.jpg" width="205" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;jquery mobile’da bir mobile arabirim için gereken bütün elemanlar tanımlıdır. Butonlar, metin kutuları, linkler ve diğerleri. Yeri geldikçe bunları tanıtacağım.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-7816557727054445129?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/7816557727054445129/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=7816557727054445129&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7816557727054445129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7816557727054445129'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2011/11/jquery-mobile_15.html' title='jquery mobile'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-UnYRmXBjVUs/TsJGXr76IyI/AAAAAAAABMY/sVmV1bDaJYM/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-715271837273753015</id><published>2011-10-24T23:32:00.001+03:00</published><updated>2011-11-14T22:46:45.763+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Sosyal ağlar'/><title type='text'></title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Web Uygulamalarında Sosyal Ağ Entegrasyonu&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Akıllı cihazların, bulut uygulamaların ve sosyal ağların yaygınlaşmasıyla, yazılım modelleri de değişti. Öncelikle artık web uygulamalarında doğrudan HTML ve Javascript’e dayalı modeller ağırlık kazandı. Özellikle HTML 5 in gelişmesiyle bu ağırlık daha da aratacak. Eskiden bir takım plug-in’lerle yapılabilen görsel zenginlikler şimdi bu iki teknolojiyle çok rahat yapılabiliyor (Daha kolay değil).&amp;nbsp; Web uygulama teknolojilerini kapsayan detaylı yazılarım bu köşede yayımlanmıştı. Şimdi bunlara bir de sosyal ağlar ayağını ekleyerek tekrar bakmak istiyorum.&lt;br /&gt;Artık geleneksel anlamda client uygulamaların yerini, özellikle akıllı cihazlar için web ve native (cihazın kendi yazılım diliyle geliştirilmiş) uygulamalar, masa üstü içinse bulut uygulamalar almıştır. Aslında bulut uygulamalarda web tabanlı olduğu için onları da birer web uygulaması sayabiliriz.&lt;br /&gt;Ama burada diğer enteresan bir konu sosyal ağların durumu. Özellikle Twitter ve Facebook gibi ağlar gerçekten de çok büyük kullanıcı kitlelerine ulaştılar. Facebook için 700 milyonu aşkın bir kullanıcı kitlesinden bahsediliyor. Twitter içinse bu sayı 200 milyonu aşkın.&lt;br /&gt;Şimdi bir de Google+ geldi. Daha sınırlı deneme sürümünde bile ilk günlerinde 20 milyon kullanıcıya ulaştı. Gelecekteki durumunu tahmin etmek hiç de zor değil. Durum böyleyken eğer web’de bir uygulama geliştiriyorsanız ve bunun da geniş kitlelere masrafsızca ulaşmasını istiyorsanız sosyal ağlarla entegre etmeniz kaçınılmaz oluyor.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Sosyal Ağlar ve Web uygulamaları&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Sosyal ağlar için uygulama geliştirme kavramını pek çok kişi duymuştur. Peki nedir bu?&lt;br /&gt;Aslında bunun pek çok boyutu var. &lt;br /&gt;Entegrasyondan bahsedeceksek herhalde önce API kavramını incelemek en doğrusu olacak.&lt;br /&gt;API (Application Interface) bir uygulamanın dış dünya ile olan “yazılımsal” ilişkilerini belirleyen arabirimlerdir. Diğer bir ifadeyle uygulamanın iletişim arabirimleridir. Bu arabirimler sayesinde diğer uygulamalarla iletişim sağlar ve onlardan gelen komutları uygular. Diğer uygulamaların ve geliştiricilerinin API nin içeriği hakkında bilgi sahibi olması gerekmez ve hatta güvenlik sebepleriyle de olmamalı. Ancak API arabirimleri sayesinde uygulamaya istediği şeyleri yaptırır. &lt;br /&gt;Konuyu biraz daha somutlaştırırsam; Örneğin bazı sitelerde veya uygulamalarda kendi “login” yordamı dışında facebook ve/veya twitter gibi login imkanları da bulunmakta.&lt;br /&gt;Yani facebook (veya twitter, google, yahoo vs) kullanıcı ismi ve şifresiyle bu sitelere giriş yapılabilmekte.&lt;br /&gt;Peki bu nasıl oluyor? İşte burada facebook (veya diğerleri) API si sayesinde kullanıcı bilgilerine ulaşılabilmekte ve izin verilen bilgiler kullanan uygulamaya gönderilmektedir.&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;API Kullanımı&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;İsterseniz sistemi yakından inceleyelim. Bir login sistemi örneğin facebook login sistemi nasıl oluyor da başka bir uygulama da kullanılabiliyor? &lt;br /&gt;Sistem alt yapı olarak biraz karmaşık. İşin içinde ortak anahtarlar, özel anahtarlar, encoding, token gibi teknik, karmaşık kavramlar var. &lt;br /&gt;&lt;br /&gt;Ama ben mümkün olduğunca işleyişi sadeleştirerek anlatacağım. Aşağıda anlatacaklarımı facebook üzerinden örneklesem de diğer API kullanımları için de hemen hemen aynıdır.&lt;br /&gt;Hangi uygulamayı geliştiriyor olursanız olun bunu bir facebook uygulaması olarak da çalıştırmak istiyorsanız öncelikle facebook hesabınıza kayıt etmelisiniz.&lt;br /&gt;Uygulama ismi, adresi gibi detayların verildiği kayıt işleminden sonra bu uygulamaya ait bir takım uzun anahtarlar oluşturuluyor. Uygulamayı geliştiren bu anahtarları uygulamasına eklemeli. Bu sayede facebook veya twitter uygulamanın kendilerinde kayıtlı olduğunu anlıyorlar ve bir takım birimlerine ulaşmalarına izi veriyorlar. Facebook (veya diğerlerine) yazılımsal olarak bir şeyler yaptırmak istiyorsanız yukarıda bahsettiğim API yordamlarını kullanmak durumundasınız. API sine erişmesine izin vermiş facebook bu API ye göre gelen komutları işleyerek uygulamaya geri gönderir. Bunlardan bir tanesi de yukarıda da belirttiğim gibi login kontrolüdür. Facebook, Twitter ve diğerlerinin API lerini kullanarak buradaki kullanıcıların uygulamanızı kullanmasına izin verebilirsiniz. Biraz karmaşık alt yapıları gerektiren bu entegrasyon, kullanım açısından o kadarda karmaşık değil. Ama yine de belirli bir yazılımsal bilgi birikimini gerektiriyor. Daha basit entegrasyonlar da yapmak mümkün.&lt;br /&gt;Uygulama deyince tabii sadece login yordamları gelmemeli akla. Günümüzde artık oyun uygulamalarından marketing uygulamalarına kadar pek çok kategoride uygulamayı sosyal ağlar için&amp;nbsp; geliştirmek mümkün.&lt;br /&gt;&lt;br /&gt;Mesela facebook’da basit bir iframe arabirimi sayesinde mevcut HTML sayfanızı facebook’a dahil edebilir ve bunu bir uygulama olarak facebook ziyaretçilerinize sunabilirsiniz. &lt;br /&gt;Eskiden Facebook’un bir markup dili vardı artık onu da kaldırdı. Doğrudan HTML taglarınızı facebook’a ekleyebiliyorsunuz. Tabii yukarıda bahsettiğim şekilde bunu öncelikle bir uygulama olarak kayıt etmeniz gerekiyor.&lt;br /&gt;Twitter için de durum aynı. Onda da uygulamanızı kaydederek kullanabiliyorsunuz.&lt;br /&gt;Twitter’da nasıl uygulamalar olabilir?&lt;br /&gt;Örneğin kendi uygulamanız içinden kullanıcılarınıza tweet atmasını sağlayan bir arabirim geliştirebilirsiniz. Sayfanıza gelenler oradan ayrılmadan şifresini ve kullanıcı ismini girerek “tweet”lerini atabilir veya takip edebilirler. Buna ait pek çok uygulama hali hazırda mevcut. Veya kendi “tweet” lerinizi kendi sayfanızda yayınlayabilirsiniz. Daha pek çok yaratıcı fikir üretilebilir. Amaç mümkün olduğu kadar insanın ilgisini çekip ziyaretçi toplayabilmekse sosyal ağlar müthiş bir fırsat.&lt;br /&gt;&lt;br /&gt;İşin marketing(pazarlama) kısmına değinecek olursak. Geleneksel yöntemlerle ulaşabileceğiniz kişi sayısı sosyal ağlara oranla çok daha maliyetli. Doğrudan hedef kitleye ulaşabilecek imkanlar sunan sosyal ağlar üstelik bunu minimum maliyetlerle yapabilmekte.&lt;br /&gt;Mühim olan yaratıcı ve yararlı uygulamalarla bu ağdaki hedef kitlenizin ilgisini çekebilmek.&lt;br /&gt;Bugün artık web üzerinden geniş kitlelere ulaşmak isteyenler bunu sosyal ağlar olmaksızın neredeyse başaramazlar. Diğer bir ifadeyle sosyal ağlar sadece sohbet edilen, resim paylaşılan yerler olmaktan çıkıp müthiş bir marketing alanına da çoktan&amp;nbsp; dönüşmüş durumda.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-715271837273753015?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/715271837273753015/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=715271837273753015&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/715271837273753015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/715271837273753015'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2011/10/web-uygulamalarnda-sosyal-ag.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-7351704343500809989</id><published>2011-10-17T11:33:00.001+03:00</published><updated>2011-10-24T23:29:51.047+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genel'/><title type='text'></title><content type='html'>&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Beyin&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Akşam "beyin" konulu bir belgeselde izlediklerimi aklımdan uçmadan not etmek istedim.&lt;br /&gt;&lt;br /&gt;Beynimiz 12W güç üretiyormuş. Aynı anda sadece bir şeye odaklanabiliyormuş. Evet durum maalesef bu. Aynı anda yaptığımızı sandığımız şeyler, beynin birinden diğerine çok hızlı odaklanabilme kabileytinden kaynaklanıyormuş. Tabii bu hızında bir limiti var. Mesele 3. ve 4. görevler yüklenince "Game over" olma ihtimali çok yüksek. Yani diğer bir ifadeyle beyin "Multitasking" çalışmıyor.&lt;br /&gt;Konunun özü yukarıda yazdığım çok hızlı odaklanma ve sadece bir şeyle meşgül olabilme.&lt;br /&gt;Sihirbazlarında faydalandığı da bu. Zaten programda bolca ilizyon yapıldı bu konuyla ilgili. Mesela, sihirbaz oyun destesiyle gösteri yaparken, bütün dekorlar, elbiseler değişti ve gerçekten bunun farkına varamadım.&lt;br /&gt;Diğer bir&amp;nbsp; test de multitasking çalıştığını iddia eden bir vatandaşa, bir takım testler yapıldı. Mesela araba kullanırken, kulaklıkta aritmetiksel işlemlerin doğrulu soruldu ve akabinde bir kelime ezberlenmesi istendi. İddialı denek 3 kelimeden sadece iki kelimeyi ezberleyebildi (bu arada ben üçünü de ezberledim :)&lt;br /&gt;Araba kullanırken telefonla konuşmak "istem dışı" körlük yaratıyormuş. Aslında bu da sadece bir şeye odaklandığımızın bir göstergesi. Diğer bir ifadeyle telefonla konuşurken aslında bir körden farkımız yok. Sadece arasıra yola odaklanıyoruz ve bu da yeterli değil. Amerikada her yıl telefonla konuşma nedeniyle 2.500 kişi trafikte hayatını kaybediyormuş. Telefonla konuşma 8 promil alkolle araba sürmek kadar refleksleri de ayrıca azaltıyormuş.&lt;br /&gt;&lt;br /&gt;Beyin milyonlarca veriyi aynı anda işleyemiyor. Bunun için daha önceden öğrenilen şablonları kabul ediyor. Sahnenin sadece ilgili yerlerine odaklanıyor diğer kısımları depodan yüklüyor. Yani her seferinde yeniden oluşturmuyor. Bu da ona müthiş bir alan, enerji ve odaklanma yeteneği sağlıyor. Aksi takdirde pek çok boş işle her seferinde uğraşmak zorunda kalır ve esas yapması gerekenlere odaklanamaz. Bunun için her zaman gördüğümüz şeylerdeki ufak değişiklikleri kolayca algılayamıyoruz, çünkü onlar default olarak depodan yükleniyor;"Her gün gittiğimiz mekandaki tuzluğun değişmesi", "Marketinizin tabelasını değiştirmesini",&amp;nbsp; "Karımızın 1mm saç kesimini:)" işte bu yüzden algılayamıyoruz. Çünkü bunlarını default kabul ediyoruz ve üzerine odaklanmıyoruz. "Daha çok karımızın ne dediğine odaklanıyoruz :)" (Aynı şeyi hanımlar için söyleyemeyeceğim onlar hem saçınıza hem laflarınıza dikkat eder. Onların defaultları farklıdır :))&lt;br /&gt;Bununla ilgili çarpıcı örnekler yapıldı programda. Örneğin bir tanesinde bir bankoda bir kişiye form doldurulması isteniyor. Kalem bulmak için bankonun altına eğilen görevliyle başka bir görevli yer değiştiriyor. Yapılan bu deneyde bankodaki görevlinin değiştiğini %98 kişi fark etmiyor.&amp;nbsp; Bunun anlamı kişi görevliyi gördüğü andan sonra onun o koşullar altında değişemeyeceği şablonunu çağırmasıdır. Çünkü normal hayatta bu tip bir şey olmaz. Beyin öyle bir kabul yapıyor ki, gerçekte değişen kişiyi bile değişmemiş olarak algılıyor. Ön yargı denilen şey bu olsa gerek.&lt;br /&gt;Başka testlerde anlatılan ana konuya odaklanılırken, ekranda sayısız kere goriller, tavşanlar, penguenler geçiyor ve gerçekten de&amp;nbsp; bunların hemen hiçbirini fark etmiyorsun.&lt;br /&gt;&lt;br /&gt;Beynin aynı anda sadece bir şeye odaklanabileceği, ama diğerlerine hızlı geçiş yapabileceğini yazının başında belirtmiştim. Bununla ilgili şöyle bir test daha yapıldı programda. Karmaşık, bir resim gösterildi ve üzerinde 7 değişiklik yapıldı. Değişiklikler resim gösterilirken yapıldı ve hemen algılanıyordu. Test'i bu sefer&amp;nbsp; değişiklikler yapılmadan önce ekranı 1sn ye karartarak yaptılar. Bu sefer hemen hiç bir değişiklik fark edilmedi.&lt;br /&gt;&amp;nbsp;Diğer bir ifadeyle beyin yeni bir konuya odaklanmak için eskisinden o kadar hızlı bir sürede kopuyor ve yenisine hazır oluyor ki. Değişiklikleri hemen algılayamıyor.&lt;br /&gt;&lt;br /&gt;Başka bir deneyde de renklerin yazımını kendir renkleriyle uyumlu yaptılar. Mesela sarı ifadesi sarı renkte yazıldı, kırmızı kırmızı renginde. Bu tip 5-6 renk sırayla gösterilip okunması istendi. Sonuçlar son derece hızlıydı. Aynı deneyi bu sefer renklerin ifadesini farklı renklerle sunarak yaptılar. Yani maviyi kırmızı renge boyadılar, sarıyı yeşile vs. Süre iki kat arttı. Hipnoz altında sadece renklere odaklanmaya programlanmış denekte süre çok daha hızlı oldu. Bunun anlamı da otomasyon korteks imiz ile sorgulayan korteksimiz arasında bir çelişki meydana geldiğinde işlemler biraz uzuyor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-7351704343500809989?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/7351704343500809989/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=7351704343500809989&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7351704343500809989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7351704343500809989'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2011/10/beyin-aksam-beyin-konulu-bir-belgeselde.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-638072673047027038</id><published>2011-03-17T00:47:00.000+02:00</published><updated>2011-09-24T00:52:56.155+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile-Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Mobil uygulamalar 2&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial,Tahoma,Helvetica,FreeSans,sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;(Bu makalem Mart 2011 Tarihinde Mobillife dergisinde yayınlanmıştır)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Geçen ayki makalemde mobil ve zengin arabirimli uygulamalardan bahsetmiştim. Bu yazımda konuya devam edeceğim. Sunucu tarafına baktığımızda iki önemli gelişme görülüyor. Bunlardan ilki daha ufak, sade ve taşınabilir yapılar ve diğeri ise tabii ki bulut teknolojileri. &lt;br /&gt;Örneğin sunucu taraflı programlamada MVC yapısı tercih ediliyor çünkü hem temiz ve sade bir çıktı sunuyor hem de sunucu kaynaklarını optimum kullanıyor. Daha güçlü işlemcili, mobil cihazlara göre görece daha yetenekli olan masa üstü sistemlere yönelik uygulamalar mobil cihazlar için biraz ağır gelebiliyor.&lt;br /&gt;Özellikle plug’in li&amp;nbsp; uygulamaların&amp;nbsp;&amp;nbsp; mobil cihazlar için çok uygun olduğunu söyleyemeyiz. Server taraflı uygulama geliştirmede veritabanları da daha fazla önemli olmaya başladı. Burada da temel iki veritabanı tipi tercih edilmeye başlandı. Bir tanesi bulut üzerinde konumlanan veritabanları, diğeriyse az yer kaplayan, kolayca taşınabilen ve yönetilebilen veritabanları. Örneğin geçenlerde (ocak 2011 de) Microsoft SQL Server Compact 4.0 sürümünü kullanıma sundu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Microsoft SQL Server Compact 4.0&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Bu gerçektende harika bir sürüm. SQL server’ın yaptığı bütün işleri basit anlamda yapabiliyor ve sadece 2.5 MB boyutunda. Eğer daha büyük ölçekli bir veritabanına geçmek isterseniz SQL Server Express veya SQL server’a kolayca terfi edebiliyorsunuz.&lt;br /&gt;Microsoft SQL Server Compact 4.0 ın özelliklerine göze atacak olursak;&lt;br /&gt;Öncelikle ücretsiz, boyutu küçük ve en önemlisi XCopy deployment yapabiliyorsunuz. Bu son iki özellik mobil uygulama geliştirme için çok önemli. Boyut, sınırlı kapasitedeki mobil hafızalar&amp;nbsp; için özellikle dahili uygulamalar için önemli. Xcopy de öyle. Xcopy nin anlamı veritabanını aynen bir dosya gibi copy paste ile taşıyabiliyor olmanız. Ne bir install zorunluluğu ne yetkilendirme hiçbirine gerek yok.&amp;nbsp; Uygulama dizininizin içinde veritabanı dosyanızın olması&amp;nbsp; ve .NET framework’e sahip olmanız yeterli. Bunu bu haliyle her yere kolayca taşıyabilirsiniz.&amp;nbsp; Taşınabilirlik mobil dünyanın olmazsa olmazı.&lt;br /&gt;Microsoft SQL Server Compact 4.0’ın diğer bir özelliği .NET Framework API leri ile programlarınızda kolayca kullanabiliyor olmanız. Diğer bir ifadeyle&amp;nbsp; web ve&amp;nbsp; diğer uygulamalarda kolayca kullanılıyor. Transact-SQL ile SQL komutları yazılabiliyor ve Visual Studio 2010 ile entegre çalışıyor. Henüz kendine ait bir yönetimsel-grafiksel bir arabirimi yok. Visual Studio 2010 service pack 1 ile bu imkana kavuşabiliyorsunuz. Sdf uzantılı dosya, tabloları ve diğer veritabanı yapılarıyla görsel olarak yönetilebiliyor. &lt;br /&gt;Bunun haricinde&amp;nbsp; Visual Studio 2010’a entegre olan başka araçlarda var; SQL Server Compact Toolbox bunlardan biri. http://sqlcetoolbox.codeplex.com/ adresinden indirebileceğiniz bu araç SQL Server Compact 4.0’ı görsel bir arabirimle yönetebiliyor. Böylece aynen diğer veritabanı yönetimleri gibi kolayca işlemler yapabiliyorsunuz. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ETsxtrO7WjA/Tnz_AHJvdZI/AAAAAAAABHI/baW4EXLSuds/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://3.bp.blogspot.com/-ETsxtrO7WjA/Tnz_AHJvdZI/AAAAAAAABHI/baW4EXLSuds/s640/01.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Veya SQL Server 2008 Management Studio dan yönetmek istiyorsanız http://exportsqlce.codeplex.com/ adresindeki “SQL Compact data and schema script utility” aracını install edebilirsiniz. Bu araç da Management Studio daki diğer veritabanları gibi Server Compact 4.0 ı yönetmenizi sağlıyor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-wz9kOmdulSI/Tnz_I4Ye-NI/AAAAAAAABHM/9FtuIpYn23A/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="178" src="http://3.bp.blogspot.com/-wz9kOmdulSI/Tnz_I4Ye-NI/AAAAAAAABHM/9FtuIpYn23A/s640/02.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Microsoft SQL Server Compact 4.0 alternatifi olarak SQLite ı örnek verebiliriz. http://www.sqlite.org adresinde indirebileceğiniz SQLite aynen Microsoft SQL Server Compact 4.0 gibi ücretsiz ve özellikle Ruby on Rail uygulamalarında kullanılıyor.&lt;br /&gt;Uygulama tarafındaysa MVC modeli ağırlık kazanıyor. Bir web uygulama deseni olan MVC postback’in alternatifi web programlama yapısı sunuyor. Oldukça eskiye dayanan bir mimari olmasına rağmen, şimdilerde daha popüler çünkü yukarıda da belirttiğim gibi akıllı mobil cihazlara yönelik uygulamalar için daha kullanışlı. Ruby on rail, ASP.NET MVC bu mimariyi kullanan uygulamalar geliştirebiliyor.&lt;br /&gt;Özetlersek uygulamalar ve gerisinde çalışan veritabanı gibi yapılar mobil ve bulut dünyasına ayak uyduracak şekilde gelişiyor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;HTML5 Örnekleri&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Bu hafta HTML 5 den somut örnekler vermek isterim. Hatırlayacağınız gibi HTML 5 de video ses gibi uygulamaların taglarla kolayca geliştirilebileceğini yazmıştım. İşte bunlardan birer örnek:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-5vwCVBjigM8/Tnz_SVcQcpI/AAAAAAAABHQ/gSr1pCvptr0/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="298" src="http://2.bp.blogspot.com/-5vwCVBjigM8/Tnz_SVcQcpI/AAAAAAAABHQ/gSr1pCvptr0/s640/03.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Sadece bu kadar basit… taglarla başlat, duraklat, yürütme, ses kontrolleri olan bir video gösterim ve kontrol birimi oluşturabiliyor olacağız uygulama geliştiriciler olarak:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-IxXxdnWM3XQ/Tnz_YNnAMFI/AAAAAAAABHU/WUx43tCM-TE/s1600/04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="476" src="http://3.bp.blogspot.com/-IxXxdnWM3XQ/Tnz_YNnAMFI/AAAAAAAABHU/WUx43tCM-TE/s640/04.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aynı şekilde müzik kontrolü de basitçe geliştirilebilecek:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-FfcYTa6_P3c/Tnz_hBCLInI/AAAAAAAABHY/CAb_GxoT3G4/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="153" src="http://1.bp.blogspot.com/-FfcYTa6_P3c/Tnz_hBCLInI/AAAAAAAABHY/CAb_GxoT3G4/s320/05.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Y7UqC3xNLF4/Tnz_hnsW47I/AAAAAAAABHc/3L7y09IVTZY/s1600/06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="49" src="http://1.bp.blogspot.com/-Y7UqC3xNLF4/Tnz_hnsW47I/AAAAAAAABHc/3L7y09IVTZY/s320/06.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;HTML5 henüz geliştirilme aşamasında ve daha alması gereken çok yol var fakat bu uzun sürmeyecek. Yakında HTML5’i kullanıyor olacağız.&lt;br /&gt;HTML5 ve uygulama geliştirmedeki yeni yaklaşımlar kısa süre sonra meyvesini verecek ve çok daha yetenekli, her yere taşınan uygulamaları kullanabiliyor olacağız .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-638072673047027038?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/638072673047027038/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=638072673047027038&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/638072673047027038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/638072673047027038'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2011/03/mobil-uygulamalar-2-bu-makalem-mart.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ETsxtrO7WjA/Tnz_AHJvdZI/AAAAAAAABHI/baW4EXLSuds/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-8494273213757584763</id><published>2011-02-10T00:29:00.000+02:00</published><updated>2011-09-21T00:35:00.892+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile-Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;span style="font-size: x-large;"&gt;&lt;b&gt;Mobil uygulamalar, HTML5, “Cross Platform”, RIA&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial,Tahoma,Helvetica,FreeSans,sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;(Bu makalem Şubat 2011 Tarihinde Mobillife dergisinde yayınlanmıştır)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Akıllı mobil cihazların yaygın kabul görmesi uygulama geliştirme alt yapılarında değişiklik yarattı. Makale başlığının biraz karmaşık olduğunu kabul ediyorum. Ancak bu kavramları daha fazla duyacağız gelecekte. Daha önceki makalelerimin birinde de belirttiğim gibi Akıllı mobil cihazlar web’in veya web uygulamalarının yerini almayacak. Aksine onları daha da güçlendirecekler. Web- internet Akıllı mobil cihazlar için bir alt yapı, kaynak vazifesi görecek. Web uygulamaları yerli yerinde duracak sadece Akıllı mobil cihazlar için de özelleşecek. Bu da bir ayrışma, teknolojide zenginleşmedir aslında. &lt;br /&gt;Akıllı mobil cihazlar için uygulama geliştirme yöntemlerini daha önce biraz anlatmıştım. Buna paralel web uygulama geliştirme yöntemlerinde de gelişmeler var. Bu iki konuya biraz daha değineceğim. Mobil uygulama geliştirmede&amp;nbsp; platform bütünlüğü olmadığı için sıkıntıların olduğunu yazmıştım. Akıllı mobil cihazlara&amp;nbsp; uygulama geliştirmek için şu an için 3 temel yöntem mevcut. Birinci yöntemde cihazın ait olduğu platform ile “native” yani&amp;nbsp; doğal uygulamalar geliştirmek. Bunun anlamı o cihaza ait bütün özellikleri en son kapasitesine kadar kullanıp, hızlı performanslı ve şık görünen uygulamalar geliştirmek. Örneğin bir android uygulaması (veya moda ifadesiyle “aplikasyon”) geliştirmek istiyorsanız ona ait platformu kullanıp, kendi yazılım diliyle ve donanımsal özelliklere hitap eden alt yapısıyla çok şık ve hızlı çalışan uygulamalar geliştirebilirsiniz. Ancak burada ufacık(!) bir sorun var. Bu uygulama sadece android işletim sistemi yüklü&amp;nbsp; cihazlarda çalışır. Örneğin bir BlackBerry telefonda çalışmaz. Aynı şekilde diğer markaların platformları da kendi cihazlarını destekler. &lt;br /&gt;Bir uygulama geliştirici için bunun anlamı, aynı uygulamayı her platform için kodlamak. &lt;br /&gt;Hiç de iç açıcı değil. &lt;br /&gt;Peki alternatif uygulama geliştirme yöntemleri yok mu?&lt;br /&gt;Var.&lt;br /&gt;Şimdilik maalesef kısıtlı ama daha da olacak.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-large;"&gt;&lt;b&gt;HTML5&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Bunların en başında bir mobil uygulamayı,&amp;nbsp; web uygulaması olarak geliştirmek. Bunu yaparken mobil cihazların özelliklerini göz önünde bulundurmak. Örneğin mobil cihazların küçük ekranları olur. Navigasyon özellikleri vardır, pil ömürleri kısadır vs. gibi kısıtlamaları göz önünde bulundurmak lazım.&lt;br /&gt;Bir developer mobil web uygulamasını geliştirirken bütün bunlara dikkat ederek bildiğimiz bir web uygulaması geliştirir. Bunu yaparken bildiğimiz markup dili HTML ve diğer web alt yapılarını kullanır.&lt;br /&gt;Daha teknik olmasını istemediğimden fazla detaya girmeyeceğim. HTML5 de işte tam bu noktada devreye giriyor. HTML5 de Akıllı mobil cihazlar için uygulama geliştirme alt yapıları hazır bulunuyor. Örneğin bir video gösteren uygulamamı geliştireceksiniz. Sadece bir HTML video tagı yazarak videonuzu web uygulamanıza kolayca ekliyorsunuz. Bütün kontrolleri dahil olmak üzere.&lt;br /&gt;Veya client tarafında veri mi saklayacaksınız yine HTML5 bunu yapmanız mümkün.&lt;br /&gt;Web uygulamalarının şu an için iki temel handikabı mevcut. Birincisi görünüm diğeri ise performansla ilgili.&lt;br /&gt;Native uygulamaların ikonları, grafikleri temaları yerel oldukları için daha güzel görünebilir. Ancak bu her zaman böyledir diyemeyiz.&amp;nbsp; Şimdilik çoğunlukla öyle görünüyor. Web uygulamaları biraz daha “eklenti” gibi duruyor. Bir web uygulamasını native miş gibi düzenleyebilirsiniz, çok dikkatli olmayan bir göz bunu ayırt edemez. Burada da HTML 5 devreye giriyor.&amp;nbsp; Grafik ve videoya yönelik yeni olanaklar sunuyor. Gelecekte native uygulamalarla olan görsel farklılıklar minimuma inecektir. Performansla ilgili de aynı şeyleri söyleyebiliriz. Native uygulamalar cihazın kendi uygulamaları olduğundan daha performanslı çalıştığı doğrudur. En azından şimdilik. Ancak bu yüksek performans gerektiren uygulamalarda fark edilebilecek bir özellik.&amp;nbsp; Elbetteki hiçbir zaman mobil web uygulamaları native uygulamaların performansını yakalayamayacaktır ama öyle bir&amp;nbsp; zaman gelecektir ki özellikle HTML5 yaygınlaşması ve cihaz işlemcilerinin gelişmesi ile mobil web uygulamaları da performans eşiğini aşmış olacaktır. Dolayısıyla iki yöntem arasında performans bir kriter olmaktan çıkacaktır. Mobil cihazlar için geliştirilen web uygulamaları bunun yanında çok ama çok büyük bir avantaj sağlıyor:”Cross Platform” &lt;br /&gt;Yani sadece bir kere kodla, her yerde her platformda çalışsın.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-large;"&gt;&lt;b&gt;RIA (Rich Internet Application)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Şu an için web uygulamalarında eleştirilen yön, bir mobil cihaz veya pc uygulamasının zengin grafik-uygulama karakteristiklerini taşımaması. Bunun için büyük yazılım üreticileri kendi çözümlerini ürettiler. Adobe Flash uygulamalarını herkes bilir buna benzer Microsoft cephesinde Silverlight teknolojisi vardır. Java cephesinde aplet veya plugin ler. Bütün bunlar RIA (Rich Internet Application) kavramı altında toplanan teknolojiler. Diğer bir ifadeyle kullanıcılara desktop veya pc uygulamarının sağladığı zengin kullanışlı arabirimleri sağlayabilmek. Daha güzel grafikler şık tasarımlar görsel olarak yetenekli uygulamalar. Ama hepsi web’de çalışan.&lt;br /&gt;Mobil web uygulamalarına baktığımızda henüz bütün platformları RIA bazında destekleyen bir çözüm yok. Ama tekrar vurgulamalıyım;”henüz yok”.&lt;br /&gt;Adobe’un Air yazılımıyla android telefonlar 2.2 versiyonuyla birlikte RIA özellikli,&amp;nbsp; native çok benzeyen uygulamalar sunabiliyor. Sanırım BlackBerry nin bir tabletide air’i çalıştırmaya başladı. Ancak diğer platformlarda henüz kullanılamıyor. Silverlight’a baktığımızda o da sadece (şimdilik) Windows phone platformunu destekliyor. Yani cross platform RIA özellikli bir mobil web uygulaması alt yapısı şu an için yok.&lt;br /&gt;Ancak bazılarına göre zaten böyle bir şeye gelecekte ihtiyaç olmayacak çünkü HTML5 bizzat kendisi RIA özellikli bir alt yapıya sahip olacak. Ve şu anda hemen bütün büyük&amp;nbsp; yazılım üreticileri HTML5 e&amp;nbsp; büyük destek vermekte ve sahip çıkmakta. Bunun anlamı gelecek HTML5 de.&amp;nbsp; &lt;br /&gt;Bunun karşıt görüşü: evet gelecek&amp;nbsp; HTML5 de ancak tam anlamıyla RIA özellikli olamayacağı&amp;nbsp; yine de bir plug’in veya eklentiyle üretici alt yapılı RIA uygulamalarının da devam edeceği yönünde. &lt;br /&gt;Bakalım zaman ne gösterecek. Ama şu kesin HTML5 geleceğin parlayan yıldızı. Uygulama geliştirmede cross platform çözümleri çoğalacak. Artık web uygulaması geliştirenler, aslında bir de mobil akıllı cihaz uygulaması da geliştirmiş olacaklar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-8494273213757584763?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/8494273213757584763/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=8494273213757584763&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8494273213757584763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8494273213757584763'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2011/09/mobil-uygulamalar-html5-cross-platform.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-8168408640339474190</id><published>2011-01-08T00:26:00.000+02:00</published><updated>2011-09-21T00:26:41.752+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Springpad&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial,Tahoma,Helvetica,FreeSans,sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;(Bu makalem Ocak 2011 Tarihinde Mobillife dergisinde yayınlanmıştır)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Web yazılımcılarının ve tasarımcılarının işi her zamankinden daha zor. Çünkü artık bir web servisi tasarladıklarında bu sadece bilgisayarımızın monitöründe değil, küçük ekranlı tabletler, telefonlar ve akıllı diğer cihazlarda da kullanılmak durumunda. Örneğin geçen hafta tanıttığım evernote servisi bütün bu alanlarda kullanılabiliyor.&amp;nbsp; Web servis hizmeti verenler eğer servisinin daha yaygın olmasını daha kabul görmesini istiyorsa, bütün yukarıda saydığım cihazları düşünmek durumunda.&lt;br /&gt;Zaten yeni nesil servislere baktığımızda hemen hepsi bu ortamlar için çözümler sunuyor. Böylece potansiyel kullanıcılarını ve erişim sürelerini oldukça genişletmiş oluyorlar. Aksi durumda rekabette geri kalıyor ve tek bir kanalın getirdiği dezavantajları yaşamış oluyorlar. Bu köşede mümkün olduğunca bu faydalı servisleri tanıtmaya çalışıyorum. Çünkü teknoloji yaşantımızı kolaylaştıran uygulamalardır.&amp;nbsp; Özellikle web alt yapılı (bulut) cihazlarla hemen her yerden,&amp;nbsp; uygulamaları, servisleri kullanabilmek en büyük teknolojik gelişmelerden biridir.&lt;br /&gt;İşte bu yazımda&amp;nbsp; da bir servis tanıtacağım: springpad. Springpad.com adresinden ulaşabileceğiniz bu servis, hatırlamak ve kaydetmek istediğiniz her şey için tasarlanmış bir bulut uygulaması. Mantık basit: temiz ve kolay kullanımlı bir arabirimle, notlarınızı, kayıtlarınızı saklamak ve bunlara biraz önce bahsettiğim cihazlarla her yerden ulaşabilmek. &lt;br /&gt;Springpad yukarıda da belirttiğim gibi bir web servisi. Bir web arabirimiyle kullanabildiğiniz gibi iphone veya android cihazlarınızla da kolayca kullanılabilecek bir yapı sunuyor.&lt;br /&gt;Springpad’i kullanabilmek için öncelikle servise kayıt olmanız gerekiyor. Kayıt işlemi &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-10WAy1Vr5f4/TnkEZMRfHSI/AAAAAAAABGU/PgGTrjGwJYo/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="584" src="http://1.bp.blogspot.com/-10WAy1Vr5f4/TnkEZMRfHSI/AAAAAAAABGU/PgGTrjGwJYo/s640/01.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;oldukça kısa sürede tamamlanabiliyor. Sadece bir e-posta adresi vermeniz ve şifre belirlemeniz yeterli. Hatta hâlihazırda Google, yahoo, twitter veya facebook hesabınız varsa bunu da kullanabiliyorsunuz.&lt;br /&gt;Kayıt olduktan sonra, her serviste olduğu gibi size özel bir alan oluşturuluyor. Şimdi bu alanlarda neler olduğunu inceleyelim.&lt;br /&gt;Öncelikle sayfanızın, notlarınızın arka planını ve renklerini siz belirliyorsunuz. Oldukça şık ve sade bir ara yüzü var:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ye5VmrVQIRQ/TnkEhSX0jJI/AAAAAAAABGY/o-giMENXovU/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="182" src="http://4.bp.blogspot.com/-ye5VmrVQIRQ/TnkEhSX0jJI/AAAAAAAABGY/o-giMENXovU/s640/02.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Burada ufak not defteri görünümünde farklı renklerde hatırlatma konuları açabiliyorsunuz. Bunun için + kutucuğuna tıklıyorsunuz:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--gv6DRUwfkU/TnkEoUGNd2I/AAAAAAAABGc/dscM5_gJCOg/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="204" src="http://4.bp.blogspot.com/--gv6DRUwfkU/TnkEoUGNd2I/AAAAAAAABGc/dscM5_gJCOg/s320/03.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Burada karşınıza bir pencere çıkıyor, buraya konu ana başlığını giriyorsunuz ve bunun için bir renk seçiyorsunuz. Daha sonra “done” butonuna tıklıyorsunuz. Artık farklı bir konuda hatırlatma ikonu oluşuyor.&amp;nbsp; Şimdi yapmanız gereken bu ikona tıklamak. Tıkladığınızda bu konu altında ekleyeceğiniz not ve kayıtların oluşturulduğu arabirim sunuluyor.&lt;br /&gt;Bu arabirimde ekleyeceğiniz yeni not veya kaydı oluşturmak için sağ üst köşedeki + ikonuna tıklamalısınız. Zaten sayfa sizi buna yönlendiriyor:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-efxhFGtlJjo/TnkEtyZxz_I/AAAAAAAABGg/6871BjHWelo/s1600/04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="92" src="http://1.bp.blogspot.com/-efxhFGtlJjo/TnkEtyZxz_I/AAAAAAAABGg/6871BjHWelo/s640/04.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Burada ekleme yapabileceğiniz kategoriler var. Bunlar not eklemek, görev eklemek gibi&amp;nbsp;&amp;nbsp; kategoriler. Örneğin bir not eklemek istiyorsanız bu linke tıklamalı ve karşınıza gelen ekrandan notunuzu oluşturmalısınız. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-mNhuk4PBZk0/TnkE1T6tVeI/AAAAAAAABGk/KN46vfhE9nA/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://2.bp.blogspot.com/-mNhuk4PBZk0/TnkE1T6tVeI/AAAAAAAABGk/KN46vfhE9nA/s640/05.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Bu servisin en güzel tarafı, hangi kategoriden kayıt yaparsanız yapın, bir hatırlatma servisi ekleyebilmeniz. Bu hatırlatma servisi belirlediğiniz tarih ve saate zamanı gelince bir e-posta atarak size hatırlatma yapıyor.&amp;nbsp; Kayıtlarınıza kendinize özel&amp;nbsp; etiketler de (tag) ekleyebiliyorsunuz.&amp;nbsp; Bu kayıtları dilerseniz başkalarıyla paylaşabilecek linklerde elde edebiliyorsunuz.&lt;br /&gt;&lt;br /&gt;Springpad’in güzel özelliklerinden biri de “look it up” bu özellikle arama yaptığınız bir konuya ait bulunan hazır kayıtlardan herhangi birini servisinize ekleyebiliyorsunuz:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-r4nNCw-vRhM/TnkE8elIOTI/AAAAAAAABGo/ay3uEeTahD4/s1600/06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="538" src="http://4.bp.blogspot.com/-r4nNCw-vRhM/TnkE8elIOTI/AAAAAAAABGo/ay3uEeTahD4/s640/06.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Örneğin herhangi bir konuda kitap mı arıyorsunuz “look it up” a bu kitap konusunu yazıyorsunuz ve mevcut kitapların listesi size sunuluyor. Bunlardan dilediğinizi, kayıtlarınıza ekleyebiliyor, isterseniz arkadaşlarınızla paylaşabiliyorsunuz.&lt;br /&gt;&lt;br /&gt;Springpad’ in iphone ve android uygulamaları da mevcut. Yükleyeceğiniz bu uygulamalar ile yukarıdaki servis ile senkronize çalışabiliyorsunuz. Diğer bir ifadeyle web’den yaptığınız kayıtlar veya düzenlemeler&amp;nbsp; anında&amp;nbsp; bu cihazlarda da geçerli oluyor. Tersi de geçerli bu cihazlardan yaptığınız kayıtlar ve düzenlemeler&amp;nbsp; anında web servisinde etkin hale geliyor. Böylece hatırlamanız gereken her şey yanınızda oluyor. Mobil cihazlarla Springpad i kullanmanın diğer bir avantajı bu uygulamaların barkod tanıyor olması. Cihazınızın kamerasıyla okutacağınız barkod kodları anında o ürüne ait bilgileri getiriyor ve Springpad’e ekleyebiliyor. Böylece tek hamlede çok kısa sürede o ürünü kayıtlarınız altına alabiliyorsunuz.&lt;br /&gt;Yukarıda da belirttiğim gibi bulut web servisleri, işlerimizi, yaşantımızı daha kolay bir hale getirmek için çok büyük bir hızla yaygınlaşıyor.&amp;nbsp; Cihazlarımız daha yetenekli ve kullanışlı hale geliyor. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-8168408640339474190?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/8168408640339474190/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=8168408640339474190&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8168408640339474190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8168408640339474190'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2011/01/springpad-bu-makalem-ocak-2011.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-10WAy1Vr5f4/TnkEZMRfHSI/AAAAAAAABGU/PgGTrjGwJYo/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-8388559919472701008</id><published>2010-12-17T00:13:00.000+02:00</published><updated>2011-09-21T00:20:34.574+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Evernote&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial,Tahoma,Helvetica,FreeSans,sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;(Bu makalem Aralık 2010 Tarihinde Mobillife dergisinde yayınlanmıştır)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-9GpYvhMn-hw/TnkCXSdfotI/AAAAAAAABF8/3jjt56e3oUw/s1600/01+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Bu köşemde mümkün olduğunca bulut (Cloud) teknolojilerine ait servis ve uygulamaları tanıtıyorum.&amp;nbsp; Bulut teknoloji (Cloud Computing) ve uygulamalarını önemsiyorum çünkü gelecek burada. Yakın gelecekte bütün dijitalleştirilebilen şeyler bulutta olacak. Bununla ilgili daha detaylı incelemeler yazmıştım. Yani CD, DVD, SD, HDD ve aklınıza gelebilecek diğer depolama ürünlerindeki bilgiler artık internette, bulutta olacak. Sadece barınma anlamında değil, uygulamalarımız da artık web (bulut) üzerinde çalışacak. Bunlara ulaşacak cihazlarımız da çok çeşitli olacak.&amp;nbsp; Dilersek notebook dilersek netbook, cep telefonu, tablet veya diğer ağ’a bağlanan bir cihazla dilediğimiz yerden dilediğimiz zaman bağlanabileceğiz.&amp;nbsp; Henüz her alanda olmasa bile pek çok servisi böyle kullanıyoruz zaten. Mesela e-postalarımız, fotoğraflarımız -geçen makalemde anlattığım konu- ve diğerleri.&amp;nbsp; Bunun anlamı platform, cihaz, zaman ve mekân bağımsız bir çalışma biçimidir. Bunun için bulut kavramı önemli. Çok kısa bir süre sonra bu tip bulut hizmetleri çok daha yaygın olacak.&lt;br /&gt;Geçen yazımda google’ın picasa fotoğraf servisi ve uygulamasını tanıtmıştım. Bu hafta da buna benzer bir servisi anlatacağım:Evernote&lt;br /&gt;Günlük çalışmalarımızda bilgisayarımızda, iphone’muzda veya diğer herhangi bir cihazımızda notlar alabiliyoruz. Ancak örneğin ofis bilgisayarımızda aldığımız bir not’a&amp;nbsp; yolda giderken cep telefonumuzdan ulaşamıyoruz, çünkü o bilgisayarımızda kalmıştır. Evernote işte tam da bu noktada devreye giriyor. Aldığınız notlara dilediğiniz her yerden ulaşabilmenizi sağlıyor. Sadece notlar değil, bookmarklar, internette sörf yaparken ki işaretlemeler, dosyalar, sesli mesajlar gibi saklanan veriye erişiminizi sağlıyor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-9GpYvhMn-hw/TnkCXSdfotI/AAAAAAAABF8/3jjt56e3oUw/s1600/01+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="482" src="http://4.bp.blogspot.com/-9GpYvhMn-hw/TnkCXSdfotI/AAAAAAAABF8/3jjt56e3oUw/s640/01+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Evernote.com adresinden erişebileceğiniz bu servise öncelikle kayıt olmanız gerekiyor. &lt;br /&gt;Servise giriş yaptıktan sonra notlarınızı kolayca oluşturup web üzerine kaydedebiliyorsunuz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Sqibnbcjcl4/TnkCxoHfeUI/AAAAAAAABGA/rQ5IUEMaZIU/s1600/02+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="314" src="http://4.bp.blogspot.com/-Sqibnbcjcl4/TnkCxoHfeUI/AAAAAAAABGA/rQ5IUEMaZIU/s640/02+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sadece metin mesajları değil dosyaları, sesli mesajları da saklamanız mümkün. Web’de bu şekilde sakladığınız notlarınız ve mesajlarınıza ulaşmanın pek çok yöntemi var. Tersi de geçerli; mesaj ve notlarınızı bu serviste saklamanızın pek çok yöntemi var. Bunlardan ilki Windows veya mac için yükleyebileceğiniz bir program. Bu program sayesinde notlarınızı daha rahat saklayıp organize edebiliyorsunuz:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-HJE9VfEife8/TnkC4p8MEGI/AAAAAAAABGE/VV6w9N8PX_A/s1600/04+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-rIf-hzImQHg/TnkDBUuv7OI/AAAAAAAABGI/Yhc5S72llFE/s1600/03+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="246" src="http://4.bp.blogspot.com/-rIf-hzImQHg/TnkDBUuv7OI/AAAAAAAABGI/Yhc5S72llFE/s640/03+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Örneğin web’de sörf yaparken bir sayfayı veya sayfanın bir kısmını beğendiniz. Burayı işaretleyip sürükle bırakla bu uygulamanın içine doğrudan gönderebiliyorsunuz. Fotoğrafları dâhil her şeyiyle saklanıyor.&amp;nbsp; Sync tuşuna bastığınızda web’deki alanınızla senkronizasyonunuzu yapmış oluyorsunuz. Burada dikkat edilecek nokta yapının bire bir Web servisinizle senkronize edilmesidir yani web’e bir şey ekleme durumu değildir. Bu sayede bilgilerinize nereden ulaşırsanız ulaşın hep güncel tek bir yapıyla çalışıyorsunuz.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Browser Eklentisi olarak&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Evernote bilinen bütün browserlarla birlikte çalışabiliyor. Bunun için bir plugin yüklemek gerekiyor.&amp;nbsp; Ana sayfadan download linkine tıklarsanız Chrome, Firefox gibi browserlar için gerekli eklentileri bulabilirsiniz.&amp;nbsp; İnternet Explorer ve safari için herhangi bir eklenti yok çünkü zaten “Evernote For Windows/Mac” uygulaması mevcut. Örneğin firefox’da sörf yaparken sayfanın fotoğraflar dâhil herhangi bir yerini işaretleyip yukarıdaki evernote butonuna tıklarsanız notlarınız anında web’e kaydediliyor. Ve diğer bütün bağlantılarınız için güncellenmiş oluyor. Chrome da da benzer bir durum var ama burada arabirim biraz daha zengin:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-HJE9VfEife8/TnkC4p8MEGI/AAAAAAAABGE/VV6w9N8PX_A/s1600/04+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="374" src="http://2.bp.blogspot.com/-HJE9VfEife8/TnkC4p8MEGI/AAAAAAAABGE/VV6w9N8PX_A/s640/04+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-79mGTteAVSQ/TnkDdBWU64I/AAAAAAAABGM/McJ74xrWiZ4/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-bxBvYXUI7Xo/TnkDd3Ezd0I/AAAAAAAABGQ/XTGTF5NCPz0/s1600/06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;Burada bazı etiketlemeler ve açıklamalar da yapabiliyorsunuz.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Mobil Cihazlarda Evernote&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Evernote mobil uygulaması bilinen bütün temel cihazlar için geliştirilmiş:&lt;br /&gt;&amp;nbsp;&amp;nbsp; iPad, iPhone / iPod Touch, Android, BlackBerry, Palm Pre / Palm Pixi, Windows Mobile&lt;br /&gt;Gibi.&lt;br /&gt;Böylece nerede olursanız olun anında notlarınıza, mesajlarınıza erişebiliyor veya onları kolayca oluşturup&amp;nbsp; servisinize kaydedebiliyorsunuz. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-79mGTteAVSQ/TnkDdBWU64I/AAAAAAAABGM/McJ74xrWiZ4/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-79mGTteAVSQ/TnkDdBWU64I/AAAAAAAABGM/McJ74xrWiZ4/s320/05.jpg" width="221" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-bxBvYXUI7Xo/TnkDd3Ezd0I/AAAAAAAABGQ/XTGTF5NCPz0/s1600/06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-bxBvYXUI7Xo/TnkDd3Ezd0I/AAAAAAAABGQ/XTGTF5NCPz0/s320/06.jpg" width="215" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Örneğin bir mobil cihazdan “audio note” butonuna tıklayıp anında sesli notlarınızı oluşturup bu servise ekleyebiliyorsunuz.&lt;br /&gt;Burada konunun özü çok önemli. Bütün bu uygulamalar, servisin kendisi mesaj, dosya ve notlarınızla hemen her cihazdan her yerde senkronize bir şekilde çalışılabilmektir. Diğer bir ifadeyle sıradan bir dosya yükleme servis veya uygulaması değil evernote. Bu açıdan bakıldığında tipik bir bulut uygulaması. Yukarıda da bahsettiğim gibi, bu tip uygulamalar her geçen gün daha fazlalaşacak. Tabii her şey daha kolay kullanım, daha çabuk bilgiye erişim ve daha kaliteli yaşam için. Teknoloji de bu değil midir zaten?&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-8388559919472701008?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/8388559919472701008/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=8388559919472701008&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8388559919472701008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8388559919472701008'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2010/12/evernote-bu-makalem-aralk-2010.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-9GpYvhMn-hw/TnkCXSdfotI/AAAAAAAABF8/3jjt56e3oUw/s72-c/01+%2528Copy%2529.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-5506397345148184457</id><published>2010-11-11T00:08:00.000+02:00</published><updated>2011-09-21T00:09:17.260+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Picasa&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial,Tahoma,Helvetica,FreeSans,sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;(Bu makalem Kasım 2010 Tarihinde Mobillife dergisinde yayınlanmıştır)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;Bu makalemde google’ın fotoğraflarımızı barındırmamızı , paylaşmamızı ve yönetmemizi sağlayan picasa web albümleri servisini&amp;nbsp; ve picasa uygulamasını tanıtacağım.&lt;br /&gt;Picasa google’a ait bir program/uygulama ve servis.&amp;nbsp; Bir program olarak tek başına çalışabildiği gibi sadece web’den de picasa hizmetinden faydalanabiliyorsunuz. Picasa’nın program ayağı bilgisayarımıza kurulan ve fotoğraflarımızı gösterme, yönetme ve düzenlememizi sağlayan çok yetenekli bir client uygulaması. Birazdan bunun detaylarına değineceğim. Web ayağı picasa programı ile veya bağımsız çalışan, yine fotoğraflarımızı yönetmemizi bu sefer web üzerinde sağlayan bir servis.&amp;nbsp; &lt;br /&gt;Picasa programına http://picasa.google.com/ adresinden, picasa web albümleri servisine&amp;nbsp; http://picasaweb.google.com adresinden erişebilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-2YJe7K5GgpM/Tnj_72JqtNI/AAAAAAAABFo/JSTop8wLQhg/s1600/01+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="426" src="http://4.bp.blogspot.com/-2YJe7K5GgpM/Tnj_72JqtNI/AAAAAAAABFo/JSTop8wLQhg/s640/01+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-RIWaIjOk-3w/TnkAOTbMZkI/AAAAAAAABFs/ZL_qw0fUV9k/s1600/02+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="384" src="http://4.bp.blogspot.com/-RIWaIjOk-3w/TnkAOTbMZkI/AAAAAAAABFs/ZL_qw0fUV9k/s640/02+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Zaman zaman makalelerimde fotoğraf servislerini tanıtmaya çalışırım. Ama picasa programı ve web albümleri servisiyle diğerlerine göre oldukça farklı imkânlar sunuyor. Özellikle picasa programı son derece yetenekli bir fotoğraf yönetim uygulaması. Her iki uygulamada&amp;nbsp; Türkçe dil desteği sunuyor. &lt;br /&gt;Picasa programını yukarda verdiğim adresten indirip kolayca bilgisayarınıza kurabiliyorsunuz. Mac için yapılmış sürümü de mevcut.&lt;br /&gt;Picasa temel olarak bilgisayarınızdaki fotoğrafları yönetmek ve picasa web albümleri ile aradaki bağlantıyı sağlamak için tasarlanmış. &lt;br /&gt;İlk ayağından bahsedecek olursak, yani bilgisayarınızda çalışan kısmından, gerçekten de diğer fotoğraf gösterim ve yönetim uygulamalarına göre oldukça farklı ve akıllı yetenekleri var. Öncelikle bilgisayarınızdaki fotoğrafların tamamını kolayca yönetebilecek bir uygulama. Bilgisayarınızdaki herhangi bir konumdaki herhangi bir fotoğrafı picasaya ekleyebiliyor veya picasadan ulaşabiliyorsunuz.&amp;nbsp; Uygulamaya dâhil edilen fotoğraf veya fotoğraf klasörü size değişik imkanlar sunuyor. &lt;br /&gt;Mesela bu fotoğraflarla bir slayt&amp;nbsp; sunumunu kolayca yapabiliyorsunuz:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-1dLz_EkDNgc/TnkAWlzGlrI/AAAAAAAABFw/n0P6cuj4tvk/s1600/03+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/-1dLz_EkDNgc/TnkAWlzGlrI/AAAAAAAABFw/n0P6cuj4tvk/s640/03+%2528Copy%2529.jpg" width="514" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;Veya sinema, klip gibi akışkan sunumlar hazırlayabiliyorsunuz. Veya bu fotoğraflarla bir web sayfası oluşturabiliyorsunuz. Picasa’nın en şaşırtıcı ve&amp;nbsp; kullanışlı özelliği yüzleri tanıyor olabilmesi. Fotoğraflardaki yüzleri bir kere adlandırıyorsunuz ve&amp;nbsp; bütün fotoğraflardaki yüzleri isimlerine göre ayrı birer albüm olarak size sunuyor. Gerçekten de oldukça güzel ve kullanışlı bir özellik. &lt;br /&gt;Picasayla aynı zamanda kolajlarda yapabiliyorsunuz. Albümlerdeki fotoğrafları dakikalar içinde kolaj haline getirebiliyorsunuz. Özellikle yüzlerden yapılan kolaj çalışmaları oldukça farklı ve değişik bir sunum oluşturuyor. &lt;br /&gt;Bunun yanında fotoğraflara coğrafi etiketler ekleyebiliyor veya coğrafi etiket eklenmiş fotoğrafları harita özerinde görebiliyorsunuz. Program içinde ayrı bir pencerede&amp;nbsp; sağ tarafta duran Google maps uygulaması picasayla doğrudan kullanılabiliyor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wt6FxVu4_U4/TnkAhCwC15I/AAAAAAAABF0/pMfsUgLjpqo/s1600/04+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="344" src="http://1.bp.blogspot.com/-wt6FxVu4_U4/TnkAhCwC15I/AAAAAAAABF0/pMfsUgLjpqo/s640/04+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Picasa ile fotoğraflarınızı dilediğiniz gibi düzenleyebiliyorsunuz. Erişim seçenekleri oldukça çeşitlendirilmiş. Dilerseniz seçtiğiniz fotoğrafı doğrudan blogger’da yayınlayabiliyorsunuz.&lt;br /&gt;Picasa’nın fotoğrafları yönetmenin yanı sıra onlar üzerinde işlem yapabilen imkânları da mevcut. Örneğin kırmızı göz düzeltme, kesme, metin eklem, rütuş, efektler gibi işlemleri kolayca yapabiliyor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Picasa Web albümleri&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Picasa’nın bir fotoğraf düzenleme programı olarak daha pek çok özelliği var ancak bunların hepsine burada değinmeyeceğim. Fakat picasa’nın bence en büyük özelliği web ile entegre çalışması. Picasa web albümleri servisiyle birebir uyumlu çalışıyor. &lt;br /&gt;Picasa web albümleri google’ın bir fotoğraf barındırma servisi. Bu servisle web üzerinde fotoğraflarınızı paylaşabiliyor,&amp;nbsp; düzenleyebiliyor ve yönetebiliyorsunuz.&lt;br /&gt;Bunun için http://picasaweb.google.com adresinden gmail veya Google hesabınızla giriş yapmanız yeterli. Servise giriş yaptıktan sonra fotoğraflarınızı yükleyebiliyor ve onlar üzerinde işlem yapabiliyorsunuz. Diğer fotoğraf saklama servisleri gibi pek çok özelliği bulunuyor. Ancak picasa web albümlerini diğerlerinden ayıran en büyük özellik bilgisayarınızdaki&amp;nbsp;&amp;nbsp; picasa programıyla senkronize çalışıyor olması.&amp;nbsp; Picasadaki herhangi bir fotoğraf albümünü veya klasörünü anında picasa web albümlerine aktarabilirsiniz. Böylece bilgisayarınızdaki fotoğraflar aslında web de de olabilir. Web fotoğraf barındırmanın en güzel yanı nereye giderseniz gidin fotoğraflarınıza erişiyor olabilmeniz. Picasa programıyla birlikte fotoğraflarınızı web’e taşımak son derece kolay.&lt;br /&gt;Terside geçerli web’den yüklediğiniz bir fotoğrafınız anında bilgisayarınıza dahil edilebilir.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MMTFCGbW3f4/TnkAwj6gXqI/AAAAAAAABF4/oWw_0KXp0EA/s1600/05+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="288" src="http://1.bp.blogspot.com/-MMTFCGbW3f4/TnkAwj6gXqI/AAAAAAAABF4/oWw_0KXp0EA/s640/05+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Picasa web albümleri web üzerinden fotoğraflarımızı saklamak ve yönetmekle kalmıyor aynı zaman yine web üzerinden onlar üzerinde işlem yapmamızı da&amp;nbsp; sağlıyor. Picnik isimli web uygulamasıyla temel fotoğraf düzenleme işlemlerinin pek çoğunu web üzerinden yapabiliyorsunuz.&lt;br /&gt;Sonuç olarak bilgisayarınızdaki ve web deki fotoğraflarınızı tek bir yerden yönetmek-düzenlemek istiyorsanız&amp;nbsp; picasa-picasa web albümleri tam size göre.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-5506397345148184457?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/5506397345148184457/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=5506397345148184457&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5506397345148184457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5506397345148184457'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2011/09/picasa-bu-makalem-kasm-2010-tarihinde.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-2YJe7K5GgpM/Tnj_72JqtNI/AAAAAAAABFo/JSTop8wLQhg/s72-c/01+%2528Copy%2529.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-2624485377724266636</id><published>2010-10-19T23:59:00.000+03:00</published><updated>2011-09-21T00:32:44.194+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobile-Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Mobil Uygulama Geliştirme&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mobil Pazar ivmeli bir şekilde, hatta geometrik olarak gelişiyor. Önümüzdeki sonbahar’dan itibaren bu gelişme daha da hızlanacak. Rekabet heyecan verici. Herkes saflarını aldı ve oyun heyecanlandı.&lt;br /&gt;Bu pazarın iki temel unsuru var: cihazlar ve uygulamalar. Her iki ayakta da çarpıcı gelişmeler bizi bekliyor.” Smart phone” yani akıllı telefon kavramı uzun zamandan beri var. Ancak son dönemde gerçekten de çok akıllı oldular.&lt;br /&gt;Cihazları sadece telefon kavramı olarak sınırlamak yanlış diğer bütün şarj edilip taşınabilen akıllı cihazları bu kategoriye dâhil edebiliriz. Yani smart phone kavramı smart devices olarak genişlemiş durumda. &lt;br /&gt;Bu cihazların tipik özellikleri, hafif olmaları, az enerji tüketmeleri, çoğunlukla ve göreceli olarak küçük ekranlara sahip olmaları, kısacası taşınabilir olmalarıdır. Ve tabii ki pek çoğu dokunmatik ve bağlanabilirlik (online) yetenekleri üst düzeydeki cihazlar bunlar.&amp;nbsp; Bu kategoriye, netbook, tablet, ufak oyun konsolları ve elbette mobil telefonlar ve türevleri girmekte. Büyük cihaz üreticilerinin hemen her kategoride ürünleri mevcut. Bazısı daha hafif, bazısı daha fazla pil ömrüne sahip vs. Ama cihazları farklılaştıran üzerinde bulunan uygulamalar. &lt;br /&gt;Uygulamaların yeteneğini, yaygınlığını belirleyen ise bağlı oldukları platform ve bu platform üzerinde kaç tane yetenekli yazılımcının uygulama geliştirdiğidir. Bunun için rekabette olan firmalar kendi uygulama mağazalarını oluşturdu ve bu mağazaları geliştiricilerin hizmetine açtı. Diğer bir ifadeyle bugün artık akıllı cihaz alan bir kullanıcı sadece cihazın kendisini değil aynı zamanda bu mağazadaki uygulamaları da satın almış oluyor. Mağazalardaki (store) iş modeli kazan kazan modeline dayanıyor. Çoğu uygulama ücretsiz, ücretli olanlar da oldukça cüzi fiyatlarda. &lt;br /&gt;Uygulama ayağındaki bu durum, platform geliştiricilerin, developer yani uygulama geliştiricilere&amp;nbsp; son derece önem vermesini ve kendi mağazaları için yetenekli uygulamalar geliştirmesi için gerekli araç ve gereçleri sunmasını sağlıyor. Diğer bir ifadeyle uygulama geliştiricilere her türlü imkân sağlanıyor.&lt;br /&gt;Şu an mobil cihazlar için uygulama geliştirmenin iki ayrı yöntemi var. Birinci yöntemde platform’un native yani yerel programlama diliyle uygulama geliştirebiliyorsunuz. Bunun için platform geliştiriciler, her türlü araç ve desteği developer a sunuyorlar. &lt;br /&gt;Örneğin android için gerekli platform, api, SDK, emulatör vs. her şey hazır vaziyette uygulama geliştiricilerin kullanımına sunulmuş. Aynı şekilde kendi platformuna ait ortam iphone uygulamaları geliştirmek için apple tarafından da uygulama geliştiricilerin hizmetine sunuldu. Önümüzdeki günlerde çıkması beklenen Windows Phone zaten Visual Studio, Windows phone SDK sı ve diğer ürünleriyle .NET platformunda uygulama geliştirenlere yabancılık çekmeyecekleri bir ortam sunuyor. Bu uygulamalar kendi ortamlarında geliştirildiklerinde oldukça etkin ve performanslı oluyorlar. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-7b6tyWvlGtM/Tnj9-ORCInI/AAAAAAAABFc/oMyfVZo98iI/s1600/01+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="321" src="http://4.bp.blogspot.com/-7b6tyWvlGtM/Tnj9-ORCInI/AAAAAAAABFc/oMyfVZo98iI/s640/01+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ancak sorun cross platform bir uygulama geliştirmek istediğinizde ortaya çıkıyor. Yani her cihaz ve platformda çalışacak bir uygulamayı sadece bir seferde oluşturmak istiyorsanız burada sorunlar başlıyor. &lt;br /&gt;Şimdilik bunun yerel platform’a uygulanan kolay bir yolu yok. Diğer bir ifadeyle uygulamanızı her bir platform için ayrı ayrı geliştirmeniz ve onların yerel ortamında derlemeniz gerekmekte. Her ne kadar bunun için bir takım araçlar ve yöntemler varsa da ve hâlihazırda geliştiriliyorsa da henüz yaygın kullanılan net bir çözüm en azında şimdilik yok. Adobe’un iphone uygulamaları için hâlihazırda bir takım çözümleri var. Flash CS5&amp;nbsp; uygulamalarını native iphone uygulamasına dönüştürebiliyorsunuz. Android için de bu tür bir çalışması var. Ancak bunlar henüz&amp;nbsp; geliştirilme aşamasında.&lt;br /&gt;Cross platform olmayan bir uygulama geliştirmek her cihaz tarafından erişilebilme iddiasında olan uygulamalar için maliyetli bir yöntem. Yani siz bir online ticaret uygulamasını hem iphone hem de android’li (veya Windows phone veya&amp;nbsp; symbian) telefonda çalıştırmak istiyorsanız. Onların platformunda onların diliyle yazıp derlemelisiniz. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-Yty4cJyKO6A/Tnj-JSmKhEI/AAAAAAAABFg/kLzu0mfbq84/s1600/03+%2528Copy%2529.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/-Yty4cJyKO6A/Tnj-JSmKhEI/AAAAAAAABFg/kLzu0mfbq84/s640/03+%2528Copy%2529.jpg" width="364" /&gt;&lt;/a&gt;Ancak bu sorunu çözmenin farklı bir yöntemi de var. Özellikle HTML5 sürümünün çıkmasıyla birlikte yetenekli uygulamalar artık web’de de geliştirilebiliyor. Bunun için javascript ve CSS dışında herhangi bir teknolojiye (belki biraz jQuery-ki o da zaten javascript den türeme) ihtiyaç duyulmuyor.&lt;br /&gt;Diğer bir ifadeyle web uygulamaları browser’ı olan (ki olmayan yok) her cihazda çalışabilir durumda. Bu yetenekli web uygulamaları, kullanacak cihazın native yani yerel görsel ve yeteneklerine uygun bir yapı&amp;nbsp; sağlar.&lt;br /&gt;Daha açık bir ifadeyle web uygulamasını cihaza uyarlayabiliriz.&lt;br /&gt;Şu an diğer bir eğilim bu. Gerçekten de bu tarz geliştirilmiş uygulamalar görsel olarak native uygulamalardan çok farklı değil. Farkı performans’la ilgili.&amp;nbsp; Ancak pek çok uygulamada zaten performans da çok önemli değil.&lt;br /&gt;Bunu göz ardı edersek, uygulama geliştiricilerin elinde büyük bir kazanç oluyor. Bildiği&amp;nbsp; HTML, CSS, javascript teknolojileriyle bütün cihazlarda kullanılabilen bir uygulama geliştirmiş oluyor. Yani bir uygulama yapıyor ve bu bütün cihazlarda çalışıyor.&amp;nbsp; &lt;br /&gt;Eğilim şimdilik bu native ve web uygulama geliştirme arasında. Pek çoklarına göre gelecekte native uygulamaların yerini HTML5, CSS3 ve javascriptli web uygulamaları alacak.&amp;nbsp; &lt;br /&gt;Zaman içinde ara çözümler üretilecek tabii ki. Hatta bazıları mevcut bile. Örneğin C# uygulama geliştiricileri için C# ile iphone uygulaması geliştirmeye imkân tanıyan http://monotouch.net/&amp;nbsp; veya yine aynı mantıkla android için http://monodroid.net/ native yani yerel uygulamalar geliştirmeye olanak tanıyor. &lt;br /&gt;Ancak web uygulaması seçeneğini çok göz ardı etmemek lazım çünkü bunlar da cihazın kamera gibi yerel birimlerine hükmedebilen native platforma dönüştürülebiliyor. Elbette altta yine HTML javascript çalışıyor ama cihazın birimlerine ulaşmaya imkân tanıyan komutları sağlıyor. &lt;br /&gt;Buna yönelik iki temel açık platform mevcut: http://www.appcelerator.com/ ve http://www.phonegap.com/ Her ikisi de mevcut html li javascript ve css li uygulamanızı çalıştırılacak platformun native ortamına uyarlayabilen yazılımsal araçlara sahip. Bunlardan http://www.phonegap.com/ ağırlık lı olarak web uygulaması tarzını benimsemiş ancak native derlemeyi de yapabilmekte. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-vSh7sVLVUew/Tnj-VnxYNeI/AAAAAAAABFk/y8JvNRPkWeo/s1600/02+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-vSh7sVLVUew/Tnj-VnxYNeI/AAAAAAAABFk/y8JvNRPkWeo/s1600/02+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="420" src="http://2.bp.blogspot.com/-vSh7sVLVUew/Tnj-VnxYNeI/AAAAAAAABFk/y8JvNRPkWeo/s640/02+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Özetlemek gerekirse mobil pazarda akıllı uygulama geliştirmeye yönelik pek çok açılım olacak. Diğer bir ifadeyle son kullanıcı gözüyle bakarsak çok daha akıllı her yerden erişilebilen kolay kullanılabilir kısacası hayatımızı daha da kolaylaştıracak pek çok uygulama bizleri bekliyor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-2624485377724266636?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/2624485377724266636/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=2624485377724266636&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2624485377724266636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2624485377724266636'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2011/09/mobil-uygulama-gelistirme-mobil-pazar.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-7b6tyWvlGtM/Tnj9-ORCInI/AAAAAAAABFc/oMyfVZo98iI/s72-c/01+%2528Copy%2529.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-6367132570774407452</id><published>2010-07-14T23:52:00.000+03:00</published><updated>2011-09-20T23:52:35.541+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Tatil Fotoğraflarını web’de paylaşmak&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Tatil aylarındayız. Ben de tatille ilgili bir yazı yazmak istedim. Hatta tatilden geleli henüz iki gün oldu. Bu ayki makalemde ne yazayım diye düşünürken özellikle tatilden/geziden dönenlerin ortak&amp;nbsp; gereksinimi olan fotoğrafların paylaşımı üzerine bir yazı yazmak istedim. &lt;br /&gt;Tatilde onlarca fotoğraf çektim ve bunları benden pek çok yakınım istiyor. Öncelikle fotoğrafın bizzat içinde olanlar doğal olarak fotoğraflarını görmek istiyorlar. Sonra anneler babalar, diğer akraba ve arkadaşlarda gittiğimiz yerleri ve bizim fotoğraflarımızı görmek istiyorlar haklı olarak. &lt;br /&gt;Her birine eposta göndersem o kadar mega byte lık bir dosya boyutu pek çoğunda sorun çıkarabilir.&amp;nbsp; Zaten bazılarının e-posta adresi bile yok (anneanne, dede) En iyi çözüm tabii ki web’e koymak.&lt;br /&gt;Bunun için flickr, picasa gibi pek çok imkân var. Ama ben daha değişik bir şey yapmak istedim. Sadece fotoğrafları değil fotoğrafların çekildiği yerleri de yakınlarıma göstermek istedim. &lt;br /&gt;Fotoğraflarımı harita üzerinde göstererek hem fotoğraflarımı paylaşmış hem de yakınlarımın “bu nerde çekildi?” “burası neresi?” gibi sorularına da yanıt vermiş olacağım. Eğer fotoğraflardaki manzaraları beğenirlerse anında haritada yerini görecekler ve tatil için rezervasyonlarını yaptırabilecekler &lt;br /&gt;Herhangi bir medyaya (video, fotoğraf vs.) harita üzerinde göstermek için lokasyon bilgisinin eklenmesine Geotagging dendiğini daha önceki makalelerimde yazmıştım. Bu konuyla ilgili daha fazla bilgi almak isterseniz onları okuyabilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Locr&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Bu yazımda lokasyon bilgisi eklenmiş fotoğrafları harita üzerinde gösteren çok güzel bir servis ve bir yazılım tanıtacağım. Servisini ismi locr, www.locr.com adresinden ulaşabiliyorsunuz. &lt;br /&gt;Bu fotoğraflarınızı paylaşabileceğiniz bir web servis. Ancak farklı olarak fotoğraflarınızla birlikte lokasyon bilgisini de haritada gösteriyor. Kapasitesi sınırlanmış ücretsiz bir versiyonu da var bu servisin. Yapmanız gereken kayıt olmak ve kendinize ait bir hesap oluşturmak. &lt;br /&gt;Locr iki türlü de hizmet veriyor; isterseniz fotoğraflarınızı lokasyon bilgisiyle birlikte haritalı sunum yapıyor, isterseniz sadece fotoğraflarınızı gösteriyor. Ücretsiz hesapta 100MB ve 5 albüme izin veriyor.&lt;br /&gt;Locr’a kaydolduktan sonra size özel bir alan oluşturuluyor. Bu alanda albümler oluşturup, bunlara fotoğraf yükleyebiliyorsunuz. Fotoğraflarınızı dilerseniz sadece seçtiğiniz kişilerle, dilerseniz herkesle dilerseniz de locr kayıtlı kullanıcılarıyla paylaşabiliyorsunuz.&lt;br /&gt;Yükleme ekranından fotoğraflarınızı albüm adı seçerek yükleyebiliyorsunuz:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-LghsnOYlikk/Tnj8NVwCWjI/AAAAAAAABFI/iAEBHV_t4eM/s1600/01+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="440" src="http://4.bp.blogspot.com/-LghsnOYlikk/Tnj8NVwCWjI/AAAAAAAABFI/iAEBHV_t4eM/s640/01+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Fotoğraflarınızı ilk yüklediğinizde üst köşesinde bir dünya ikonu ve çarpı görürseniz bunun anlamı fotoğrafınızda lokasyon bilgisi yok demektir. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Fotoğraflarınıza lokasyon bilgisi eklemek&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Lokasyon bilgisini fotoğraflarımıza birkaç yöntemle ekleyebiliriz. Birincisi çektiğiniz fotoğraf makinesinin otomatik lokasyon bilgisi ekleme özelliği olabilir. Bunu aktif hale getirmeliyiz. &lt;br /&gt;Son zamanlarda artık GPS li telefon ve fotoğraf makineleri piyasaya çıkmaya başladı. Eğer makineniz bu özellikteyse bu özelliğini aktif hale getirmelisiniz. Böylece her çektiğiniz fotoğrafa konum bilgisi otomatik olarak eklenecektir.&lt;br /&gt;Ancak bu özellikte bir cihazınız yoksa sorun değil fotoğraflarınıza daha sonradan da lokasyon bilgisi eklemeniz mümkün. Bunun için yardımcı bir yazılım kullanmalısınız. Daha önceki yazılarımda bu yazılımlardan birini tanıtmıştım. Ancak locr’ın da download kısmında önerdiği bir takım yardımcı yazılımlar var. Bunlardan bir tanesi gerçekten de çok kullanışlı. Şimdi biraz bu yazılımdan bahsedeceğim.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-cavGyqIDMC8/Tnj8cZCkKBI/AAAAAAAABFM/-2GJDzJpHxw/s1600/02+%2528Copy%2529.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;GeoSetter&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;http://www.geosetter.de adresinden ulaşabileceğiniz bu yazılımı kolayca bilgisayarınıza kurabiliyorsunuz.&amp;nbsp; GeoSetter ın kullanımı da çok kolay&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cavGyqIDMC8/Tnj8cZCkKBI/AAAAAAAABFM/-2GJDzJpHxw/s1600/02+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="456" src="http://2.bp.blogspot.com/-cavGyqIDMC8/Tnj8cZCkKBI/AAAAAAAABFM/-2GJDzJpHxw/s640/02+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yapmanız gereken fotoğraflarınızın klasörünü bulmak. Otomatik olarak o klasördeki bütün fotoğrafları gösteriyor. Burada fotoğraflarınızla birlikte kayıtlı olan diğer verileri görebiliyorsunuz. Örneğin tarih, lokasyon, kimin çektiği bilgileri gibi. Eğer bunlar kayıtlı değilse GeoSetter ile bunları elle ekleyebilirsiniz. Bunun için fotoğrafın üzerinde çift tıklamanız yeterli:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-O0nZS2wWcnk/Tnj8t7YSegI/AAAAAAAABFQ/vJBnhm7uSw4/s1600/03+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-O0nZS2wWcnk/Tnj8t7YSegI/AAAAAAAABFQ/vJBnhm7uSw4/s320/03+%2528Copy%2529.jpg" width="227" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Buradaki lokasyon bilgilerini Google maps veya başka bir harita servisinden bulup ekleyebilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-rviRqVt-Lj4/Tnj80Jj7HnI/AAAAAAAABFU/Tutn-KJScqQ/s1600/04+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://4.bp.blogspot.com/-rviRqVt-Lj4/Tnj80Jj7HnI/AAAAAAAABFU/Tutn-KJScqQ/s400/04+%2528Copy%2529.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Böylece artık o fotoğrafınıza lokasyon bilgisi eklenmiş olacak. Yukarıda da gözüktüğü gibi lokasyon bilgisi dışında daha pek çok bilgiyi saklamanız mümkün bir fotoğraf üzerinde. &lt;br /&gt;Şimdi yapmanız gereken bu lokasyon bilgisi eklenmiş fotoğrafı locr’a yüklemek.&amp;nbsp; Artık fotoğrafınız lokasyon bilgisi sayesinde haritayla birlikte gösterilecek&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-IAGhYhHlFJM/Tnj88zB8RSI/AAAAAAAABFY/MQeo6Pfy0GM/s1600/05+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="311" src="http://3.bp.blogspot.com/-IAGhYhHlFJM/Tnj88zB8RSI/AAAAAAAABFY/MQeo6Pfy0GM/s400/05+%2528Copy%2529.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Sadece Google maps değil yahoo, bing gibi diğer harita servislerini de kullanabiliyorsunuz.&lt;br /&gt;Eğer çok fazla seyahat ediyorsanız ve buralarda bolca fotoğraf çekiyorsanız ve de bunları yakınlarınızla bu şekilde paylaşmak istiyorsanız locr gerçekten çok kullanışlı bir servis. &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-6367132570774407452?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/6367132570774407452/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=6367132570774407452&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6367132570774407452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6367132570774407452'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2010/07/tatil-fotograflarn-webde-paylasmak.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-LghsnOYlikk/Tnj8NVwCWjI/AAAAAAAABFI/iAEBHV_t4eM/s72-c/01+%2528Copy%2529.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-4038778767974721122</id><published>2010-06-10T23:43:00.000+03:00</published><updated>2011-09-20T23:44:28.541+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Web sitenize ziyaretçi formu ekleyin&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;(Bu makalem Haziran 2010 Tarihinde Mobillife dergisinde yayınlanmıştır)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Web’de bir web sitemizin olması için hepimizin uzman olması gerekmez. Basit bir kaç HTML sayfası yapıp kendimize ait bir web sitesi edinebiliriz. Bu o kadar da zor bir iş değildir. İnternette kısa bir araştırma yapıp bunu kolayca yapabilirsiniz. Zor olan kısım ziyaretçilerimizle iletişime geçmektir. Diğer bir ifadeyle onlardan bilgi almaktır. Bunun en basit yolu web sitemize e-posta adresimizi ekleyip buradan bize e-posta gönderilmesini sağlamaktır. Ancak bu yöntem hem göze hoş görünmez hem de güvenli değildir.&lt;br /&gt;Seçenek olarak geriye web sitemize bir form koyup bu yöntemle bilgileri almak geliyor; ancak işte burada işler karışıyor. Bu noktada artık orta ve ileri düzeyde bir takım teknikler bilmeniz gerekiyor. Ancak kişisel bir web sitesi, iddialı ve ticari olmayan bir arabirim düşünüyorsanız dışarıdan web hizmetleri alarak bu işi kolayca yapabilirsiniz. Web programlama gibi ileri konuları öğrenmeden sadece bu servisleri web sayfanıza dahil ederek epey kullanışlı form arabirimleri oluşturabilirsiniz. &lt;br /&gt;Böylece ziyaretçileriniz bu formları doldurur ve size iletmek istedikleri mesajları iletirler. Bu tarz servisler web üzerinde oldukça fazla sayıdadır. Ben bu yazımda sadece iki tanesini tanıtacağım ve nasıl kullanıldıklarını anlatacağım.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Kontactr&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Bunlardan ilki http://kontactr.com/ adresinden ulaşabileceğiniz iletişim form servisi.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-Exk-rPVYSU4/Tnj6ENkWgnI/AAAAAAAABE0/2FK5CfuvVOs/s1600/01+%2528Copy%2529.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="358" src="http://3.bp.blogspot.com/-Exk-rPVYSU4/Tnj6ENkWgnI/AAAAAAAABE0/2FK5CfuvVOs/s640/01+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;Sitenin ana sayfasında da anlatıldığı gibi sadece 3 adımda ziyaretçi iletişim formu oluşturup sayfanıza ilave edebiliyorsunuz. Bu servis temel olarak şunu yapıyor: Kullanıcıya bir form arabirimi sağlayıp buradan gelen bilgileri doğrudan sizin e-posta adresinize gönderiyor. Böylece siz e-posta adresinizi doğrudan vermemiş oluyorsunuz. Bu sayede hem spamlardan kurtuluyorsunuz hem de daha kolay kullanımlı, şık bir arabirim sunuyorsunuz.&lt;br /&gt;Yapmanız gereken servise ücretsiz olarak kayıt olmak. Sonra size özel bir sayfa sunulacak. Burada sayfanıza dâhil etmeniz gereken kodlar bulunuyor. Bu kodları alıp sayfanıza ilave etmeniz yeterli.&lt;br /&gt;Burada iki çeşit kod tercihinize sunulmuş; bunlardan bir tanesi sayfanızın herhangi bir yerine doğrudan ekleyebileceğiniz iki satırlık bir kod:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-W7Vm1ec9Fps/Tnj6Rjq1maI/AAAAAAAABE4/xjoUEiMPN2U/s1600/02+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://3.bp.blogspot.com/-W7Vm1ec9Fps/Tnj6Rjq1maI/AAAAAAAABE4/xjoUEiMPN2U/s640/02+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu kod amatörler için, diğerine göre nispeten daha sade ve kolay kullanımlı. Bunda yapabileceğiniz düzenleme aşağıdaki butona tıklayarak sadece renkleri değiştirebilmektir.&lt;br /&gt;Daha düzenlenebilir ve biraz daha karmaşık bir kod arabirimi daha sunuyor kontactr:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-P1f56lurhgc/Tnj6ZKl4UTI/AAAAAAAABE8/o14Cabwgt0o/s1600/03+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="342" src="http://1.bp.blogspot.com/-P1f56lurhgc/Tnj6ZKl4UTI/AAAAAAAABE8/o14Cabwgt0o/s640/03+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bunda ise kodları body tagları arasına kopyalamalısınız. Form metin başlıklarını düzenleme imkânı veren bu kod ötekine göre daha uyarlanabilir. &lt;br /&gt;Kontactr da butonları da istediğiniz şekilde düzenleyebiliyorsunuz:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-kxPjELWkkkw/Tnj6hKIGJLI/AAAAAAAABFA/2U6ShtNte2o/s1600/04+%2528Copy%2529.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="310" src="http://2.bp.blogspot.com/-kxPjELWkkkw/Tnj6hKIGJLI/AAAAAAAABFA/2U6ShtNte2o/s320/04+%2528Copy%2529.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Böylece kendi sitenizin renk formatına, sayfa düzenine uyumlu şık görünümlü formlar oluşturabiliyorsunuz.&lt;br /&gt;Kontactr’ın en güzel özelliklerinden biri de doğrulama arabiriminin olması:&lt;br /&gt;&lt;br /&gt;Doğru harf kombinasyonunu yazıp gönderemeyen ziyaretçilerin formları işleme alınmıyor. Böylece yapılan otomatik gönderimleri kabul etmeyerek e-posta kutunuzu spamlarla boşuna şişirmemiş oluyorsunuz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-m1pIb7CujoQ/Tnj652AUmVI/AAAAAAAABFE/wxXFfOve_s4/s1600/05+%2528Copy%2529.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="163" src="http://1.bp.blogspot.com/-m1pIb7CujoQ/Tnj652AUmVI/AAAAAAAABFE/wxXFfOve_s4/s320/05+%2528Copy%2529.jpg" width="320" /&gt;&lt;/a&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Wufoo&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Tanıtacağım diğer web form servisi wufoo. http://wufoo.com adresinden ulaşabileceğiniz bu servis kontactr’a göre çok daha fazla özellik sunuyor.&amp;nbsp; Wufoo da form alanlarını istediğiniz gibi belirleyebiliyor, düzenleyebiliyorsunuz.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Tamamıyla size ait alanlar, başlıklar renkler resimler kullanabiliyorsunuz. Ayrıca form verileri kontactr gibi sadece bir e-postayla gönderilmiyor; Aynı zamanda kayıtları da tutuluyor. Bu kayıtlardan raporlar oluşturup gelen bilgilere bakabiliyorsunuz.&lt;br /&gt;Form düzenleme arabirimi oldukça sade ve kolay kullanımlı. İsterseniz hazır temalarla form’unuza daha profesyonel bir görünüm kazandırabiliyorsunuz.&lt;br /&gt;Daha sonra oluşturduğunuz form’u alıp web sitenize ilave edebiliyorsunuz. Wufoo’nun hem ücretsiz hem ücretli servisleri var. Tabii ki ücretsiz servisleri biraz daha sınırlı kullanımlı ancak o bile pek çok işinizi görebilecek özellikte.&lt;br /&gt;Yukarıda tanıttığım formları kullanmak için web programlama bilgisine, html tecrübesine veya javascript kodlamasına gerek yoktur. Sadece web sitenize ilave etmeniz yeterli. Böylece ziyaretçilerinizden gelebilecek her türlü veriyi kolayca temin edebilirsiniz. Üstelik bunu son derece hızlı, güvenilir ve kolay bir şekilde gerçekleştirirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-4038778767974721122?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/4038778767974721122/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=4038778767974721122&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4038778767974721122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4038778767974721122'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2011/09/web-sitenize-ziyaretci-formu-ekleyin.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Exk-rPVYSU4/Tnj6ENkWgnI/AAAAAAAABE0/2FK5CfuvVOs/s72-c/01+%2528Copy%2529.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-3058803037034212580</id><published>2010-05-14T17:39:00.000+03:00</published><updated>2011-09-20T17:42:06.764+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;span style="font-size: large;"&gt;&lt;b&gt;Faydalı programlardan birkaç örnek&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;(Bu makalem Mayıs 2010 Tarihinde Mobillife dergisinde yayınlanmıştır)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial,Tahoma,Helvetica,FreeSans,sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;Bilgisayarda çalışırken işlerimizi kolaylaştıran pek çok program kullanırız. Bunların bazıları gerçekten de bizim için vazgeçilmezdir. Bu yazımda bu tip programlardan bir kaçını tanıtacağım. Bunlardan ilki snagit. Bir ekran yakalama programı. Ama diğerlerine hiç benzemiyor. Oldukça kullanışlı. Kullanışlı ve de çok fazla özelliğe sahip. Öncelikle ekran yakalama (screen capture) ne demek? Onu&amp;nbsp; açıklamak gerekirse, kısaca bilgisayar monitörünüzde görüntülenenlerin fotoğrafının çekilmesidir. Aslında pek çoğunuzun bildiği gibi MS Windows’da printscreen almak&amp;nbsp; mümkün. Bunun için klavyenizdeki “prtscn” tuşuna basmanız yeterli. Ekran görüntünüz hafızaya kaydedilecektir. Daha sonra paint’i açıp “paste” yaparsanız, aldığınız ekran görüntüsünün resmini elde edersiniz. Ancak başka hiçbir kontrolünüz yoktur bu işlemde. Oysa “screen capture” yani ekran yakalama programları bunun yanında daha pek çok özellik sunar. Örneğin bir web sitesi düşünün ve sayfa uzunluğu, ekranın alabileceğinden daha uzun ama siz bu sayfanın tamamının ekran görüntüsünü almak istiyorsunuz. Gelişkin “screen capture” programlarıyla bu mümkün. Tahmin edeceğiniz gibi pek çok screen capture programı mevcut. Snagit de bunlardan birisi. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8oX_Fv9SZ6M/TnilgQIXevI/AAAAAAAABEg/CwfytMRXSok/s1600/01.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="234" src="http://2.bp.blogspot.com/-8oX_Fv9SZ6M/TnilgQIXevI/AAAAAAAABEg/CwfytMRXSok/s320/01.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Programın arabirimi yukarıdaki gibi oldukça kolay kullanımlı. İkonlardan da anlayabileceğiniz gibi pek çok şekilde capture yapabiliyorsunuz. Örneğin ekranın herhangi bir kısmındaki herhangi bir alanı işaretleyerek resim alabiliyorsunuz. Veya yukarıda bahsettiğim gibi aşağı doğru uzanan sayfaları otomatik olarak yuvarlayarak tüm sayfanın bir resim olarak elde edilmesini sağlayabiliyorsunuz. Bunun için Scrolling window seçeneği işaretliyken kırmızı butona basmanız ve fotoğrafını almak istediğiniz sayfanın üzerine gelerek bir kere tıklamanız yeterli. Sayfa otomatik olarak aşağı kaydırılarak tüm sayfanın fotoğrafı çekiliyor. Tabii ki pencerelerin otomatik görüntüsünün alınması veya herhangi bir nesnenin (mesela menü gibi) ekran görüntüsünün alınması snagit ile çok kolay. Ancak snagit in en farklı özelliklerinden biri, bir web sayfasını linkleriyle birlikte capture edebiliyor olması. Bunun için web page (keep lings) seçeneğini işaretlemeniz yeterli. Resim kaydedilirken beraberinde linklerinde işlevselliğini sağlayan dosyalar da kaydedilecek.&lt;br /&gt;Snagit in diğer en büyük farklarından birisi de beraberinde bir fotoğraf editörüyle birlikte geliyor olması. Böylece aldığınız ekran görüntülerini buraya otomatik aktarıp üzerinde düzenlemeler yapabiliyorsunuz.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-xFr0_tWMGig/Tnilt7yY5GI/AAAAAAAABEk/-ECMvbfGfpY/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://1.bp.blogspot.com/-xFr0_tWMGig/Tnilt7yY5GI/AAAAAAAABEk/-ECMvbfGfpY/s320/02.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu editörde pek çok işlemi pratik bir biçimde yapabiliyorsunuz. Örneğin resimlerinize kenarlık ekleyebiliyor, gölgelendirebiliyorsunuz. Diğer bütün temel efektleri oluşturabiliyorsunuz fotoğrafınız üzerinde. Bunun haricinde konuşma baloncukları, taglar, hotspotlar, watermark lar gibi ileri düzey işlemleri de kolayca gerçekleştirebiliyorsunuz. Tabii ki boyutlandırma, resim kayıt kalitesi gibi işlemleri de yapabiliyor. http://www.techsmith.com/screen-capture.asp adresinden ulaşabileceğiniz snagit’in 30 günlük deneme sürümünü bilgisayarınıza kurup test edebilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Fotoğraf Boyutlandırma&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Bu yazımda size tanıtacağım diğer bir program yine fotoğraflarla ilgili; Vso image resizer. Adından da anlaşılacağı gibi bir fotoğraf yeniden boyutlandırma yazılımı. Hemen her fotoğraf editörü fotoğrafları yeniden boyutlandırma kabiliyetine sahiptir. Hemen her bilgisayarda da bir fotoğraf editörü bulunduğunu varsayarsak gereksiz bir yazılımmış gibi gelebilir. Ancak Vso image resizer inanılmaz pratikliği ile kendine bağlıyor. Pratik olmasının nedeni sadece bir sağ tuş&amp;nbsp; ile programa erişip istediğimiz boyutu belirledikten sonra fotoğrafınızı dilediğimiz yere kolayca kaydedebilmeniz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-EjZxplqzGNw/Tnil39BFuVI/AAAAAAAABEo/CCy9rvlB1x4/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://4.bp.blogspot.com/-EjZxplqzGNw/Tnil39BFuVI/AAAAAAAABEo/CCy9rvlB1x4/s640/03.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fotoğrafa sağ tuşla tıklayıp VSO Image Resizer seçerseniz karşınıza programın ana penceresi açılıyor:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-s6An9asnwQM/TnimDWDNtMI/AAAAAAAABEs/iSK8yM9zn4U/s1600/04.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="155" src="http://3.bp.blogspot.com/-s6An9asnwQM/TnimDWDNtMI/AAAAAAAABEs/iSK8yM9zn4U/s320/04.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Değişik çözünürlüklerdeki yeniden boyutlandırma seçeneklerinin yanında oransal olarak da boyutlandırma yapabiliyorsunuz. Kaydetme işlemi resmin bir kopyası ve yeni boyutuyla birlikte otomatik yapılıyor. Orijinal fotoğrafınız muhafaza ediliyor. Ancak tabii bu özellikleri değiştirmeniz mümkün. E posta ile resim gönderirken, web sitenize resim eklerken resmin boyutunu düşürmek için Vso image resizer ı kolayca kullanabilirsiniz. Bu programa www.vso-software.fr adresinden erişebilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;ZoomIt&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Bu yazımda tanıtacağım son program zoomit. &lt;br /&gt;Zoomit kelimesiyle Google dan yapacağınız bir aramayla kolayca ulaşabileceğiniz bu programı indirebileceğiniz web sitesi adresi http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx &lt;br /&gt;Herhangi bir kurulum gerektirmeyen ve sadece 267 kb lık bir boyuta sahip olan bu program monitörden (ve tabii projektörden)&amp;nbsp; sunum yapanlar içi son derece faydalı bir araç. Özünde bir ekran yakınlaştırma programı olan zoomit bunun yanında yakınlaştırdığınız ekran üzerinde serbest elle&amp;nbsp; çizimler&amp;nbsp; ve işaretlemeler yapmanızı sağlıyor&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-9dxeyxwBSGQ/TnimEYH0QVI/AAAAAAAABEw/-pMVGljNNYw/s1600/05.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://3.bp.blogspot.com/-9dxeyxwBSGQ/TnimEYH0QVI/AAAAAAAABEw/-pMVGljNNYw/s320/05.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Böylece izleyicileri dilediğiniz yere odaklayabiliyor ve o yere sunum esnasında işaret veya çizimler ekleyebiliyorsunuz. Özellikle öğretmenler, eğitmenler ve seminer verenler için son derece faydalı bir program.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-3058803037034212580?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/3058803037034212580/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=3058803037034212580&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3058803037034212580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3058803037034212580'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2010/05/faydal-programlardan-birkac-ornek-bu.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-8oX_Fv9SZ6M/TnilgQIXevI/AAAAAAAABEg/CwfytMRXSok/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-8427847698641110983</id><published>2010-04-17T17:27:00.000+03:00</published><updated>2011-09-20T17:28:22.454+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Notepad++&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;(Bu makalem Nisan 2010 Tarihinde Mobillife dergisinde yayınlanmıştır)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Bu yazımda Windows’da kullandığımız &amp;nbsp;notepad’in iki alternatifinden bahsedeceğim. Bunlardan birisi Notepad++ editörü.&lt;br /&gt;Bilgisayarımızdaki notepad yazı yazma programı çok yaygın olarak kullanılır.&lt;br /&gt;Bu basit program pek çok işimizi görür. Üstelik bilgisayar kaynaklarımızı da çok fazla tüketmez.&lt;br /&gt;Ancak Notepad in fazla bir özelliği yoktur. Çok sade ve basittir.&lt;br /&gt;Biraz daha karmaşık işler yapmak istediğimiz zaman yetersiz kalmaktadır.&lt;br /&gt;Normal koşullarda her uygulamanın kendi editörü vardır. Diğer bir ifadeyle yazı yazmak istiyorsak MS Word (veya diğer kelime işlemciler), web sitesi yapmak istiyorsak bir web editörü kullanmalıyız. Ama bunlar bilgisayarımızda oldukça yer kaplarlar ve kaynaklarını tüketirler.&lt;br /&gt;Notepad ++ hem bu işlerimizin pek çoğunu zahmetsizce yapabilmemizi sağlar hem de bilgisayar kaynaklarımızı minumum da tüketir. Ücretsiz bir program olan notepad ++ ı http://notepad-plus.sourceforge.net/uk/site.htm adresinden indirebilirsiniz.&lt;br /&gt;&lt;br /&gt;Programın oldukça sade bir arayüzü var. notepad++ en güzel özelliklerinden biri kod renklendirmesi yapabilmesi.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-6zOGTHD_q5I/TniiYse0zwI/AAAAAAAABEM/7tAQdja9ICY/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-6zOGTHD_q5I/TniiYse0zwI/AAAAAAAABEM/7tAQdja9ICY/s1600/01.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Hemen her programın dil renklendirmesini yapabiliyor. Language menüsüne tıkladığınızda hangi dillerde renklendirme yapabildiğini görebilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-fCQtZohQvb8/Tniie-yZsXI/AAAAAAAABEQ/uu87086LXpw/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://4.bp.blogspot.com/-fCQtZohQvb8/Tniie-yZsXI/AAAAAAAABEQ/uu87086LXpw/s320/02.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Mesela bir html web sayfası kodu yazacaksanız HTML taglarını sizin için renklediriyor.&lt;br /&gt;Bu özellik daha hatasız ve keyifli bir uygulama geliştirmenizi sağlıyor.&lt;br /&gt;&lt;br /&gt;Örneğin C# kod’u yazıyorsanız ona göre renklendirme yapıyor, hatta bununla yetinmiyor kod blokları arasında işaretleme de yapabiliyor. Bu özelliği ile pek çok kod editöründen daha yetenekli. Kendi renk kodlamalarınızı da oluşturmak mümkün.&lt;br /&gt;notepad ++ ın en şaşırtıcı özelliklerinden birisi kod tamamlaması yapabiliyor olması. Ctrl + spc e birlikte bastığınızda size kullanabileceğiniz tagları sunuyor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xPH3Rb7K75o/Tniik-W_LpI/AAAAAAAABEU/zH5A8I9fMb4/s1600/03.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" src="http://2.bp.blogspot.com/-xPH3Rb7K75o/Tniik-W_LpI/AAAAAAAABEU/zH5A8I9fMb4/s320/03.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Böylece pek çok işi zorlanmadan yapabiliyorsunuz.&lt;br /&gt;notepad ++ özelliklerinden birisi de yazdığınızı programın çıktısını set ettiğiniz bir arabirimde anında görebilmeniz. Örneğin bir web sitesi kodlaması yapıyorsanız crtl+alt+shift+X kısayolarıyla anında firefox da sayfayı yükleyebiliyorsunuz. Bunun gibi daha pek çok kısayol çıktısı mevcut.&lt;br /&gt;&lt;br /&gt;notepad ++ in sadece 3 MB lık bir boyutu olmasına rağmen yapabildikleri gerçekten inanılmaz. Örneğin tekrarlanan işlemler için makrolar yazabiliyorsunuz. Böylece zamandan kazanıyorsunuz. Yapmanız gereken macro menüsünden “start recording” e tıklamanız. Bu aşamadan sonra program yaptıklarınızı kaydediyor.&lt;br /&gt;Daha sonra stop recordinge tıklıyorsunuz.&lt;br /&gt;Macronuzu çalıştırmak için aynı menüden playback ı tıklamanız yeterli. Kaydettikleriniz aynen yapılacaktır.&lt;br /&gt;notepad ++ plug’in leride mevcut. Plugin ler vasıtasıyla programın yapabilecekleri daha da artıyor. Search seçeneği oldukça fazla. İsterseniz aradığınız kelime veya ifadelerin yerine değiştirmek istediğinizi ifadeyi ekleyebiliyorsunuz.&lt;br /&gt;&lt;br /&gt;notepad ++ da çalışma ortamınızın biçimini de siz belirliyorsunuz. Değişik renk ve formatlarda tanımlanmış bu biçimler yazı veya kodlarınızı görsel olarak beğendiğiniz bir ortamda geliştirmenizi sağlıyor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-5eeD1EKI48I/Tniisdzw_TI/AAAAAAAABEY/uAQjXmsDxcU/s1600/04.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://1.bp.blogspot.com/-5eeD1EKI48I/Tniisdzw_TI/AAAAAAAABEY/uAQjXmsDxcU/s320/04.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Kısa yol tuşlarını kendinizin tanımlayabileceğiniz bir ortam da mevcut.&lt;br /&gt;Özet olarak basit bir metin işlemeden, karmaşık bir kod yazımına kadar hemen her türlü metinsel işleminizi yapabileceğiniz notepad ++ &amp;nbsp;sadece notepad in bir alternatifi değil aynı zamanda büyük kod editörlerinin de özelliklerini barındıran harika bir editör. Üstelik sistem kaynaklarını çok az tüketiyor. Ama her şeye rağmen daha hafif bir not tutucu istiyorsanız bir tane daha tanıtmak istiyorum.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Notepad2&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;http://www.flos-freeware.ch/notepad2.html adresinden indirebileceğiniz notepad2 &lt;br /&gt;notepad in diğer iyi bir alternatifi. Sadece 600kb büyüklüğünde olan notepad2 &amp;nbsp;de ücretsiz bir sürüm. Buna rağmen pek çok üstün özelliği mevcut. Öncelikle notepad2 &amp;nbsp;yi bilgisayarınıza kurmanız gerekmiyor. Doğrudan çalıştırabiliyorsunuz. notepad2 ‘de de değişik dillere göre kod renklendirmesi mevut. Bunun için view dan “syntax scheme” ye tıklamanız gerekiyor.&lt;br /&gt;Örneğin bir c# kodu yazıyorsanız aşağıdaki gibi bir renklendirme yapacaktır.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-zlXYGmJ3h2s/Tnii2yYiUFI/AAAAAAAABEc/BQBclOYCLAM/s1600/05.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://2.bp.blogspot.com/-zlXYGmJ3h2s/Tnii2yYiUFI/AAAAAAAABEc/BQBclOYCLAM/s320/05.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Kendi şemalarınızı da oluşturmanız mümkün. En güzel özelliklerinden biri de tek bir kısayol tuşlamasıyla metininize büyük küçük harf dönüşümü yapabiliyorsunuz. XML formatına uygun olmasını sağlamak için açılan tag’ı otomatik kapama özelliği de mevcut. Bulunduğunuz satırı renklendirme, satır yuvarlama ve numaralama gibi yetenekleri var.&lt;br /&gt;Notepad kadar sade ama bir editör kadar güçlü bir alternatif istiyorsanız notepad2 &amp;nbsp; tam size göre.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-8427847698641110983?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/8427847698641110983/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=8427847698641110983&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8427847698641110983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8427847698641110983'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2010/04/notepad-bu-makalem-nisan-2010-tarihinde.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-6zOGTHD_q5I/TniiYse0zwI/AAAAAAAABEM/7tAQdja9ICY/s72-c/01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-533404453532805755</id><published>2010-02-05T16:58:00.000+02:00</published><updated>2011-09-25T00:18:23.052+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Yakın Gelecekte İnternet ve Teknoloji&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(Bu makalem Şubat 2010 Tarihinde Mobillife dergisinde yayınlanmıştır.)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Bilgilerinize her zaman her yerden ulaşma kavramı artık kulağa çok alışıldık hatta biraz eskimiş gibi geliyor. Ama gerçek anlamda hayata geçti mi?&lt;br /&gt;Bu sorunun yanıtı gönül rahatlığıyla bir evet değil. Gerçekten epey bir yol alındı. Pek çok alt yapı ve teknoloji hazır hale geldi. Ama yaşantımızın bir parçası haline geldi mi?&lt;br /&gt;“Tatile, seyahate çıktığımızda e-postalarımızı kontrol edebilecek miyiz?” &amp;nbsp;endişesi halen varsa bu sorunun cevabını da kısmen veriyoruz demektir.&lt;br /&gt;Peki, bizi neler bekliyor gelecekte?&lt;br /&gt;Şunu rahatlıkla söyleyebilirim ki bilgiye her zaman her yerden ulaşma kavramı çok yakın bir zamanda gerçekten yaşantımızın içinde olacak.&lt;br /&gt;Nasıl mı?&lt;br /&gt;Büyük teknoloji firmaları bu hedef çerçevesinde çalışmalarını hızla sürdürüyorlar. &amp;nbsp;Özellikle “cloud computing” &amp;nbsp;kavramı kabul görmüş durumda. &amp;nbsp;Bu kavramı şöyle açıklayabilirim; Verilerimiz ve uygulamalarımız internet üzerinde sanal bir bulut üzerinde (yani her hangi bir yerde) olacak ve bu verilere her an her yerden, istediğimiz cihazla erişebilir olacağız. &lt;br /&gt;Sadece verilerimiz değil aynı zamanda uygulamalarımızı da internet üzerinden çalıştırıyor olabileceğiz. Örneğin Word, Excel gibi programlarımızı her hangi bir bilgisayarımızda değil, internet üzerinde kullanıyor olacağız.&lt;br /&gt;Konuyu teknik anlamda biraz daha açacak olursam şöyle anlatabilirim. Klasik anlamda bir internet mimarisinde veriler belirli fiziksel konumda, bir sunucu üzerinde tutulur. Biz verilerimize ulaşmak istediğimizde bu sunucunun adresini belirterek erişim sağlarız. Ancak bu tür mimarinin erişilebilirlik ve kaynak kullanımı açısında bir takım sakıncaları ve maliyetleri vardır.&lt;br /&gt;Özellikle resim, yüksek çözünürlüklü video gibi verilerden bahsettiğimizde hem erişim hem de saklama maliyetleri oldukça yükselmekte. Oysa cloud computing yapısında mimari biraz daha farklı. Bu yapıda &amp;nbsp;bir paylaşım &amp;nbsp;söz konusu. Veriler o anda internet üzerinde herhangi bir yerde veya yerlerde bulunabilir. &amp;nbsp;Fiziksel olarak bir bütünlük olmasa da mantıksal olarak bir sunucudaymış gibi bir bütünlük sergiler.&lt;br /&gt;Yani sanal bir bulut oluştururlar. &amp;nbsp;Veriler paralel, &amp;nbsp;dağıtılmış , paylaştırılmış bilgisayarlara fiziksel olarak dağıtılırken, sanal olarak bir bütünlük sunmaktadır. Kullanıcıyı ilgilendiren de zaten budur. Verilerinin hangi sunucuda fiziksel olarak nerede saklandığı kısmını pek merak etmez kullanıcı. Onun için önemli olan her an her zaman hızlı ve güvenli olarak verilerine erişmektir. Bu yapı hem daha ölçeklenebilir hem daha tasarrufludur. Böylece şu ana kadar teknik zorluklar nedeniyle yapılamayan bir çok şey bu yapı sayesinde hayata geçirilebilir.&lt;br /&gt;Donanım üreticileri de kendilerini bu yapı etrafında konumlandırıyorlar. Artık cihazlarını daha fazla internete yönelik üretiyorlar. Çünkü artık yukarıdaki mimari ve iletişim altyapılarının gelişmesiyle birlikte tüketiciler internete daha yakın olmak istiyor. Yakın gelecekte örneğin bir fotoğraf makinesi bile alacak olsak bu fotoğraf makinesinin bir bilgisayar yardımı olmadan doğrudan internete bilgi aktarıp aktarmadığı özelliğine bakacağız. Bir müddet sonra kendi başına internete bilgi aktaramayan ve hatta oradan bilgi &amp;nbsp;alamayan ürün &amp;nbsp;pek kalmayacak. Diğer bir ifadeyle bütün cihazlarımız ve verileri internet üzerinde olacak.&lt;br /&gt;Böylece hangi cihazla çalıştığımız, nereden bağlandığımızın bir önemi kalmayacak. Dilediğimiz bir uygulamayı dilediğimiz bir yer ve cihazdan çalıştırarak verilerimize ulaşıyor olabileceğiz.&lt;br /&gt;Bu bize ne getirecek? Kendimden örnek verecek olursam, 5 günlük bisiklet seyahatine çıktığımda çektiğim fotoğrafları hemen o an paylaşabilme gibi bir endişem olmayacak. Şu an bunu yapabilir miyim?&lt;br /&gt;Hem evet, hem hayır.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Bisiklet Teknolojileri&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Söz bisikletten açılmışken iki sayı önceki yazımda bisikletimin fotoğrafı oldukça ilgi çekmiş. Bu konuyla ilgili e-postalar alıyorum. Özellikle kilometre ölçer ve nabız saatiyle ilgili sorular geliyor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-31Pfk99LjpE/TnidR9Ie-1I/AAAAAAAABEE/wba-3gjQqok/s1600/02+%2528Copy%2529.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/-31Pfk99LjpE/TnidR9Ie-1I/AAAAAAAABEE/wba-3gjQqok/s640/02+%2528Copy%2529.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;O yazımda da belirttiğim üzere bisiklete binmeyi seviyorum ve epey uzun bir süre iki teker üzerinde vakit geçiriyorum. Tabii teknoloji meraklısıyım da aynı zamanda. Durum böyle olunca bisiklet teknolojileri üzerine epey araştırma yapıyorum. &amp;nbsp;Burada sizinle bu teknolojileri paylaşmak isterim.&lt;br /&gt;Bu resimde görünen nabız saati sigma model ve hem saat hem nabız ölçer olarak kullanılabilir özellikte. Ben oldukça memnunum. Saat olarak da oldukça şık bir görünümü var. Sadece bisiklet için değil diğer bütün kardio sporları &amp;nbsp;için uygun. &amp;nbsp;Saatin maksimumum, minimum nabız ölçme gibi özelliklerinin yanı sıra yaktığınız kaloriyi hesaplayabilme özelliği mevcut. &amp;nbsp;Tek eksiği bilgisayara bağlantısı yok. Ama daha üst modellerde bu özellikte var sanırım. Yukarıdaki yazımın konseptine uygun olarak şunu söyleyebilirim ki yakında bu tip cihazlar da doğrudan internete verilerimizi aktarabilecek. Ve ben eve geldiğimde o gün ne kadar kilometre yapmışım, kaç kalori harcamışım gibi bilgilere televizyonumdan, bilgisayarımdan veya dijital fotoğraf çerçevemden erişebileceğim.&lt;br /&gt;Bu arada casio’unun kulaktan nabız ölçebilen bir ürününden de bahsetmek istiyorum.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-NTxaN339MUQ/TnidcAiFmfI/AAAAAAAABEI/tIq7yaZakrA/s1600/01+%2528Copy%2529.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-NTxaN339MUQ/TnidcAiFmfI/AAAAAAAABEI/tIq7yaZakrA/s640/01+%2528Copy%2529.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Aynen bir müzik çalar kulaklığı gibi takılan bu cihaz spor yaparken kalp ritmini ölçüyor ve ekranında gösteriyor. Oldukça farklı bir tasarıma sahip olan bu nabız ölçerle &amp;nbsp;spor yaparken aynı zamanda radyo da dinleyebiliyorsunuz. Ortalama ve maksimum nabız ölçümleri yapabiliyor.&lt;br /&gt;Bunu biraz daha geleceğe uyarlarsak yakın gelecekte müzik dinlerken kalp atım ölçümümüz ve diğer sağlık taramalarımız yapılabilecek bu bilgiler anında bir medikal merkezde takip edilecek, herhangi kritik bir veri bildiriminde anında müdahale edilebilecek. Tabii ki bütün bunlar yukarıda bahsettiğim teknolojik alt yapılar sayesinde olacak. Bugün bunu yapmak kısmen mümkün ancak öncelikle &amp;nbsp;maliyeti çok yüksek olur ayrıca bazı teknolojilerde gerçekten sorunlar yaşayabiliriz şu an için.&lt;br /&gt;Ama gelecekte bu sistemler hem çok yaygın hem de çok daha ekonomik olacak.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-533404453532805755?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/533404453532805755/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=533404453532805755&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/533404453532805755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/533404453532805755'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2010/02/yakn-gelecekte-internet-ve-teknoloji.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-31Pfk99LjpE/TnidR9Ie-1I/AAAAAAAABEE/wba-3gjQqok/s72-c/02+%2528Copy%2529.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-7765662209883992481</id><published>2010-01-07T15:54:00.000+02:00</published><updated>2011-09-20T16:54:49.899+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mobillife Dergisi Yazılarım'/><title type='text'></title><content type='html'>&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Geotagging&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Geçen yazımda bir GPS logger cihazını tanıtmış ve bununla Geotagging in nasıl yapılacağını anlatmıştım. &amp;nbsp;O yazımda Geotagging kavramına daha detaylı olarak değineceğimi belirtmiştim.&lt;br /&gt;Son yıllarda Geotagging ve Geoblogging kavramları hızla popüler olmaya başladı. Hatırlayacak olursak Geotagging resim, video, web sitesi gibi değişik medyalara coğrafik imleç koymaktı. Böylece mesela o resme ait coğrafik konumu elde edip harita üzerinde konumlandırabilirsiniz. Geoblogging ise Geotagging kayıtlarını barındıran blogging dir.&lt;br /&gt;Geotagging’in hızlı yaygınlaşmasında temel etken GPS araçlarının ucuzlaması ve kolay ulaşılabilir &amp;nbsp;olmasıdır. &amp;nbsp;Özellikle son yıllar da harita uygulamalarının yaygınlaşmasıyla birlikte cihaz üreticileri cihazlarının özelliklerine GPS i de kattılar. &amp;nbsp;Uydulardan yer konumunuzu tespit edebilen GPS sistemi son zamanlarda cep telefonu ve dijital fotoğraf makinesi gibi cihazlarla birlikte gelmeye başladı.&lt;br /&gt;Henüz daha çok üst modellerde bulunan bu özellikle Geotagging çok kolay hale gelmiştir. Çok yakın zamanda daha da alt ve uygun fiyatlı modellerde de bu özelliğin olacağını düşünüyorum.&lt;br /&gt;Mesela GPS özellikli bir fotoğraf makinesinde çektiğiniz fotoğrafa lokasyon bilgisini fotoğrafın çekildiği an ekleyebiliyorsunuz. Daha sonra bunu lokasyon bilgisiyle birlikte örneğin google maps e aktarabiliyorsunuz. Google maps lokasyon bilgisini kullanarak fotoğrafı çektiğiniz coğrafik noktada harita üzerinde gösterebiliyor. Aynı şey tabii ki videolar için de geçerli.&lt;br /&gt;Örneğin seyahatlerinizde çektiğiniz fotoğraf veya videoları bu şekilde taglayarak (etiketleyerek) harita üzerinde konumlandırmak oldukça etkileyici bir blogging olacaktır. &amp;nbsp;Eğer GPS özellikli bir cihazınız yoksa ama yine de böyle bir etiketleme yapmak istiyorsanız bunun da çözümleri var.&lt;br /&gt;Fotoğraflarınıza Lokasyon Bilgisi Eklemek&lt;br /&gt;Fotoğraf etiket bilgilerini bir program yardımıyla daha sonra ekleyebilirsiniz. Bunun için yazılımlar mevcut. Örneğin “Microsoft pro photo tools” &amp;nbsp;böyle bir yazılım. http://www.microsoft.com/prophoto/downloads/tools.aspx adresinden indirebileceğiniz bu araçla fotoğraflarınıza coğrafi konum bilgilerini ekleyebileceğiniz gibi, tarih, fotoğrafın kime ait olduğu gibi meta tag bilgilerini rahatlıkla ekleyebiliyorsunuz. &amp;nbsp;Üstelik bu yazılım ücretsiz:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-_7g8toM1Alc/TniZxox7JSI/AAAAAAAABDw/lU7hyDLa9kQ/s1600/01+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="193" src="http://1.bp.blogspot.com/-_7g8toM1Alc/TniZxox7JSI/AAAAAAAABDw/lU7hyDLa9kQ/s400/01+%2528Copy%2529.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Yukarda map browse segmesine tıklarsanız karşınıza microsoft’un harita hizmeti bing maps çıkar: http://www.bing.com/maps/ .&lt;br /&gt;Yapmanız gereken fotoğrafınızı harita üzerinde konumlandırmak istediğiniz yere sürükle bırakla eklemek:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-v-YtYYwjFqM/TniaIq1ookI/AAAAAAAABD0/kyog1Th7pTA/s1600/02+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" src="http://3.bp.blogspot.com/-v-YtYYwjFqM/TniaIq1ookI/AAAAAAAABD0/kyog1Th7pTA/s640/02+%2528Copy%2529.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Neticede fotoğrafınız haritada gösterildiği gibi enlem ve boylam bilgileri fotoğrafın özelliklerine ekleniyor. Bu enlem ve boylam özellikleri diğer harita uygulamalarında da kolayca kullanılabilir:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-OHgM5WtDL9g/TniaR86-KcI/AAAAAAAABD4/dTnoWB-XSRg/s1600/03+%2528Copy%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-OHgM5WtDL9g/TniaR86-KcI/AAAAAAAABD4/dTnoWB-XSRg/s320/03+%2528Copy%2529.jpg" width="316" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Yukarıda Windows da sağ tuşla fotoğrafın özelliklerine bakıldığında enlem boylam bilgilerinin eklenmiş olduğunu görürüz.&lt;br /&gt;Ama tabii ki en pratik yol fotoğrafın çekildiği anda bu bilgilerin kaydedilmesi. Böylece her bir fotoğraf için lokasyon bilgisini eklemekle uğraşmazsınız. Bunun için de yukarıdaki gibi GPS özellikli bir cihaza ihtiyacınız var.&lt;br /&gt;Daha önceki yazımda GPS i bir sportif aktivitede yani bisiklet &amp;nbsp;rotamızı kaydetmek ve bunu haritada göstermek için kullanmıştım. Bunun terside geçerli, gitmek istediğimiz rotayı GPS le izleyip kolayca bulabiliriz. &amp;nbsp;Diğer bir ifadeyle şu aralar çok yaygın olarak kullanılan navigasyondan bahsediyorum.&lt;br /&gt;Önümüzdeki yıllarda GPS ve navigasyon uygulamaları ve Geotagging &amp;nbsp;gibi yeni sunumlar bizi bekliyor.&lt;br /&gt;Yukarıda da belirttiğim gibi yeni nesil üst düzey ürünler artık GPS li geliyorlar. Mesela sony Ericsson’nun yeni nesil cep telefonlarından biri olan C903 bu özelliklerde.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-KT8k48Bib1U/Tnia9U038gI/AAAAAAAABD8/KWqkc7EjyI0/s1600/04+%2528Copy%2529.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-KT8k48Bib1U/Tnia9U038gI/AAAAAAAABD8/KWqkc7EjyI0/s320/04+%2528Copy%2529.JPG" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Pek çok üstün özelliği olan bu telefonun benim için en anlamlı özelliklerinden biri üzerinde Bir GPS bulunması ve bu GPS’e bağlı yukarıda bahsettiğim bütün o uygulamaları içermesi.&lt;br /&gt;Böylece hem bir cep telefonunu hem de bir GPS’i tek bir cihazda taşımış oluyorum. &amp;nbsp;Diğer markalarında buna benzer telefonları mevcut. Test edebildikçe bunları sizinle paylaşacağım.&lt;br /&gt;Bu Telefonda GPS destekli Google maps, yön bulucu, tracker gibi uygulamalarda sunulmuş. Örneğin Tracker uygulaması benim gibi bisiklet sporu yapan ve geçen yazımdaki gibi bu rotaları kayıt altında tutan biri için oldukça önemli. Böylece ek bir cihaz taşımadan sadece cep telefonumu yanıma alarak bu kayıtları tutabiliyorum. Bu uygulama aynı zamanda ne kadar süredir bisiklet üzerinde olduğumu, ne kadar hızla ne kadar kilometre gittiğimi anında gösterebiliyor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-VyBAn7E70zY/TnibEuEbiKI/AAAAAAAABEA/sTdkCjDArbE/s1600/05+%2528Copy%2529.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-VyBAn7E70zY/TnibEuEbiKI/AAAAAAAABEA/sTdkCjDArbE/s320/05+%2528Copy%2529.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Daha sonra bu kayıtları bilgisayar ortamına aktarıp kolayca maps uygulamalarına ekleyebiliyorum.&lt;br /&gt;Maps uygulamaları deyince şundan da bahsetmek lazım. &amp;nbsp;Kayıt altına alınmış Geotagging bilgileri sadece google maps veya bing maps değil daha başka pek çok web servisi tarafından da işlenerek kullanılabiliyor.&lt;br /&gt;Bu servislere yüklediğiniz GPS verisi haritada sizin güzergâhınızı gösterirken yaptığınız hızı, yaktığınız kaloriyi vb. bilgileri hesaplayıp gösterebiliyor. Bu kayıtları istediğiniz kişilerle web üzerinden kolayca paylaşabiliyorsunuz. Böylece yaptığınız tatil seyahatlerini, katetdiğiniz bisiklet yollarının coğrafik bilgilerini arkadaşlarınızla kolayca paylaşabiliyorsunuz. Tahmin edebileceğiniz gibi bu harita web servislerinin çoğunda google’ın harita hizmeti kullanılıyor. Ancak onlar yukarıda bahsettiğim özelleştirilmiş ekstra bilgiler sunarak bu hizmeti zenginleştiriyorlar.&lt;br /&gt;Başka bir yazımda da bu servisleri incelemeyi düşünüyorum.&lt;br /&gt;Özetlemek gerekirse konum bilgileri teknolojileri önümüzdeki dönemde daha da yaygınlaşacak. &amp;nbsp;Arabamızda, bilgisayarımızda, telefonumuzda, saatimizde ve hatta fotoğraf - video makinemizde olacaklar. &amp;nbsp;Trafik yoğunluğunu, gezi yaptığımız yerleri, bisiklete bindiğimiz güzergahları, fotoğraf &amp;nbsp;ve video çektiğimiz bölgeleri kolayca tespit edebileceğiz ve onları paylaşabileceğiz.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-7765662209883992481?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/7765662209883992481/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=7765662209883992481&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7765662209883992481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7765662209883992481'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2010/01/geotagging-gecen-yazmda-bir-gps-logger.html' title=''/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-_7g8toM1Alc/TniZxox7JSI/AAAAAAAABDw/lU7hyDLa9kQ/s72-c/01+%2528Copy%2529.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-6833940245321645102</id><published>2008-11-11T14:23:00.000+02:00</published><updated>2008-11-11T14:24:53.382+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>ASP.NET 2.0 ile Çok Katmanlı Bir Uygulama</title><content type='html'>&lt;p&gt;&lt;br /&gt;Bir önceki yazımda size çok katmanlı modelleri genel olarak tanıtmıştım, bu makalemde çok katmanlı bir uygulama geliştireceğiz.&lt;br /&gt;Uygulamamız hepimizin bildiği northwind verilerini kullanacak ve SQL server 2005 Express veritabanını ile iletişim sağlayacak.&lt;br /&gt;Bu yapıda temel üç tane dosya oluşturacağım. Bu dosyalardan ikisi birer class (sınıf) dosyası bir tanesi de kullanıcı arabirimini oluşturan bir .aspx web sayfası olacak.&lt;br /&gt;&lt;br /&gt;Yapı aşağıdaki gibi olacak:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;img mce_src="http://farm4.static.flickr.com/3063/3021293285_a7a60da8df_o.jpg" src="http://farm4.static.flickr.com/3063/3021293285_a7a60da8df_o.jpg" width="246" height="143" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; Burada BOL ifadesi “Business Object Layer” yani iş yapan kodların oluşturduğu katmanı temsil etmektedir.&lt;br /&gt;&lt;br /&gt;BOL_sinifi.vb dosyasında, veritabanından sorgulamayı yapacak kodlar bulunmaktadır.&lt;br /&gt;Ancak bu sorgulamayı doğrudan değil Veritabani_Sorgu.vb dosyasındaki kodlar vasıtası ile yapacak.&lt;br /&gt;Başka bir ifade ile uygulamanın kodları veritabanı sorgusu yapan kodlarla ayrılmış oluyor.&lt;br /&gt;Veritabanı ile doğrudan iletişime geçen kodlar Veritabani_Sorgu.vb içindeki kodlar olacak.&lt;br /&gt;&lt;br /&gt;Buraya kadar karışık gibi ama kodlarımızı görünce biraz daha netleşecek.&lt;br /&gt;Öncelikli olarak uygulamamızın ne yapacağını bir görelim.&lt;br /&gt;Uygulama “northwind” veritabanından “Custormers” tablosundan veriler getirecek, güncelleyecek, ekleyecek ve silecek.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3292/3021293317_374d59e7b4_o.jpg" src="http://farm4.static.flickr.com/3292/3021293317_374d59e7b4_o.jpg" width="361" height="193" /&gt;&lt;br /&gt;Öncelikli olarak veritabanı ile ilişkilerimizi düzenleyecek Veritabani_Sorgu.vb dosyamızı oluşturalım.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3172/3021293471_61863efea2_o.jpg" src="http://farm4.static.flickr.com/3172/3021293471_61863efea2_o.jpg" width="544" height="800" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Veritabani_Sorgu class’ının kodlarına baktığımızda veritabanı ile bağlantıya geçip jenerik sorgulamalar yapan bir yapıya sahip.&lt;br /&gt;&lt;br /&gt;Öncelikli olarak,&lt;br /&gt;&lt;br /&gt;  veritabani_baglanti = ConfigurationManager.ConnectionStrings("connectionstring").ConnectionString&lt;br /&gt;&lt;br /&gt;Satırı  ile web.config dosyamızdan bağlantı ifademizi alıyor.&lt;br /&gt;&lt;br /&gt;Bu string şöyle:&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3045/3022125980_94f9253376_o.jpg" src="http://farm4.static.flickr.com/3045/3022125980_94f9253376_o.jpg" width="587" height="99" /&gt;&lt;br /&gt;&lt;br /&gt;(Değerleri kendinize göre uyarlamayı unutmayın.)&lt;br /&gt;Devamında ExecuteNonQuery, ExecuteDataSet, ExecuteScalar, gibi fonksiyonlar tanımlanmış. Bu fonksiyonlar jenerik olup gelen her parametre değerine göre veritabanı ile işlem yapıp değer döndürürler. &lt;br /&gt;Örneğin ExecuteNonQuery fonksiyonu gönderilen parametrelere göre veritabanına bir şeyler ekler, siler veya günceller.&lt;br /&gt;&lt;br /&gt;ExecuteDataSet  Gönderilen parametre değerlerine göre alıcıya bir dataset döndürür. Burada bu ifadeler tamamıyla genel ve herhangi bir başka katmanın  bir parçası  değil ama diğer katmanlara servis yapan bir yapıdır.&lt;br /&gt;Başka katmandan gelen parametreleri alıp veritabanından gerekli işlemleri yapıp değer döndürmektedirler. İşin özü burada. Uygulamalarımızda böyle genel katman(lar) oluşturmalıyız.  En azından veritabanı ile ilişkiler için. Böylece her kod(iş) katmanından buraya  kolayca sorgulama oluşturabilir, bu yapıyı zenginleştirebiliriz.&lt;br /&gt;&lt;br /&gt;Bu katmanı kullanacak iş yapan (business) katman daha özel verilerle ilgilenmekte ve veritabanı işlemlerini buraya yaptırmaktadır.&lt;br /&gt;Şimdi “iş yapan” (business) kod katmanımıza gelirsek:&lt;br /&gt;Onun kodları da şöyle:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3174/3022126082_d67d7d97d1_o.jpg" src="http://farm4.static.flickr.com/3174/3022126082_d67d7d97d1_o.jpg" width="622" height="800" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3252/3021293815_be95c72a49_o.jpg" src="http://farm4.static.flickr.com/3252/3021293815_be95c72a49_o.jpg" width="595" height="800" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu kodlara dikkatli bakacak olursanız fonksiyonlar, SQL ifadeleri, özellikler ve diğerlerini görürsünüz.&lt;br /&gt;Bu katman sunum katmanındaki taleplerin alınıp işlendiği katmandır.&lt;br /&gt;Diğer bir ifade ile aspx sayfasına kodlar doğrudan yazılmayıp bu katman sayesinde işler yapılmaktadır. Bu katman da gelen talepleri biraz önce incelediğimiz jenerik katman sayesinde yerine getirmektedir.&lt;br /&gt;Kodları http://www.zaferdemirkol.com/cok_katmanli.zip adresinden indirebilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-6833940245321645102?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/6833940245321645102/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=6833940245321645102&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6833940245321645102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6833940245321645102'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/11/aspnet-20-ile-ok-katmanl-bir-uygulama.html' title='ASP.NET 2.0 ile Çok Katmanlı Bir Uygulama'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-7011297068706283286</id><published>2008-10-11T13:46:00.000+03:00</published><updated>2008-11-11T13:58:55.991+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET Response.Buffer</title><content type='html'>&lt;p&gt;&lt;br /&gt;Buffer-buffering Türkçede tampon-tamponlama anlamına gelir. Konumuzla ilgili olarak tamponlama, browser'a gönderilen çıktıları kontrol anlamında kullanılır.&lt;br /&gt;&lt;br /&gt;Browser'a çıktılar iki şekilde, gönderilir. Birincisinde, sayfanın bütün script ve kodları çalıştırılana kadar çıktılar tampon (BUFFER) bir hafızada saklanır ve hepsi tamamlandıktan sonra, browsera gönderilir.&lt;br /&gt;&lt;br /&gt;ASP.NET in tanımlı çalışma biçimi budur. diğer bir ifadeyle sayfada hiçbir şey belirtilmemişse&lt;br /&gt;&lt;br /&gt;Response.Buffer=true&lt;br /&gt;&lt;br /&gt;yani, tamponlama yapılmış kabul edilir.&lt;br /&gt;&lt;br /&gt;Diğer bir çıktı biçimi ise, Tamponlama yapılmadan, yani sayfanın doğrudan browser a gönderilmesidir.&lt;br /&gt;Bu durumda&lt;br /&gt;&lt;br /&gt;Response.Buffer=false&lt;br /&gt;&lt;br /&gt;ifadesini bildirmek zorundayız.&lt;br /&gt;&lt;br /&gt;Her iki durumun şematik olarak gösterimi aşağıdadır.&lt;br /&gt;&lt;br /&gt;  &lt;img mce_src="http://farm4.static.flickr.com/3009/3022103576_147e0c3578_o.gif" src="http://farm4.static.flickr.com/3009/3022103576_147e0c3578_o.gif" width="636" height="410" /&gt;&lt;br /&gt;&lt;br /&gt;Response nesnesinin tampon hafızayı yöneten 3 adet metodu daha vardır.&lt;br /&gt;Bunlar, flush, clear ve end metotlarıdır.&lt;br /&gt;"Flush" metodu, tampon hafızada o zamana kadar birikmiş her şeyi, hemen browser'a gönderir.&lt;br /&gt;&lt;br /&gt;"Clear" metodu, tampon hafızada birikmiş olan her şeyi siler ve tampon hafıza boş kalır.&lt;br /&gt;Dolayısı ile bu bildirimden önceki hiç bir şey (eğer daha önceden  flush metodu  ile  gönderilmemişse) istemciye gönderilmez ( browserda gözükmez).&lt;br /&gt;&lt;br /&gt;Son olarak "end" metodu ile, Response nesnesinin, buffer'a veri  gönderim süreci sonlandırılır. O zamana kadar tampon hafızada  birikmiş olanlar, istemciye gönderilir.&lt;br /&gt;Konuyu daha iyi anlamak için, bir örnek üzerinde gidelim ve aşağıdaki sayfayı oluşturalım;&lt;br /&gt;&lt;br /&gt; fulsh_clear_end.aspx&lt;br /&gt;&lt;br /&gt;1    &amp;lt;%@ Page Language="VB" Debug="true" codePage="28599" %&amp;gt;&lt;br /&gt;2    &amp;lt;script runat="server"&amp;gt;&lt;br /&gt;3    Sub Page_Load(Sender As Object,E As EventArgs)&lt;br /&gt;&lt;br /&gt;4    Response.Write("Şu an gördüğünüz yazı, flush metodu ile browser'a hemen gönderilecek.&amp;lt;br&amp;gt;")&lt;br /&gt;&lt;br /&gt;5    Response.Flush&lt;br /&gt;&lt;br /&gt;6    Response.Write("Bu yazı hiçbir zaman browserda gözükmeyecek, çünkü devam eden response.clear satırı ile tampon hafızadan silinecek.&amp;lt;br&amp;gt;")&lt;br /&gt;&lt;br /&gt;7    Response.Clear&lt;br /&gt;&lt;br /&gt;8    Response.Write("Bu yazı tampon hafıza temizlendikten sonra, tampon hafızada tutulmuş oradan da browser'a gönderilmiştir.&amp;lt;br&amp;gt;")&lt;br /&gt;&lt;br /&gt;9    response.end&lt;br /&gt;&lt;br /&gt;10    Response.Write("Bu yazıda hiçbir zaman gözükmeyecek, çünkü response nesnesi, response.end ile browser'a  her türlü gönderimi durdurmuştur. &amp;lt;br&amp;gt;")&lt;br /&gt;11    End Sub&lt;br /&gt;&lt;br /&gt;12    &amp;lt;/script&amp;gt;&lt;br /&gt;13    &amp;lt;html&amp;gt;&lt;br /&gt;&lt;br /&gt;14    &amp;lt;head&amp;gt;&lt;br /&gt;15    &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"&amp;gt;&lt;br /&gt;16    &amp;lt;/head&amp;gt;&lt;br /&gt;17    &amp;lt;body&amp;gt;&lt;br /&gt;18    &amp;lt;/body&amp;gt;&lt;br /&gt;19    &amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ve sayfamızı browserda çalıştırırsak aşağıdaki ekran çıktısını alırız;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3048/3021271439_2ef9c1cf60_o.gif" src="http://farm4.static.flickr.com/3048/3021271439_2ef9c1cf60_o.gif" width="673" height="214" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;flush_clear_end.aspx sayfamızın kaynak kodlarındaki "response.write" ile sayfaya yazdırılmak istenen 6 ve 10. satırlar, sayfada gözükmemektedir.&lt;br /&gt;&lt;br /&gt;4. satırda sayfaya yazdırmak istediğimiz mesaj, 5. satırdaki "response.flush" dan dolayı, tampon hafızada tutulmamış ve o zamana kadar tampon hafızada bulunan her şey, bu mesajla birlikte, istemciye hemen gönderilmiştir.&lt;br /&gt;&lt;br /&gt;6. satırdan itibaren tampon hafıza yine birikmeye başlamış ancak  bu seferde 7. satırda, "response.clear" ile bütün hafıza silinmiş, diğer bir ifadeyle hafıza temizlenmiştir.&lt;br /&gt;&lt;br /&gt;Dolayısı ile 6. satırdaki mesaj browser’a gönderilmeden silinmiştir ve hiçbir zaman sayfada görüntülenmeyecektir.&lt;br /&gt;8. satırdaki mesajla birlikte yine tamponlama yapmaya başlanır.&lt;br /&gt;Ancak 9. satırda, gönderimin sona erdiği, "response.end" ile bildirilir ve o zamana kadar tampon hafızada  birikmiş olanlar, istemciye gönderilir.&lt;br /&gt;Bu ise 8. satırımızın kendisi.&lt;br /&gt;10. satırdaki mesaj, "response.end" ile gönderim süreci sonlandırıldığından  hiç bir zaman sayfada gözükmeyecektir.&lt;br /&gt;Bunların sonucunu da yukarıdaki sayfamızın görüntüsünden alıyoruz.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-7011297068706283286?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/7011297068706283286/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=7011297068706283286&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7011297068706283286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7011297068706283286'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/10/aspnet-responsebuffer.html' title='ASP.NET Response.Buffer'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-3879321496954596594</id><published>2008-09-11T14:24:00.000+03:00</published><updated>2008-11-11T14:31:53.060+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>ASP.NET 2.0’da Çok Katmanlı Uygulama Yapıları - 3</title><content type='html'>&lt;p&gt;&lt;br /&gt;Geçen yazımda ASP.NET 2.0’da çok katmanlı bir uygulama geliştirmeye başlamıştık.&lt;br /&gt;Hatırlayacağınız gibi bu uygulamada iki temel kod yapısı ve bir de sunumu yapan bir aspx sayfası oluşturmuştuk.&lt;br /&gt;Kod yapılarından ilki veritabanını sorgulayan genel veya jenerik yapıdaki Veritabani_Sorgu.vb idi.&lt;br /&gt;Buradaki kodlar veritabanındaki temel sorgulamaları yapıp sonuçları döndürüyordu. Yapısı tamamen jenerikti ve özel bir fonksiyon içermiyordu.&lt;br /&gt;Diğer kod yapımız, uygulamanın sunum yapan aspx sayfası ile arka planda işlem yapan veritabanı gibi yapılarla bağlantıyı kuran ve aracı görevini üstlenen, esas işi yapan iş katmanıydı.&lt;br /&gt;Onun ismi de BOL_sinifi.vb di.&lt;br /&gt;Bu katman özel ifadeler içererek sunum katmanının motorunu oluşturur.&lt;br /&gt;Geçen yazımda bu iki dosyanın içyapısını detaylı incelemiştik.&lt;br /&gt;Bu makalemin ana konusu sunumu nasıl oluşturacağımızdır.&lt;br /&gt;İşi yapan kodlar elimizde mevcut şimdi sıra bunları sunum katmanı ile birlikte çalıştırmaya geldi.&lt;br /&gt;Aslında bu işin en kolay kısmıdır.&lt;br /&gt;Çünkü ASP.NET 2.0’da bu entegrasyonu sağlayan hazır yapılar vardır.&lt;br /&gt;&lt;br /&gt;Öncelikle Sayfamızın kodlarını görelim daha sonra üzerinde konuşacağız&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3190/3021313733_10fb3db005_o.jpg" src="http://farm4.static.flickr.com/3190/3021313733_10fb3db005_o.jpg" width="800" height="418" /&gt;&lt;br /&gt;&lt;br /&gt;Burada dikkatinizi çekecek ve size farklı gelecek en önemli bildirim &amp;lt;asp:ObjectDataSource dir.&lt;br /&gt;Veri kontrolleri ile çalışmışsınızdır.&lt;br /&gt;Onlar Access veritabanı, SQL server, XML gibi tanımlı birimlerle sayfa arasında köprü kurarlar.&lt;br /&gt;asp:ObjectDataSource Bildirimi de bu tip bir kontroldür.&lt;br /&gt;Bu kontrol bir program nesnesine aracılık eder.&lt;br /&gt;Bizim örneğimizde bu BOL_sinifi.vb deki nesnedir.&lt;br /&gt;Buradaki ifadeleri aspx sayfamızda kullanmamıza aracılık eder.&lt;br /&gt;Böylece tek bir satır kod yazmadan, daha önce oluşturduğumuz iş katmanını aspx sayfamıza bağlayabiliriz.&lt;br /&gt;Tek bir bildirimle bütün olay tanımlanır.&lt;br /&gt;Bildirimi editörünüzde görsel olarak da yapabilirsiniz:&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3033/3021313209_d9ce791d79_o.jpg" src="http://farm4.static.flickr.com/3033/3021313209_d9ce791d79_o.jpg" width="560" height="222" /&gt;&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3167/3022145630_e65eb66c2f_o.jpg" src="http://farm4.static.flickr.com/3167/3022145630_e65eb66c2f_o.jpg" width="742" height="450" /&gt;&lt;br /&gt;&lt;br /&gt;Tekrar kodlarımıza dönecek olursak&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="BOL_sinifi"&lt;br /&gt;            DeleteMethod="Delete" InsertMethod="Insert" SelectMethod="SelectSingle" TypeName="BOL_sinifi"&lt;br /&gt;            UpdateMethod="Update"&amp;gt;&lt;br /&gt;&lt;br /&gt;İfadesinde bildirimlerin nasıl yapıldığına dikkat edin.&lt;br /&gt;Öncelikli olarak hangi nesne ile çalışacağımızı&lt;br /&gt;DataObjectTypeName="BOL_sinifi"&lt;br /&gt;İle belirliyoruz.&lt;br /&gt;Daha sonra hangi metotları kullandığımızı bildiriyoruz.&lt;br /&gt;Buradaki metot bildirimleri BOL sınıfında oluşturduğumuz fonksiyon (veya metot) isimleri olmalı.&lt;br /&gt;Nesnemizdeki hangi işlemi yapacağımızı bu metot bildirimleri sayesinde sayfamıza aktarıyoruz.&lt;br /&gt;Daha sonra parametre tanımları geliyor ki bu diğer kontrollerde yaptığımız parametre tanımlarından farklı değildir.&lt;br /&gt;Bu kod özelinde “DetailsView” kontrolünün iş katmanının parametre değerlerini, “DropDown” kontrolümüzden seçtiğimiz birimler belirliyor.&lt;br /&gt;DropDown kontrolümüze de bilgiler aynen yukarıdaki yapıyla yine bir başka veri kontrolünden geliyor.&lt;br /&gt;Sonuçta Listeden seçtiğimiz elemanlara göre DetailsView verilerini dilediğimiz gibi yönetebiliyoruz.&lt;br /&gt;Çift taraflı bir akış söz konusu.&lt;br /&gt;Örneğimizin işleyişini ve görünümünü hatırlayacak olursak:&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3242/3022145704_98d6a11823_o.jpg" src="http://farm4.static.flickr.com/3242/3022145704_98d6a11823_o.jpg" width="308" height="207" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3071/3022145988_cdff893961_o.jpg" src="http://farm4.static.flickr.com/3071/3022145988_cdff893961_o.jpg" width="308" height="189" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu uygulama çok katmanlı yazılım mimarisinin küçük bir örneği; fakat oldukça açıklayıcı ve sade.&lt;br /&gt;Profesyonel uygulamalarda ve modern yazılım mimarisinde çok katmanlı modellere geçiş kaçınılmazdır.&lt;br /&gt;Çünkü artık yazılımlar oldukça karmaşıklaşmıştır ve bir takım halinde çalışmayı zorunlu kılmaktadır. Bunun yanında tabii ki bir de ölçekleme sorunu var. Her hangi bir yazılımın her hangi bir bölümünü diğer bölümlerini bozmadan geliştirebilmek önemlidir.&lt;br /&gt;Bu açıdan çok katmanlı modeller kaçınılmazdır.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-3879321496954596594?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/3879321496954596594/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=3879321496954596594&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3879321496954596594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3879321496954596594'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/09/aspnet-20da-ok-katmanl-uygulama-yaplar.html' title='ASP.NET 2.0’da Çok Katmanlı Uygulama Yapıları - 3'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-7060952878901438854</id><published>2008-08-11T13:59:00.000+03:00</published><updated>2008-11-11T14:17:30.140+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Çok Katmanlı Uygulama Yapıları</title><content type='html'>Öncelikle şu soruyu sorarak başlayalım; çok katmanlı uygulama yapısı ne demektir?&lt;br&gt;Bu ifade basitçe uygulamamızı katmanlara bölmek anlamına gelir.&lt;br&gt;Peki, katmanlara bölmek ne demek? &lt;br&gt;Katmanlara bölmek demek, uygulamamızı kendi içinde bir bütün oluşturan ve diğer katmanlarla ilişkiye geçen bağımsız bölümlerden oluşturmak demektir. &lt;br&gt;Bunun en güzel örneği “3-tier” denilen üç katmanlı modeldir.&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3295/3022129888_2b2318208a_o.jpg" src="http://farm4.static.flickr.com/3295/3022129888_2b2318208a_o.jpg" width="520" height="444"&gt;&lt;br&gt;&lt;br&gt;Bu modelde, uygulamanın veritabanı ile ilişkide olan kısmı ayrı bir katman, bu kısmı sorgulayıp verileri elde eden kısmı ayrı bir katman ve en sonunda sunumu yapan kısmı ayrı bir katmandır. Verilerin saklandığı veritabanını da işin içine katarsak aslında uygulamamız bütününde dört katmanlı oluyor.&lt;br&gt;Günümüzün modern yazılım mimarisinde çok katmanlı modeller oldukça yaygın kullanılmaktadır.&lt;br&gt;Geleneksel mimariye göre daha esnek bir yapı sağlayan bu model, daha modüler daha taşınabilirdir. &lt;br&gt;Bu mimari sayesinde ekip çalışması oluşturmak daha kolaydır.&lt;br&gt;Ancak dezavantajı kompakt yapıya göre daha dolaylı olmasıdır (zor değil, dolaylı) &lt;br&gt;Bütünleşik yapıda bütün kodlar elinizin altında bir yerdedir.&lt;br&gt;Çok katmanlı yapıyı oluşturmak, anlatmaktan daha kolaydır. &lt;br&gt;Daha sonraki yazılarımda bu konuya değineceğim.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-7060952878901438854?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/7060952878901438854/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=7060952878901438854&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7060952878901438854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7060952878901438854'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/08/ok-katmanl-uygulama-yaplar.html' title='Çok Katmanlı Uygulama Yapıları'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-5676204687665325976</id><published>2008-07-25T12:29:00.000+03:00</published><updated>2008-10-15T13:15:11.576+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET 2.0 İle E-Posta Göndermek</title><content type='html'>&lt;p&gt;&lt;br /&gt;Web sayfası üzerinden e-posta göndermek web yazılımının en popüler konularından biridir.&lt;br /&gt;Web yazılımına yeni başlayanların aklına gelen ilk sorulardan biri de web sitemden nasıl e-posta gönderebilirimdir.&lt;br /&gt;Gerçekten de bu konu oldukça önemlidir. Çünkü bir web uygulamasının e-posta sistemini kullanmadığı çok az örnek vardır.&lt;br /&gt;Dolaylı veya dolaysız çoğu web uygulaması e-postayı kullanır.&lt;br /&gt;İlk zamanki teknolojilerde daha karmaşık olan bu sorun yeni sürümlerle birlikte artık sorunsuz ve basit olarak uygulamalarımıza eklenebilmektedir.&lt;br /&gt;ASP.NET 2.0 sürümü ile birlikte bu iş oldukça basitleşmiştir.&lt;br /&gt;&lt;br /&gt;Web Üzerinden E-posta Sorunu&lt;br /&gt;Sorunun özünde iki temel sunucu yapısı ve mantığı yatmaktır.&lt;br /&gt;Bunlardan biri olan web uygulamamız bir web sunucu da barınır ve onun kuralları çerçevesinde işler. E-posta sunucuları da kendi kuralları çerçevesinde çalışır ve konfigüre edilir.&lt;br /&gt;Bir e-posta sistemini web uygulamamıza dahil etmek demek aslında başka bir server komponentini web uygulamamıza dahil etmek demektir.&lt;br /&gt;Bu da sorunun temel kaynağıdır.&lt;br /&gt;Ama yukarıda da bahsettiğim gibi bu iş artık çok basit.&lt;br /&gt;&lt;br /&gt;Şimdi gelelim uygulamamıza. Uygulamamız bittiği zaman aşağıdaki arabirimle bir e-posta gönderme sayfası olacak:&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3288/2944294028_687f717bca_o.jpg" src="http://farm4.static.flickr.com/3288/2944294028_687f717bca_o.jpg" height="460" width="651" /&gt;&lt;br /&gt;&lt;br /&gt;Bu arabirim hepimizin bildiği e-posta programlarının kullandığı arabirim.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Öncelikle bu sistemin altyapısına bakalım.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;E-Posta İçin hazırlık&lt;/b&gt;&lt;br /&gt;Web uygulamamıza bir e-posta sistemi eklemek için öncelikle alt yapıyı hazırlamalıyız.&lt;br /&gt;Başka bir ifadeyle öncelikle bir SMTP servisi kurmalıyız.&lt;br /&gt;SMTP servise diğer adıyla mail server da diyebiliriz.&lt;br /&gt;Bu sunucu mail yönetimini yapan sunucudur.&lt;br /&gt;Şanslıyız ki bu servis IIS ile birlikte gelmektedir. Ancak tanımlı olarak sistemimize kurulmamış olabilir ve çoğunlukla da böyledir.&lt;br /&gt;Servisi kurmamız için Windows CD imizi takıp program ekle-kaldır dan Windows komponentleri ekle kaldır butonunu tıklayarak bunu ekleyebiliriz:&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3135/2944294090_8479c6ae5f_o.jpg" src="http://farm4.static.flickr.com/3135/2944294090_8479c6ae5f_o.jpg" height="559" width="558" /&gt;&lt;br /&gt;&lt;br /&gt;Bu servis kurulduktan sonra, kendisine IIS administrator panelinden ulaşıp bazı ayarlar yapmalıyız.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3218/2943433543_e30c60bb43_o.jpg" src="http://farm4.static.flickr.com/3218/2943433543_e30c60bb43_o.jpg" height="208" width="274" /&gt;&lt;br /&gt;&lt;br /&gt;Buradan sağ tuş ile özellikleri seçip&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3014/2943433589_b993970edd_o.jpg" src="http://farm4.static.flickr.com/3014/2943433589_b993970edd_o.jpg" height="515" width="491" /&gt;&lt;br /&gt;&lt;br /&gt;“Access” segmesinde Authentication butonuna tıkladığımızda “Anonymous” kutucuğunun işaretli olduğundan emin olmalıyız.&lt;br /&gt;Daha sonra iki sıra aşağıdaki relay butonuna tıkladığımızda sunucu IP’mizin tanımlı olup olmadığına bakmalıyız.&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3183/2943433621_40bcd2d68f_o.jpg" src="http://farm4.static.flickr.com/3183/2943433621_40bcd2d68f_o.jpg" height="371" width="385" /&gt;&lt;br /&gt;&lt;br /&gt;Eğer tanımlı değilse Add… Butonuna basıp 127.0.0.1 ip sini tanımlayabiliriz.&lt;br /&gt;Bu özelliklerden daha pek çoğunu kendimize göre düzenleyebiliriz ancak burada detaylara girmeyeceğim.&lt;br /&gt;Bu değerleri verdikten sonra alt yapı hazır demektir.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;E-Posta için kodlarımız&lt;/b&gt;&lt;br /&gt;Şimdi sıra geldi e-postamızı web uygulamamızda kullanmayı sağlayacak kodlarımıza.&lt;br /&gt;&lt;br /&gt;Öncelikle web.config dosyamıza SMTP değerlerini ilave etmeliyiz.&lt;br /&gt;Bu SMTP server’ın web uygulamamıza tanıtıldığı yerdir:&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm3.static.flickr.com/2250/2943433651_1a3dc4bf74_o.jpg" src="http://farm3.static.flickr.com/2250/2943433651_1a3dc4bf74_o.jpg" height="135" width="419" /&gt;&lt;br /&gt;&lt;br /&gt;Burada tanıtımın system.web tagları arasında olmadığına dikkatinizi çekerim.&lt;br /&gt;Bu bildirim de uygulama değerleri arasında mail server’ın değeri ve port numarası bildiriliyor.&lt;br /&gt;İfadeleri dikkatle incelemenizde fayda var.&lt;br /&gt;Şimdi artık kodlarımızı oluşturup üzerinde konuşabiliriz. Arabirimini yukarıda gördüğümüz sayfamızın tag kısımlarını vermeyeceğim burada her metin kutusu şekilsel olarak eklenmiş ve bir id verilmiştir. Buradaki kritik kodlar VB dosyamızdakilerdir:&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3148/2944294308_14162f5230_o.jpg" src="http://farm4.static.flickr.com/3148/2944294308_14162f5230_o.jpg" height="800" width="552" /&gt;&lt;br /&gt;&lt;br /&gt;Buradaki en kritik kodlar:&lt;br /&gt;&lt;br /&gt;mMailServer = ConfigurationManager.AppSettings.Get("MyMailServer")&lt;br /&gt;       mPort = ConfigurationManager.AppSettings.Get("MyMailServerPort")&lt;br /&gt;&lt;br /&gt;Çünkü bu iki satır kod sayesinde web.config de tanıttığımız SMTP server, kodlarımıza dahil ediliyor.&lt;br /&gt;&lt;br /&gt;Kodların devamında, maili kime göndereceğimiz, kim tarafından gönderildiği, mesaj, cc  yapılıp yapılmadığı, eklenti olup olmadığı kontrol ediliyor ve bu değerler programatik olarak değişkenlere atanarak sonunda bir değişkende toplanıyor:&lt;br /&gt;&lt;br /&gt;Dim mesaj As New MailMessage(mKimden, mKime, mKonu, mMsj)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mesaj değişkeni değişik kontrollerden geçirildikten sonra, son aşamada&lt;br /&gt;&lt;br /&gt;Dim SmtpBaglanti As New SmtpClient(mMailServer, mPort)&lt;br /&gt;           SmtpBaglanti.UseDefaultCredentials = True&lt;br /&gt;           SmtpBaglanti.Send(mesaj)&lt;br /&gt;&lt;br /&gt;Yordamı vasıtası ile gönderiliyor.&lt;br /&gt;&lt;br /&gt;MessageBox Rutini de posta ile ilgili bir takım mesajları bağlantı taraflı vermek için mesaj uyarı kutuları oluşturur.&lt;br /&gt;E-posta sistemini sadece böyle bir arabirimle kullanmayız. Uygulamamız içinde daha pek çok yerde otomatik e-posta lar atmamız gerekebilir. Örneğin kayıt bilgilerinin alındığına dair veya şifre hatırlatması gibi yerlerde otomatik e-postalar atarız. O zaman gerekli verileri ilgili yerlerden alarak kullanıcının herhangi bir butona tıklamasını beklemeden gönderimi biz yapabiliriz.&lt;br /&gt;Daha açık bir ifadeyle yukarıdaki kodları uyarlayarak daha pek çok farklı yordamda kullanabiliriz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-5676204687665325976?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/5676204687665325976/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=5676204687665325976&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5676204687665325976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5676204687665325976'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/07/aspnet-20-ile-e-posta-gndermek.html' title='ASP.NET 2.0 İle E-Posta Göndermek'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-7236539712802844569</id><published>2008-07-15T12:16:00.000+03:00</published><updated>2008-10-15T12:28:55.368+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>HTML ve Web Sunucu Kontrolleri</title><content type='html'>&lt;p&gt;&lt;br /&gt;Geçen ayki yazımda Web form kavramını incelemiş bu çerçevede istemci sunucu mimari yapıya bir göz atmıştık.&lt;br /&gt;Ayrıca HTML kontrolleri ile web sunucu kontrolleri arasındaki farka değinmiş, hangisini ne zaman kullanmamız gerektiğini anlatmıştım.&lt;br /&gt;Geçen ayki yazımın sonunda bu ay için HTML ve web sunucu kontrollerini inceleyeceğimizi yazmıştım.&lt;br /&gt;Bu ayki konumuz: HTML ve web sunucu kontrolleri.&lt;br /&gt;WVD 2005 Express veya VS 2005 editörümüzün ana penceresinden baktığımız da bize göre sol tarafta bir “Toolbox” bulunur.&lt;br /&gt;Bu “Toolbox” da yukarıda bahsettiğim HTML ve web sunucu kontrolleri bulunur.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img mce_src="http://farm4.static.flickr.com/3016/2944245416_00e0653436_o.jpg" src="http://farm4.static.flickr.com/3016/2944245416_00e0653436_o.jpg" height="205" width="220" /&gt;&lt;br /&gt;&lt;br /&gt;Bu HTML ve web kontrolleri “Toolbox” da kendi içinde sınıflandırılarak saklanır. Buna göre editörümüzle tanımlı gelen&lt;br /&gt;(3. parti kontroller eklenmeden ki hâli)  9 grup web sunucu kontrol kategorisi vardır.&lt;br /&gt;Her bir kategoride de o kategoriye ait kontroller barınır.&lt;br /&gt;Bu sınıflandırma geliştiriciye istediği kontrolü kolayca bulmak açısından büyük bir fayda sağlar.&lt;br /&gt;&lt;br /&gt;Standart olarak gelen kontroller haricinde dilersek diğer firmaların geliştirdiği uyumlu kontrolleri de bu Toolbox a ekleyip kullanabiliriz.&lt;br /&gt;&lt;br /&gt;Nitekim ekran görüntüsündeki ComponentArt kategorisi  .NET 2.0 da bulunun kontroller değildir. Bunlar sonradan eklenmiş 3. parti kontrollerdir.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Web Kontrolleri Kategorileri&lt;/b&gt;&lt;br /&gt;Her bir kategori kendine ait kontrolleri barındırır.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img mce_src="http://farm4.static.flickr.com/3039/2944245448_4f39d10cdd_o.jpg" src="http://farm4.static.flickr.com/3039/2944245448_4f39d10cdd_o.jpg" align="left" height="676" width="217" /&gt;&lt;br /&gt;Bunu yandaki ekran görüntüsünden kolayca izleyebilirsiniz. Standart kategorisi altında bir web sayfasında doğal olarak kullanılan hemen bütün elemanlar bulunmaktadır.&lt;br /&gt;Buraya baktığımızda buton, metin kutusu (TextBox) , Radyo düğmeleri gibi web kontrollerini görürüz.&lt;br /&gt;&lt;br /&gt;Data kategorisine baktığımızda projemizin veri kaynakları ile ilişkisini belirleyen ve sunumlarını yapan kontrollerin olduğunu görürüz.&lt;br /&gt;Login kategorisinde bir üyelik sistemi için gereken kontroller bulunur.&lt;br /&gt;Navigation da site gezinim kontrolleri bulunur.&lt;br /&gt;Bu kategorilere baktığımızda hemen HTML kontrollerini de görürüz. Bunlarla ilgili açıklamayı geçen ayki yazımda yapmıştım.&lt;br /&gt;Sonuçta biz bir web projesi geliştirirken bu kontrollerden ihtiyacımız olanını alıp sayfamızın üzerine sürükle bırakla ekleyerek kullanırız.&lt;br /&gt;&lt;br /&gt;Etkin bir proje geliştirebilmek için bu kontrolleri çok iyi tanımalı özelliklerini iyi kullanmalıyız.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Kontrolleri Kullanma Mantığı&lt;/b&gt;&lt;br /&gt;Yukarıda da belirttiğim gibi bir kontrolü kullanmak için onu sayfaya dâhil etmeliyiz. Ancak bu tek başına bir şey ifade etmez. Esas işimiz bundan sonra başlar.&lt;br /&gt;&lt;br /&gt;Bir kontrolü sayfaya dâhil ettikten sonra temel iki şeyi daha yapmalıyız.&lt;br /&gt;Birincisi bu kontrolü şekilsel olarak düzenlemeliyiz.&lt;br /&gt;İkincisi bu kontrolün sayfada hangi işlevi yerine getireceğini bildirmeliyiz.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Nesneye Yönelik Olay (event) Yönlendirmeli Akış&lt;/b&gt;&lt;br /&gt;ASP.net 2.0 nesneye yönelik olay yönlendirmeli bir programlama algoritmasına sahiptir.&lt;br /&gt;Bu yapıya göre bir uygulama nesnelerden oluşur ve bu nesneler belirli olaylarla yönlendirilir.&lt;br /&gt;Hareketin olması için bir olayın (eylemin) gerçekleşmesi gerekir.&lt;br /&gt;Örneği sayfaya bir şey yazdırmak istiyorsak butona basmalıyız veya sayfaya yazı yazdırmayı tetikleyecek herhangi diğer bir olayın (örneğin sayfanın yüklenmesi) gerçekleşmesi gerekecektir.&lt;br /&gt;Yoksa durup dururken sayfaya herhangi bir metin yazılmaz.&lt;br /&gt;Bu olay yönlendirmenin mantığıdır.&lt;br /&gt;Olaylar nesneler arasında oluşur.&lt;br /&gt;Burada buton ve sayfa birer nesnedir.&lt;br /&gt;Bunlar da web kontrollerimizin kendisidir.&lt;br /&gt;Kontrolleri kullanma mantığında bir kontrolü sayfaya dâhil ettikten sonra yapmamız gerekenlerden biri de bu işlevi; yani bir olayı tanımlamak olduğunu yukarıda yazmıştım.&lt;br /&gt;Örneğin bir buton dâhil ettiysek sayfamıza bunun şekilsel tanımlamalarının yanı sıra olay tanımlamasını da yapmalıyız. Veya kontrol pasif olarak başka bir olaydan gelen etkiyi karşılamalı (Label veya diğer gösterim kontrollerinde olduğu üzere)&lt;br /&gt;&lt;br /&gt;Örneğin bir buton için temel olay tanımı (birden fazla olay tanımı olabilir) ona tıklamaktır.&lt;br /&gt;Bu eylemden sonra yapılacakları butonun tıklama yordamında kodsal olarak tanımlamalıyız. Butona tıklandığında bir mesaj çıkması gibi.&lt;br /&gt;Bu mantık bütün diğer kontroller için de geçerlidir.&lt;br /&gt;Bir olay tanımı veya olay sonuç gösterimi yapmadan bir kontrolü sayfaya eklemenin hiçbir manası yoktur.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kontrolleri Kullanalım&lt;/b&gt;&lt;br /&gt;Şimdiki örneğimizde son yazdıklarıma paralel olarak sayfaya bir buton ve Label ekleyerek kontrollerin kullanımını uygulamalı olarak göreceksiniz.&lt;br /&gt;&lt;br /&gt;Yapmamız gerekeni biliyorsunuz, öncelikli olarak “Toolbox” dan kontrolümüzü bulup sayfaya eklemek.&lt;br /&gt;Bu ekleme işlemini editörümüzden hem “Design” hem de  “Source” kısmından yapabiliriz.&lt;br /&gt;Label ve buton kontrolümüzü Toolbox’ın standart kategorisinden alıp sayfamıza dâhil edelim.&lt;br /&gt;Yukarıdaki prensibe göre şimdi yapmamız gereken iki temel tanım var; bunlardan birincisi kontrollerimizin şekilsel biçimsel tanımı diğeri ise işlevsel tanımı.&lt;br /&gt;Biçimsel tanım için kontrolümüzün özelliklerine bakmalıyız.&lt;br /&gt;Her kontrolün mutlaka şekilsel özelliklerini belirleyen alanları vardır.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;img mce_src="http://farm4.static.flickr.com/3139/2944245498_6d62ef1e6d_o.jpg" src="http://farm4.static.flickr.com/3139/2944245498_6d62ef1e6d_o.jpg" align="left" height="274" width="360" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bu alanlar kendi içinde temel iki kategoriye ayrılır; genel ve o kontrole özel biçimler.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Örneğin bir buton kontrolünün şekilsel özelliklerini belirleyen alanlar yanda gözükmektedir. Buna göre örneğin bir “border” kavramı geneldir ve daha pek çok kontrolde bu özelliğe rastlarsınız.&lt;br /&gt;Bir zaman sonra bu özellik size tanıdık gelmeye başlar.&lt;br /&gt;Buton kontrolünde olmamakla beraber çok özel kontrollerin kendine ait (örneğin wizard) şekilsel özellik tanımlamaları vardır.&lt;br /&gt;Bunlar sadece o kontrole özeldir.&lt;br /&gt;Bu özellikleri zaman içinde diğer genel özelliklerden ayırabilirsiniz.&lt;br /&gt;Bir kontrolü dilediğiniz şekilsel özellikte oluşturmak için o kontrol işaretliyken sağ taraftaki “properties” penceresini tıklayıp şekilsel özelliklerine erişebilirsiniz. Veya “Source” kısmından ilgili kontrol bildiriminden kod tamamlamayla atayabilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm3.static.flickr.com/2382/2944245542_374af2fcd1_o.jpg" src="http://farm3.static.flickr.com/2382/2944245542_374af2fcd1_o.jpg" height="262" width="673" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bir kontrolün şekilsel özelliklerini en iyi “Design” penceresinden deneme yanılma yolu ile bulabilirsiniz.&lt;br /&gt;Örneğin ben buton ve Label kontrolümün şekillerini aşağıdaki gibi tanımladım:&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm3.static.flickr.com/2360/2943385251_91c471739f_o.jpg" src="http://farm3.static.flickr.com/2360/2943385251_91c471739f_o.jpg" height="109" width="190" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3247/2944245592_a6f08b2695_o.jpg" src="http://farm4.static.flickr.com/3247/2944245592_a6f08b2695_o.jpg" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Kontrollerimizin görüntüsel özelliklerini bu şekilde tanımladıktan sonra sıra onların işlevsel tanımlarına geliyor.&lt;br /&gt;Bunun anlamı kod yazmaktır.&lt;br /&gt;Yukarıda anlattığım yapıyı anımsarsanız olay yönlendirme mantığında her bir kontrol ya bir eylemi gerçekleştiriyor veya bir eylem sonucu oluşan verileri sunuyor.&lt;br /&gt;Bu mantığa göre burada buton eylemi gerçekleştiren kontrol, Label ise eylem sonucu sunum veya gösterimi yapan kontroldür.&lt;br /&gt;Olayların akışı Label kontrolünde bir gösterimle sona eriyor.&lt;br /&gt;Bu işleyişin gerçekleşmesi için butona bir takım kodsal direktifler vermeliyiz.&lt;br /&gt;Kodsal direktifler sayfanın script bölümünde yapılır.&lt;br /&gt;Burada size verebileceğim iyi bir ipucu var.&lt;br /&gt;Bir kontrolün temel olayını bulmak ve onu script kısmında tanımlamak için, o kontrole “design” penceresinde çift tıklayın.&lt;br /&gt;&lt;br /&gt;Örneğin Butonun üzerine gelin ve çift tıklayın göreceksiniz sayfanın script kısmına butonun temel tıklama olay yordamı eklenmiştir&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3287/2944245618_dbda204c37_o.jpg" src="http://farm4.static.flickr.com/3287/2944245618_dbda204c37_o.jpg" height="114" width="696" /&gt;&lt;br /&gt;&lt;br /&gt;Sizin yapmanız gereken kullandığınız programlama diliyle, ilgili bildirimleri yazmak.&lt;br /&gt;Bu örnekte biz butona tıklandığında Label kontrolüne bir metin yazılsın istiyoruz.&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3190/2944245658_887915a775_o.jpg" src="http://farm4.static.flickr.com/3190/2944245658_887915a775_o.jpg" height="293" width="800" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yapmamız gereken Label kontrolümüzü tanımlamak –ki bu da bir kontrolün id si ile olur- ve onun “text” özelliğine ilgili metni atamaktır.&lt;br /&gt;Butona tıklandığı anda akış Button1_click yordamına gidecek ve oradaki bu bildirimi işleterek Label da ilgili metni gösterecek.&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3291/2944245678_23f25b147b_o.jpg" src="http://farm4.static.flickr.com/3291/2944245678_23f25b147b_o.jpg" height="94" width="227" /&gt;&lt;br /&gt;&lt;br /&gt;Böylece bu ay web kontrollerini kullanma mantığını ve nesneye yönelik olay yönlendirme algoritmasını incelemiş olduk.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-7236539712802844569?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/7236539712802844569/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=7236539712802844569&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7236539712802844569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7236539712802844569'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/07/html-ve-web-sunucu-kontrolleri.html' title='HTML ve Web Sunucu Kontrolleri'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-204927063607224276</id><published>2008-06-15T12:09:00.000+03:00</published><updated>2008-10-15T12:16:40.192+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET Response.Buffer</title><content type='html'>&lt;p&gt;&lt;br /&gt;Buffer-buffering Türkçede tampon-tamponlama anlamına gelir. Konumuzla ilgili olarak tamponlama, browser'a gönderilen çıktıları kontrol anlamında kullanılır.&lt;br /&gt;&lt;br /&gt;Browser'a çıktılar iki şekilde, gönderilir. Birincisinde, sayfanın bütün script ve kodları çalıştırılana kadar çıktılar tampon (BUFFER) bir hafızada saklanır ve hepsi tamamlandıktan sonra, browsera gönderilir.&lt;br /&gt;&lt;br /&gt;ASP.NET in tanımlı çalışma biçimi budur. diğer bir ifadeyle sayfada hiçbir şey belirtilmemişse&lt;br /&gt;&lt;br /&gt;Response.Buffer=true&lt;br /&gt;&lt;br /&gt;yani, tamponlama yapılmış kabul edilir.&lt;br /&gt;&lt;br /&gt;Diğer bir çıktı biçimi ise, Tamponlama yapılmadan, yani sayfanın doğrudan browser a gönderilmesidir.&lt;br /&gt;Bu durumda&lt;br /&gt;&lt;br /&gt;Response.Buffer=false&lt;br /&gt;&lt;br /&gt;ifadesini bildirmek zorundayız.&lt;br /&gt;&lt;br /&gt;Her iki durumun şematik olarak gösterimi aşağıdadır.&lt;br /&gt;&lt;br /&gt;  &lt;img mce_src="http://farm4.static.flickr.com/3173/2944238534_28cf12e1e8_o.gif" src="http://farm4.static.flickr.com/3173/2944238534_28cf12e1e8_o.gif" height="410" width="636" /&gt;&lt;br /&gt;&lt;br /&gt;Response nesnesinin tampon hafızayı yöneten 3 adet metodu daha vardır.&lt;br /&gt;Bunlar, flush, clear ve end metotlarıdır.&lt;br /&gt;"Flush" metodu, tampon hafızada o zamana kadar birikmiş her şeyi, hemen browser'a gönderir.&lt;br /&gt;&lt;br /&gt;"Clear" metodu, tampon hafızada birikmiş olan her şeyi siler ve tampon hafıza boş kalır.&lt;br /&gt;Dolayısı ile bu bildirimden önceki hiç bir şey (eğer daha önceden  flush metodu  ile  gönderilmemişse) istemciye gönderilmez ( browserda gözükmez).&lt;br /&gt;&lt;br /&gt;Son olarak "end" metodu ile, Response nesnesinin, buffer'a veri  gönderim süreci sonlandırılır. O zamana kadar tampon hafızada  birikmiş olanlar, istemciye gönderilir.&lt;br /&gt;Konuyu daha iyi anlamak için, bir örnek üzerinde gidelim ve aşağıdaki sayfayı oluşturalım;&lt;br /&gt;&lt;br /&gt; fulsh_clear_end.aspx&lt;br /&gt;&lt;br /&gt;1    &amp;lt;%@ Page Language="VB" Debug="true" codePage="28599" %&amp;gt;&lt;br /&gt;2    &amp;lt;script runat="server"&amp;gt;&lt;br /&gt;3    Sub Page_Load(Sender As Object,E As EventArgs)&lt;br /&gt;&lt;br /&gt;4    Response.Write("Şu an gördüğünüz yazı, flush metodu ile browser'a hemen gönderilecek.&amp;lt;br&amp;gt;")&lt;br /&gt;&lt;br /&gt;5    Response.Flush&lt;br /&gt;&lt;br /&gt;6    Response.Write("Bu yazı hiçbir zaman browserda gözükmeyecek, çünkü devam eden response.clear satırı ile tampon hafızadan silinecek.&amp;lt;br&amp;gt;")&lt;br /&gt;&lt;br /&gt;7    Response.Clear&lt;br /&gt;&lt;br /&gt;8    Response.Write("Bu yazı tampon hafıza temizlendikten sonra, tampon hafızada tutulmuş oradan da browser'a gönderilmiştir.&amp;lt;br&amp;gt;")&lt;br /&gt;&lt;br /&gt;9    response.end&lt;br /&gt;&lt;br /&gt;10    Response.Write("Bu yazıda hiçbir zaman gözükmeyecek, çünkü response nesnesi, response.end ile browser'a  her türlü gönderimi durdurmuştur. &amp;lt;br&amp;gt;")&lt;br /&gt;11    End Sub&lt;br /&gt;&lt;br /&gt;12    &amp;lt;/script&amp;gt;&lt;br /&gt;13    &amp;lt;html&amp;gt;&lt;br /&gt;&lt;br /&gt;14    &amp;lt;head&amp;gt;&lt;br /&gt;15    &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"&amp;gt;&lt;br /&gt;16    &amp;lt;/head&amp;gt;&lt;br /&gt;17    &amp;lt;body&amp;gt;&lt;br /&gt;18    &amp;lt;/body&amp;gt;&lt;br /&gt;19    &amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ve sayfamızı browserda çalıştırırsak aşağıdaki ekran çıktısını alırız;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3071/2943378181_7f6de71f57_o.gif" src="http://farm4.static.flickr.com/3071/2943378181_7f6de71f57_o.gif" height="214" width="673" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;flush_clear_end.aspx sayfamızın kaynak kodlarındaki "response.write" ile sayfaya yazdırılmak istenen 6 ve 10. satırlar, sayfada gözükmemektedir.&lt;br /&gt;&lt;br /&gt;4. satırda sayfaya yazdırmak istediğimiz mesaj, 5. satırdaki "response.flush" dan dolayı, tampon hafızada tutulmamış ve o zamana kadar tampon hafızada bulunan her şey, bu mesajla birlikte, istemciye hemen gönderilmiştir.&lt;br /&gt;&lt;br /&gt;6. satırdan itibaren tampon hafıza yine birikmeye başlamış ancak  bu seferde 7. satırda, "response.clear" ile bütün hafıza silinmiş, diğer bir ifadeyle hafıza temizlenmiştir.&lt;br /&gt;&lt;br /&gt;Dolayısı ile 6. satırdaki mesaj browser’a gönderilmeden silinmiştir ve hiçbir zaman sayfada görüntülenmeyecektir.&lt;br /&gt;8. satırdaki mesajla birlikte yine tamponlama yapmaya başlanır.&lt;br /&gt;Ancak 9. satırda, gönderimin sona erdiği, "response.end" ile bildirilir ve o zamana kadar tampon hafızada  birikmiş olanlar, istemciye gönderilir.&lt;br /&gt;Bu ise 8. satırımızın kendisi.&lt;br /&gt;10. satırdaki mesaj, "response.end" ile gönderim süreci sonlandırıldığından  hiç bir zaman sayfada gözükmeyecektir.&lt;br /&gt;Bunların sonucunu da yukarıdaki sayfamızın görüntüsünden alıyoruz.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-204927063607224276?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/204927063607224276/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=204927063607224276&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/204927063607224276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/204927063607224276'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/06/aspnet-responsebuffer.html' title='ASP.NET Response.Buffer'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-175128124495799763</id><published>2008-06-11T12:29:00.000+03:00</published><updated>2008-11-11T13:24:07.023+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET AJAX ToggleButton Kullanımı</title><content type='html'>&lt;p&gt;&lt;br /&gt;Bir web sitesinde, değişik sayfalarda kullanıcıların tercihlerini soran arabirimler çoğunlukla bulunur. Biz yazılımcılar bu arabirimleri CheckBox (işaretleme kutucuğu) veya RadioButton (radyo butonları) kontrolleri kullanarak oluşturmaya çalışırız. Bildiğiniz gibi işaretleme kutucukları, kullanıcıya çoklu seçeneklerden bir veya daha fazlasını seçme mantığı üzerine kurulmuştur. Radyo butonları ise bu mantığın tam tersine çoklu seçeneklerden sadece bir tanesini seçme mantığı üzerine kurulmuştur.&lt;br /&gt;Örneğin “aşağıdakilerden hangisi veya hangileri? “ gibi bir soruda işaretleme kutucukları kullanılır. Yazılımcı işaretlenmiş değerleri alıp işler. “Aşağıdakilerden hangisi?” gibi bir soruda da radyo butonları kullanılır, çünkü kullanıcıdan sadece bir değer istenir.&lt;br /&gt;Şimdiye kadar web sayfalarında çoğunlukla kullandığımız arabirimler veya seçenekler bunlardı. Ancak bir ara kontrol vardır ki bu daha aktif bir katılım sunar: ToggleButton.&lt;br /&gt;ToggleButton, iki konumlu düğme demektir. Ama bu uzun bir ifade olduğu için ve karşınıza orijinal ismiyle çıkma olasılığının fazlalığından ben ToggleButton ifadesini kullanacağım.&lt;br /&gt;ToggleButton ASP.Net  de bir AJAX kontrolüdür.&lt;br /&gt;Bu kontrolün kullanımı aşağıdaki gibidir:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3269/3022056718_bfc8e4386c_o.jpg" src="http://farm4.static.flickr.com/3269/3022056718_bfc8e4386c_o.jpg" width="684" height="173" /&gt;Yukarıdaki ekran görüntüsünü incelediğinizde kontrolün kullanılma mantığı hemen anlaşılıyor.&lt;br /&gt;İşaretleme kutusundan farklı olarak ToggleButton kontrolünde kullanıcıya aktif bir katılım imkânı sunuluyor. İki tane İşaretleme kutusunun yaptığını tek bir işaretleme kutusuyla yapabiliyorsunuz.&lt;br /&gt;Ayrıca işaretleme sembol veya ikonlarını kendiniz belirleyebiliyorsunuz.&lt;br /&gt;Şimdi bu sayfanın tasarım görüntüsüne bir bakalım:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img mce_src="http://farm4.static.flickr.com/3252/3021225239_32b60fc05d_o.jpg" src="http://farm4.static.flickr.com/3252/3021225239_32b60fc05d_o.jpg" width="329" height="282" /&gt;&lt;br /&gt;&lt;br /&gt;Gördüğünüz gibi Bir AJAX uygulaması. Bir ScriptManager, iki CheckBox, bir buton, bir UpdatePanel, bir Label ve iki adet ToggleButtonExtender bulunuyor.&lt;br /&gt;Şimdi bu arabirimin bildirim kodlarına bakalım:&lt;br /&gt;&amp;lt;asp:ScriptManager ID="ScriptManager1" runat="server" /&amp;gt;&lt;br /&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;asp:UpdatePanel ID="UpdatePanel1" runat="server"&amp;gt;&lt;br /&gt;   &amp;lt;ContentTemplate&amp;gt;&lt;br /&gt;       &amp;lt;asp:CheckBox ID="CheckBox1" Checked="true" Text="   Kırmızıyı Severim" runat="server"/&amp;gt;&lt;br /&gt;       &amp;lt;br /&amp;gt;&lt;br /&gt;       &amp;lt;asp:CheckBox ID="CheckBox2" Checked="true" Text="   Klasik müzikten hoşlanırım" runat="server"/&amp;gt;&lt;br /&gt;       &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;       &amp;lt;asp:Button ID="Button1" runat="server" Text="Gönder" OnClick="Button1_Click" /&amp;gt;&lt;br /&gt;       &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;       &amp;lt;asp:Label Font-Names="verdana" ID="Label1" runat="server" Text="Henüz Bir işaretleme yapmadınız!"&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;&lt;br /&gt;       &amp;lt;AjaxToolkit:ToggleButtonExtender ID="ToggleButtonExtender1" runat="server" TargetControlID="CheckBox1" ImageWidth="19" ImageHeight="19" UncheckedImageUrl="images/ToggleButton_isaretlenmemis.gif" CheckedImageUrl="images/ToggleButton_isaretlenmis.gif" CheckedImageAlternateText="İşaretlenmiş" UncheckedImageAlternateText="İşaretlenmemiş"&amp;gt;&lt;br /&gt;       &amp;lt;/AjaxToolkit:ToggleButtonExtender&amp;gt;&lt;br /&gt;       &amp;lt;AjaxToolkit:ToggleButtonExtender ID="ToggleButtonExtender2" runat="server" TargetControlID="CheckBox2" ImageWidth="19" ImageHeight="19" UncheckedImageUrl="images/ToggleButton_isaretlenmemis.gif" CheckedImageUrl="images/ToggleButton_isaretlenmis.gif" CheckedImageAlternateText="İşaretlenmiş" UncheckedImageAlternateText="İşaretlenmemiş"&amp;gt;&lt;br /&gt;       &amp;lt;/AjaxToolkit:ToggleButtonExtender&amp;gt;&lt;br /&gt;   &amp;lt;/ContentTemplate&amp;gt;&lt;br /&gt;   &amp;lt;/asp:UpdatePanel&amp;gt;&lt;br /&gt;Bildirimleri dikkatlice incelersek şunları görürüz.&lt;br /&gt;Sayfaya normal iki adet işaretleme kutusu eklenmiş ancak bunlar ToggleButtonExtender kontrolü ile kontrol ediliyor. Diğer bir ifadeyle ToggleButton özellikli yapılıyor. ToggleButtonExtender in Kontrol ettiği işaretleme kutuları TargetControlID="CheckBox1” ve TargetControlID="CheckBox2” ifadeleriyle belirtiliyor.&lt;br /&gt;ToggleButtonExtender ile ayrıca bir takım özellikleri belirleme imkânı var. Örneğin onaylama ve onaylamama için hangi resmi kullanacağız ve alternatif olarak hangi ifadeleri kullanacağımız hep bu kontrolün özelliklerinden belirtilir. Örneğimizde işaretlenmiş seçenek için CheckedImageUrl="images/ToggleButton_isaretlenmis.gif yol tanımındaki resmi, işaretlenmemiş içinse UncheckedImageUrl="images/ToggleButton_isaretlenmemis.gif yol tanımındaki resmi kullanıyoruz. Siz dilediğiniz grafik veya resmi oluşturarak kullanabilirsiniz. Böylece sayfalarınız estetik ve temaya uyumlu hale gelebilir.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;img mce_src="http://farm4.static.flickr.com/3250/3022056780_f41aea4843_o.jpg" src="http://farm4.static.flickr.com/3250/3022056780_f41aea4843_o.jpg" width="673" height="165" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ayrıca alternatif metin olarak da CheckedImageAlternateText="İşaretlenmiş"  ifadeleri kullanıyoruz.&lt;br /&gt;Kodlarımız inceleyecek olursak oldukça basit olduğunu göreceğiz:&lt;br /&gt;Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)&lt;br /&gt;&lt;br /&gt;       If (CheckBox1.Checked) Then&lt;br /&gt;           Label1.Text = "'Kırmızıyı severim' i işaretlediniz "&lt;br /&gt;       Else&lt;br /&gt;           Label1.Text = "'Kırmızıyı sevmem' i şaretlediniz "&lt;br /&gt;       End If&lt;br /&gt;       If (CheckBox2.Checked) Then&lt;br /&gt;           Label1.Text += "ve klasik müzikten hoşlandığınızı belirttiniz. "&lt;br /&gt;       Else&lt;br /&gt;           Label1.Text += "ve klasik müzikten hoşlanmadığınızı belirttiniz. "&lt;br /&gt;       End If&lt;br /&gt;&lt;br /&gt;   End Sub&lt;br /&gt;Burada her bir işaretleme kutusunun durumuna göre sayfaya bir mesaj yazdırılıyor.&lt;br /&gt;ToggleButton un en önemli özelliklerinden biri de kullanıcıya sunduğunuz seçeneklerin bir grubu teşkil etmek zorunda olmamasıdır. Örneğimizde olduğu gibi bir yandan renkle ilgili bir soruya cevap ararken diğer yandan müzikle ilgili bir bilgi edinmek istiyoruz. Ve her ikisinde de kullanıcıdan olumlu veya olumsuz bir cevap dönmesi gerekiyor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-175128124495799763?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/175128124495799763/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=175128124495799763&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/175128124495799763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/175128124495799763'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/06/aspnet-ajax-togglebutton-kullanm.html' title='ASP.NET AJAX ToggleButton Kullanımı'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-4952445086092963001</id><published>2008-06-07T12:04:00.000+03:00</published><updated>2008-10-15T12:09:22.787+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET SiteMapPath Kontrolü</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Mutlaka aşağıdaki tarz bir sayfa yol tanımı görmüşsünüzdür. Hatta web yazılımcısı olarak bu tarz bir gezinim (navigation) ifadesi oluşturulması istenmiş olabilir.&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3290/2944230648_b2e3d0a69b_o.jpg" src="http://farm4.static.flickr.com/3290/2944230648_b2e3d0a69b_o.jpg" height="37" width="453" /&gt;&lt;br /&gt;&lt;br /&gt;Gerçekten de kullanışlı bir bildirim.&lt;br /&gt;O an hangi sayfada, hangi konumda bulunduğunuzu belirtiyor.&lt;br /&gt;&lt;br /&gt;Bu yol tanımında örneğin doğrudan Kitaplarım linkine tıklayarak, kitaplarım sayfasına ulaşabilirsiniz.&lt;br /&gt;Kullanıcılar için oldukça faydalı bir yöntem.&lt;br /&gt;Ancak bunu her bir sayfa için tek tek yapmak pek mantıklı bir yöntem değildir.&lt;br /&gt;Çünkü eklediğiniz sayfanın hiyerarşik yapısı her an bozulabilir.&lt;br /&gt;Örneği o sayfayı bir alt veya üst klasöre alabilir, başka bir yere taşıyabilirsiniz.&lt;br /&gt;Olay sadece eklenen sayfayı bağlamıyor, yol tanımındaki bütün hiyerarşik yapıyı ilgilendiriyor.&lt;br /&gt;Bu yol üzerindeki, her bir sayfa için farklı bir konuma getirilme, yeniden isimlendirilme gibi riskler her zaman mevcuttur ve bu durumda işler iyice karışır.&lt;br /&gt;Her bir sayfada yapıyı tekrar tanımlamanız gerekebilir.&lt;br /&gt;İşte sizi bu meşguliyetten kurtarmak için harika bir kontrol olan SiteMapPath geliştirilmiş.&lt;br /&gt;&lt;br /&gt;İlk defa ASP.NET 2 ile birlikte gelen bu kontrol, uygulama geliştiricilere, merkezi bir yerden, sitenin haritasını oluşturup kullanılmasını sağlıyor.&lt;br /&gt;&lt;br /&gt;Böylece siz her bir değişiklik için, tek tek sayfaları dolaşmıyorsunuz.&lt;br /&gt;Merkezi bir dosyadan ilgili değişiklik veya ilaveleri yapıyorsunuz ve bunlar anında SiteMapPath kontrolü olan sayfalarda güncelleniyor.&lt;br /&gt;&lt;br /&gt;Hemen örneğimize geçelim.&lt;br /&gt;Öncelikle bu kontrol araç kutumuzdan, sürükle bırak ile sayfamıza dâhil edilir.&lt;br /&gt;&lt;br /&gt;Daha sonra, sitenin link haritasını alacağı merkezi dosya hazırlanır.&lt;br /&gt;Bu dosya özel taglardan oluşan bir XML dosyasıdır.&lt;br /&gt;Kontrolümüz, bu dosyaya bakarak, kendi konumunu otomatik olarak, yukarıdaki biçimde görüntüler. Evet yanlış okumadınız, otomatik olarak.&lt;br /&gt;&lt;br /&gt;Önce merkezi, dosyamızı oluşturalım. Yukarıda da bahsettiğim gibi, uygulama için özel anlam ifade eden bir isimle adlandırılan bir XML dosyasıdır.&lt;br /&gt;&lt;br /&gt;İsmi Web.sitemap dir. Uygulama SiteMapPath kontrolü için bu dosyayı arar. Dosyanın yapısı aşağıdaki gibidir:&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;siteMap&amp;gt;&lt;br /&gt;&amp;lt;siteMapNode&amp;gt;&lt;br /&gt;        &amp;lt;siteMapNode title="anasayfa" url="~/Default.aspx"  &amp;gt;&lt;br /&gt;    &amp;lt;siteMapNode title="Kitaplarım" url="~/Navigation/index.aspx" &amp;gt;&lt;br /&gt;   &amp;lt;siteMapNode title="Web Yazılım" &amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="ASP" url="~/Navigation/kitap_sayfalari/kitap_asp.aspx"/&amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="ASP.NET" url="~/Navigation/kitap_sayfalari/kitap_asp_net.aspx"/&amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="ASP.NET 2" url="~/Navigation/kitap_sayfalari/kitap_asp_net_2.aspx"/&amp;gt;&lt;br /&gt;    &amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;                &amp;lt;siteMapNode title="XML" &amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="XML" url="~/Navigation/kitap_sayfalari/kitap_xml.aspx"/&amp;gt;&lt;br /&gt;                   &lt;br /&gt;                &amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;                &amp;lt;siteMapNode title="İnternet" &amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="İnternet Teknolojileri" url="~/Navigation/kitap_sayfalari/kitap_i_net_tek.aspx"/&amp;gt;&lt;br /&gt;                &amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;    &amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;        &amp;lt;siteMapNode title="Resimlerim" &amp;gt;&lt;br /&gt;                &amp;lt;siteMapNode title="Mart" &amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="10 Mart" url="~/Navigation/resim_sayfalari/10_mart.aspx"/&amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="14 Mart" url="~/Navigation/resim_sayfalari/14_mart.aspx"/&amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="22 Mart" url="~/Navigation/resim_sayfalari/22_mart.aspx"/&amp;gt;&lt;br /&gt;                &amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;                &amp;lt;siteMapNode title="Temmuz" &amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="8 Temmuz" url="~/Navigation/resim_sayfalari/8_temmuz.aspx"/&amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="27 Temmuz" url="~/Navigation/resim_sayfalari/27_temmuz.aspx"/&amp;gt;&lt;br /&gt;                &amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;                &amp;lt;siteMapNode title="Ağustos" &amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="5 Ağustos" url="~/Navigation/resim_sayfalari/5_agust.aspx"/&amp;gt;&lt;br /&gt;                    &amp;lt;siteMapNode title="30 Ağustos" url="~/Navigation/resim_sayfalari/30_agust.aspx"/&amp;gt;&lt;br /&gt;                &amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;    &amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;        &amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;&amp;lt;/siteMapNode&amp;gt;&lt;br /&gt;&amp;lt;/siteMap&amp;gt;&lt;br /&gt;&lt;br /&gt;Bu dosyanın yapısı yukarıdaki site örneğimiz için oluşturulmuştur. Burada bir kaç şeye dikkat etmek gerekiyor. Yoksa gereken görünümü alamazsınız.&lt;br /&gt;&lt;br /&gt;Öncelikle eklediğiniz yol tanımları gerçekten var olmalı.&lt;br /&gt;İkincisi, eklediğiniz sayfada,  SiteMapPath’in gözükmesini istiyorsanız, o sayfanın SiteMapPath dosyasında tanımlanmış olması gerekiyor.&lt;br /&gt;Eğer bunlara dikkat ederseniz, SiteMapPath kontrolünü eklediğiniz her sayfanın konumu, yukarıdaki dosya kılavuzunda, sayfada otomatik olarak gösterilecektir.&lt;br /&gt;&lt;br /&gt;Uygulamamızda ben, SiteMapPath’i bir master sayfaya ilave ettim.&lt;br /&gt;&lt;br /&gt;Böylece her sayfaya eklenecek ve eklendiği her sayfanın konumunun haritasını, yukarıdaki tarzda çıkaracaktır.&lt;br /&gt;&lt;br /&gt;Menüden hangi sayfayı tıklarsam o sayfanın yol haritası gösterilecek.&lt;br /&gt;Sonuçları uygulamayı çalıştırarak görebilirsiniz.&lt;br /&gt;Tabii ki SiteMapPath’in şekilsel düzenlemesini sağlayan pek çok özellik mevcut. Bunların çoğu bize yabancı değil: fontlar, renkler, boyutlar vs.&lt;br /&gt;Ayrıca aradaki ayıraç biçimini de belirleyebiliyorsunuz.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;PathSeparatorTemplate&amp;gt;&lt;br /&gt;                &amp;lt;asp:Image ID="resim" Runat="server" ImageUrl="../images/sonraki.gif" /&amp;gt;&lt;br /&gt;            &amp;lt;/PathSeparatorTemplate&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Burada tanımlayacağınız seperator (ayraç) resmi, SiteMapPath’ kontrolünde kullanılacaktır.&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3062/2943370473_f38ba8b1b1_o.jpg" src="http://farm4.static.flickr.com/3062/2943370473_f38ba8b1b1_o.jpg" height="346" width="457" /&gt;&lt;br /&gt;&lt;br /&gt;Dikkat ederseniz burada bir şablon tanımlaması yapılıyor.&lt;br /&gt;Bunun anlamı: fazla sayıdaki şablon ve stillerle SiteMapPath görünümünü dilediğimiz gibi özelleştirebileceğimizdir.&lt;br /&gt;Bu özellikleri Visual Web Developer Express veya Visual Studio editörünüzde tek tek deneyerek bulabilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-4952445086092963001?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/4952445086092963001/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=4952445086092963001&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4952445086092963001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4952445086092963001'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/06/aspnet-sitemappath-kontrol.html' title='ASP.NET SiteMapPath Kontrolü'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-8966767982921781660</id><published>2008-05-25T12:03:00.000+03:00</published><updated>2008-10-15T12:04:50.933+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET’de ÖNBELLEKLEME (CACHE)</title><content type='html'>&lt;p&gt;&lt;br /&gt;Önbelleklemeden anlatılmak istenen ana kaynağa ulaşmak yerine, daha hızlı ulaşılabilen ara bir yerden istenilenleri elde etmektir.&lt;br /&gt;Örneğin ASP.NET’de sayfalar her zaman kaynağından alınmayabilir. Bazen bunun için sunucuda veya istemcinin bilgisayarında ara bir yer ayrılır ve istekler oradan karşılanır.&lt;br /&gt;Bu tiplere sunucu veya istemci taraflı önbellekleme denir.&lt;br /&gt;Sunucu taraflı Önbelleklemede sistem şöyle işler:&lt;br /&gt;istemci asp.net sayfasını sunucudan talep ettiğin de sunucu ilgili sayfayı bulup istemciye gönderir.&lt;br /&gt;Aynı zamanda sayfanın bir kopyasını ara bir bellek bölgesinde saklar.&lt;br /&gt;Aynı sayfayla ilgili diğer bir istek geldiğinde sunucu bu sayfayı tekrar işlemek yerine doğrudan -erişimi daha hızlı olan- arabellekten -hazır kopyayı- gönderir.&lt;br /&gt;Böylece sunucu aynı işlem için boşu boşuna meşgul edilmemiş olur.&lt;br /&gt;Sitemin işleyişi şemada açıkça gözüküyor.&lt;br /&gt;Client Önbellekleme daha az tercih edilen yöntemdir.&lt;br /&gt;Onun işleme mantığı şöyledir:&lt;br /&gt;İstemci sunucudan sayfayı aldıktan sonra, bilgisayarında bir yerde bu sayfa depolanır. Aynı sayfa bir daha talep edildiğin de, client browser öncellikle kendi önbelleğinde bu sayfayı arar ve bulduğunda sunucudan herhangi bir talepte bulunmadan sayfayı görüntüler.&lt;br /&gt;&lt;br /&gt;Ancak önbelleğinde bulunmayan sayfaların istemini sunucudan yapar.&lt;br /&gt;Bu sistemde de sunucu boşuna meşgul edilmez. Zaten Önbelleklemede amaç sunucunun işlem yoğunluğunu mümkün mertebe azaltmaktır.&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3057/2944225232_9a8f7f620d_o.jpg" src="http://farm4.static.flickr.com/3057/2944225232_9a8f7f620d_o.jpg" height="661" width="711" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3001/2943365037_ed2736d9a1_o.jpg" src="http://farm4.static.flickr.com/3001/2943365037_ed2736d9a1_o.jpg" height="663" width="624" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sayfa Çıktısı Önbelleklemesi&lt;/b&gt;&lt;br /&gt;ASP.NET’de en çok kullanılan yöntemdir. Sunucu taraflı önbellekleme biçimidir.&lt;br /&gt;Bu yöntemde sayfalar sunucuda önbelleklenir.&lt;br /&gt;Bu tip bir önbelleklemenin sayfamız için uygulanmasını istediğimizi yine sayfamızdan bildirmeliyiz.&lt;br /&gt;Bu bildirim çok basittir ve hemen sayfa bildirimlerinin olduğu yerde yapılır.&lt;br /&gt;&amp;lt;%@ OutputCache Duration="10" VaryByParam="none" %&amp;gt;&lt;br /&gt;Şeklinde bir ifadedir. Duration =10 değeri sayfanın saniye cinsinden sunucu önbelleğinde tutulma süresini ifade eder.&lt;br /&gt;&lt;br /&gt;Diğer bir ifade ile bu bildirimle sayfa on saniye önbellekte tutulacaktır.&lt;br /&gt;Konunun daha iyi anlaşılması için şu örneği yapalım&lt;br /&gt;&lt;br /&gt;page_cache_1.aspx&lt;br /&gt;&amp;lt;%@ Page Language="c#" %&amp;gt;&lt;br /&gt;&amp;lt;%@ OutputCache Duration="10" VaryByParam="none" %&amp;gt;&lt;br /&gt;&amp;lt;script runat="server"&amp;gt;&lt;br /&gt;&lt;br /&gt;  protected void Page_Load(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt; Label1.Text =DateTime.Now.ToString("G");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt; &amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body bgcolor=PaleTurquoise&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;        &amp;lt;asp:Label ID="Label1" runat="server" Text="Label"&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sayfayı yüklediğimizde ilk on saniye içinde yapılan refresh’lerde  (yenileme)  saat de hiçbir değişiklik olmadığını gözlemleriz.&lt;br /&gt;&lt;br /&gt;On saniyeden sonra yapılan refresh’de sayfadaki saatin değiştiğini görürüz.&lt;br /&gt;&lt;br /&gt;Bu durum da açıkça sayfanın onar saniyelik periyotlar için önbelleklendiğini gösterir.&lt;br /&gt;10, 20 veya 60 saniyelik önbelleklemeler aslında hiç de kısa süreler değildir. Örneğin 20 saniyelik bir önbelleklemede sunucudan dakikada en fazla 3 istekte bulunulabilir, oysa hiçbir önbellekleme yapılmazsa bu sayı teorik olarak 60 veya daha üzerinde olabilir.&lt;br /&gt;Tabii ki önbelleklemede dikkat edilecek önemli bir nokta vardır: “olaylar”!.&lt;br /&gt;Sayfanın olay yönlendirmeli akışına dikkat etmeliyiz&lt;br /&gt;&lt;br /&gt;page_cache_2.aspx&lt;br /&gt;&amp;lt;%@ Page Language="c#" %&amp;gt;&lt;br /&gt;&amp;lt;%@ OutputCache Duration="10" VaryByParam="none" %&amp;gt;&lt;br /&gt;&amp;lt;script runat="server"&amp;gt;&lt;br /&gt;   protected void Button1_Click(object sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;  &lt;br /&gt;    Session["a"] = 0;&lt;br /&gt;    Session["a"] = ((int)Session["a"]) + 1;&lt;br /&gt; Label1.Text += Session["a"].ToString() + ". olay &amp;lt;br&amp;gt;";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt; &amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body bgcolor=PaleTurquoise&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;        &amp;lt;asp:Label ID="Label1" runat="server" &amp;gt;&amp;lt;/asp:Label&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;        &amp;lt;asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu örnekte sayfa yüklendikten sonraki buton olayı 10 saniye işlem görmeyecektir, çünkü sayfa sunucunun işlenmesi sonucu değil statik olarak önbelleğinden bir kopyasının getirilmesi ile görüntülenir. Bundan dolayı olay yönlendirmelerine önbelleklemelerde dikkat etmeliyiz. Sayfa önbelleklemede verilerin nereden geldiği (kaynağı) çok önemli değildir, sonuçta sayfanın bir kopyası önbelleklenir.&lt;br /&gt; Diğer bir ifade ile verilerimiz veritabanından almamız bir şey değiştirmez, orijinal sayfa görüntüsündeki veriler önbellekleme süresince geçerlidir. Veritabanında yapılacak herhangi bir değişiklik sayfa önbelleklemesi bildirimi tekniği ile sayfamıza yansımaz. Bunun için başka teknikler kullanılır.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-8966767982921781660?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/8966767982921781660/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=8966767982921781660&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8966767982921781660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8966767982921781660'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/05/aspnetde-nbellekleme-cache.html' title='ASP.NET’de ÖNBELLEKLEME (CACHE)'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-8368557799876567856</id><published>2008-05-10T11:57:00.000+03:00</published><updated>2008-10-15T11:58:45.553+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight Video’ları Oluşturmak</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Bu makalemde size, bir silverlight videosunu nasıl oluşturacağınızı anlatacağım.&lt;br /&gt;Bir video’yu silverlight  kontrollü video ya dönüştürmek için, videoyu kontrol edecek, silverlight arabirimleri eklemeliyiz. Bu ne demek?&lt;br /&gt;Örneğin play/stop komutu verecek butonlar, videonun akışını gösterecek akış çizelgesi vs. gibi şeyler. Diğer bir ifadeyle Media player’da olan kontroller.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Microsoft Expression Encoder&lt;/b&gt;&lt;br /&gt;Bunun için Microsoft’un Expression Encoder isminde bir programı mevcut. Bu programın deneme sürümüne http://www.microsoft.com/expression/products/overview.aspx?key=encoder adresinden ulaşabilirsiniz.&lt;br /&gt;Bu program yaklaşık 8,5 MB, kurulumu oldukça kolay, arabirimiyse aşağıdaki gibi:&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;img mce_src="http://farm4.static.flickr.com/3165/2943356871_079a3bc18c_o.jpg" src="http://farm4.static.flickr.com/3165/2943356871_079a3bc18c_o.jpg" height="581" width="799" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Programın sol üst köşesine “encode” etmek istediğiniz video’yu sürükle bırak ile ilave edebiliyorsunuz. Birden fazla video ekleyebilirsiniz. Sol alt köşede video düzenlemeyle ilgili alan bulunur. Sağ taraftaysa vidonun çıktısıyla ilgili alan ve Sekmeler mevcut. Bizi şu an ilgilendiren kısım buradaki “output” sekmesidir.&lt;br /&gt;Buradan Video ya eklenecek kontrollerin biçimini, Template (şablon) açılır kutusundan seçebiliyorsunuz. Seçeneklerde pek çok şablon mevcut. Beğendiğiniz bir tanesini tıklayabilirsiniz. Seçtiğiniz şablon küçük bir pencerede size gösterilir. Daha sonra videonuzun çıktısının hangi klasöre alınacağını aşağıdaki arabirimden belirleyebiliyorsunuz.&lt;br /&gt;Bütün bunları yaptıktan sonra, sıra videonuzu “encode” etmeye geldi. Bunun için “Encode” butonuna basmanız yeterli. “Encode” işlemi, videonuzun büyüklüğüne göre bir zaman alacaktır. Daha sonra Silverlight kontrolleri  eklenmiş videonuzun çıktısı, belirttiğiniz adreste sizi bekliyor olacak:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3210/2943356787_15ae2fa156_o.jpg" src="http://farm4.static.flickr.com/3210/2943356787_15ae2fa156_o.jpg" height="170" width="316" /&gt;&lt;br /&gt;Gördüğünüz gibi gerekli javascript ve XAML dosyaları eklenmiş. Bu dosyalarda video kontrolünüzü sağlayan grafik arabirimler ve videoya komut veren kodlar bulunmakta. Sonuç olarak yapmanız gereken, Default.html dosyanıza çift tıklamak.&lt;br /&gt;Videonuz seçtiğiniz şablonla, silverlight kontrolleri eklenmiş olarak sayfada gözükecektir.&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3216/2943356933_0e3b19bf1c_o.jpg" src="http://farm4.static.flickr.com/3216/2943356933_0e3b19bf1c_o.jpg" height="550" width="736" /&gt;&lt;br /&gt;Bu dosyaları hostinginize taşımak yeterlidir. Herhangi bir derlemeye ihtiyacınız yoktur. Böylece sizin de silverlight kontrollü bir video arabiriminiz olacaktır.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-8368557799876567856?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/8368557799876567856/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=8368557799876567856&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8368557799876567856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8368557799876567856'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/05/silverlight-videolar-oluturmak.html' title='Silverlight Video’ları Oluşturmak'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-2254143830936679846</id><published>2008-05-05T12:22:00.000+03:00</published><updated>2008-11-11T12:23:10.917+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>AJAX - ASP.NET İşlem Belirteci</title><content type='html'>&lt;p&gt;Pek çok sitede görmüşsünüzdür, bir butona veya linke tıkladığınızda işlemin yapıldığını belirten bir hareketli grafik gösterilir. Bunun anlamı talep ettiğiniz işlemin yapılıyor olduğu ve biraz beklemeniz gerektiğidir. Özellikle yüklü veri talebinde ve düşük band genişliklerinde bu tip gecikmeler olabilir.&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;img mce_src="http://farm4.static.flickr.com/3166/3021148485_cea42c10de_o.jpg" src="http://farm4.static.flickr.com/3166/3021148485_cea42c10de_o.jpg" width="530" height="34" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Kullanıcı arka planda yapılan işlemlerden ve gecikmelerden çok fazla haberdar olamaz. İşlemin arka planda yapıldığı sırada bir gecikme olduğundan habersiz olan kullanıcı başka bir link veya butona basarak esas işleme son verebilir.&lt;br /&gt;Ve tabii ki bu durum kullanıcılarımızı kızdırabilir.&lt;br /&gt;Bu yüzden işlemin yapıldığını belirten  bir belirteç koymak ziyaretçilerimizin bilgilendirilmesi ve arkada çalışan işlemin kesilmemesi açısından çok faydalıdır.&lt;br /&gt;Bu yazımda size böyle bir belirtecin sayfanıza nasıl ekleneceğini anlatacağım. Tabii ki bu belirteç AJAX özellikli olacak.&lt;br /&gt;Öncelikle yapmamız gereken,  VS 2005 veya VWD Express 2005 editörümüzden  bir AJAX projesi açmak.&lt;br /&gt;Daha sonra sayfamıza, sürükle-bırakla bir label ve buton elemanı ekleyelim. &lt;br /&gt;Aşağıdaki kodları yazalım :&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;img mce_src="http://farm4.static.flickr.com/3186/3021980038_98331b01b0_o.jpg" src="http://farm4.static.flickr.com/3186/3021980038_98331b01b0_o.jpg" width="781" height="74" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Buradaki System.Threading.Thread.Sleep(5000) ifadesi sayfa yüklemesini bir miktar (yaklaşık 5-6 sn)  geciktirir. Bu satırı uygulamamızı test etmek amacıyla koyuyorum.&lt;br /&gt;Gerçek hayatta bu gecikme bir veritabanı sorgulaması veya bir servis bağlantısı gibi şeyler olabilir.&lt;br /&gt;Sayfamızı çalıştırdığımızda ve butona tıkladığımızda, butona basıldığı süreyle sayfanın geri gelme süresi arasında 5-6 saniyelik bir gecikme olduğunu sayfadaki saatten gözlemleyebiliriz:&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3018/3021148523_840cca1e3e_o.jpg" src="http://farm4.static.flickr.com/3018/3021148523_840cca1e3e_o.jpg" width="134" height="101" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img mce_src="http://farm4.static.flickr.com/3068/3021979992_51ec4320dc_o.jpg" src="http://farm4.static.flickr.com/3068/3021979992_51ec4320dc_o.jpg" width="145" height="110" /&gt;&lt;br /&gt;&lt;br /&gt;Bu esnada kullanıcı böyle bir gecikmenin olabileceğinin doğal olarak farkında değildir. Ve sanki sistem çalışmıyormuş gibi gelebilir. İşte bunu önlemek amacıyla buraya bir işlem belirteci koymakta fayda var. Kullanacağımız  belirteç, hareketli resimleri barındıran  AJAX altyapısını kullanan ve AJAX eklentileriyle gelen  belirteçtir.&lt;br /&gt;Bunun için toolbox tan &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;img mce_src="http://farm4.static.flickr.com/3070/3021148629_dd7c6cf312_o.jpg" src="http://farm4.static.flickr.com/3070/3021148629_dd7c6cf312_o.jpg" width="302" height="141" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;UpdateProgress i alıp sayfaya eklemek ve animated gif resmimizin yol tanımını yapmak yeterlidir.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3073/3021980100_af387330a2_o.jpg" src="http://farm4.static.flickr.com/3073/3021980100_af387330a2_o.jpg" width="800" height="250" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bildirimlerimizde ProgressTemplate Tagları arasında belirteç resmimizin yol tanımının yapıldığını ve ayrıca metinsel bir uyarı da eklendiğini görüyoruz.&lt;br /&gt;Label ve buton elemanlarımızın UpdatePanel bildirimleri içinde olduğuna dikkatinizi çekerim.&lt;br /&gt;Sayfamızı şimdi çalıştıracak olursak:&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3144/3021148723_7d5a05fc9f_o.jpg" src="http://farm4.static.flickr.com/3144/3021148723_7d5a05fc9f_o.jpg" width="588" height="174" /&gt;&lt;br /&gt;&lt;br /&gt;Belirteç sayesinde ziyaretçi arka planda bir işlem yapıldığını anlar ve biraz bekler. Böylece başka linklere tıklayarak işlemin yarıda kesilmesi engellenmiş olur.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-2254143830936679846?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/2254143830936679846/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=2254143830936679846&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2254143830936679846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2254143830936679846'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/05/ajax-aspnet-ilem-belirteci.html' title='AJAX - ASP.NET İşlem Belirteci'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-2633049878212559979</id><published>2008-04-20T11:47:00.000+03:00</published><updated>2008-10-15T11:48:48.109+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>ASP.NET  3.5  “LINQ to SQL”</title><content type='html'>&lt;p&gt;&lt;b&gt; Veritabanınızı kodlarınızla yönetin&lt;/b&gt;&lt;br /&gt;“Veritabanınızı kodlarınızla yönetin” ne demek? Zaten öyle yapmıyor muyuz? Evet öyle yapıyoruz ama bu biraz daha farklı. Bu yöntemde doğrudan kullandığınız programlama dilini kullanıyorsunuz. Örneğin VB.net kullanıyorsanız  LINQ sayesinde veritabanınızın nesneleri VB.NET in bir uzantısı gibi kullanılabiliyor. Hem de kod tamamlama özelliğiyle birlikte.&lt;br /&gt;İsterseniz baştan alalım. LINQ  - Language Integrated Query in kısaltılmışı. Anlamı “Dil’e entegre edilmiş  Sorgulama” Yani biraz önce açıklamaya çalıştığım  durum.  Bu konuyu daha iyi anlayabilmek için birazdan bir uygulama geliştireceğim. Ancak bu uygulamaya geçmeden  LINQ   hakkında bilgi vermek istiyorum.&lt;br /&gt;LINQ   .NET Framework 3.5 ait bir özellik. Bundan önce Framework 2.0 la birlikte eklenti paketleriyle kullanılabiliyordu. Ancak 3.5 sürümüyle birlikte tanımlı bir özellik olarak geliyor. LINQ   ASP.NET uygulamalarında kullanılabildiği gibi Windows formlar gibi diğer .NET uygulamalarında da kullanılabiliyor. Yukarıdaki açıklamalarımdan da anlaşılacağı gibi veritabanıyla, kullandığımız programlama dili arasında kodsal bir entegrasyon sunarak, veritabanımızı programlama dilimiz sayesinde sorgulamayı sağlıyor. Bunu nasıl mı yapıyor?  Hemen örneğimize geçelim.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Bir LINQ Uygulaması&lt;/b&gt;&lt;br /&gt;Bu uygulamamızda meşhur “Northwind” veritabanına bağlanıp, bir sorgulama yapacağız. Öncelikle Visual Studio 2008 veya Visual Web Developer 2008 Express editörümüzde  yeni bir web projesi oluşturalım.&lt;br /&gt; &lt;img src="http://farm4.static.flickr.com/3291/2944181090_59c41d7e56_o.jpg" mce_src="http://farm4.static.flickr.com/3291/2944181090_59c41d7e56_o.jpg" height="160" width="323" /&gt;&lt;br /&gt;&lt;br /&gt;Daha sonra yapmamız gereken veritabanımıza bağlantı sağlamak.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt; &lt;img src="http://farm4.static.flickr.com/3068/2943320825_4c3144d6bd_o.jpg" mce_src="http://farm4.static.flickr.com/3068/2943320825_4c3144d6bd_o.jpg" height="426" width="486" /&gt;&lt;br /&gt;&lt;br /&gt;Bu bağlantıdan sonra projemize çok önemli bir eleman ekleyeceğiz,  bunun için “App_Code” klasörü üzerine gelip  sağ tıklayıp “Add new item” ı seçiyoruz:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm4.static.flickr.com/3236/2944181196_b6fa826ca4_o.jpg" mce_src="http://farm4.static.flickr.com/3236/2944181196_b6fa826ca4_o.jpg" height="187" width="300" /&gt;&lt;br /&gt;Karşımıza çıkan pencereden&lt;br /&gt; &lt;img src="http://farm4.static.flickr.com/3202/2944181296_a7e5761327_o.jpg" mce_src="http://farm4.static.flickr.com/3202/2944181296_a7e5761327_o.jpg" height="446" width="789" /&gt;&lt;br /&gt;&lt;br /&gt;“LINQ to SQL Classes” ı seçtikten ve bu class’a bir isim verdikten sonra (örneğimizde Northwind.dbml)&lt;br /&gt;“Add”  butonuna tıklıyoruz.&lt;br /&gt;İşte bu  “LINQ to SQL” kod dosyası birazdan üzerinde belirteceğimiz veritabanı tablolarının kodlarımız tarafından  SQL sorgulanmasını sağlayacak her türlü sınıfı oluşturur.&lt;br /&gt;Hemen veritabanı tablolarımızdan “Categories”  ve “Products”  ı seçip bu dosyanın üzerine sürükle bırakla ekleyelim:&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm4.static.flickr.com/3007/2943321007_a29fd9e4c6_o.jpg" mce_src="http://farm4.static.flickr.com/3007/2943321007_a29fd9e4c6_o.jpg" height="318" width="799" /&gt;Bu iki tablo arasındaki “primary key”  ile olan ilişki grafiksel olarak gösterilecek ve arka planda sorgulama için gerekli  kodsal altyapı hazırlanacaktır.&lt;br /&gt;Bizim yapmamız gereken bu sınıfın bir nesnesini kodlarımızda oluşturmak.&lt;br /&gt;Bunu test edebilmek için sayfamıza bir GridView ekleyelim. Default.aspx.cs dosyamıza aşağıdaki kodları yazalım:&lt;br /&gt;&lt;br /&gt; &lt;img src="http://farm4.static.flickr.com/3283/2944181356_5c499a0959_o.jpg" mce_src="http://farm4.static.flickr.com/3283/2944181356_5c499a0959_o.jpg" height="227" width="539" /&gt;&lt;br /&gt;&lt;br /&gt;Sayfamızı çalıştırdığımızda gridimize ilgili verilerin yüklenmiş olduğunu göreceksiniz.&lt;br /&gt;Bu ifadeler tamamıyla C# diliyle entegre ve tam anlamıyla kod tamamlama özellikli.&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3021/2944181394_da6dd82f07_o.jpg" src="http://farm4.static.flickr.com/3021/2944181394_da6dd82f07_o.jpg" height="296" width="387" /&gt;&lt;br /&gt;&lt;br /&gt;İşte LINQ in kullanımı böyle.  Bu teknik, uygulama geliştiricilerin işini oldukça kolaylaştırmaktadır.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-2633049878212559979?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/2633049878212559979/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=2633049878212559979&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2633049878212559979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2633049878212559979'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/04/aspnet-35-linq-to-sql.html' title='ASP.NET  3.5  “LINQ to SQL”'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-3306381535370572792</id><published>2008-04-15T10:52:00.000+03:00</published><updated>2008-10-15T11:14:45.538+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight Metin Biçimleri</title><content type='html'>&lt;p&gt; Silverlight’da metinleri değişik biçimlerde yazmamız mümkün.&lt;br /&gt;Bildiğiniz gibi silverlight da metinler&lt;br /&gt;&amp;lt;TextBlock&amp;gt;&amp;lt;/TextBlock&amp;gt;&lt;br /&gt;Tag’ıyla  yazılır.  Daha önceki makalelerimde bu konuya kısmen değinmiştim.&lt;br /&gt;Şimdi biraz daha yakından inceleyelim.&lt;br /&gt;Bir silverlight uygulamasında metin yazdırmak için şu tarz bir bildirim yapmalıyız:&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;Canvas x:Name="parentCanvas"&lt;br /&gt;        xmlns="http://schemas.microsoft.com/client/2007"&lt;br /&gt;        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&lt;br /&gt;        Loaded="Page_Loaded"&lt;br /&gt;        x:Class="silverlight_ornek_uygulamalar._1_metin;assembly=../ClientBin/silverlight_ornek_uygulamalar.dll"&lt;br /&gt;        Width="640"&lt;br /&gt;        Height="480"&lt;br /&gt;        Background="White"&lt;br /&gt;        &amp;gt;&lt;br /&gt;  &amp;lt;TextBlock  Text="TextBlock içinde Zafer Demirkol metni "/&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/Canvas&amp;gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3146/2944150674_6e5cc43cc1_o.jpg" mce_src="http://farm4.static.flickr.com/3146/2944150674_6e5cc43cc1_o.jpg" height="103" width="580" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Gördüğünüz gibi &amp;lt;TextBlock  Text="TextBlock içinde Zafer Demirkol metni "/&amp;gt;  içinde yazdığımız metin sayfada gösteriliyor.&lt;br /&gt;TextBlock bildirimine kod tamamlamayla baktığımızda pek çok özelliğinin olduğunu gözleriz:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3066/2944150748_ce320c62ec_o.jpg" mce_src="http://farm4.static.flickr.com/3066/2944150748_ce320c62ec_o.jpg" height="308" width="490" /&gt;&lt;br /&gt;&lt;br /&gt;Metinlerin font tipini ve bir birine göre konumlarını aşağıda örnekte gösterilene benzer bildirimlerle belirleyebiliriz:&lt;br /&gt;&amp;lt;TextBlock FontFamily="Arial" Text="Arial"/&amp;gt;   &lt;br /&gt;    &amp;lt;TextBlock Canvas.Top="19" Canvas.Left="5" FontFamily="Lucida Grande, Courier New " Text="Lucida Grande, Courier New "/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock Canvas.Top="34" Canvas.Left="10" FontFamily="Comic Sans MS" Text="Comic Sans MS"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock Canvas.Top="62" Canvas.Left="15" FontFamily="Courier New" Text="Courier New"/&amp;gt; &lt;br /&gt;    &amp;lt;TextBlock Canvas.Top="74" Canvas.Left="20"   FontFamily="Verdana" Text="Verdana"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock Canvas.Top="98" Canvas.Left="25" FontFamily="Arial Black" Text="Arial Black"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock Canvas.Top="121" Canvas.Left="30" FontFamily="Times New Roman" Text="Times New Roman"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock Canvas.Top="143" Canvas.Left="35" FontFamily="Trebuchet MS" Text="Trebuchet MS"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock Canvas.Top="164" Canvas.Left="40"  FontFamily="Georgia" Text="Georgia"/&amp;gt;&lt;br /&gt;Burada Canvas’ a göre yukarıdan ve sol taraftan ne kadar mesafede olduklarını piksel cinsinden bildirebiliriz:&lt;br /&gt; &lt;img src="http://farm4.static.flickr.com/3069/2944150764_59e4b59a5d_o.jpg" mce_src="http://farm4.static.flickr.com/3069/2944150764_59e4b59a5d_o.jpg" height="217" width="364" /&gt;&lt;br /&gt;Metnin font koyuluklarını belirleyebileceğimiz pek çok özellik vardır. Bunlar en az koyudan en koyuya doğru aşağıdaki şekildedir:&lt;br /&gt;&amp;lt;TextBlock FontFamily="Courier New" FontWeight="Thin" Text="Thin"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock FontFamily="Courier New" Canvas.Left="7" Canvas.Top="17" FontWeight="ExtraLight" Text="ExtraLight"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock FontFamily="Courier New" Canvas.Left="14" Canvas.Top="34" FontWeight="Light" Text="Light"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock FontFamily="Courier New" Canvas.Left="21" Canvas.Top="48" FontWeight="Normal" Text="Normal"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock FontFamily="Courier New" Canvas.Left="28" Canvas.Top="65" FontWeight="Medium" Text="Medium"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock FontFamily="Courier New" Canvas.Left="35" Canvas.Top="82" FontWeight="SemiBold" Text="SemiBold"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock FontFamily="Courier New" Canvas.Left="42" Canvas.Top="99" FontWeight="Bold" Text="Bold"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock FontFamily="Courier New" Canvas.Left="49" Canvas.Top="116" FontWeight="ExtraBold" Text="ExtraBold"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock FontFamily="Courier New" Canvas.Left="56" Canvas.Top="133" FontWeight="Black" Text="Black"/&amp;gt;&lt;br /&gt;    &amp;lt;TextBlock FontFamily="Courier New" Canvas.Left="63" Canvas.Top="150" FontWeight="ExtraBlack" Text="ExtraBlack"/&amp;gt;&lt;br /&gt;Bu bildirimin çıktısı:&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3232/2943289997_d622494a4b_o.jpg" src="http://farm4.static.flickr.com/3232/2943289997_d622494a4b_o.jpg" height="183" width="232" /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Wrap Özelliği&lt;/span&gt;&lt;br /&gt;Bazı metinler Verdiğimiz TextBlock genişliğini aşabilir. Bu durumda metnin bir alt satıra geçip geçmeyeceğini belirleyen bir özellik vardır. Bu özelliğin ismi  TextWrapping  dir.&lt;br /&gt;Buna vereceğimiz değerlerle metnin durumunu belirleyebiliriz.&lt;br /&gt;Üç adet değer alır: “Wrap”, “NoWrap”,  “WrapWithOverflow”.&lt;br /&gt;Şimdi şöyle bir bildirim yapalım:&lt;br /&gt;&amp;lt;TextBlock  Text="Bu metni satır atlayarak yazacak" Foreground="Red" Width="100" TextWrapping="Wrap"/&amp;gt;&lt;br /&gt;Bu bildirimin çıktısı:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img mce_src="http://farm4.static.flickr.com/3157/2943290031_67e13a3366_o.jpg" src="http://farm4.static.flickr.com/3157/2943290031_67e13a3366_o.jpg" height="104" width="251" /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;TextBlock  Text="Bu metni satır atlamadan yazacak" Foreground="Red" Width="100" TextWrapping="NoWrap"/&amp;gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3046/2943290061_2025dba580_o.jpg" src="http://farm4.static.flickr.com/3046/2943290061_2025dba580_o.jpg" height="134" width="397" /&gt;&lt;br /&gt;&lt;br /&gt;“NoWrap”  olarak değer atadığımızda metne satır atlatılmamış ancak TextBlock “width” değeri aşıldığından bazı ifadeler gösterilememiş.&lt;br /&gt;&lt;br /&gt;&amp;lt;TextBlock  Text="Bu metin WrapWithOverflow özelliği ile yazdırılacak" Foreground="Red" Width="100" TextWrapping="WrapWithOverflow"/&amp;gt;&lt;br /&gt;Şeklindeki bir bildirimdeyse&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3023/2943290081_1c6be18058_o.jpg" src="http://farm4.static.flickr.com/3023/2943290081_1c6be18058_o.jpg" height="172" width="224" /&gt;&lt;br /&gt;Metin verilen genişliğe uygun olarak bölünerek yazdırılıyor.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Run Elementi&lt;/span&gt;&lt;br /&gt;Aynı TextBlock bildirimi içinde değişik font biçimleri kullanabiliriz. Bunun için “Run” elementi kullanılır:&lt;br /&gt;  &amp;lt;TextBlock Name="Metin" &amp;gt;&lt;br /&gt;   &lt;br /&gt;    &amp;lt;Run FontFamily="Verdana" Foreground="Red"&amp;gt;zafer&amp;lt;/Run&amp;gt;&lt;br /&gt;    &amp;lt;Run FontStyle="Italic" FontFamily="Comic Sans MS" Foreground="Orange"&amp;gt;Demirkol&amp;lt;/Run&amp;gt;&lt;br /&gt;    &amp;lt;Run FontSize="30" FontFamily="Georgia" Foreground="Red"&amp;gt; Silverlight &amp;lt;/Run&amp;gt;&lt;br /&gt;    &amp;lt;Run FontFamily="Arial Black" Foreground="Blue" FontSize="50"&amp;gt;Metinler&amp;lt;/Run&amp;gt;&lt;br /&gt;  &lt;br /&gt;  &amp;lt;/TextBlock&amp;gt;&lt;br /&gt;Bu  tip bir kullanımın amacı ortak değerleri olan farklı yazı tiplerini oluşturabilmektir. Örneğin buradaki TextBlock unun canvas’a olan mesafesi bütün yazı tipleri için ortak ve aynıdır.&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3062/2943290113_4abcc63028_o.jpg" src="http://farm4.static.flickr.com/3062/2943290113_4abcc63028_o.jpg" height="182" width="510" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gradient Metin&lt;/span&gt;&lt;br /&gt;Renklerin bir biri içine geçtiği eğimli renkli yazı tipleri silverlight’da kolayca oluşturulabilir. Bununla ilgili aşağıda bir örnek bildirim mevcut:&lt;br /&gt;&amp;lt;TextBlock Text="Bu metin gradient şeklinde yazılmıştır" FontSize="30" &amp;gt;&lt;br /&gt;    &amp;lt;TextBlock.Foreground&amp;gt;&lt;br /&gt;      &amp;lt;LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5"&amp;gt;&lt;br /&gt;        &amp;lt;GradientStop Color="red" Offset="0"/&amp;gt;&lt;br /&gt;        &amp;lt;GradientStop Color="#FFDD520E" Offset="0.37"/&amp;gt;&lt;br /&gt;        &amp;lt;GradientStop Color="yellow" Offset="0.861"/&amp;gt;&lt;br /&gt;      &amp;lt;/LinearGradientBrush&amp;gt;&lt;br /&gt;    &amp;lt;/TextBlock.Foreground&amp;gt;&lt;br /&gt;  &amp;lt;/TextBlock&amp;gt;&lt;br /&gt;Burada gradient renklerin başlama ve bitiş noktalarının nasıl belirtileceği çok açıktır. Renk dengesizliği değerleri ve konum bilgileri aşağıdaki şekilde bir metin renk dolgusu oluşturur:&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3209/2944150928_068454e8d5_o.jpg" src="http://farm4.static.flickr.com/3209/2944150928_068454e8d5_o.jpg" height="100" width="577" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-3306381535370572792?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/3306381535370572792/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=3306381535370572792&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3306381535370572792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3306381535370572792'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/04/silverlight-metin-biimleri.html' title='Silverlight Metin Biçimleri'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-7717468185302425648</id><published>2008-04-11T14:38:00.000+03:00</published><updated>2008-11-11T14:44:54.624+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Visual Studio 2008 - 2</title><content type='html'>&lt;p&gt;&lt;br&gt;Geçen yazımda Visual Studio 2008’i tanıtmaya başlamıştım. Bu yazımda konuya devam edeceğim. &amp;nbsp;&lt;br&gt;Visual Studio 2008’le gelen yeniliklerden biri de, tasarım ekranının split (ayrılmış) tarzda düzenlenmiş olmasıdır. Aynen gelişmiş HTML editörlerinde olduğu gibi, &lt;br&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3165/3022163900_ff3695b163_o.jpg" src="http://farm4.static.flickr.com/3165/3022163900_ff3695b163_o.jpg" width="800" height="544"&gt;&lt;br&gt;Böylece toolbox’dan sayfaya eklediğiniz herhangi bir kontrolün, hem kaynak bildirimini hem de tasarım görünümünü aynı ekranda izleyebiliyorsunuz.&lt;br&gt;Burada dikkat çeken bir diğer farklılık, tasarım (design) ekranında kontrollerin isimlendirme, boyutlandırma eklentilerinin zenginleştirilmiş olmasıdır. Böylece kontroller üzerindeki hakimiyet daha arttırılmış ve olası silverlight uygulamaları için uyum sağlanmış.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br&gt;&lt;b&gt;Gelişmiş CSS Desteği&lt;/b&gt;&lt;br&gt;Visual Studio 2008 ile birlikte gelişmiş bir CSS desteği de geliyor. Eski editörlere kıyasla oldukça yetenek kazanmış olan bu özellik, tam anlamıyla bir CSS otomasyonu sağlıyor.&lt;br&gt;Yeni bir CSS kolayca oluşturabiliyor, elementlerini kod tamamlama veya görsel arabirimlerle hızlıca oluşturabiliyorsunuz.&lt;br&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3135/3022163984_cfed678696_o.jpg" src="http://farm4.static.flickr.com/3135/3022163984_cfed678696_o.jpg" width="439" height="311"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;JavaScript Desteği&lt;/b&gt;&lt;br&gt;ASP.NET yazılımcıları olarak uzun zamandır düzgün bir Javascript editörü aradık. Javascript’de düzgün bir editör oluşturmanın en büyük zorluklarından birisi, dil olarak tam anlamıyla nesneye yönelimli bir yapısı olmaması. Nesneler arasındaki ilişkiler, yatay ve dikey anlamda oldukça karmaşık ve hiyerarşik yapıdan uzak. Oysa bir editördeki kod tamamlamayı ve ilişkileri oluşturmayı sağlayan alt yapıyı, nesneler arası ilişkilerin hiyerarşisinin iyi belirlenmiş olması sağlar. Ancak Microsoft mühendisleri bu zorluğu bir şekilde aştılar ve bize tam anlamıyla kod tamamlayıcı özellikli bir Javascript editörü de sundular Visual Studio 2008’de. Bu çok önemli çünkü bildiğiniz gibi yeni nesil AJAX, silverlight gibi uygulamalarda javascript sıkça kullanılıyor. &lt;br&gt;Visual Studio 2008 sadece javascript kod tamamlamayı değil aynı zamanda javascript debugging (hata yakalama) özelliği ile de dikkat çekiyor, böylece bir javascript kod’da nerede hata yaptığınızı kolayca bulabiliyorsunuz:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3003/3021331805_5e2b7701d3_o.jpg" src="http://farm4.static.flickr.com/3003/3021331805_5e2b7701d3_o.jpg" width="548" height="321"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;b&gt;&lt;br&gt;XAML ve Silverlight&lt;/b&gt;&lt;br&gt;Visual Studio 2008 XAML’ı&amp;nbsp; (Extensible Application Markup Language ) tam anlamıyla destekler.&amp;nbsp; XAML geleneksel programlama dilleri ve javascript ile birlikte Silverlight’ın alt yapısını oluşturur. Bu anlamda&amp;nbsp; Visual Studio 2008 de bir silverlight projesi açıp, üzerinde çalışmak mümkündür. Bu haliyle Silverlight için gereken bütün ortamı sunar:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3254/3022164336_c6376b4fcb_o.jpg" src="http://farm4.static.flickr.com/3254/3022164336_c6376b4fcb_o.jpg" width="788" height="486"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;Diğer Yeni özellikler&lt;/b&gt;&lt;br&gt;Visual Studio 2008 ile birlikte gelen diğer yeni özellikleri şöyle özetleyebiliriz:&lt;br&gt;Language Integrated Query (LINQ) bu özellik sayesinde veriyle ilişkimiz kodlarımıza entegre olarak bir nesne modeli gibi olur.&amp;nbsp; Daha önceki VS sürümlerinde olmayan bu teknoloji Visual Studio 2008 birlikte kullanımımıza sunuluyor.&lt;br&gt;&amp;lt;asp:ListView&amp;gt; , &amp;lt;asp:LinqDataSource&amp;gt;, &amp;lt;asp:DataPager&amp;gt; gibi yeni veri kontrolleri geliyor.&lt;br&gt;Bu yazımda size Visual Studio 2008 ile birlikte gelen yenilikleri ana hatlarıyla tanıtmaya çalıştım. Bu haliyle Visual Studio 2008 uygulama geliştiricilere çağdaş uygulamalar için gereken bütün alt yapıyı sunuyor. &lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-7717468185302425648?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/7717468185302425648/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=7717468185302425648&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7717468185302425648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7717468185302425648'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/04/visual-studio-2008-2.html' title='Visual Studio 2008 - 2'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-9057916225436168661</id><published>2008-04-11T13:39:00.000+03:00</published><updated>2008-11-11T13:45:58.642+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET AJAX Tab’ları</title><content type='html'>&lt;p&gt;&lt;br /&gt;Tab arabirimlerini hepimiz biliriz. Bunlar fiziksel bir klasördeki ayıraçlara benzerler. Son zamanlarda sıkça web sitelerinde görülmeye başladı.&lt;br /&gt;Görünümü aşağıdaki gibidir:&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img mce_src="http://farm4.static.flickr.com/3031/3021238945_5903b2dac6_o.jpg" src="http://farm4.static.flickr.com/3031/3021238945_5903b2dac6_o.jpg" width="351" height="219" /&gt;&lt;br /&gt;Tabii şekilsel olarak pek çok düzenleme yapılabilir.&lt;br /&gt;Türkçedeki karşılığı “sekme” olan tab” lar, belirli kategorideki konulara kolayca ulaşmak için kullanılır.&lt;br /&gt;Kullanıcıya erişim ve anlayış kolaylığı sağlar.&lt;br /&gt;Bu makalemde ASP.NET AJAX kontrol elemanlarından olan TabContainer kontrolü ile nasıl tab arabirimleri geliştirebileceğimizi anlatacağım.&lt;br /&gt;Aslında böyle bir arabirim oluşturmak geleneksel yöntemlerle çok basit değil. Ancak AJAX kontrolü sayesinde bunu birkaç sürükle bırak hamlesiyle yapabileceğiz.&lt;br /&gt;Öncelikli olarak editörümüzde AJAX özellikli bir proje açalım.&lt;br /&gt;Daha sonra default.aspx sayfamıza AJAX kontrollerinden TabContainer kontrolünü sürükle-bırak ile ekleyelim&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;img mce_src="http://farm4.static.flickr.com/3239/3021238997_89f6c366fc_o.jpg" src="http://farm4.static.flickr.com/3239/3021238997_89f6c366fc_o.jpg" width="339" height="269" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Bu haliyle henüz tab’larımız sayfamızda gözükmez.&lt;br /&gt;Sadece bir alt yapı hazırladık. Şimdi yapmamız gereken tab’ları tanımlamak.&lt;br /&gt; Bunun için bazı bildirimlerde bulunacağız:&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3136/3022070886_975acd532c_o.jpg" src="http://farm4.static.flickr.com/3136/3022070886_975acd532c_o.jpg" width="800" height="341" /&gt;&lt;br /&gt;Burada her bir tab’ın başlık bilgisini ve içeriğini tanımlıyoruz. Bu içerik metin biçiminde olabileceği gibi örneğin HTML biçiminde de olabilir.&lt;br /&gt;Şimdi sayfamızı yüklersek, aynen yukarıdaki ekran görüntüsünde olduğu gibi, tab görüntülü ve içeriği oluşturulmuş bir arabirim görürüz. Burada şaşırtıcı olan ve geliştiricinin işini kolaylaştıran noktaysa, herhangi bir tab şekli tanımlamadan doğrudan bir görüntü alabilmemiz. Tabii ki bu tab’ları şekilsel olarak düzenleyemeyiz anlamına gelmez.&lt;br /&gt;Bu tab arabirimi kullanıcı taraflı çalışır ve içerik, sayfayla birlikte bütün tab’lar için yüklenir.&lt;br /&gt;Kullanıcı taraflı bir olay tanımı yapmak istersek nasıl bir yol izlenir?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;Tab’larda Kullanıcı Taraflı Event (olay)  Bildirimleri&lt;/b&gt;&lt;br /&gt;Bunun için JavaScript fonksiyonları kullanılır ve kontrolümüzde bu fonksiyon ismi bildirilir.&lt;br /&gt;Örneğin aktif tab değiştiğinde kullanıcı taraflı bir takım işlemler yapmak istiyorsak:&lt;br /&gt;&amp;lt;cc1:tabcontainer id="TabContainer1" runat="server" OnClientActiveTabChanged="AktifTabDegisti"&amp;gt; &lt;br /&gt;Şeklinde bir bildirimde bulunmalıyız. Tabii bu fonksiyonu da sayfamızda oluşturmalıyız. Aksi takdirde bir JavaScript hatası alırız:&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;       &lt;br /&gt;   &lt;br /&gt;    function AktifTabDegisti(sender, e) {&lt;br /&gt;    }&lt;br /&gt; &amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;Aynı şekilde örneğin tab’lardan biri tıklandığında o tab’a özel kullanıcı taraflı bir işlem başlatabiliriz&lt;br /&gt;&amp;lt;cc1:TabPanel runat="Server" ID="Panel3" OnClientClick="PanelTiklandi" HeaderText="Üçüncü Tab"&amp;gt;&lt;br /&gt;Tabii ki bunun da fonksiyonunu tanımlamayı unutmuyoruz:&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;       &lt;br /&gt;    function PanelTiklandi(sender, e) {&lt;br /&gt;    }&lt;br /&gt;    function AktifTabDegisti(sender, e) {&lt;br /&gt;    }&lt;br /&gt; &amp;lt;/script&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Sunucu Taraflı Event (olay yakalama) &lt;/b&gt;&lt;br /&gt;Tab’ların sunucu taraflı işlemlerdeki durumunu basit birkaç örnekle anlayabiliriz.&lt;br /&gt;Bunun için öncelikli olarak tab’lardan herhangi birisinin içine bir buton ve Label kontrolü yerleştireceğiz. Daha sonra butona tıklayacağız ve kodlarımızda belirttiğimiz metnin bu Label’a atamasını isteyeceğiz. Bakalım nasıl bir sonuç elde edeceğiz.&lt;br /&gt;&lt;br /&gt;Şimdi de kod sayfamıza aşağıdaki şekilde kodlar yazalım:&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3003/3022070910_2dec984ddd_o.jpg" src="http://farm4.static.flickr.com/3003/3022070910_2dec984ddd_o.jpg" width="799" height="97" /&gt;&lt;br /&gt;&lt;br /&gt;Sayfamızı yükleyip, 3. Tab’daki butona bastığımızda www.zaferdemirkol.com metnimizin, Label’ımıza atanmış ve sayfada gösterilmiş olduğunu görürüz.&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3269/3021239105_45e74026d5_o.jpg" src="http://farm4.static.flickr.com/3269/3021239105_45e74026d5_o.jpg" width="325" height="204" /&gt;&lt;br /&gt;Son olarak TabContainer dışındaki bir kontrolün sunucu taraflı tepkisine bakalım.&lt;br /&gt;Bunun için TabContainer dışına bir buton ekliyorum. Tab’lardan birisinin içine de bir Label elemanı yerleştiriyorum:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3208/3022070940_b751ee8202_o.jpg" src="http://farm4.static.flickr.com/3208/3022070940_b751ee8202_o.jpg" width="800" height="87" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3242/3022071038_24d736b998_o.jpg" src="http://farm4.static.flickr.com/3242/3022071038_24d736b998_o.jpg" width="800" height="76" /&gt;&lt;br /&gt;Birinci tab’dayken aşağıdaki butona tıklayınca ilgili metnin tab’ın içindeki Label’a atandığını göreceksiniz.&lt;br /&gt;Bu örnekler bize, tab kontrolünün postback (sayfanın sunucuya gidip gelmesi) uyumlu çalıştığını gösterir.&lt;br /&gt;Bütün bu sunucu taraflı aktiviteleri yapmak için fazladan bir şey yapmanıza gerek yoktur.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-9057916225436168661?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/9057916225436168661/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=9057916225436168661&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/9057916225436168661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/9057916225436168661'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/04/aspnet-ajax-tablar.html' title='ASP.NET AJAX Tab’ları'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-5258444209172778101</id><published>2008-04-05T11:59:00.000+03:00</published><updated>2008-11-11T12:00:20.887+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET 2.0 Projenizi AJAX Özellikli Yapmak</title><content type='html'>Elinizde hâlihazırda bulunan ASP.NET 2.0 projenizi AJAX özellikli proje haline getirebilir misiniz?&lt;br /&gt;Makalemde bu konuyu inceleyeceğiz.&lt;br /&gt;Sorunun kısa cevabı evet’dir.&lt;br /&gt;Aslında bu iş yeni bir AJAX projesi oluşturmaktan pek farklı değildir.&lt;br /&gt;Diğer bir ifadeyle bu işlem oldukça kolaydır.&lt;br /&gt;İsterseniz en baştan gidelim ve öncelikle klasik anlamda bir sayfa geliştirelim.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ASP.NET 2.0 Sayfası&lt;/b&gt;&lt;br /&gt;Bildiğiniz gibi klasik bir aspx sayfası server’dan istem yaptığında postback özellikli çalışır. Diğer bir ifadeyle sayfanın tamamı refresh edilir veya yenilenir.&lt;br /&gt;İşte size bir örnek:&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;br /&gt;    Namespace="System.Web.UI" TagPrefix="asp" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;        &amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;   &lt;br /&gt;    &amp;lt;/div&amp;gt;    &lt;br /&gt;       &lt;br /&gt;        &amp;lt;table bgcolor="#99ccff"&amp;gt;&lt;br /&gt;                    &amp;lt;tr&amp;gt;&lt;br /&gt;                        &amp;lt;td style="width: 100px; height: 3px"&amp;gt;&lt;br /&gt;                            Ad:&amp;lt;/td&amp;gt;&lt;br /&gt;                        &amp;lt;td style="width: 100px; height: 3px"&amp;gt;&lt;br /&gt;                            &amp;lt;asp:TextBox ID="TextBox1" runat="server"&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;                    &amp;lt;/tr&amp;gt;&lt;br /&gt;                    &amp;lt;tr&amp;gt;&lt;br /&gt;                        &amp;lt;td style="width: 100px"&amp;gt;&lt;br /&gt;                            Soyad:&amp;lt;/td&amp;gt;&lt;br /&gt;                        &amp;lt;td style="width: 100px"&amp;gt;&lt;br /&gt;                            &amp;lt;asp:TextBox ID="TextBox2" runat="server"&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;                    &amp;lt;/tr&amp;gt;&lt;br /&gt;                    &amp;lt;tr&amp;gt;&lt;br /&gt;                        &amp;lt;td style="width: 100px; height: 21px"&amp;gt;&lt;br /&gt;                        &amp;lt;/td&amp;gt;&lt;br /&gt;                        &amp;lt;td style="width: 100px; height: 21px"&amp;gt;&lt;br /&gt;                        &amp;lt;/td&amp;gt;&lt;br /&gt;                    &amp;lt;/tr&amp;gt;&lt;br /&gt;                &amp;lt;/table&amp;gt;&lt;br /&gt;                &amp;lt;asp:Button ID="Button1" runat="server" Text="Button" /&amp;gt;&lt;br /&gt;        &amp;lt;asp:Label ID="Label1" runat="server" Text="Label"&amp;gt;&amp;lt;/asp:Label&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;        &amp;lt;br /&amp;gt;&lt;br /&gt;        &amp;amp;nbsp;&lt;br /&gt;    &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;Sayfamız iki metin kutusu, bir buton,  bir label dan oluşuyor. Şimdi butonu tıkladığımızda label kontrolüne o anki zaman atanacak ve sayfada gösterilecek.&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3270/3021120921_f03d187525_o.jpg" src="http://farm4.static.flickr.com/3270/3021120921_f03d187525_o.jpg" width="287" height="141" /&gt;&lt;br /&gt;&lt;br /&gt;Sayfada butona her tıklamada saat değişiyor.&lt;br /&gt;&lt;br /&gt;İşte bu klasik anlamda bir ASP.NET uygulamasıdır.&lt;br /&gt;Bu kodlar, bildirimler daha önceden yazılmış ve elinizde böyle bulunuyor olabilir.&lt;br /&gt;Ama biz, mevcut projemizde kaynaklardan tasarruf etmek isteyip sayfanın bu kısmını AJAX özellikli yapmak isteyebiliriz.&lt;br /&gt;Yani sadece giriş yordamının güncellenmesini isteyip sayfanın diğer kısmının boşuna işlenmemesini isteyebiliriz.&lt;br /&gt;Bunun için birkaç ilave yapmalıyız. Aslında bu işlem en baştan bir AJAX uygulaması geliştirmekten farklı değildir.&lt;br /&gt;Bunun için, sayfamızın ilgili birimlerini AJAX kontrolleri içinde tanımlamalıyız.&lt;br /&gt;Öncelikli olarak ScriptManager Kontrolünü sayfamıza eklemeliyiz:&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3193/3021952420_9cfda0bd87_o.jpg" src="http://farm4.static.flickr.com/3193/3021952420_9cfda0bd87_o.jpg" width="612" height="308" /&gt;&lt;br /&gt;&lt;br /&gt;Daha sonra güncellenmesini istediğimiz kontrolleri UpdatePanelin içine taşımalıyız.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hatırlayacağınız gibi yeni bir AJAX uygulaması geliştirirken de aynı yöntemleri izliyorduk.&lt;br /&gt;Bu haliyle kontrollerimiz AJAX özellikli oldu. Bu mantıkla, projemizde bulunan diğer sayfalardaki kontrolleri de AJAX Kontrolleri içine taşıyıp uygulamamızı AJAX özellikli yapabiliriz.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;web.config Bildirimleri&lt;/b&gt;&lt;br /&gt;Ancak bir projenin tam anlamıyla AJAX özellikli bir proje haline gelmesini istiyorsak, web.config dosyamızda da bazı bildirimlerde bulunmamız gerekiyor.&lt;br /&gt;Diğer bir ifadeyle web.config dosyamızı da AJAX özellikli yapmalıyız.&lt;br /&gt;Peki nedir bu bildirimler?&lt;br /&gt;Oldukça fazla. Burada izlenecek en iyi yöntem, AJAX özellikli yeni oluşturulmuş  bir projenin bildirimlerini alıp, klasik özellikteki web.config dosyamıza eklemektir.&lt;br /&gt;Yapmamız gereken sadece bu. Ancak dikkat etmemiz gereken, bildirimleri doğru biçimde eklemektir.&lt;br /&gt;Mevcut web.config dosyanızda projenizle ilgili, veritabanı bağlantı stringleri, üyelik bilgileri  gibi kritik bildirimler olabilir.&lt;br /&gt;Bundan dolayı yeni AJAX web.config dosyasını elinizde bulunan web.config dosyasının yerine getiremeyebilirsiniz.&lt;br /&gt;Bunun yerine AJAX bildirimlerini mevcut dosyanızda ilgili yerlere ilave etmelisiniz.&lt;br /&gt;Örneğin &amp;lt;configuration&amp;gt; &amp;lt;/configuration&amp;gt; bildirimlerinin arasına&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3167/3021121159_5f5d923a24_o.jpg" src="http://farm4.static.flickr.com/3167/3021121159_5f5d923a24_o.jpg" width="800" height="152" /&gt;&lt;br /&gt;&lt;br /&gt;Elementlerini eklemelisiniz.&lt;br /&gt;Aynı şekilde, &amp;lt;system.web&amp;gt; &amp;lt;/system.web&amp;gt; arasına &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3181/3021952600_e9f348c098_o.jpg" src="http://farm4.static.flickr.com/3181/3021952600_e9f348c098_o.jpg" width="799" height="177" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;bildirimlerini eklemelisiniz.&lt;br /&gt;Ayrıca web.config sayfasına normal bir ASP.NET web.config sayfasından farklı aşağıdaki bildirimleri de ilave etmelisiniz:&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3228/3021121325_bfb3c0bc4a_o.jpg" src="http://farm4.static.flickr.com/3228/3021121325_bfb3c0bc4a_o.jpg" width="800" height="554" /&gt;&lt;br /&gt;&lt;br /&gt;Bütün bunların alt elementlerini ve detaylarını yeni oluşturulmuş AJAX özellikli web.config dosyasında bulabilirsiniz.&lt;br /&gt;&lt;br /&gt;Böylece projeniz web.config dosyanızda dahil olmak üzere bir AJAX projesi özelliği kazanır.&lt;br /&gt;Şimdi sayfamıza UpdatePanel in dışında yine bir label kontrolü ekleyelim ve bu kontrole de aynen diğerinde olduğu gibi zamanı gösteren bir bildirim atayalım ve sayfa yükleme yordamına bağlayalım:&lt;br /&gt;&lt;br /&gt;Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load&lt;br /&gt;        Label1.Text = DateTime.Now&lt;br /&gt;        Label2.Text = DateTime.Now&lt;br /&gt;    End Sub&lt;br /&gt;&lt;br /&gt;Sayfa ilk çağrıldığında her iki label’ında aynı saati gösterdiğini; ancak butona her tıklamada, Label2 deki saatin değişmediğini ama Label1 deki saatin arttığını göreceksiniz.&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3195/3021952760_4a61f63729_o.jpg" src="http://farm4.static.flickr.com/3195/3021952760_4a61f63729_o.jpg" width="289" height="175" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-5258444209172778101?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/5258444209172778101/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=5258444209172778101&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5258444209172778101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5258444209172778101'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/04/aspnet-20-projenizi-ajax-zellikli.html' title='ASP.NET 2.0 Projenizi AJAX Özellikli Yapmak'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-2808784508045804</id><published>2008-03-04T10:57:00.000+02:00</published><updated>2008-03-04T10:58:51.168+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET 3.5 ListView Kontrolü</title><content type='html'>ListView kontrolü ASP.NET 3.5 ile birlikte yeni olarak gelen iki kontrolden&lt;br /&gt;biridir. Diğeri DataPager kontrolüdür.&lt;br /&gt;&lt;br /&gt;Bu makalemde size ListView kontrolünü tanıtacağım. ASP.NET’ in diğer&lt;br /&gt;sürümleriyle çalışanlar DataList ve Repeater kontrollerini hatırlayacaklardır.&lt;br /&gt;ListView kontrolü DataList ve Repeater kontrollerine çok benzemekle beraber&lt;br /&gt;kendine özel bir yapıya sahiptir.&lt;br /&gt;&lt;br /&gt;Bildiğiniz gibi ASP.NET’de veriyi sunmak için GridView, DataList gibi verinin&lt;br /&gt;çabuk bağlantılandırıldığı güçlü kontroller vardır. Bunun yanında zaman zaman&lt;br /&gt;olukça esnek ve farklı veri sunumları yapmak isteyebiliriz. Verilerimizi değişik&lt;br /&gt;listeler ve gruplar şeklinde kullanıcılara göstermek isteyebiliriz. İşte bu tip&lt;br /&gt;bir tasarım ihtiyacını karşılamak için ListView kontrolü ASP.NET 3.5 ile&lt;br /&gt;birlikte gelmekte.&lt;br /&gt;&lt;br /&gt;Yukarda saydığım işler için tasarlanmış ListView kontrolü Toolbox ımızda Data&lt;br /&gt;kontrollerinin altındadır.&lt;br /&gt;&lt;br /&gt;Şimdi hemen örneğimize geçip basit bir veri listelemesi yapalım.&lt;br /&gt;&lt;br /&gt;Bu örneğimiz için her zaman kullandığımız northwind veritabanını kullanacağız.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farm4.static.flickr.com/3052/2309926902_7c3e7fe077_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm4.static.flickr.com/3052/2309926902_7c3e7fe077_o.jpg" border="0" height="162" width="409" /&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Burada ListView kontrolünün şablonlardan (template) oluştuğunu görüyorsunuz. Bu&lt;br /&gt;şablonlardan iki tanesi önemlidir. Bunlardan bir tanesi LayoutTemplate şablonu,&lt;br /&gt;ListView kontrolümüzün genel görünümü ile ilgilidir ve bütünü için geçerlidir.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Diğer şablon ItemTemplate ise her bir veri satırının şeklini – durumunu-&lt;br /&gt;belirleyen şablondur. Listemizdeki her bir birim için uygulanır. Nitekim&lt;br /&gt;sayfamıza bakacak olursak veri listemizin aşağıdaki gibi gösterildiğini görürüz:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2094/2309123085_f291e627ff_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2094/2309123085_f291e627ff_o.jpg" border="0" height="269" width="282" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Buradaki kodlarda diğer kilit ifadeyse:&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:PlaceHolder runat="server" ID="itemPlaceholder"&amp;gt;&amp;lt;/asp:PlaceHolder&amp;gt;&lt;br /&gt;&lt;br /&gt;Bu bildirimi yapmak zorundayız aksi durumda kodlarımız hata verir.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Veriyi Gruplar Şeklinde Sunmak&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Şimdi ListView’ ın başka bir kullanımı olan gruplar halinde verilerin&lt;br /&gt;gösterilmesini inceleyeceğiz.&lt;br /&gt;&lt;br /&gt;Bunun için aşağıdaki şekilde bir bildirim yapmalıyız:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3149/2309927088_38931b27dd_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm4.static.flickr.com/3149/2309927088_38931b27dd_o.jpg" border="0" height="257" width="429" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Buradaki LayoutTemplate şablonunu yukarıdan tanıyoruz. Ancak bu sefer farklı&lt;br /&gt;olarak ListView ana bildiriminde ID’sinin ne olacağı GroupPlaceholderID="grup"&lt;br /&gt;ile belirtilmiş. Biz de buna uygun olarak LayoutTemplate bildiriminde ID’sini bu&lt;br /&gt;şekilde belirtiyoruz.&lt;br /&gt;&lt;br /&gt;Bu kodlarda yukarıdakinden farklı olarak GroupTemplate şablonu bildirimi&lt;br /&gt;yapılıyor.&lt;br /&gt;&lt;br /&gt;Mantık diğer şablonlarda olduğu gibidir ancak burada bir gruba ait şablon&lt;br /&gt;tanımlanır. ListView ana bildiriminde grup şablonundaki birimlerin sayısı&lt;br /&gt;GroupItemCount="5" ifadesiyle 5 olarak belirleniyor. Böylece grup şablonumuzdaki&lt;br /&gt;veriler 5 lik birimler olarak listelenecek. Sayfamızın görüntüsü:&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/97124872@N00/2309123227/sizes/o/"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2071/2309123227_f63c18055c_o.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Sütunların Belirlenmesi&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ListView ile ilgili son bir kullanım daha göstermek istiyorum. Bazen liste&lt;br /&gt;şeklindeki verilerimizi “bir” den fazla sütunda olmasını isteriz. Böylece&lt;br /&gt;okunması ve görünümü daha rahat olur.&lt;br /&gt;&lt;br /&gt;Bunu ListView da yapmak çok kolay.&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2075/2309927250_c515d6c7fa_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2075/2309927250_c515d6c7fa_o.jpg" border="0" height="303" width="469" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Burada yukarıdaki örneğimizden farklı bir ifade yok. Sadece şablon tasarımı&lt;br /&gt;farklı. Bu şablon bir tablo şeklinde tanımlanmış ve Grup şablonu olarak tablonun&lt;br /&gt;satırları bildirilmiş. Her bir gruptaki veriler şablondaki ItemTemplate deki&lt;br /&gt;&amp;lt;td&amp;gt; elemanının içine yerleştirilmiş. Gruptaki yenileme sayısı&lt;br /&gt;GroupItemCount="4" olarak bildirilmiş. Sonuçta her bir satırında 4 er sütun&lt;br /&gt;sayısı olan veri listesi elde edilmiş. GroupItemCount Değerini değiştirerek&lt;br /&gt;dilediğimiz sayıda sütundan oluşan veri listeleri elde edebiliriz.&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm4.static.flickr.com/3153/2309123399_d4190a2a48_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm4.static.flickr.com/3153/2309123399_d4190a2a48_o.jpg" border="0" height="109" width="405" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-2808784508045804?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/2808784508045804/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=2808784508045804&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2808784508045804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2808784508045804'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/03/aspnet-35-listview-kontrol.html' title='ASP.NET 3.5 ListView Kontrolü'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-3433824268442126925</id><published>2008-03-03T11:46:00.000+02:00</published><updated>2008-11-11T11:48:52.270+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Kod Dosyaları Oluşturmak ve Kullanmak</title><content type='html'>&lt;p&gt;&lt;br /&gt;Visual Web Developer 2005 Express ve Visual Studio 2005 editörleri ile birlikte gelen en yararlı yeni özelliklerden biri de kod parçacıklarını bir dosya şeklinde tanımlayabilmeniz ve bunları daha sonradan kullanabilmenizdir.&lt;br /&gt;Bunu nasıl yapacağımızı bu makalemizde inceleyeceğiz?&lt;br /&gt;Öncelikle kod parçacıkları ne demektir?&lt;br /&gt;İngilizcesi “code snippets” olan ufak kod parçacıkları birden fazla yerde pek çok kez kullanılan veya kullanılabilecek küçük faydalı kodlardır.&lt;br /&gt;Bunlar bir class oluşturmaktan, bir login yordamı yaratmaya kadar pek çok amaçlı olabilirler.&lt;br /&gt;Yazılımcı olarak bizler de her seferinde bu kodları baştan tek tek yazmak yerine bir yerden çağırarak, kendi değerlerimizi vererek bir hamlede kullanmak isteriz.&lt;br /&gt;&lt;br /&gt;Bu kod parçacıklarını sadece ilgili değişkenleri tanımlayarak doğrudan diğer kodlarınızın içine dâhil edebilirsiniz.&lt;br /&gt;Hatta daha önceden başkaları tarafından oluşturulmuş kodları alıp kullanabilirsiniz.&lt;br /&gt;Gerçekten çok faydalı bir yöntem.&lt;br /&gt;Bu yöntem hem Visual Web Developer 2005 Express de hem de Visual Studio 2005 editöründe kullanılabiliyor.&lt;br /&gt;Editörümüzün tools menüsünden “Code Snippets Manager” a ulaşabiliriz.&lt;br /&gt;Küçük kod parçacıklarımızı yöneteceğimiz arabirim buradan çıkar.&lt;br /&gt;Veya bu menüde göremeyenler için (Visual Studio 2005)  , ctrl+B  ile kısa yoldan ulaşılabilir.&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3202/3021936502_849dcaaeb7_o.jpg" src="http://farm4.static.flickr.com/3202/3021936502_849dcaaeb7_o.jpg" width="337" height="208" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Buraya tıkladığınızda aşağıdaki ekran çıkacaktır:&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3296/3021105133_bc1c31d2b5_o.jpg" src="http://farm4.static.flickr.com/3296/3021105133_bc1c31d2b5_o.jpg" width="619" height="399" /&gt;&lt;br /&gt;&lt;br /&gt;Bu pencere kodlarınızı yönettiğiniz penceredir. Ancak öncelikle bir küçük kod dosyası veya İngilizcesiyle “code snippet” dosyası oluşturmalısınız.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Code Snippet Dosyası&lt;br /&gt;Bu dosyalar küçük kodlarınızı oluşturduğunuz, onları tanımladığınız kimliklendirdiğiniz ve code snippets penceresi vasıtasıyla editörünüze dâhil etmeye hazır hale getirdiğiniz özel XML dosyalarıdır. Bu dosyalar XML geçerlilik kurallarına göre oluşturulup, snippet kurallarına göre tag(etiket) tanımları yapılır. Böylece elinizde kullanıma hazır bir kod parçacığı bulunur.&lt;br /&gt;&lt;br /&gt;Şimdi bu tarzda oluşturulmuş bir dosyayı aşağıda vereceğim ve sonra detaylarını inceleyeceğiz. Öncelikle bu dosyaların uzantıları .snippet dır;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Deneme.snippet&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"&amp;gt;&lt;br /&gt;  &amp;lt;CodeSnippet Format="1.0.0"&amp;gt;&lt;br /&gt;    &amp;lt;Header&amp;gt;&lt;br /&gt;      &amp;lt;Title&amp;gt;class tanimi&amp;lt;/Title&amp;gt;&lt;br /&gt;      &amp;lt;Shortcut&amp;gt;class kisayol&amp;lt;/Shortcut&amp;gt;&lt;br /&gt;      &amp;lt;Description&amp;gt;Class oluşturma &amp;lt;/Description&amp;gt;&lt;br /&gt;      &amp;lt;Author&amp;gt;zafer demirkol&amp;lt;/Author&amp;gt;&lt;br /&gt;      &amp;lt;SnippetTypes&amp;gt;&lt;br /&gt;        &amp;lt;SnippetType&amp;gt;Expansion&amp;lt;/SnippetType&amp;gt;&lt;br /&gt;      &amp;lt;/SnippetTypes&amp;gt;&lt;br /&gt;    &amp;lt;/Header&amp;gt;&lt;br /&gt;    &amp;lt;Snippet&amp;gt;&lt;br /&gt;      &amp;lt;Declarations&amp;gt;&lt;br /&gt;        &amp;lt;Literal&amp;gt;&lt;br /&gt;          &amp;lt;ID&amp;gt;classad&amp;lt;/ID&amp;gt;&lt;br /&gt;          &amp;lt;ToolTip&amp;gt;Class ismi&amp;lt;/ToolTip&amp;gt;&lt;br /&gt;          &amp;lt;Default&amp;gt;ornekclass&amp;lt;/Default&amp;gt;&lt;br /&gt;        &amp;lt;/Literal&amp;gt;&lt;br /&gt;        &amp;lt;Literal&amp;gt;&lt;br /&gt;          &amp;lt;ID&amp;gt;tip&amp;lt;/ID&amp;gt;&lt;br /&gt;          &amp;lt;ToolTip&amp;gt;ornek tipi&amp;lt;/ToolTip&amp;gt;&lt;br /&gt;          &amp;lt;Default&amp;gt;sablon_class&amp;lt;/Default&amp;gt;&lt;br /&gt;        &amp;lt;/Literal&amp;gt;&lt;br /&gt;        &amp;lt;Literal&amp;gt;&lt;br /&gt;          &amp;lt;ID&amp;gt;alan&amp;lt;/ID&amp;gt;&lt;br /&gt;          &amp;lt;ToolTip&amp;gt;alan&amp;lt;/ToolTip&amp;gt;&lt;br /&gt;          &amp;lt;Default&amp;gt;nesnem&amp;lt;/Default&amp;gt;&lt;br /&gt;        &amp;lt;/Literal&amp;gt;&lt;br /&gt;        &amp;lt;Literal&amp;gt;&lt;br /&gt;          &amp;lt;ID&amp;gt;metot&amp;lt;/ID&amp;gt;&lt;br /&gt;          &amp;lt;ToolTip&amp;gt;metot getir&amp;lt;/ToolTip&amp;gt;&lt;br /&gt;          &amp;lt;Default&amp;gt;metot&amp;lt;/Default&amp;gt;&lt;br /&gt;        &amp;lt;/Literal&amp;gt;&lt;br /&gt;      &amp;lt;/Declarations&amp;gt;&lt;br /&gt;      &amp;lt;Code Language="csharp"&amp;gt;&lt;br /&gt;        &amp;lt;![CDATA[class $classad$&lt;br /&gt;          {&lt;br /&gt;            static private $classad$ $alan$ = null;           &lt;br /&gt;            protected $classad$()&lt;br /&gt;            {&lt;br /&gt;            }&lt;br /&gt;            public static $classad$ $metot$()&lt;br /&gt;            {&lt;br /&gt;                 if ($alan$ == null)&lt;br /&gt;                     $alan$ = new $classad$();&lt;br /&gt;                 return $alan$;&lt;br /&gt;            }&lt;br /&gt;          }]]&amp;gt;&lt;br /&gt;        &amp;lt;/Code&amp;gt;&lt;br /&gt;      &amp;lt;/Snippet&amp;gt;&lt;br /&gt;    &amp;lt;/CodeSnippet&amp;gt;&lt;br /&gt;    &amp;lt;/CodeSnippets&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gördüğünüz gibi bu bir XML dosyasıdır. Bu dosyada kullanacağımız kodları yazacağımız kısım &amp;lt;Code&amp;gt; arasında belirttiğimiz alandır.&lt;br /&gt;Ancak işimiz bununla bitmiyor. Bu kod parçacığımıza kimlik kazandıracak, onu tanımlayacak bazı ek bildirimleri yapmalıyız.&lt;br /&gt;Bunlar da yine özel XML Tagları arasında yapılır.&lt;br /&gt;Örneğin &amp;lt;Title&amp;gt; tagıyla kodumuzun etiketini veriyoruz.&lt;br /&gt;Bu etiket kod parçacığımızı editörümüzde kullanmak istediğimizde bize gözükecektir.&lt;br /&gt;&amp;lt;Shortcut&amp;gt; ile kod parçacığımızın kısa yol tanımını, &amp;lt;Description&amp;gt; ile kod parçamızın açıklamasını yaparız.&lt;br /&gt;&lt;br /&gt;Bütün bunları kod parçacığını editörümüze dâhil ettiğimizde –ki birazdan bunun nasıl olacağını anlatacağım- sağ tıklayarak görebiliriz:&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3167/3021936596_5d2e50dd8e_o.jpg" src="http://farm4.static.flickr.com/3167/3021936596_5d2e50dd8e_o.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Ekran görüntüsünden de kolayca izlendiği gibi bu Taglarda verdiğimiz tanımlar editörümüzde açıklayıcı notlar olarak gözükmekte….&lt;br /&gt;&lt;br /&gt;Snippet dosyamızı incelemeye devam edersek, &amp;lt;Declarations&amp;gt; alanlarını görürüz.&lt;br /&gt;Bu alanlar değişkenlerin oluşturulduğu alanlardır. Kendi içinde birkaç tipi mevcuttur ancak bunların en çok kullanılanı “literal” tiptir.&lt;br /&gt;Peki değişken deklarasyonu ne demektir bir kod parçacığında?&lt;br /&gt;Anımsayacağınız gibi küçük kod parçacıklarını, projemize ait değerlerle kullanabileceğimizi yukarıda yazmıştım.&lt;br /&gt;Örneğimizde olduğu gibi class oluşturan bir kod parçacığını class ismini class ı kullanan kişice oluşturulmasını sağlayacak şekilde yapabiliriz.&lt;br /&gt;Böylece küçük kod parçacığımız istenilen şekilde özelleştirilebilir. Bu da ancak değişken tanımlarını belirterek yapılabilir. Daha doğru bir ifadeyle, değişebilecek yerleri deklare etmekle (belirtmekle)  yapılabilir. İşte bu tanımlarda  &amp;lt;Declarations&amp;gt;   kısmında oluşturulur.&lt;br /&gt;Böylece bu küçük kod parçacığını kullanan yazılımcı kolayca, değişken alanları fark eder ve kendine göre düzenler.&lt;br /&gt;&amp;lt;Code Language="csharp"&amp;gt; değerini de yazdığımız dile göre VB veya csharp olarak atayabiliriz.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kod Parçacıklarını Kullanmak&lt;/b&gt;&lt;br /&gt;Yukarıdaki gibi bir snippet dosyası oluşturduktan sonra sıra bu kod parçacığını editörümüze tanıtmaya gelir.&lt;br /&gt;Bu haliyle editörümüzün kod dosyasından haberi olamaz.&lt;br /&gt;Bunun için yukarda gördüğümüz Code Snippets Manager… ı kullanırız.&lt;br /&gt;&lt;br /&gt;Bu arabirimde iki temel işlevi gerçekleştirebiliyoruz.&lt;br /&gt;Bunlardan ilki klasör veya klasörleri kod snippet klasörü olarak belirleyebiliyoruz.&lt;br /&gt;İkincisi bu klasöre, oluşturduğumuz snippet dosyasını ekleyebiliyoruz.&lt;br /&gt;Klasörü tanımlamak için add… Butonuna tıklayarak bilgisayarımızdaki her hangi bir klasör yol tanımını belirtiyoruz.&lt;br /&gt;Böylece o klasör artık projelerimizde kullanacağımız kod parçacıklarımızın barındığı klasör olacaktır ve editörümüzün kod tamamlama kısmında gözükecektir.&lt;br /&gt;Klasör oluşturmakla işimiz bitmiyor, bu arabirim sayesinde snippet dosyamızı klasöre dâhil (import) etmemiz gerekiyor. Bu işlemi, geleneksel yolla dosyayı bulup sürükle bırakla yapamayız, snippet’ın editör tarafından tanınması için buradan yapmalıyız.&lt;br /&gt;&lt;br /&gt;Bunun için import… butonuna tıklayarak snippet dosyamızı bulup editörümüze dahil etmeliyiz.&lt;br /&gt;Pek çok .snippet uzantılı dosyayı oluşturup (veya temin edip) editörümüze bu şekilde dahil edebiliriz.&lt;br /&gt;Yapmamız gerekenler bu kadar.&lt;br /&gt;Artık kod parçacığımız kullanıma hazır.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kod Parçacığını Kodlarımıza Dahil Etmek&lt;/b&gt;&lt;br /&gt;Bu işlem gayet basittir. Sayfamız kodlarında her hangi bir yere sağ tıklayıp dâhil edebiliriz:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img mce_src="http://farm4.static.flickr.com/3167/3021936596_5d2e50dd8e_o.jpg" src="http://farm4.static.flickr.com/3167/3021936596_5d2e50dd8e_o.jpg" width="386" height="65" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Burada yukarıda snippet dosyamızda yaptığımız tanımlar gözükmekte.&lt;br /&gt;Kod’umuzu dâhil ettiğimizde aşağıdaki bildirimlerle karşılaşacağız:&lt;br /&gt;&lt;br /&gt; &lt;img mce_src="http://farm4.static.flickr.com/3155/3021105177_81a54857a5_o.jpg" src="http://farm4.static.flickr.com/3155/3021105177_81a54857a5_o.jpg" width="419" height="248" /&gt;&lt;br /&gt;&lt;br /&gt;Gördüğünüz gibi yukarıda deklare ettiğimiz alanlar farklı renkler ve kutucuklarla işaretlenmiş. Bu alanları kendi kodlarınıza göre değiştirebilirsiniz. Veya bu şekliyle tanımlı (default ) değerleriyle bırakabilirsiniz.&lt;br /&gt;&lt;br /&gt;Visual Web Developer 2005 Express ve Visual Studio 2005 kod parçacıkları oluşturup kullanmak bu kadar basittir.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-3433824268442126925?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/3433824268442126925/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=3433824268442126925&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3433824268442126925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/3433824268442126925'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/03/kod-dosyalar-oluturmak-ve-kullanmak.html' title='Kod Dosyaları Oluşturmak ve Kullanmak'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-4471175583982600674</id><published>2008-02-13T14:55:00.000+02:00</published><updated>2008-02-13T14:57:09.470+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic Data'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET Dinamik Data Web Sitesi</title><content type='html'>Geçtiğimiz günlerde duyurulan ASP.NET 3.5 Extensions CTP ile birlikte yeni bir&lt;br /&gt;kavram ve teknolojiyle daha tanışıyoruz: Dinamik data web sitesi (ASP.NET&lt;br /&gt;Dynamic Data web site).&lt;br /&gt;&lt;br /&gt;Bu ne demek? Birazdan örneğimizi yaptığımızda her şey anlaşılacak. Ancak&lt;br /&gt;şimdilik şu kadarını söyleyebilirim. Elinizde bir veritabanı olduğunu düşünün bu&lt;br /&gt;veritabanıyla bağlantılı ve iki taraflı iletişimi olan tam kapsamlı bir web&lt;br /&gt;sitesi uygulamasını tek bir satır kod yazmadan oluşturabilmeniz diye&lt;br /&gt;özetleyebilirim.&lt;br /&gt;&lt;br /&gt;Tabii ki bundan fazlası da var. Bu uygulama geliştirildiği zaman “LINQ to SQL”&lt;br /&gt;tekniğini kullanan, veriyle çağdaş anlamda ilişki kuran bir yapıda oluyor. Ve&lt;br /&gt;bütün bunlar sadece sürükle bırak ile ve bazı tanımlarla yapılabiliyor. Tabii ki&lt;br /&gt;bu açkılamayla bir şey anlamak gerçekten zor. O zaman hemen örneğimize&lt;br /&gt;başlayalım.&lt;br /&gt;&lt;br /&gt;Bu örnekte Northwind’in verilerinin bulunduğu SQL server veritabanını&lt;br /&gt;kullanacağım. Ama siz dilerseniz SQL server express’i de kullanabilirsiniz.&lt;br /&gt;&lt;br /&gt;Bu uygulamayı yapabilmeniz için Visual Studio 2008 ve ASP.NET 3.5 Extensions CTP&lt;br /&gt;eklentisinin yüklü olması gerektiğini unutmayın.&lt;br /&gt;&lt;br /&gt;Projeyi oluşturmak için “file” menüsünden “new” ve “ website” ı tıladıktan sonra&lt;br /&gt;karşınıza çıkan pencereden &lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2417/2262062751_8402a97a95_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2417/2262062751_8402a97a95_o.jpg" border="0" height="288" width="508" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;“Dynamic Data website” seçeneğini tıklamalıyız. Tabii bu arada sitemize bir ad&lt;br /&gt;vermeyi unutmayın.&lt;br /&gt;&lt;br /&gt;Buraya tıkladığınız zaman VS 2008 Dinamik verili bir web sitesi için gereken&lt;br /&gt;bütün elemanları oluşturur:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2223/2262853280_8cc985e4b4_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2223/2262853280_8cc985e4b4_o.jpg" border="0" height="247" width="268" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;b&gt;“LINQ to SQL” Data model’i eklemek&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Projemiz oluştuktan sonra veriye ulaşacak ve nesne modelini oluşturacak LINQ&lt;br /&gt;arabirimi hazırlanmalı. Normalde bu oldukça karmaşık ve zaman gerektiren bir&lt;br /&gt;işlemdir.&lt;br /&gt;&lt;br /&gt;Ama biz bunu sadece birkaç hamleyle gerçekleştireceğiz.&lt;br /&gt;&lt;br /&gt;Bunun için “App_Code” klasörümüze yeni bir “LINQ to SQL” sınıf dosyası&lt;br /&gt;eklemeliyiz:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2171/2262853436_764dc6a317_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2171/2262853436_764dc6a317_o.jpg" border="0" height="326" width="569" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu dosyayı editörümüzde açtığımızda, üzerine eklediğimiz veritabanı tablolarının&lt;br /&gt;LINQ sınıfını oluşturur. Diğer bir ifadeyle veritabanımıza programatik olarak&lt;br /&gt;erişimimizi sağlayan her türlü kodsal arabirimi oluşturur. Yine adım adım&lt;br /&gt;gidelim ve VS 2008 den veritabanımıza ulaşıp, veritabanı tablolarımızı seçip, bu&lt;br /&gt;dosyanın üzerine sürükle bırakla ilave edelim:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2291/2262853578_2c924ed53a_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2291/2262853578_2c924ed53a_o.jpg" border="0" height="321" width="487" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tabloların ilave edilmiş şekli ekran görüntüsünde izlenebilmektedir.&lt;br /&gt;&lt;br /&gt;Bu aşamada veritabanı bağlantımız gerçekleşmiş ve web sitemizin veritabanını&lt;br /&gt;tablolarının tamamıyla kullanılabilir hale getirmiş olduk. Ancak yapmamız&lt;br /&gt;gereken bir ufak ayar daha var.&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;b&gt;Dinamik şablonları etkin hale getirmek&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Normalde bir ASP.NET Dynamic Data projesi oluşturduğumuzda, şekilsel anlamda&lt;br /&gt;projenin görünümü de şablonlar vasıtasıyla oluşturulur.&lt;br /&gt;&lt;br /&gt;Dinamik data şablonları klasörü içinde saklanan bu şablonları etkin hale&lt;br /&gt;getirebilmek için diğer bir ifadeyle kullanımına izin vermek için web.config&lt;br /&gt;dosyamızda ufak bir ayar yapmalıyız.&lt;br /&gt;&lt;br /&gt;Bunun için web dosyamızı açıp dynamicData kısmına şu değeri vermeliyiz:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2220/2262853672_8ba90e1a03_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2220/2262853672_8ba90e1a03_o.jpg" border="0" height="78" width="477" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Evet yapmamız gerekenler bunlar. Artık sitemizi çalıştırabiliriz.&lt;br /&gt;&lt;br /&gt;Sayfamızı çalıştırdığımızda aşağıdaki şekilde tablolarımızdan oluşan&lt;br /&gt;veritabanımıza ait sitemizin ana sayfasını görürüz:&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2105/2262063339_f8bf92df57_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2105/2262063339_f8bf92df57_o.jpg" border="0" height="376" width="405" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu tablolardan (linklerden) herhangi birine tıkladığımızda, verilerimizin&lt;br /&gt;detaylarını görürüz:&lt;br /&gt;&lt;br /&gt;Örneğin products (ürünler) tablosuna tıkladığımızda aşağıdaki gibi bir ekran&lt;br /&gt;gelir:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2323/2262063505_412e7e33a1_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2323/2262063505_412e7e33a1_o.jpg" border="0" height="223" width="448" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Bu sayfaya dikkat ederseniz verilerimiz bir grid içinde, tüm yönetilebilir&lt;br /&gt;kontrolleriyle birlikte görüntülenmiş. Diğer bir ifadeyle sadece verilerimizi&lt;br /&gt;görüntülemekle kalmamış, onları düzenleyebileceğimiz yordamları da oluşturmuş.&lt;br /&gt;Örneğin “edit” linkine bastığınızda ilgili alanlar düzenlenecek şekilde&lt;br /&gt;görüntüleniyor ve buraya girdiğiniz güncelleme veya yeni değerler aynen&lt;br /&gt;veritabanına kaydediliyor.&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2088/2262854024_7d5463f281_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2088/2262854024_7d5463f281_o.jpg" border="0" height="86" width="443" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Oldukça etkileyici.&lt;br /&gt;&lt;br /&gt;Ayrıca verilerin seçilmesi ve filtrelemesi için gereken kontroller de eklenmiş.&lt;br /&gt;&lt;br /&gt;Özet olarak veri tabanı tablosuyla ilgili yapabileceğiniz hemen her şey otomatik&lt;br /&gt;olarak oluşturulmuş.&lt;br /&gt;&lt;br /&gt;Tabii ki bu sistemin arkasında yüzlerce satırlık kod ve ifadeler var. Ama&lt;br /&gt;bunların hepsi “ASP.NET Dynamic Data” tarafından otomatik olarak oluşturuluyor.&lt;br /&gt;&lt;br /&gt;Şekilsel düzenlemeleri özel işlevsellikleri bu kodlar üzerinde yapacağınız&lt;br /&gt;değişiklik ve ilavelerle oluşturabilirsiniz.&lt;br /&gt;&lt;br /&gt;Bunun nasıl yapılacağıysa ayrı bir yazı konusu.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-4471175583982600674?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/4471175583982600674/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=4471175583982600674&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4471175583982600674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4471175583982600674'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/02/aspnet-dinamik-data-web-sitesi.html' title='ASP.NET Dinamik Data Web Sitesi'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-2469839397321447400</id><published>2008-02-02T12:04:00.000+02:00</published><updated>2008-11-11T12:14:23.693+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>AJAX Takvim</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;br&gt;Daha önceki yazılarımda ASP.NET AJAX uygulamalarının nasıl oluşturulduğunu, mevcut uygulamalarımızın AJAX özellikli nasıl yapıldığını anlatmıştım.&lt;br&gt;Bugün bir AJAX takvim uygulaması yapacağız.&lt;br&gt;Herhangi bir formda bir tarih girmek istediğimizde bu tarihi açılan takvimden seçen bir uygulama yapacağız.&lt;br&gt;&lt;br&gt;Ancak öncelikle AJAX Toolkit’imizin Editörümüze (VS 2005 veya Visual Web Developer 2005 Express) ilave edildiğinden emin olmalıyız. &lt;br&gt;Bunun nasıl yapıldığını daha önceki yazılarımda anlatmıştım ;ancak okuyamayanlar için aşağıda kısaca anlatacağım.&lt;br&gt;&lt;br&gt;&lt;b&gt;ASP.NET AJAX Toolkit’in eklenmesi&lt;/b&gt;&lt;br&gt;Öncelikle yapmanız gereken http://ajax.asp.net/ sayfasına giderek, “learn more” butonunu tıklamak. Karşınıza aşağıdaki gibi bir sayfa çıkacak:&lt;br&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3146/3021133987_4374bb1d56_o.jpg" src="http://farm4.static.flickr.com/3146/3021133987_4374bb1d56_o.jpg" width="800" height="469"&gt;&lt;br&gt;&lt;br&gt;Bu sayfadan yukardaki linki tıklayarak AJAX toolkiti indireceğiniz sayfaya erişirsiniz.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;img mce_src="http://farm4.static.flickr.com/3249/3021134071_3a4f9ff0c1_o.jpg" src="http://farm4.static.flickr.com/3249/3021134071_3a4f9ff0c1_o.jpg" width="661" height="368"&gt;&lt;br&gt;&lt;br&gt;Buradan download linkine tıklayarak AJAX toolkit’i bilgisayarınıza indirebilirsiniz.&lt;br&gt;Zip’li dosyayı açtığınızda pek çok örnek uygulama ve ASP.NET sayfası olduğunu göreceksiniz.&lt;br&gt;Bunların detaylarına daha önceden değinmiştim burada Toolkit’i en hızlı şekilde editörünüze eklemeyi anlatacağım. &lt;br&gt;Öncelikle açtığınız zip dosyalarından AjaxControlToolkit-NoSource\SampleWebSite\Bin dizini altındaki AjaxControlToolkit.dll ne ulaşın. &lt;br&gt;Daha sonra editörünüzde toolbox bölümünde sağ tuşla yeni bir tab oluşturun:&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;img mce_src="http://farm4.static.flickr.com/3211/3021965404_68ed70565f_o.jpg" src="http://farm4.static.flickr.com/3211/3021965404_68ed70565f_o.jpg" width="344" height="62"&gt;&lt;br&gt;Ve bunun altına AjaxControlToolkit.dll dll ini sürükleyip bırakın:&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3216/3021965462_3f3b034f0f_o.jpg" src="http://farm4.static.flickr.com/3216/3021965462_3f3b034f0f_o.jpg" width="772" height="174"&gt;&lt;br&gt;&lt;br&gt;AJAX kontrollerinin editörünüze eklenmiş ve kullanıma hazır olduğunu göreceksiniz.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;br&gt;ASP.NET AJAX Calendar Extender&lt;/b&gt;&lt;br&gt;AJAX Toolkit içinde olan takvim uzantısı, özellikle metin kutusu kontorülünü, tarih eklemek amaçlı kullanıyorsak, ona bir takvim uzantısı sağlayarak kullancının daha rahat tarih girmesini sağlar:&lt;br&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3220/3021134163_094065e5b2_o.jpg" src="http://farm4.static.flickr.com/3220/3021134163_094065e5b2_o.jpg" width="207" height="227"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3192/3021134239_a3df1ab6c5_o.jpg" src="http://farm4.static.flickr.com/3192/3021134239_a3df1ab6c5_o.jpg" width="786" height="435"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;şekilde görüldüğü gibi. &lt;br&gt;Birazdan bunu sayfamıza nasıl ekleyeceğimizi anlatacağım.&lt;br&gt;&lt;br&gt;Öncelikle AJAX özellikli bir proje oluşturuyoruz&lt;br&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Daha sonra toolbox dan&amp;nbsp; standart&amp;nbsp; kontrollerden TextBox alıp sayfamıza ekleyelim.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3292/3021134253_717142983b_o.jpg" src="http://farm4.static.flickr.com/3292/3021134253_717142983b_o.jpg" width="307" height="111"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Devamında, biraz önce eklediğimiz AJAX kontrollerinden,&lt;br&gt;CalendarExtender’ı bulup sayfaya ekleyelim:&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;Sayfamızın tasarım arabirimi yukardaki gibi gözükmelidir. &lt;br&gt;Şimdi yapacağımız şey, CalendarExteder’ı metin (textbox) kutumuza bağlamak. Bunun için CalendarExteder da bir özellik mevcut:&amp;nbsp; TargetControlID&amp;nbsp; &amp;nbsp;&lt;br&gt;Bu özellik&amp;nbsp; takvimin hangi kontrole eklendiğini belirtir. &lt;br&gt;Bizim örneğimizde bu metin kutusudur (çoğunlukla bağlandığı ana kontrol metin kutusudur. Ancak bazı diğer kontrollere de takvim uzantısı eklenebilir).&lt;br&gt;Metin kutumuzun “id” si Takvim_1&amp;nbsp; dir. &lt;br&gt;Dolayısıyla bağlamayı şu ifadeyle yapmalıyız:&lt;br&gt;TargetControlID="Takvim_1"&lt;br&gt;Bildirimlerimizin tamamı&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3008/3021134283_9db1b2d7bb_o.jpg" src="http://farm4.static.flickr.com/3008/3021134283_9db1b2d7bb_o.jpg" width="796" height="95"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Şeklindedir. &lt;br&gt;Sadece bu kadar bir kodla takvim uzantılı bir kontrol oluşturabiliyoruz.&lt;br&gt;&lt;b&gt;&lt;br&gt;Takvimi biçimlendirmek&lt;/b&gt;&lt;br&gt;Takvimi hem tarih formatında hem de şekilsel formatta biçimlendirmemiz mümkün.&lt;br&gt;Normal takvim kontrolünden farklı olarak takvim uzantısında şekilsel bildirimler doğrudan bulunmamaktadır. Bunun için CSS dosyası kullanılır ve takvim uzantısına bağlanır.&lt;br&gt;Bu tanımları yapmak da&amp;nbsp; oldukça kolaydır. &lt;br&gt;Öncelikle bir css dosyası oluşturmalı ve bunu sayfaya tanıtmalısınız. Bildiğiniz gibi bu tanıtım:&lt;br&gt;&lt;br&gt;&amp;lt;link href="StyleSheet.css" rel="stylesheet" type="text/css" /&amp;gt;&lt;br&gt;&lt;br&gt;Şeklindedir.&lt;br&gt;StyleSheet.css&amp;nbsp; Dosyamızda takvimle ilgili tanımları şu şekilde yapabiliriz:&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;img mce_src="http://farm4.static.flickr.com/3273/3021134337_e48ba2146f_o.jpg" src="http://farm4.static.flickr.com/3273/3021134337_e48ba2146f_o.jpg" width="542" height="356"&gt;&lt;br&gt;&lt;br&gt;Bundan sonra yapmamız gereken bir şey daha kaldı, o da takvim “style class” ımızı kontrol bildiriminde belirtmek:&lt;br&gt;&amp;lt;cc1:CalendarExtender&amp;nbsp;&amp;nbsp;&amp;nbsp; ID="CalendarExtender1"&amp;nbsp; CssClass="Takvimim"&lt;br&gt;Şeklinde.&lt;br&gt;Bu tanımlardan sonra takvimimizin şekil ve renkleri değişecektir.&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;img mce_src="http://farm4.static.flickr.com/3181/3021965692_40b6cae92a_o.jpg" src="http://farm4.static.flickr.com/3181/3021965692_40b6cae92a_o.jpg" width="217" height="225"&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Takvimi Yerelleştirelim&lt;/b&gt;&lt;br&gt;Yukarıdaki ekran görüntülerinde takvimimizin İngilizce ifadelerden oluştuğunu görüyoruz.&lt;br&gt;Eğer takviminizin Türkçe olmasını istiyorsanız yapmanız gereken çok basit bir şey var ScriptManager&amp;nbsp; a gidip bildirimine EnableScriptGlobalization=true eklemeniz ve sayfa başlığına Culture="tr-TR". İfadesini ilave etmeniz. &lt;br&gt;Bundan sonra artık takviminiz Türkçe gözükecektir:&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;img mce_src="http://farm4.static.flickr.com/3287/3021965708_2699b06b24_o.jpg" src="http://farm4.static.flickr.com/3287/3021965708_2699b06b24_o.jpg" width="209" height="213"&gt;&lt;br&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-2469839397321447400?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/2469839397321447400/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=2469839397321447400&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2469839397321447400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2469839397321447400'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/02/ajax-takvim.html' title='AJAX Takvim'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-4300227058944276077</id><published>2008-01-31T13:57:00.000+02:00</published><updated>2008-01-31T13:59:12.193+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight  -  Brushes (Fırçalar)</title><content type='html'>&lt;p&gt;Silverlight’ın temel konularından biri de brushes yani fırçalardır.&lt;br /&gt;Bildiğiniz gibi fırçalar bir şeyi boyamak için kullanılır. Grafik programlarda&lt;br /&gt;ve silverlight’da da durum değişmez. Silverlight da Fırça mantığı oldukça basit&lt;br /&gt;ve bir o kadarda etkilidir. Bu yazımda size silverlight fırça tiplerini&lt;br /&gt;tanıtacağım.&lt;br /&gt;&lt;br /&gt;Bildiğiniz gibi XAML vasıtasıyla temel geometrik yapıları kolayca&lt;br /&gt;oluşturabiliyoruz. Daha karmaşık ve farklı geometrik tanımları da, bu temel&lt;br /&gt;şekillerin birleşimiyle oluşturabiliyoruz.&lt;br /&gt;&lt;br /&gt;Bir geometrik biçimin rengini belirlerken o şeklin XAML bildiriminde dolgu&lt;br /&gt;değeri olarak bir renk değeri giriyoruz:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;&amp;lt;Rectangle Canvas.Top="300" Width="200" Height="150" Fill="Orange" /&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Gibi.&lt;br /&gt;&lt;br /&gt;Burada bir dikdörtgen tanımı yapılıyor ve bunun içinin Turuncuyla doldurulması&lt;br /&gt;bildiriliyor.&lt;br /&gt;&lt;br /&gt;Silverlight da renk tanımlarını yukarıdaki gibi tek bir bildirimde&lt;br /&gt;yapabileceğimiz gibi, ayrıca bir fırça bildirimi kullanarak da yapabiliriz.&lt;br /&gt;Örneğin yukarıdaki bildirimi &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;&amp;lt;Rectangle Width="200" Height="150" &amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Rectangle.Fill&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;SolidColorBrush Color="Red" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Rectangle.Fill&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Rectangle&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Şeklinde de yapabiliriz. Her ikisi de Dikdörtgenin içini boyar. Ama ikinci&lt;br /&gt;bildirim de kontrol daha fazla bizdedir. Diğer bir ifadeyle bu tarz bildirimde&lt;br /&gt;daha fazla özellik tanımlayabiliriz.&lt;br /&gt;&lt;br /&gt;Bu iki bildirimin sayfa görüntüsü:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2363/2231922857_374a7b1ec1_o.jpg"&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2363/2231922857_374a7b1ec1_o.jpg" border="0" height="283" width="446" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Şeklindedir. Gördüğünüz gibi iki bildirim de aynı işi yapmıştır.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Gradient Tip Fırçalar &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Şimdi daha karmaşık bir fırça tipini görelim. Bu Tip Gradient dediğimiz eğimli&lt;br /&gt;renk tipidir. Grafik programlarla uğraşanlar bunu çok iyi bilir. Bu renk tipinde&lt;br /&gt;Renkler arasında geçiş olur. Aynen aşağıdaki gibi:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2148/2232713484_714602284c_o.jpg" border="0" height="131" width="339" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu tip geçişli renk tanımlamasını silverlight fırça bildirimleriyle yapmak çok&lt;br /&gt;kolaydır. Değerler tamamıyla vektörel grafik kurallarına uygun olarak nümerik&lt;br /&gt;verilir. Yukarıdaki gibi bir boya tanımını şu şekilde yaparız:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;&amp;lt;Rectangle Canvas.Left="300" Width="200" Height="150"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Rectangle.Fill&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LinearGradientBrush StartPoint="1,1" EndPoint="0,0"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;LinearGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;GradientStop Color="Blue" Offset="0" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;GradientStop Color="Orange" Offset="1" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/LinearGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/LinearGradientBrush&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Rectangle.Fill&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Rectangle&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Görüldüğü gibi Gardient durma noktaları ve renkleri bildiriliyor. Ayrıca&lt;br /&gt;Gradient’tin hangi tip olduğu bir üst tag’da belirtiliyor. Bu örneğimizde linear&lt;br /&gt;(Doğrusal) Tip bir Gradient tanımladık.&lt;br /&gt;&lt;br /&gt;Aynı şekilde Radial tip bir gradient de tanımlayabiliriz:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;&amp;lt;Rectangle Canvas.Left="300" Canvas.Top="300" Width="200" Height="150" &amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Rectangle.Fill&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;RadialGradientBrush&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;RadialGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;GradientStop Color="Blue"&lt;br /&gt;&lt;br /&gt;Offset="0" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;GradientStop Color="Black"&lt;br /&gt;&lt;br /&gt;Offset="1" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/RadialGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/RadialGradientBrush&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Rectangle.Fill&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Rectangle&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Burada da aynı şekilde durma noktaları, renk ve dengesizlik bazında tanımlanmış.&lt;br /&gt;Sonuçta boyadığımız dikdörtgen’in görünümü aşağıdaki gibi olur:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2240/2232713518_cca494c3bf_o.jpg" border="0" height="153" width="242" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sayısal değerlerle oynayarak Gradient’in nasıl renkler aldığını test&lt;br /&gt;edebilirsiniz.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Resim ve Video Tip Fırçalar&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Silverlight da tanımlayabileceğimiz diğer bir fırça resim tipi fırçadır. Burada&lt;br /&gt;şeklimiz tanımladığımız fırçadaki resmin kendisiyle doldurulur:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;&amp;lt;Ellipse Canvas.Left="150" Canvas.Top="150" Width="200" Height="75" &amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Ellipse.Fill&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;ImageBrush&lt;br /&gt;&lt;br /&gt;ImageSource="moon.jpg" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Ellipse.Fill&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Ellipse&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Burada bir elips şekli tanımlanmış ve dolgu olarak da resim tipli bir fırça&lt;br /&gt;kullanılmıştır. Fırçamızda resmin yol tanımı “moon.jpg” olarak belirtilmiştir.&lt;br /&gt;Buradaki resim alınarak elips şeklimizin içine eklenecektir.&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2316/2231922941_48ee2ea047_o.jpg" border="0" height="153" width="178" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Anlatacağım son fırça tipi oldukça ilginç: Video fırça tipi. Bununla&lt;br /&gt;şekillerinizin, yazılarınızın içini bir video ile doldurabilirsiniz. Nasıl mı?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier;"&gt;&amp;lt;MediaElement&lt;br /&gt;&lt;br /&gt;x:Name="futbol_video"&lt;br /&gt;&lt;br /&gt;Source="brazilianvoleyball.wmv" IsMuted="True"&lt;br /&gt;&lt;br /&gt;Opacity="0.0" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;TextBlock Canvas.Left="5" Canvas.Top="30"&lt;br /&gt;&lt;br /&gt;FontFamily="Verdana" FontSize="120"&lt;br /&gt;&lt;br /&gt;FontWeight="Bold" TextWrapping="Wrap"&lt;br /&gt;&lt;br /&gt;Text="Merhaba"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;TextBlock.Foreground&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;VideoBrush SourceName="futbol_video" Stretch="UniformToFill" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/TextBlock.Foreground&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/TextBlock&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bu bildirimde önce video ‘muzun olduğu bir medya elementi oluşturduk. Daha sonra&lt;br /&gt;Sayfaya bir metin yazdırdık. Bu metnin arka plan dolgusunun da biraz önce&lt;br /&gt;tanımladığımız medya elementinden olmasını bildirdik. sonuç olarak metnimizin&lt;br /&gt;arka planı bir video dan oluşmuş oldu:&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2266/2231922977_af920a1db6_o.jpg" border="0" height="71" width="456" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gördüğünüz gibi Silverlight da sadece birkaç bildirimle, oldukça güçlü boyama ve&lt;br /&gt;dolgular yapabiliyoruz. Bütün bunlar vektör grafik mantığı ve nümerik değerlerle&lt;br /&gt;olabiliyor.&lt;br /&gt;&lt;br /&gt;Burada hatırlatmakta fayda görüyorum, silverlight grafik ve video uygulamaları&lt;br /&gt;için Microsoft’un Expression serisi içinde ürettiği bir dizi editör var&lt;br /&gt;(http://www.microsoft.com/expression ). Bu Editörler vasıtasıyla, bu tip XAML&lt;br /&gt;tanımlarını grafik arabirimlerle görsel olarak daha fazla kontrol sağlayarak&lt;br /&gt;yapabilirsiniz.&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-4300227058944276077?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/4300227058944276077/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=4300227058944276077&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4300227058944276077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4300227058944276077'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/01/silverlight-brushes-fralar.html' title='Silverlight  -  Brushes (Fırçalar)'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-4079208998401640208</id><published>2008-01-25T09:56:00.000+02:00</published><updated>2008-01-25T10:46:50.320+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight 1.1 / Bölüm 2</title><content type='html'>&lt;p&gt;&lt;span style="font-size:180%;"&gt;Silverlight 1.1 / Bölüm 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Geçen yazımda, bir silverlight uygulamasının nasıl geliştirileceğini&lt;br /&gt;anlatmıştım. Doğrudan basit bir örnek üzerinde anlattığım bu uygulamada, sayfaya&lt;br /&gt;“merhaba dünya” yazdırmıştık.&lt;br /&gt;&lt;br /&gt;Özetlemek gerekirse silverlight 1.1 uygulamaları 1.0 versiyonundan farklı&lt;br /&gt;olarak, XAML dosyasına bağlı bir kod dosyasından oluşur. Bu kod dosyası bir&lt;br /&gt;programlama dili vasıtasıyla (c#, VB.net, rubby vs.) kodlanarak, silverlight ile&lt;br /&gt;ilgili olay yönlendirme mantığı çerçevesindeki fonksiyonelliği oluştururlar.&lt;br /&gt;&lt;br /&gt;Diğer bir ifadeyle, programatik işleri bu dosya sayesinde yapar. Bu dosya&lt;br /&gt;derlenen bir dosyadır. Oysa 1.0 versiyonunda programatik işleri javascript&lt;br /&gt;kodları sağlar.&lt;br /&gt;&lt;br /&gt;1.1 versiyonundaki avantaj, uygulamanın, diğer uygulamalar mantığı çerçevesinde&lt;br /&gt;kodlanabilmesidir. Böylece kod tamamlama, hazır yordam ve kontroller, olay&lt;br /&gt;yönlendirme gibi işlevleri kompleks tanım ve bildirimlere gerek duymadan çok&lt;br /&gt;hızlı bir şekilde, alıştığınız ortamda geliştirirsiniz.&lt;br /&gt;&lt;br /&gt;Bu yapı, esneklik, zaman kazancı, hata yapma olasılığının azalması ve daha güçlü&lt;br /&gt;uygulamalar geliştirme imkanı sağlar.&lt;br /&gt;&lt;br /&gt;Bu makalemde size silverlight 1.1 şekil ve kontrollerini tanıtacağım. Henüz&lt;br /&gt;başlangıç aşamasında olduğu için 1.1 kontrolleri şu an için az sayıdadır. Ancak&lt;br /&gt;zaman geçtikçe sayıları hızla artacaktır.&lt;br /&gt;&lt;br /&gt;Bir silverlight uygulaması geliştirirken, grafik arabirimlere ihtiyacınız&lt;br /&gt;vardır. Bu arabirimler dörtgen, poligon, daire, çizgi, gibi şekilsel arabirimler&lt;br /&gt;olabileceği gibi. Buton, grid, dropdownlist gibi daha kompleks arabirimlerden&lt;br /&gt;oluşan kontroller de olabilir.&lt;br /&gt;&lt;br /&gt;İşte biz bu arabirimleri XAML dosyamızda bir tag olarak tanımlayarak, kullanıcı&lt;br /&gt;grafik arabirimlerini oluşturabiliriz. Silverlight grafik ve videoları&lt;br /&gt;geliştirmek ve bu arabirimleri daha rahat kullanabilmek için Microsoft bir&lt;br /&gt;editör geliştirmiştir: Expression Blend 2 .&lt;br /&gt;&lt;br /&gt;Bu editör sayesinde kolayca grafik arabirimler ve kompleks yapıda silverlight&lt;br /&gt;uygulamaları geliştirebiliriz:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2050/2218508796_77cd494846_o.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://farm3.static.flickr.com/2050/2218508796_77cd494846_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Expression Blend 2 sayesinde, şekillerimizi oluşturabilir ve bunların XAML&lt;br /&gt;karşılığını kolayca elde edebiliriz. Expression Blend 2, Visual Studio 2008 ile&lt;br /&gt;tam olarak entegre çalışır ve birinde geliştirdiğiniz bir uygulamayı kolayca&lt;br /&gt;diğerinde de çalıştırabilirsiniz.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Bildirimsel ve Kod ifadeler&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yukarda da belirttiğim gibi, XAML dosyamız kendisine bağlı bir kod dosyasıyla&lt;br /&gt;çalışır ve programatik işlevlerin yapılmasını sağlar. Durum böyle olunca her bir&lt;br /&gt;bildirimsel (tag la ifade edilen) ifadenin kod dosyasında da karşılığı vardır.&lt;br /&gt;Diğer bir ifadeyle biz silverlight kontrollerimizi kod’sal olarak da&lt;br /&gt;oluşturabiliriz.&lt;br /&gt;&lt;br /&gt;Örneğin geçen makalemde kullandığım bir metin çıktısı sunan&lt;br /&gt;&lt;br /&gt;&amp;lt;TextBlock FontSize="32" Text="Merhaba Dünya" /&amp;gt;&lt;br /&gt;&lt;br /&gt;kontrolümüz, XAML dosyamızda böyle ifade edilebileceği gibi, bunun kod&lt;br /&gt;dosyasındaki karşılığı&lt;br /&gt;&lt;br /&gt;Dim t As New TextBlock()&lt;br /&gt;&lt;br /&gt;t.FontSize = 32&lt;br /&gt;&lt;br /&gt;t.Text = "Merhaba Dünya"&lt;br /&gt;&lt;br /&gt;Children.Add(t)&lt;br /&gt;&lt;br /&gt;Şeklindendir.&lt;br /&gt;&lt;br /&gt;Buradaki fark kodsal olanın derlenmesi, bildirimsel olanın doğrudan yorumlanması&lt;br /&gt;şeklindedir.&lt;br /&gt;&lt;br /&gt;Bir kontrol veya şekle ait özellikler her iki kullanım içinde aynıdır.&lt;br /&gt;&lt;br /&gt;Şimdi bu şekil ve kontrollere yakından bakalım.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;TextBlock&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bunların başında şu ana kadar kullandığımız TextBlock gelir. Metin çıktısı veren&lt;br /&gt;Bu kontrolün özelliklerini kod tamamlamadan görebilirsiniz:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2089/2217713293_5b1c57596e_o.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://farm3.static.flickr.com/2089/2217713293_5b1c57596e_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bir metine ait olabilecek bütün şekilsel düzenlemeleri bu özelliklerden&lt;br /&gt;yapabilirsiniz. Yazı tipi, rengi, boyutu vs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2020/2217713329_e40ff4e559_o.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://farm3.static.flickr.com/2020/2217713329_e40ff4e559_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2308/2217713357_51cd817318_o.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://farm3.static.flickr.com/2308/2217713357_51cd817318_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2387/2218508992_8d95776fbe_o.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://farm3.static.flickr.com/2387/2218508992_8d95776fbe_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2353/2217713531_c9e89536fa_o.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://farm3.static.flickr.com/2353/2217713531_c9e89536fa_o.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Silverlight da kullanılan belli başlı şekiller ise aşağıdaki gibidir:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Rectangle /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Ellipse /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Line /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Polygon /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;PolyLine /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Path /&amp;gt;&lt;br /&gt;&lt;br /&gt;Gelecek makalemde silverlight elemanlarını incelemeye devam edeceğim.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-4079208998401640208?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/4079208998401640208/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=4079208998401640208&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4079208998401640208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4079208998401640208'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/01/silverlight-11-blm-2.html' title='Silverlight 1.1 / Bölüm 2'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-2218929573148318651</id><published>2008-01-23T20:47:00.000+02:00</published><updated>2008-01-23T21:09:16.001+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight 1.1 ile  Bir Uygulama</title><content type='html'>&lt;p&gt;&lt;span style="font-weight: bold;"&gt;&lt;h1&gt;Silverlight 1.1 ile  Bir Uygulama&lt;br /&gt;&lt;/h1&gt;&lt;/span&gt;Merhaba, bu yazımda silverlight 1.1 ile sayfada mesaj yazdıran bir uygulama geliştireceğiz.&lt;br /&gt;Silverlight 1.1  silverlight 1.0 dan oldukça farklıdır.&lt;br /&gt;Öncelikle 1.0 versiyonu javascript kod arayüzlerini kullanırken, 1.1 versiyonu, kod  katmanında  daha önceden kullandığımız c#, vb.net, rubby gibi programlama dillerini kullanabiliyor.&lt;br /&gt;Alt yapısında tabii ki javascript kodları var ancak biz geliştirici olarak onlarla doğrudan muhatap olmuyoruz. Bu yapısıyla, versiyon 1.1 bizim beklediğimiz kolay kullanım özelliklerine sahip, bir sürü javascript koduyla uğraşmıyoruz.  Uygulamanın kod katmanını bildiğimiz nesne yönelimli dillerle yazabiliyoruz.&lt;br /&gt;Bir silverlight 1.1 projesi geliştirebilmek için aşağıdaki birimlere ihtiyacımız olacak;&lt;br /&gt;Silverlight V1.1 Alpha&lt;br /&gt;Visual Studio 2008 Beta 2 (.NET Framework 3.5)&lt;br /&gt;Silverlight Tools Alpha for Visual Studio 2008 Beta 2&lt;br /&gt;Expression Blend 2 Preview&lt;br /&gt;Bunların hepsi www.silverliht.net adresinde mevcut. Bu bileşenlerden  Silverlight V1.1  ve .NET  Framework 3.5 zorunludur. Visual Studio 2008 projeyi derleyecek alt yapıyı sunar, Framework 3.5 ı yükler ve  kodlarımızı rahatça geliştirecek ortamı sunar. Kod tamamlama özelliği ile hata olasılığını minimuma indirger.&lt;br /&gt;Expression Blend 2 ise XAML biçimlerinin oluşturulması için editoryal bir ortam sunar. Fakat zorunlu değildir.&lt;br /&gt;Bütün bu bileşenleri yükledikten sonra sıra projemizi oluşturmaya geldi.&lt;br /&gt;Silverlight’ın Temel Bileşenleri&lt;br /&gt;Bir silverlight projesi temel olarak iki bileşenden oluşur.  Bir XAML dosyası ve Silverlight.js dosyası.&lt;br /&gt;XAML dosyası kullanıcıya gözüken arabirimi oluşturur. Bir çeşit XML dosyasıdır ve kendine özel ifadeleri bulunur. Şekiller, mesajlar, animasyonlar hep bu dosya sayesinde oluşturulur.&lt;br /&gt;Silverlight.js dosyasıysa silverlight ın temel bileşeni olup, silverlight ın yüklenmesi ve kontrolüyle ilgilidir. Bu dosyanın detayları bizi ilgilendirmeyecek, o sadece silverlight uygulamamızın çalışması için projemizde bulunması gereken bir dosyadır.&lt;br /&gt;Bir mesajımız, çizimimiz veya görüntümüz olduğunda bunu XAML dosyası vasıtasıyla yapacağız.&lt;br /&gt;Silverlight uygulamaları bildiğimiz html (veya htm)  web sayfaları üzerinde çalışabilir. Yaptığımız uygulamayı görüntülemek için html sayfaları kullanabiliriz.&lt;br /&gt;Bütün bu anlattıklarımdan sonra Visual Studio 2008 de yeni bir silverlight projesi oluşturulduğunda;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; &lt;a href="http://farm3.static.flickr.com/2173/2215019602_f445a5973f_o.jpg"&gt;&lt;img style="width: 693px; height: 387px;" mce_src="http://farm3.static.flickr.com/2173/2215019602_f445a5973f_o.jpg" src="http://farm3.static.flickr.com/2173/2215019602_f445a5973f_o.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Proje yapısı aşağıdaki gibi olur:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2193/2214226325_58a1fbf17f_o.jpg"&gt;&lt;img mce_src="http://farm3.static.flickr.com/2193/2214226325_58a1fbf17f_o.jpg" src="http://farm3.static.flickr.com/2193/2214226325_58a1fbf17f_o.jpg" height="216" width="226" /&gt;&lt;/a&gt;&lt;br /&gt;Burada da açıkça gözüktüğü gibi, bir Adet XAML, bir Adet Silverlight.js  ve test için bir adet html dosyası oluşturulmuştur.&lt;br /&gt;Dosyalardan html’e  bağlı olan bir javascript dosyası  vardır ki, bu da html sayfasına silverlight uygulamasını bağlamak/yüklemek için oluşturulur. Aynı şekilde XAML dosyasının da bir c# dan oluşan bir “code behind” dosyası oluşturulur.&lt;br /&gt;Bunun da amacı, olay ve yordamları programatik olarak oluşturmaktır.  Tekrar etmek gerekirse XAML ve Silverlight.js dosyaları silverlight uygulamamızın temel dosyalarıdır. Html dosyası da bunların test edildiği  ve/veya  kullanıldığı alandır.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Uygulamamızı Oluşturalım&lt;/span&gt;&lt;br /&gt;Bu haliyle Visual Studio 2008 bize bütün gereken bileşenleri sunuyor. Bizim bütün yapmamız gereken uygulamamızı geliştirmek. Ve bu örnekte biz sayfaya “merhaba dünya” yazdıracağız.&lt;br /&gt;Bunun için XAML dosyamızı açıp&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://farm3.static.flickr.com/2308/2215019754_ab299b4d54_o.jpg"&gt;&lt;img style="width: 457px; height: 145px;" mce_src="http://farm3.static.flickr.com/2308/2215019754_ab299b4d54_o.jpg" src="http://farm3.static.flickr.com/2308/2215019754_ab299b4d54_o.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;lt;TextBlock x:Name="Benim_metnim"     FontSize="40" FontFamily="Arial"/&amp;gt;&lt;br /&gt;&lt;br /&gt;İfadesini yazalım. Bu bir xaml tag’ıdır ve sayfaya mesaj yazdırır. Bu mesaj&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&amp;lt;TextBlock x:Name="Benim_metnim"  Text="Merhaba Dünya3"    FontSize="40" FontFamily="Arial"/&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;olduğu gibi doğrudan tag’ın içinden yazdırılabileceği gibi, “code behind” olarak Page.xaml.cs den de yazdırılabilir.&lt;br /&gt;Biz örneğimizde son yöntemi seçeceğiz ve Page.xaml.cs dosyasında şöyle bir kod kullanacağız:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;a href="http://farm3.static.flickr.com/2216/2214226451_931c08c504_o.jpg"&gt;&lt;img mce_src="http://farm3.static.flickr.com/2216/2214226451_931c08c504_o.jpg" src="http://farm3.static.flickr.com/2216/2214226451_931c08c504_o.jpg" height="131" width="404" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Burada “Benim_metnim” ile isimlendirilen metin tag’ına “merhaba dünya” mesajımız kod taraflı atanıyor. Buradaki kod, projemiz derlendiğinde(çalıştırıldığında) bir dll için de saklanacak.&lt;br /&gt;Bu dll vasıtasıyla sayfada mesajımız yayınlanacak. Peki XAML dosyamız hangi dll’e danışacağını nereden biliyor?&lt;br /&gt;Bu sorunun cevabı yine xaml dosyasının içinde saklıdır. Başlıktaki bildirimlere dikkat ederseniz&lt;br /&gt;x:Class="merhaba.Page;assembly=ClientBin/merhaba.dll"&lt;br /&gt;şeklinde bir ifade bulunur. Sanırım sorumuzun cevabı gayet açık. Merhaba.dll i mesajımızın xaml dosyamızdaki kod kısmını derlenmiş olarak saklar. Diğer bir ifadeyle xaml dosyamıza ”seninle ilgili bir şeyler ClientBin/merhaba.dll dosyasında mevcut, oraya bir bakıver” der.&lt;br /&gt;Sıra geldi uygulamamızı test etmeye. Aslında bu haliyle bir silverlight uygulaması hazırdır. Ancak onun kendini göstermesi gereken bir alana ihtiyaç vardır. O alanda bir web sayfasıdır. Bildiğiniz htm veya html sayfaları. Bu uygulama, web sayfasına “bağlanarak” kendini görünür kılar.&lt;br /&gt;Şimdi bunun nasıl olduğuna bir bakalım. Hâlihazırda bu bağlantıları bizim için Visual Studio 2008 yapmıştır şimdi bu ifadelerin neler olduğuna bakalım.&lt;br /&gt;Öncelikli olarak TestPage.html sayfamıza aynı isimde bir javascript sayfası bağlandığını görürüz.&lt;br /&gt;Bu html sayfamızda createSilverlight(); metodunun çağırdığı ve xaml dosyamızı sayfamıza bağlayan/yükleyen javascript dosyasıdır:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farm3.static.flickr.com/2261/2215019882_44d2a39b46_o.jpg"&gt;&lt;img mce_src="http://farm3.static.flickr.com/2261/2215019882_44d2a39b46_o.jpg" src="http://farm3.static.flickr.com/2261/2215019882_44d2a39b46_o.jpg" height="126" width="523" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hangi XAML dosyasının yükleneceği&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;a href="http://farm3.static.flickr.com/2074/2215019968_79031b5a73_o.jpg"&gt;&lt;img style="width: 540px; height: 108px;" mce_src="http://farm3.static.flickr.com/2074/2215019968_79031b5a73_o.jpg" src="http://farm3.static.flickr.com/2074/2215019968_79031b5a73_o.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Şeklinde TestPage.html.js dosyasında bildirilir.&lt;br /&gt;Bunun haricinde bir de silverlight.js isimli bir javascript dosyası daha html sayfamıza bağlanmıştır. Bu dosya makinede silverlight’ın kontrolü ve çalıştırılmasıyla ilgilidir.&lt;br /&gt;Bu iki javascript dosyası html sayfamızın “head” Tagları arasında tanımlanmıştır:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://farm3.static.flickr.com/2055/2214226679_eea0871408_o.jpg"&gt;&lt;img mce_src="http://farm3.static.flickr.com/2055/2214226679_eea0871408_o.jpg" src="http://farm3.static.flickr.com/2055/2214226679_eea0871408_o.jpg" height="154" width="580" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Evet bütün bunları yaptıktan sonra sıra geldi projemizi derlemeye bunun için menüden “build” i tıklamalıyız veya ctrl + F5 ile projeyi çalıştırmalıyız. Sonuçta proje derlendikten sonra html dosyamızı çift tıklayarak çalıştırmamız yeterli:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farm3.static.flickr.com/2101/2214226875_3ffdef77a2_o.jpg"&gt;&lt;img mce_src="http://farm3.static.flickr.com/2101/2214226875_3ffdef77a2_o.jpg" src="http://farm3.static.flickr.com/2101/2214226875_3ffdef77a2_o.jpg" height="227" width="425" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;xaml.cs dosyamızdaki kodların derlenerek çalıştığını, bu dosyadaki mesajı değiştirerek ve projemizi derlemeden sayfayı yeniden yükleyerek anlayabiliriz. Mesajın değişmediğini gözlemleyeceksiniz.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-2218929573148318651?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/2218929573148318651/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=2218929573148318651&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2218929573148318651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2218929573148318651'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/01/silverlight-11-ile-bir-uygulama.html' title='Silverlight 1.1 ile  Bir Uygulama'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-6655023650720397894</id><published>2008-01-11T14:31:00.000+02:00</published><updated>2008-11-11T14:38:29.962+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Visual Studio 2008</title><content type='html'>&lt;p&gt;&lt;br /&gt;Geçtiğimiz günlerde Microsoft  Visual Studio 2008’in Beta 2 sürümünü yazılım geliştiricilerin kullanımına  sundu.  Kod adı Orcas olarak bildiğimiz Visual Studio’nun bu sürümünü  microsoft’un sitesinden indirebilirsiniz. (http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx )&lt;br /&gt;Sadece Visual Studio değil Express sürümleri de yazılımcıların hizmetine sunuldu. (http://msdn2.microsoft.com/en-us/express/future/bb421473.aspx )  &lt;br /&gt;Visual Studio 2008’in arabirimi diğer Visual Studio sürümlerine göre çok farklılık içermese de, detaylarda oldukça değişiklik  görebilirsiniz. Örneğin  tasarım ekranında, kontrollerin tasarımsal görünümleri diğer sürümlere göre farklı. Bunun haricinde ana ekranda tasarım ve kaynak  ekranlarının aynı anda görülebilmesi sağlanmış.&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img mce_src="http://farm4.static.flickr.com/3248/3022154946_c10ed26240_o.jpg" src="http://farm4.static.flickr.com/3248/3022154946_c10ed26240_o.jpg" width="800" height="578" /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Multi-Targeting&lt;/b&gt;&lt;br /&gt;Visual Studio 2008 ile birlikte gelen yeniliklerden biri de Multi-Targeting olarak çalışabilmesi.&lt;br /&gt;Şu ana kadar .NET in pek çok Framework sürümü çıktı. Bu sürümler sırasıyla 1.0, 1.1, 2.0, 3.0 ve nihayet 3.5.&lt;br /&gt;Her eski sürüm, yeni sürümde çalışabiliyordu ama yeni sürümlerde geliştirilen uygulamaların eski Framework versiyonunda çalışma garantisi yoktu. Eski sürüm, yeni versiyon bir Visual Studio da açılacaksa, yeni Framework sürümüne çevrilerek açılıyor ve artık o sürümle uygulama geliştirilmeye devam ediliyordu.&lt;br /&gt;Visual Studio 2008 ile birlikte böyle bir zorunluluk ortadan kalktı. Projelerinizi geliştirildiği .NET sürümünde açabiliyor ve düzenleyebiliyorsunuz. Yeni bir sürüme” update” edip açmak zorunluluğunuz yok. &lt;br /&gt;Böylece geçmişte yazdığınız projelerinizi kendi ortamında derleyerek yapısını bozmuyorsunuz.&lt;br /&gt;Tabii yeni sürümde açmak isterseniz  bu da mümkün&lt;br /&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img mce_src="http://farm4.static.flickr.com/3294/3021322771_0a8a75d7c3_o.jpg" src="http://farm4.static.flickr.com/3294/3021322771_0a8a75d7c3_o.jpg" width="793" height="486" /&gt;&lt;br /&gt;&lt;br /&gt;Visual Studio 2008, Framework’ün  sadece 2.0, 3.0 ve 3.5 sürümleriyle bu şekilde çalışabiliyor. 1.0 ve 1.1 sürümleriyle  Multi-Targeting şeklinde çalışamıyor.&lt;br /&gt;Visual Studio 2008 “Ajax Extensions” ları doğal olarak destekliyor. Diğer bir ifadeyle bu uzantıları diğer sürümlerde olduğu gibi sonradan eklemiyorsunuz.  Editörü açtığınızda kullanımınıza hazır şekilde duruyorlar. Bu yapısıyla tam anlamıyla Ajax Destekli bir ortam sunuyor.&lt;br /&gt;Visual Studio 2008 i incelemeye gelecek yazımda devam edeceğim.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-6655023650720397894?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/6655023650720397894/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=6655023650720397894&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6655023650720397894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6655023650720397894'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2008/01/visual-studio-2008.html' title='Visual Studio 2008'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-2984740307422409012</id><published>2007-11-30T21:54:00.000+02:00</published><updated>2007-11-30T22:55:14.025+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Silverlight 2.0</title><content type='html'>Bildiğiniz gibi silverlight 1.0 sürümü şu an yazılımcıların hizmetinde. Tamamıyla javascript’le programlanan bu sürümünün aksine yeni sürümü .Net ait programlama dilleriyle programlanabilecek.&lt;br /&gt;Geçtiğimiz aylarda bu sürüme 1.1 versiyonu denmiş ve alfa aşamasında olduğu söylenmişti. Ancak bu yeni sürümde o kadar çok yenilikler geliyor ki artık versiyon numarası 2.0 olarak değiştirildi. Diğer bir ifadeyle 1.1 alpha sürümü artık 2.0 diye anılacak.&lt;br /&gt;Silverlight 2.0’ın betasının yeni  yılın ilk çeyreğinde piyasaya çıkması bekleniyor. Tabi bu zamana kadar ara sürümleri hizmetimize sunulacaktır. Hedef tamamıyla zengin görünümler sunan web uygulamaları geliştirebilecek ortamı sağlamak. Platform ve Browser bağımsız bir yapı hedeflenen Silverlight 2.0 ‘ın ilk deneme sürümleri (public preview) önümüzdeki günlerde geliştiricilerin hizmetine sunulacak.&lt;br /&gt;Ayrıca bu sürümde  genişletilmiş Framework ve iki yönlü veri bağlama mümkün olabilecek.&lt;br /&gt;Zengin kullanıcı kontrolleri de geliştiricilerin kullanımına sunulacak. Nihayet geliştiriciler silverlight metin kutularına, onay kutularına (Checkbox) ve radyo butonlara kavuşabilecek. Bunları sayfasına ilave edip, özelliklerini belirleyip hemen uygulamalarında kullanabilecek. Yukarıda saydığım kontrollerin haricinde TabControl, Slider, ScrollViewer, ProgressBar,  DataGrid gibi daha kompleks kontrolleri de bekleyebiliriz.&lt;br /&gt;Gelecek silverlight sürümünde “LINQ to XML” ve HTML DOM API entegrasyonu da olacak.&lt;br /&gt;Yukarıda da belirttiğim gibi yeni sürümün betası 2008 yılının ilk çeyreğinde bekleniyor. Bu sürüm gol ive lisanslı olacak. Bunun diğer bir anlamı geliştiriciler bu sürümle uygulamalarını kolayca oluşturup dağıtabilir. Gerçek sürümle bir uyuşmazlık meydana gelmez.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fzaferdemirkol.blogspot.com"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fzaferdemirkol.blogspot.com" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-2984740307422409012?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/2984740307422409012/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=2984740307422409012&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2984740307422409012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/2984740307422409012'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/11/silverlight-20.html' title='Silverlight 2.0'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-258552474885185404</id><published>2007-11-20T14:02:00.000+02:00</published><updated>2007-11-30T00:16:55.195+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Visual Studio 2008'i kurmak</title><content type='html'>&lt;p&gt;Visual Studio 2008'in final s&amp;uuml;r&amp;uuml;m&amp;uuml; &amp;ccedil;ıktı ancak, sistemizde halen beta, RS s&amp;uuml;r&amp;uuml;mleri ve bunları kullanan diğer programlar olabilir. VS 2008 kurmadan &amp;ouml;nce bunları sağlıklı bir şekilde sistemimizden &amp;ccedil;ıkartmalıyız. Bunun i&amp;ccedil;in aşağıdaki yolu izleyebilirsiniz:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1.  &amp;quot;Control Panel&amp;quot; e git ve ve Add/Remove Programs' Tıkla&lt;br /&gt;&lt;br /&gt;2.  İsmi Visual Studio 2008/Codename Orcas olan her programı Remove - &amp;Ccedil;ıkart&lt;br /&gt;&lt;br /&gt;3. Aşağıda ismi ge&amp;ccedil;en programları kaldır:&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Crystal Reports for Visual Studio 2008 beta2&amp;quot; (or &amp;quot;Crystal Reports 2007&amp;quot;)&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;MSDN Library for Visual Studio 2008 Beta&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft SQL Server Compact Edition 3.5&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft SQL Server Compact Edition 3.5 Design Tools&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft SQL Server Compact Edition 3.5 for Devices&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft Visual Studio Performance Collection Tools&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Windows Mobile 5.0 SDK R2 for Pocket PC&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Windows Mobile 5.0 SDK R2 for Smartphone&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft Visual Studio Web Authoring Component / Microsoft Web Designer Tools&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft Visual Studio Tools for Office Runtime 3.0&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft Device Emulator 3.0&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft Document Explorer 2008&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft Visual Studio Codename Orcas Remote Debugger&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft Visual Studio 64bit Prerequisites Beta&amp;quot; (64-bit platforms only)&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft .NET Framework 3.5&amp;quot;&lt;br /&gt;&lt;br /&gt;* Remove &amp;quot;Microsoft .NET Compact Framework 3.5&amp;quot;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-258552474885185404?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/258552474885185404/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=258552474885185404&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/258552474885185404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/258552474885185404'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/11/visual-studio-2008i-kurmak.html' title='Visual Studio 2008&apos;i kurmak'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-5221266991613606530</id><published>2007-11-19T15:03:00.000+02:00</published><updated>2007-11-22T15:06:15.967+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Visual Studio 2008 RTM</title><content type='html'>&lt;p&gt;Biraz önce amerikan kökenli bir blog'da şöyle bir haber okudum: ""Visual Studio 2008 RTM available for download" Bunun anlamı Visual Studio 2008 in RTM versiyonunun download edilebileciğidir. Ama maalesef şimdilik MSDN üyeleri indirebilecekmiş. Ben MSDN üyesiyim ama hesabıma ulaşamıyorum. Sayfa sürekli hata veya meşgül uyarısı veriyor. Sanırım oldukça fazla ilgi gördü :)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bu sürüm üreticileri için çıkarılan son sürümdür. Diğer bir ifadeyle RC den sonraki Final sürüm. Denemeye devam edeceğim bakalım hakikaten download için MSDN e konmuş mu?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-5221266991613606530?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/5221266991613606530/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=5221266991613606530&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5221266991613606530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5221266991613606530'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/11/visual-studio-2008-rtm.html' title='Visual Studio 2008 RTM'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-9171673947189066836</id><published>2007-11-19T15:02:00.000+02:00</published><updated>2007-11-30T00:17:44.627+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Visual Studio 2008  ÇIKTI</title><content type='html'>&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img alt="" src="http://www.zaferdemirkol.com/Data/Sites/1/resimler/vs_2008.jpg" align="right" height="67" width="333" /&gt;Biraz önce yazmıştım Visual Studio 2008 RTM in piyasaya sürülmüş olabileceğini. Evet yeni çıkmış... henüz bir kaç saat önce MSDN üyeleri için download linki açılmış. Şu an ben de indiriyorum.... 4GB ye yakın.... Biraz zaman alacak...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ama değer.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;90 günlük Deneme sürümünü aşağıdaki adresten indirebilirsiniz:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/vstudio/products/aa700831.aspx"&gt;http://msdn2.microsoft.com/en-us/vstudio/products/aa700831.aspx&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bu arada ücretsiz sürümü olan Express Sürümlerini&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/express/"&gt;http://www.microsoft.com/express/&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;adresinden indirebilirsiniz.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-9171673947189066836?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/9171673947189066836/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=9171673947189066836&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/9171673947189066836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/9171673947189066836'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/11/visual-studio-2008-ikti.html' title='Visual Studio 2008  ÇIKTI'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-5179058093116105189</id><published>2007-11-15T15:06:00.000+02:00</published><updated>2007-11-22T15:08:26.016+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Visual Studio 2008</title><content type='html'>&lt;p&gt;Visual Studio 2008&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Visual Studio 2008 bu ay sonu itibarıyla piyasaya sürülecek. 2007 yılında olmamıza rağmen :)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Visual Studio 2008 ile birlikte oldukça güzel bir kaç yenilik de geliyor. Bunların başında tam teşekküllü bir javascript editör özelliği sağlaması var. Kod tamamlamalı, hata ayıklamalı tam teşekküllü bir javascript editörü...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ayrıca multi targeting özelliği ile daha önceki frameworkler de oluşturduğunuz projelerinizi illaki yeni framework de açmak gibi bir zorunluluğunuz yok.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ve tabii ki AJAX, LINQ ve Silverlight native desteği.... Anlayacağınız çok yeni teknolojileri Visual Studio 2008 ile birlikte edinmiş oluyorsunuz.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img alt="" src="http://www.zaferdemirkol.com/resimler/Framework_3_5.jpg" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Visual Studio 2008 ile birlikte hangi yenilikler geliyor? Daha detaylı incelemeyi makaleler kısmında bulabilirsiniz.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bu konuyla ilgili 2 bölümlük makaleyi çok yeni ekledim.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-5179058093116105189?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/5179058093116105189/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=5179058093116105189&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5179058093116105189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5179058093116105189'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/11/visual-studio-2008.html' title='Visual Studio 2008'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-5787709092415037614</id><published>2007-10-22T15:08:00.000+03:00</published><updated>2007-11-22T15:12:10.485+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Yeni Silverlight makaleleri</title><content type='html'>&lt;p&gt;Daha önceden silverlight ile ilgili makalelerim olacağını söylemiştim. İşte bunlardan iki tanesi&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Silverlight Video’ları Oluşturmak&lt;br /&gt;&lt;br /&gt;Silverlight 1.1 ile Bir Uygulama&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bu makalelere zaferdemirkol.com  "makaleler" linkinden ulaşabilirsiniz.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bu arada microsoft'un yeni bir hizmeti olan &lt;a href="http://www.popfly.com/"&gt;http://www.popfly.com/&lt;/a&gt; hizmete açıldı. Silverlight gadget, siteleri oluşturmanıza yarıyan bu hizmet şimdilik beta aşamasında.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img alt="" src="http://www.popfly.com/Images/Bubbles/Landing/AlertnessDog.png" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-5787709092415037614?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/5787709092415037614/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=5787709092415037614&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5787709092415037614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5787709092415037614'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/10/yeni-silverlight-makaleleri.html' title='Yeni Silverlight makaleleri'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-4632497859565895403</id><published>2007-10-16T17:28:00.002+03:00</published><updated>2009-10-16T17:33:01.085+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><title type='text'>MVP</title><content type='html'>2007, 2008, 2009 Yılı MVP (Most Valuable Professional - En Değerli Profesyonel ) Ödülü.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MD6_5lWn4N4/StiD8S6T-wI/AAAAAAAAAZQ/79qOuH66t2s/s1600-h/plaket_kucuk.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 247px;" src="http://3.bp.blogspot.com/_MD6_5lWn4N4/StiD8S6T-wI/AAAAAAAAAZQ/79qOuH66t2s/s320/plaket_kucuk.jpg" alt="" id="BLOGGER_PHOTO_ID_5393205625667975938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;MVP ünvanı Microsoft ürünlerinde bağımsız uzman olan ve bu sayede Microsoft'a katma değer sağladığı düşünülen kişilere Microsoft firmasının her yıl yeniden değerlendirerek verdiği bir ünvan ve ödüldür.&lt;br /&gt;&lt;br /&gt;Saygın ve prestijli bir ünvan olan MVP ödülü sahiplerinin en büyük özellikleri bilgi paylaşımı adına yaptıkları çalışmalardır.&lt;br /&gt;Bu ödüle 3 yıl üst üste layık gördüğü için başta Microsoft Türkiye olmak üzere tüm Microsoft yetkililerine teşekkür ederim.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-4632497859565895403?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/4632497859565895403/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=4632497859565895403&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4632497859565895403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/4632497859565895403'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/10/mvp.html' title='MVP'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MD6_5lWn4N4/StiD8S6T-wI/AAAAAAAAAZQ/79qOuH66t2s/s72-c/plaket_kucuk.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-5475988626963060839</id><published>2007-09-26T22:33:00.000+03:00</published><updated>2007-11-24T22:35:53.839+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Üç Yeni makale</title><content type='html'>&lt;p&gt;Bugün üç yeni makaleyi zaferdemirkol.com makaleler kısmına ekledim.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.zaferdemirkol.com/ajax_islem_belirteci.aspx"&gt;AJAX İşlem Belirteci&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.zaferdemirkol.com/toggle.aspx"&gt;TaggleButton Nasıl Eklenir ve kullanılır?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.zaferdemirkol.com/ajax_tabs.aspx"&gt;AJAX Tab'ları &lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-5475988626963060839?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/5475988626963060839/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=5475988626963060839&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5475988626963060839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/5475988626963060839'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/09/bugn-yeni-makaleyi-zaferdemirkol.html' title='Üç Yeni makale'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-1355180467612360016</id><published>2007-09-21T22:36:00.000+03:00</published><updated>2007-11-24T22:38:20.427+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>AJAX Takvim ve Silverlight</title><content type='html'>&lt;p&gt;Makaleler kısmında bir  AJAX  takvim uygulamasını bulabilirsiniz. &lt;img alt="" src="http://www.zaferdemirkol.com/Data/Sites/1/resimler/11.jpg" align="right" height="213" width="209" /&gt; Henüz ekledim. Geçenlerde microsoft silverligth 1.0 ın nihayi sürümünü çıkardı. Bu arada silverlight alpha 1.1 hızla beta aşamasına doğru geliyor. Bunların arasındaki farklar nedir derseniz bu siteyi takip edin derim. Pek yakında bu konularla ilgili makalelerim olacak.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-1355180467612360016?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/1355180467612360016/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=1355180467612360016&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/1355180467612360016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/1355180467612360016'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/09/ajax-takvim-ve-silverlight.html' title='AJAX Takvim ve Silverlight'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-8805168622201411107</id><published>2007-07-12T22:38:00.000+03:00</published><updated>2011-09-25T00:19:35.672+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genel'/><title type='text'>Neler Yaptım</title><content type='html'>Merhaba tekrar,&lt;br /&gt;&lt;br /&gt;uzun zaman oldu buraya yazmayalı. Ama bu süreç içinde boş durmadım. &lt;a href="http://mobil.milliyet.com.tr/mobil/Default.aspx?aType=AuthorDetail&amp;amp;authorID=24"&gt;mobil.milliyet.com&lt;/a&gt; daki yazılarıma devam ettim, yeni kitap çalışmalarım için ön hazırlıklar yaptım. Evet yeni bir kitap yolda ancak daha fazla detay şimdilik veremeyeceğim.&lt;br /&gt;&lt;br /&gt;Bu haftaki milliyet mobil yazımda çok katmanlı yazılım modellerinden bahsettim. Daha öncesinde de silverlight hakkında bir makale yayınladım. Meraklısına duyurulur.&lt;br /&gt;&lt;br /&gt;Bu arada sitede yaptığım ankette  makalelerin  video şeklinde olması ağırlık kazanıyor. Bu konuyla ilgili çalışmalarım devam ediyor.&lt;br /&gt;&lt;br /&gt;Bildiğiniz gibi videolu anlatımlar geniş bant genişlikleri istiyor. uygun bir server bulursam hemen başlayacağım.&lt;br /&gt;&lt;br /&gt;Bu konuda tekliflere açığım.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-8805168622201411107?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/8805168622201411107/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=8805168622201411107&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8805168622201411107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/8805168622201411107'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/07/neler-yaptm.html' title='Neler Yaptım'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-1926474375719841599</id><published>2007-05-10T22:39:00.000+03:00</published><updated>2007-11-24T22:41:25.778+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Microsoft Silverlight</title><content type='html'>&lt;p&gt;Konuyla ilgili olanlara yabancı gelmeyecek olan Windows Presentation Foundation (WPF) ve eXtensible Application Markup Language (XAML) in alt yapını oluşturduğu ve kod adı WPF/E&amp;nbsp; olan teknoloji Microsoft tarafından&amp;nbsp; yeni ismiyle silverlight&amp;nbsp; olarak duyuruldu http://silverlight.net .&lt;br /&gt;&lt;br /&gt;Teknik detayları daha sonraki yazılarımda incelemeyi planlıyorum. &lt;br /&gt;&lt;br /&gt;Ancak konuya yabancı olanlar i&amp;ccedil;in kısa bir a&amp;ccedil;ıklama yapmak faydalı olacak.&lt;br /&gt;&lt;br /&gt;Silvelight&amp;nbsp; değişik platformlarda &amp;ccedil;alışabilen bir web sunum teknolojisi. &lt;br /&gt;&lt;br /&gt;Silvelight&amp;nbsp;&amp;nbsp; kullanıcı tarafında browser&amp;rsquo;a eklenen bir plug-in,&amp;nbsp; b&amp;ouml;ylece daha zengin i&amp;ccedil;erikli web uygulamaları sunmak&amp;nbsp; m&amp;uuml;mk&amp;uuml;n. &amp;Ouml;rneğin video, m&amp;uuml;zik gibi multimedya uygulamaları, 3 boyutlu grafik ve animasyon g&amp;ouml;r&amp;uuml;nt&amp;uuml&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-1926474375719841599?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/1926474375719841599/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=1926474375719841599&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/1926474375719841599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/1926474375719841599'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2007/05/microsoft-silverlight.html' title='Microsoft Silverlight'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-7765357680323434697</id><published>2006-10-16T17:37:00.000+03:00</published><updated>2010-07-31T00:45:20.879+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Çok Satan Kitap'/><title type='text'>Çok Satan</title><content type='html'>* ASP Hepsiburada temmuz 2006&lt;br /&gt;* ASP.net 2 Hepsiburada Eylül 2006&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MD6_5lWn4N4/StiFl1nCXsI/AAAAAAAAAZY/mUNUaNrvtpA/s1600-h/05_eylulu_2006_hb2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 320px;" src="http://4.bp.blogspot.com/_MD6_5lWn4N4/StiFl1nCXsI/AAAAAAAAAZY/mUNUaNrvtpA/s320/05_eylulu_2006_hb2.jpg" alt="" id="BLOGGER_PHOTO_ID_5393207438868635330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* ASP.net 2 D&amp;amp;R ağustos 2006&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiF5Etf70I/AAAAAAAAAZg/R6pJJvr_3X0/s1600-h/6_agust_2006_aspnet_2_dr2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 320px;" src="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiF5Etf70I/AAAAAAAAAZg/R6pJJvr_3X0/s320/6_agust_2006_aspnet_2_dr2.jpg" alt="" id="BLOGGER_PHOTO_ID_5393207769339785026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* estore ağustos 2001&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiGR90wt3I/AAAAAAAAAZo/jJV38jPaSdQ/s1600-h/estore_agust_2001.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 236px; height: 320px;" src="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiGR90wt3I/AAAAAAAAAZo/jJV38jPaSdQ/s320/estore_agust_2001.gif" alt="" id="BLOGGER_PHOTO_ID_5393208196987926386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* kitapyurdu ocak 2001&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MD6_5lWn4N4/StiGmBhl5xI/AAAAAAAAAZw/P8EsuNLxDVw/s1600-h/kitapyurdu_ocak_2001.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 112px; height: 320px;" src="http://4.bp.blogspot.com/_MD6_5lWn4N4/StiGmBhl5xI/AAAAAAAAAZw/P8EsuNLxDVw/s320/kitapyurdu_ocak_2001.gif" alt="" id="BLOGGER_PHOTO_ID_5393208541578651410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* estore şubat 2001&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MD6_5lWn4N4/StiHFFX64fI/AAAAAAAAAZ4/qxcSENb6CJs/s1600-h/estore_subat_2001_genel.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 149px; height: 320px;" src="http://1.bp.blogspot.com/_MD6_5lWn4N4/StiHFFX64fI/AAAAAAAAAZ4/qxcSENb6CJs/s320/estore_subat_2001_genel.gif" alt="" id="BLOGGER_PHOTO_ID_5393209075187769842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* ideefixe şubat 2001&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiHSp_5t0I/AAAAAAAAAaA/v4LUV9_n_x0/s1600-h/ideefixe_subat_2001.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 157px; height: 320px;" src="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiHSp_5t0I/AAAAAAAAAaA/v4LUV9_n_x0/s320/ideefixe_subat_2001.gif" alt="" id="BLOGGER_PHOTO_ID_5393209308357441346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* kitapyurdu ocak 2001&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MD6_5lWn4N4/StiHqMS1ppI/AAAAAAAAAaI/tuf6yONZDMQ/s1600-h/kitapyurdu_ocak_2001_genel.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 111px; height: 320px;" src="http://4.bp.blogspot.com/_MD6_5lWn4N4/StiHqMS1ppI/AAAAAAAAAaI/tuf6yONZDMQ/s320/kitapyurdu_ocak_2001_genel.gif" alt="" id="BLOGGER_PHOTO_ID_5393209712700663442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* estore haziran 2001&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiH9YpCX5I/AAAAAAAAAaQ/Lj6cgBRU0QM/s1600-h/estore_haziran_2001.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 242px; height: 320px;" src="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiH9YpCX5I/AAAAAAAAAaQ/Lj6cgBRU0QM/s320/estore_haziran_2001.gif" alt="" id="BLOGGER_PHOTO_ID_5393210042432511890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* estore haziran 2001 genel&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiII03AQlI/AAAAAAAAAaY/pNlWTba8iWI/s1600-h/estore_haziran_2001_genel.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 235px; height: 320px;" src="http://2.bp.blogspot.com/_MD6_5lWn4N4/StiII03AQlI/AAAAAAAAAaY/pNlWTba8iWI/s320/estore_haziran_2001_genel.gif" alt="" id="BLOGGER_PHOTO_ID_5393210238985847378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* ASP Hepsiburada.com 2006&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MD6_5lWn4N4/StiIU6GhojI/AAAAAAAAAag/qrgzFpBpLVk/s1600-h/4_agust_2006_dr_asp.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 142px; height: 320px;" src="http://3.bp.blogspot.com/_MD6_5lWn4N4/StiIU6GhojI/AAAAAAAAAag/qrgzFpBpLVk/s320/4_agust_2006_dr_asp.jpg" alt="" id="BLOGGER_PHOTO_ID_5393210446551556658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* ASP.net 2 Hepsiburada Ocak 2007&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MD6_5lWn4N4/StiIk-HC-EI/AAAAAAAAAao/vX-nlDEg89s/s1600-h/12_ocak_2007_hb_genel.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 198px; height: 320px;" src="http://4.bp.blogspot.com/_MD6_5lWn4N4/StiIk-HC-EI/AAAAAAAAAao/vX-nlDEg89s/s320/12_ocak_2007_hb_genel.jpg" alt="" id="BLOGGER_PHOTO_ID_5393210722505390146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;* C# ile ASP.net 2 ve ASP.net 2 Hepsiburada Ocak 2007&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MD6_5lWn4N4/StiI0apzqMI/AAAAAAAAAaw/2roCMRoXF7k/s1600-h/12_ocak_2007_hb.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 138px; height: 320px;" src="http://3.bp.blogspot.com/_MD6_5lWn4N4/StiI0apzqMI/AAAAAAAAAaw/2roCMRoXF7k/s320/12_ocak_2007_hb.jpg" alt="" id="BLOGGER_PHOTO_ID_5393210987865417922" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-7765357680323434697?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/7765357680323434697/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=7765357680323434697&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7765357680323434697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/7765357680323434697'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2009/10/cok-satan.html' title='Çok Satan'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MD6_5lWn4N4/StiFl1nCXsI/AAAAAAAAAZY/mUNUaNrvtpA/s72-c/05_eylulu_2006_hb2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-6078069134018798508</id><published>2006-10-16T16:55:00.002+03:00</published><updated>2009-10-16T17:17:25.703+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kitaplarım'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>C# İle ASP.NET 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MD6_5lWn4N4/Sth_uZjpaiI/AAAAAAAAAZA/U5zTcMDOXIw/s1600-h/c_ile_ASPnet_2k.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 158px; height: 191px;" src="http://1.bp.blogspot.com/_MD6_5lWn4N4/Sth_uZjpaiI/AAAAAAAAAZA/U5zTcMDOXIw/s400/c_ile_ASPnet_2k.jpg" alt="" id="BLOGGER_PHOTO_ID_5393200988887280162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;424 Sayfa, 1.Baskı&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ASP.NET 2’yi takiben çıkan kitap C# programcıları düşünülerek hazırlandı.&lt;br /&gt;Bu kitaptaki kodlar tamamen C# için güncelleştirildi.&lt;br /&gt;Bu haliyle farklı programlama dilleriyle çalışanlar iki kitap arasında seçim yapma şansına sahipler.&lt;br /&gt;Kısa bir süre önce ASP’nin Microsoft .NET teknolojisi içindeki yeni bir versiyonu ASP.NET ve de bu teknolojinin 2. sürümü ASP.NET 2 kullanıma sunuldu. ASP ile hiç alakanız yoksa bile ASP’ye iyi bir başlangıç yapabileceğiniz şekilde bir içeriğe sahip olan kitap, başlangıç seviyesindeki kullanıcılar da, hali hazırda profesyonel olarak ASP, ASP.NET ile proje geliştirenler de düşünülerek geliştirildi.&lt;br /&gt;&lt;br /&gt;• 180 Adet Örnek Uygulama&lt;br /&gt;&lt;br /&gt;• 302 Adet Resim ve Şema&lt;br /&gt;&lt;br /&gt;• Portal Uygulaması&lt;br /&gt;&lt;br /&gt;• ASP.NET 1.x ile Karşılaştırmalı Anlatım&lt;br /&gt;&lt;br /&gt;• ASP.NET 2’nin İşleyiş Mantığı&lt;br /&gt;&lt;br /&gt;• Nesneye Yönelik Programlama Yapısı&lt;br /&gt;&lt;br /&gt;• Master Pages&lt;br /&gt;&lt;br /&gt;• ADO.NET 2&lt;br /&gt;&lt;br /&gt;• Temalar&lt;br /&gt;&lt;br /&gt;• Yeni Kontroller&lt;br /&gt;&lt;br /&gt;• Profiller&lt;br /&gt;&lt;br /&gt;• Yapılandırma ve Yönetim&lt;br /&gt;&lt;br /&gt;• İzleme ve Hata Denetimi&lt;br /&gt;&lt;br /&gt;• Web Part’lar&lt;br /&gt;&lt;br /&gt;gibi geniş bir içeriğe sahip olan kitap, ASP.NET 2 teknolojisini tanımak ve kavramak için ideal bir kaynak.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-6078069134018798508?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/6078069134018798508/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=6078069134018798508&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6078069134018798508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6078069134018798508'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2006/10/c-ile-aspnet-2.html' title='C# İle ASP.NET 2'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MD6_5lWn4N4/Sth_uZjpaiI/AAAAAAAAAZA/U5zTcMDOXIw/s72-c/c_ile_ASPnet_2k.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-6728764680261794930</id><published>2006-10-16T16:53:00.002+03:00</published><updated>2009-10-16T17:17:11.965+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kitaplarım'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MD6_5lWn4N4/Sth_j4Bm5_I/AAAAAAAAAY4/bj4T0Xdi6M4/s1600-h/asp.net2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 140px; height: 173px;" src="http://4.bp.blogspot.com/_MD6_5lWn4N4/Sth_j4Bm5_I/AAAAAAAAAY4/bj4T0Xdi6M4/s400/asp.net2.jpg" alt="" id="BLOGGER_PHOTO_ID_5393200808087447538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;1.Basım&lt;br /&gt;406 Sayfa&lt;br /&gt;1. Hamur -- 17 x 24 cm&lt;br /&gt;İstanbul, Haziran 2006&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;—Yeni başlayanlar veya halen web sitesi uygulamaları geliştirenler için&lt;br /&gt;—SQL Server 2005 Express ve Access Veritabanları ile örneklemeler&lt;br /&gt;—302 Adet Resim, Şema&lt;br /&gt;—180 adet örnek uygulama&lt;br /&gt;—Visual Web Developer Express veya Visual Studio 2005 editörleri ile kullanım&lt;br /&gt;—Kişisel web sitesi uygulaması&lt;br /&gt;—Portal uygulaması&lt;br /&gt;—ASP.NET 1.x ile karşılaştırmalı anlatım&lt;br /&gt;—ASP.NET 2 işleyiş mantığı&lt;br /&gt;—Nesneye yönelik programlama yapısı&lt;br /&gt;—Master Pages&lt;br /&gt;—ADO.NET 2&lt;br /&gt;—Temalar&lt;br /&gt;—Yeni kontroller&lt;br /&gt;—Profiller&lt;br /&gt;—Üyelik sistemi ve yetkilendirme&lt;br /&gt;—Web Part’lar&lt;br /&gt;—Performans&lt;br /&gt;—Yapılandırma ve yönetim&lt;br /&gt;—izleme(monitoring) ve hata denetimi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;“Amerika Birleşik Devletleri GSMH’sinin yüzde 1’i uzmanlar tarafından bilişim sektörünün getirdiği verimlilik ve üretkenlik ile açıklanıyor. Türkiye’nin kalkınmasında da, bilişimin çok önemli yerinin olacağı apaçık ortada.&lt;br /&gt;&lt;br /&gt;Türkiye’nin, son derece zengin fırsat ve olanakların bulunduğu dünya bilişim sektöründe, çok önemli bir rol oynayacağına inanıyorum. Bu inancın temelinde, Türkiye’nin bu konuma gelmesi için gerekli potansiyele sahip olması yatıyor. Coğrafi açıdan çok stratejik bir konumda bulunan ülkemizin, yüzde 53’ü 25 yaşın altında olan genç ve dinamik bir nüfusu var. Bilişim teknolojilerinde öğrenim görmeyi tercih eden öğrencilerimiz, aynı zamanda okulda ve üniversite giriş sınavında en üst düzeyde başarı gösterenler arasından çıkıyor.&lt;br /&gt;&lt;br /&gt;Bilişim sektöründeki kimlik arayışımız sırasında karşımıza iki alternatif çıkacaktır: Ülke olarak ya maliyete dayalı bir rekabet izleyeceğiz, ya da bilgi toplumuna dayalı bir rekabete yöneleceğiz. Bilişim sektöründe uzun vadeli bir başarının, bilgi—toplumuna yatırım yapmaktan geçtiği inancındayım. Türk bilişim sektörünün bu seviyeye gelmesi ancak yazılımcılarımızın yeni teknolojileri yakından takibi ve bu yeni teknolojilere yatırım yapmalarıyla mümkün olacaktır. Bu yeni teknolojileri öğrenmede, Türkçe kaynakların gerekliliği hiç tartışma götürmez bir gerçek. Bu ve benzeri yayınların, söz konusu hedefe ulaşmamızda çok önemli bir görev üstlendiğini düşünüyorum.”&lt;br /&gt;&lt;br /&gt;Çağlayan Arkan&lt;br /&gt;Microsoft Türkiye Genel Müdürü&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-6728764680261794930?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/6728764680261794930/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=6728764680261794930&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6728764680261794930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/6728764680261794930'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2006/10/aspnet-2.html' title='ASP.NET 2'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MD6_5lWn4N4/Sth_j4Bm5_I/AAAAAAAAAY4/bj4T0Xdi6M4/s72-c/asp.net2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-115519441881881232</id><published>2006-09-10T10:17:00.000+03:00</published><updated>2007-11-22T13:59:20.383+02:00</updated><title type='text'>kitaplar.net</title><content type='html'>Yazılarıma bundan böyle&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-115519441881881232?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/115519441881881232/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=115519441881881232&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/115519441881881232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/115519441881881232'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2006/08/kitaplarnet.html' title='kitaplar.net'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-114321610963437341</id><published>2006-03-24T18:00:00.000+02:00</published><updated>2006-03-24T18:08:20.196+02:00</updated><title type='text'>Visual Studio.NET – Bir ASP.NET Projesi- 1</title><content type='html'>&lt;strong&gt;• Visual Studio.NET nedir?&lt;br /&gt;• Visual Studio.NET Sürümleri&lt;br /&gt;• Proje ne demektir?&lt;br /&gt;• Visual Studio.NET Proje seçenekleri&lt;br /&gt;• Visual Studio.NET ile bir ASP.NET uygulaması&lt;br /&gt;• Şekilsel Olarak Düzenlemeler Yapmak&lt;br /&gt;• Kod Yazmak&lt;br /&gt;• Code Behind&lt;br /&gt;• Çalıştırma seçenekleri&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Bir .NET uygulaması geliştirmek için kullanabileceğiniz araçlar birden fazladır. Textpad, Notepad gibi sıradan text editörler veya Visual Studio.net ve Web matrix gibi özel editörler.&lt;br /&gt;İsterseniz baştan başlayalım. Öncelikle devam eden cümlemin altını çizerek yazdığıma dikkat edin:&lt;br /&gt;.NET’e ait herhangi bir uygulama notepad gibi basit bir metin editörü ile en başından sonuna kadar geliştirilebilir.&lt;br /&gt;&lt;br /&gt;Bu önemli bir cümle sakın unutmayın.&lt;br /&gt;Madem önemli cümlelerden gidiyoruz alın size bir tane daha:&lt;br /&gt;ASP.NET uygulamaları, kendi içinde ne kadar karmaşık olursa olsun, ne kadar teknoloji barındırırsa barındırsın, çıktıları sonuçta birer HTML veya client taraflı bir scripttir.&lt;br /&gt;Sadece asp.net uygulamaları mı? Hayır.&lt;br /&gt;Bütün web uygulamaları.&lt;br /&gt;Ne olurlarsa olsunlar, sonuçta geldikleri yer browserdır ve browserda sadece HTML i ve java scripti tanır.&lt;br /&gt;Sakın bu iki cümleyi unutmayın.&lt;br /&gt;Şimdi gelelim Visual studio.NET’e (VS.NET 2003).&lt;br /&gt;&lt;br /&gt;Öncelikle VS.NET , .NET platformunun tek ve eşsiz editörüdür. Bırakın rakibini, alternatifi yok gibidir. (web matrix ayrı bir platformda iyi bir editör)&lt;br /&gt;&lt;br /&gt;En son söylenmesi gerekeni şimdi söyleyeyim de rahatlayayım, eğer .NET ait herhangi bir konu (VB.NET, C#, ASP.NET vb) öğrenmek istiyorsanız, kesinlikle VS.NET i tavsiye ederim.&lt;br /&gt;Tabii ki VS.NET bir öğrenme aracı değil, bir profesyonel uygulama geliştirme aracı, ama dedim ya bu en son söylenecek şeydi….&lt;br /&gt;&lt;br /&gt;Aslında VS.NET e bir editör demek yanlış.&lt;br /&gt;O, - biraz önce söylediğim gibi - .NET in uygulama geliştirme aracı.&lt;br /&gt;.NET de ne yapmak istiyorsanız, hemen hepsini VS.NET ile kolayca, görsel arabirimler ile yapabilirsiniz.&lt;br /&gt;Neden böyle?&lt;br /&gt;çünkü, .NET i de VS.NET’i de aynı firma, Microsoft geliştirmiş.&lt;br /&gt;Bundan doğal bir şey olabilir mi?&lt;br /&gt;Visual Studio veya diğer editörler ile çalışanlar ortam hakkında aşağı yukarı bir tahminde bulunabilirler.&lt;br /&gt;Görsel araçlar ile bütün bir projeyi baştan sona, çok hızlı bir şekilde geliştirmemize yardımcı olur bu tip araçlar.&lt;br /&gt;&lt;br /&gt;Visual Studio.NET Sürümleri&lt;br /&gt;Lafı uzatmadan VS.NET i tanıtmaya başlayayım.&lt;br /&gt;Öncelik mayıs 2003 ayında çıkan VS.NET 2003 ile birlikte, şu an iki sürümü kullanılıyor (2005 serilerine bu yazımda değinmeyeceğim).&lt;br /&gt;&lt;br /&gt;Bu sürümlerde kendi aralarında, “Architect”, “Enterprise Developer”, ve “Professional” gibi farklı alt sürümlerle piyasada bulunabilir.&lt;br /&gt;&lt;br /&gt;Öncelikle kurulumdan başlayalım. Donanımınız ne kadar güçlü olursa olsun VS.NET kurulumuna zaman ayırmalısınız.&lt;br /&gt;Minimumda yarım saat. Normal donanımlarda daha da fazla.&lt;br /&gt;&lt;br /&gt;Kurulum CD leri, yüklemeyi otomatik yapıyor.&lt;br /&gt;Sizin yapacağınız fazla bir şey yok.&lt;br /&gt;VS.NET için hangi donanım gereksinimlerine ihtiyacınız olduğunu http://msdn.microsoft.com/vstudio/productinfo/sysreqs/default.aspx&lt;br /&gt;adresinden öğrenebilirsiniz.&lt;br /&gt;&lt;br /&gt;VS.NET i ilk çalıştırdığınızda aşağıdaki gibi bir ortamla karşılaşırsınız:&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/pcworld_haziran/01.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Gerçekten şık bir dizayn, bir de neler yapabildiğini bilseniz …&lt;br /&gt;&lt;br /&gt;Yukarıda da söylediğim gibi, VS.NET ile .NET’e ait her uygulamayı geliştirebilirsiniz. Üstelik istediğiniz dilde. Bunlar neler mi? Öğrenmek çok kolay, Yukarıdaki ekrandan file&gt; new… daha sonra “project” i tıklayın ve geliştirebileceğiniz uygulamaları görün:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/pcworld_haziran/02.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Visual Basic.net, C# ve C++ ile geliştirebileceğiniz projeler, ekranın sağ tarafında verilmiş. Bu resimden hepsi gözükmüyor, ben sizin için hepsini gösteren bir resim oluşturdum:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/pcworld_haziran/03.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Buraya bakarsak, vb ile geliştirebileceğimiz proje tiplerini görürsünüz. Örneğin “windows application” ile bir desktop uygulama geliştirebiliriz. “Class Library” ile bir .NET sınıf, “ASP.NET web service” ile bir web servis uygulaması geliştirebilirsiniz.&lt;br /&gt;&lt;br /&gt;Peki bir proje ne demektir?...&lt;br /&gt;Herhangi bir uygulama için bir proje oluşturulduğunda, bu uygulama için gerekebilecek (bazen gerekmeyecek) her şey VS.NET tarafından otomatik olarak oluşturulur. Bu cümle sizin için bir şey ifade etmiyor olabilir.&lt;br /&gt;O zaman bir uygulama üzerinden gidelim. Yukarıdaki proje seçeneklerinden, “ASP.NET web application” u seçelim, projemize bir isim verelim ve “ok” ye tıklayalım.&lt;br /&gt;&lt;br /&gt;Visual Studio.NET ile ASP.NET uygulaması geliştirmek&lt;br /&gt;VS.NET bir müddet çalışacak sizi bekletecek ve aşağıdakine benzer bir ortamı karşınıza çıkaracak. Benzer diyorum çünkü bu ortamları kendinize göre uyarlayabiliyorsunuz:&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/pcworld_haziran/04.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Seçtiğimiz proje bir web uygulaması olduğu için, VS.NET, asp.net ile uygulama geliştirmek için gereken bütün ortamı ve dosyaları oluşturdu.&lt;br /&gt;&lt;br /&gt;Siz farkında olmadan, IIS (Internet information Services) e, kayıdınızı yaptı, Proje için gerekli olacak “bin” dizinini oluşturdu ve ekran görüntüsünün sağ tarafında gözüken, dosyaları oluşturdu&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/pcworld_haziran/05.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Bu pencereye “solution explorer” denir ve iki kısımda incelenir. Birincisi projemiz için gerekli olan ve olabilecek referanslar ve ikincisi gerekli olan veya olabilecek dosyalar.&lt;br /&gt;Madem bir web projesi geliştiriyoruz o zaman uzantısı aspx olan bir ASP.NET sayfası mutlaka olmalı. Bunu VS.NET sizin için oluşturur. Ancak buna mukabil “Style.css” dosyası olmayabilir. Yani siz bunu isterseniz kullanırsınız. Buna rağmen VS.NET bu dosyayı da sizin için oluşturur.&lt;br /&gt;&lt;br /&gt;ASP.NET sayfanızı “aspx” olarak sizin için oluşturan VS.NET aynı zamanda, bu dosya içinde de gereken ifadeleri koyar. İlk başta “WebForm1.aspx” olarak tanımlı gelen bu dosyanın ismini üzerine sağ tuşla gelerek değiştirebilirsiniz. Ben bu ismi “deneme.aspx” yaptım.&lt;br /&gt;Deneme.aspx in VS.NET de iki temel görünümü vardır. Bunlar dizayn ve HTML dir.&lt;br /&gt;Dizayn da, görsel araçları sürükle bırak ile sayfaya taşıyabilirsiniz. HTML de ise doğrudan “web form” ve HTML kod ifadelerinizi yazabilirsiniz:&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/pcworld_haziran/06.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/pcworld_haziran/07.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;HTML görüntüsünden de ansıyacağınız gibi VS.NET bir ASP.NET sayfası için gerekebilecek her şeyi sayfaya eklemiş. Henüz sayfamız boş ama alt yapı hazır.&lt;br /&gt;Gelin şimdi basit bir uygulama geliştirelim.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-114321610963437341?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/114321610963437341/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=114321610963437341&amp;isPopup=true' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/114321610963437341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/114321610963437341'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2006/03/visual-studionet-bir-aspnet-projesi-1.html' title='Visual Studio.NET – Bir ASP.NET Projesi- 1'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-114267254927380063</id><published>2006-03-18T11:00:00.000+02:00</published><updated>2006-03-18T11:10:10.946+02:00</updated><title type='text'>VS.NET 2003 ile Mobil ve Smart (Akıllı) Cihazlar İçin  Uygulama Geliştirmek</title><content type='html'>Mobil ve Akıllı (smart) cihaz uygulamaları geliştirmek VS.NET 2003 ile eskiye nazaran çok daha kolay.&lt;br /&gt;&lt;br /&gt;Uygulamaların hızla, internet ortamına ve özellikle kablosuz cihazlara kaydığı günümüzde, VS.NET 2003, sunduğu araçlar sayesinde, çok etkin ve hızlı mobil uygulamaları geliştirmemize olanak tanıyor.&lt;br /&gt;VS.NET 2003 (ve Framework 1.1) Pocket PC, Pocket PC phone ve diğer smart (akıllı) cihazlar için bütünleşmiş bir ortam sunuyor. Üstelik bu ortamda cihazların simülatörleri bile eklenebiliyor. Yani uygulama geliştirmek istediğiniz cihazın emülatörünü, VS.NET 2003 e tanıtıyorsunuz ve uygulamanızın sonuçlarını bu emülatörde görebiliyorsunuz. Bunun yanında isterseniz cihazın kendisini bağlayıp test edebiliyorsunuz.&lt;br /&gt;&lt;br /&gt;VS.NET 2003 proje seçenekleri içinde, mobil web formları oluşturarak, 200 den fazla mobil telefona ve PDAs’a uygulama geliştirme imkanı tanıyan bir seçenek de mevcuttur.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/mayis/vs_01.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;VS.NET 2003 ü yeni bir proje oluşturmak için açtığınızda yukarıda bahsettiğim proje tipleri sizin kullanımınıza sunuluyor. Getirdiği bu özellikler sayesinde bir mobil ve smart cihaz uygulamasının ne kadar kolay ve çabuk geliştirildiğini gelin hep beraber görelim.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Basit Bir Akıllı Cihaz Uygulaması (Smart Device Application)&lt;/strong&gt;&lt;br /&gt;İlk örneğimiz için yukarıdaki pencereden “Smart Device Application” bir kere tıklayıp projemize isim verdikten sonra “ok” ye basın. Daha sonra VS.NET 2003 tercihinize göre (ilk başta hangi cihaz ve ortamlar için uygulama geliştireceğiniz soracak) akıllı cihaz için gerekecek bütün ortamı oluşturur.&lt;br /&gt;Geliştirme ortamı için bir form sunarak web form elemanlarınızı buraya sürükle bırak yapmanıza imkân sağlar:&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/mayis/vs_02.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Projeyi derlediğinizde (çalıştırdığınızda) Uygulamanızın seçtiğiniz emülatör veya cihazda çıktısını görürsünüz.&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/mayis/vs_03.gif" width="200" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aynı kolaylıklar Mobil web formlar içinde geçerlidir. Her ne kadar bu özellik bir önceki sürümde daha sonradan eklenebiliyor olsa da bu versiyonda doğal bir özellik olarak gelmektedir.&lt;br /&gt;&lt;br /&gt;&lt;img height="343" src="http://www.kitaplar.net/blog/mayis/vs_04.gif" width="429" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Mobil form, dilediğiniz kullanıcı arabirimine ev sahipliği etmektedir. Kullanıcı arabirimleri de yandaki “mobile web forms” dan sürükle bırak yöntemi ile forma’a eklenebilmektedir.&lt;br /&gt;&lt;br /&gt;Çıktılar için bir mobil telefon emulatörü kullanabilirsiniz.&lt;br /&gt;Bu emülatörler, cep telefonu üreticilerinin web sitelerinde, “developers” kısmında bulunmaktadır.&lt;br /&gt;&lt;br /&gt;Uygulama geliştirmede görünen bu yeni proje olanaklarının yanı sıra VS.NET 2003, görünür görünmez, irili ufaklı pek çok yenilik ve gelişme ile gelmektedir.&lt;br /&gt;&lt;br /&gt;Yeni veri (tabanı) yönetici yapıları ile pek çok veritabanı ile, projelerde doğrudan uygulama geliştirme imkanı vermektedir. Bir önceki sürümde, OLEDB ve SQL veri tabanlarının veri yönetimini programatik olarak yapabiliyorduk. Gerçi OLEDB ile pek çok veri tabanına erişip işlemler yapmak mümkün olabiliyordu ama, performans ile ilgi birtakım ciddi sıkıntılarda oluşabiliyordu. Halbuki yeni veri yöneticiler (data provider) ile Jet, DB2, ve Oracle gibi veritabanları ile daha hızlı ve efektif işlemler yapmak mümkün.&lt;br /&gt;&lt;br /&gt;VS.NET 2003 geliştirilmiş ve standartlara uygun XML web servisleri uygulamaları geliştirmemize de imkan tanıyor.&lt;br /&gt;&lt;br /&gt;VS.NET 2003 ve Framework 1.1 ile birlikte, VB.NET, C# gibi kullanılan programlama dillerinde de ufak tefek iyileştirmeler ve geliştirmeler yapılmış. Ancak korkmanıza gerek yok bunlar öyle çok büyük değişiklikler değil. Ayrıca bu sürümü ile birlikte Visual Java#.NET i de geliştiricilerin hizmetine sunmuş.&lt;br /&gt;&lt;br /&gt;özetlersek VS.NET 2003 aşağıdaki temel hizmetleri kullanımımıza sunmaktadır:&lt;br /&gt;&lt;br /&gt;Smart(akıllı) ve mobil Cihazlar için bütünleşik bir yapı,&lt;br /&gt;&lt;br /&gt;Geliştirilmiş web servisleri: Son web servisleri standartlarına uygun bir yapı. Örneğin WS-Routing, WS-Security, WS-Attachments, ve Direct Internet Message Encapsulation (DIME).&lt;br /&gt;&lt;br /&gt;Geliştirilmiş hata yakalama (debugger) yöntemleri.&lt;br /&gt;&lt;br /&gt;Yeni ADO.NET Managed Provider ‘lar. Bu data yöneticileri Oracle 7i, Oracle 8i, ve ODBC gibi veri tabanlarına kolayca erişip işlem yapmamızı sağlıyorlar.&lt;br /&gt;&lt;br /&gt;Güvenlik ve performans açısından geliştirilmiş yeni Framework 1.1 sürümünü kullanması.&lt;br /&gt;&lt;br /&gt;Visual Java#.NET ile entegrasyon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;VS.NET 2003 ün 3 ayri ticari sürümü bulunmaktadır bunlar:&lt;br /&gt;Enterprise Architect&lt;br /&gt;Enterprise Developer&lt;br /&gt;Professional&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-114267254927380063?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/114267254927380063/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=114267254927380063&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/114267254927380063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/114267254927380063'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2006/03/vsnet-2003-ile-mobil-ve-smart-akll.html' title='VS.NET 2003 ile Mobil ve Smart (Akıllı) Cihazlar İçin  Uygulama Geliştirmek'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-114267195302454596</id><published>2006-03-18T10:52:00.000+02:00</published><updated>2006-03-18T10:52:33.396+02:00</updated><title type='text'>Visual Studio.NET 2003 (VS.NET 2003)</title><content type='html'>İlk (ticari) sürümü 2002 yılında piyasaya verilen VS.NET in daha yeni versiyonu 2003 yılında çıktı. Microsoft un genel teamülüne bakıldığında, herhangi bir ürün için, aslında her sene yeni bir sürüm çıkarmıyor. Peki, o zaman VS.NET 2002 de problemler mi var ki hemen bir sene sonra yeni bir sürümle karşımızda oluyor?&lt;br /&gt;Bu sorunun yanıtı kesinlikle hayırdır.&lt;br /&gt;&lt;br /&gt;Şu ana kadar VS.NET ile çalışıp da ciddi bir sorunla karşılaşanı duymadım, aynen windows2000 de olduğu gibi. Hatta “service pack” bile çıkarmadılar.&lt;br /&gt;(.NET Framework ün var ama doğrudan VS.NET in yok)&lt;br /&gt;&lt;br /&gt;VS.NET 2003 ün özelliklerine geçmeden önce, VS.NET in ne olduğunu bilmeyen okuyucularımıza tanımlayayım.&lt;br /&gt;VS.NET Microsoft’un .NET teknolojisi için geliştirdiği uygulama geliştirme aracıdır.&lt;br /&gt;Bu araç sayesinde, elle yazacağınız pek çok kod’u VS.NET sizin için otomatik oluşturur. Uygulama geliştiricilere, grafik bir arabirim sunarak, profesyonel ve kompleks uygulamaları hızlı bir şekilde geliştirmelerine imkan sağlar. Programcıları bir sürü sıkıcı işlem yapmaktan kurtararak, uygulamanın mantığına yönelmelerini sağlar.&lt;br /&gt;Akıllı kod tamamlama ve güçlü yardıma erişme özellikleri ile, aynı zamanda, uygulama geliştiricilerini, en iyi şekilde eğiten imkanlara da sahiptir.&lt;br /&gt;&lt;br /&gt;VS.NET 2003 bütün bunların yanı sıra, bazı geliştirilmiş özellikler ve yeni araçlar sunmaktadır.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;.NET Framework 1.1&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;VS.NET 2003 ün kalbini .NET Framework ün yeni versionu 1.1 oluşturur. Konuyla ilgili olanlar bilirler, halihazırda bir çok uygulamada frameworkün 1.0 versiyonu kullanılmakta.&lt;br /&gt;VS.NET 2003 ve Windows Server 2003 ile birlikte kullanıma sunulan Framework 1.1, Windows server 2003 e eskiden olduğu gibi ayrıca yüklenmiyor, zaten onun bünyesinde doğal olarak bulunuyor. Eğer elinizde windows 2000 veya windowsXP işletim sistemi mevcut ise, framework’ün 1.1 sürümünü yüklemelisiniz. VS.NET 2003 çalıştırmanız için bu sürüm gerekmektedir.&lt;br /&gt;VS.NET 2003 yaptığı her şeyi bu Framework’e dayanarak yapmaktadır.&lt;br /&gt;Aynen VS.NET ve Framework 1.0 da olduğu gibi.&lt;br /&gt;VS.NET 2003 in görsel araçları ile oluşturulan her şeyin temelinde, güvenlik ve performans açısından geliştirilmiş bu framework yatar. Dolayısı ile VS.NET 2003 in yeni veya eski özelliklerinden bahsettiğimizde, aslında bir bakıma frameworkün de yeni veya eski özelliklerinden de bahsetmiş oluyoruz. Tam tersi de geçerlidir.&lt;br /&gt;&lt;br /&gt;.NET Framework 1.0 ve 1.1 arasındaki değişikliklerin tam listesini, Microsoft’un resmi sitesi olan http://www.gotdotnet.com/team/changeinfo/default.aspx adresinden alabilirsiniz.&lt;br /&gt;Ancak Framework’ün yeni sürümünde iyileştirilmiş ve geliştirilmiş yeni özelliklerin yanı sıra en kayda değer değişiklik, mobil ve akıllı cihazlar için (smart devices) uygulama geliştirmeyi bütünleşik bir yapıda sunmasıdır. Bir önceki versiyonda, mobil uygulamalar geliştirmek için, ayrı bir (Mobile Internet Toolkit) program yüklemeniz gerekiyordu. Bu programı yükledikten sonra Framework ünüz mobil uygulamalar geliştirebilecek özelliği kazanıyordu. Halbuki 1.1 versiyonunda Frameworkte bu özellik tanımlı olarak geliyor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6180642-114267195302454596?l=blog.zaferdemirkol.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.zaferdemirkol.com/feeds/114267195302454596/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6180642&amp;postID=114267195302454596&amp;isPopup=true' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/114267195302454596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6180642/posts/default/114267195302454596'/><link rel='alternate' type='text/html' href='http://blog.zaferdemirkol.com/2006/03/visual-studionet-2003-vsnet-2003.html' title='Visual Studio.NET 2003 (VS.NET 2003)'/><author><name>zafer demirkol</name><uri>https://profiles.google.com/115154252769353145386</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-3sQNtqR5mGU/AAAAAAAAAAI/AAAAAAAAA90/JqauPi5FR2g/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6180642.post-114191786479295741</id><published>2006-03-09T17:22:00.000+02:00</published><updated>2006-03-09T17:44:51.696+02:00</updated><title type='text'>.NET ve ASP.NET Uygulamaları Geliştirmek</title><content type='html'>• .NET uygulamaları geliştirmek için nelere ihtiyacınız var?&lt;br /&gt;• .NET Framework nedir?  ve nasıl yüklenir?&lt;br /&gt;• .NET Framework sürümleri arasındaki farklılıklar&lt;br /&gt;• IIS’ı bilgisayarınıza yüklemek&lt;br /&gt;• ASP ve ASP.NET birlikte çalışır mı?&lt;br /&gt;• Basit bir asp.net uygulaması&lt;br /&gt;• ASP.NET sayfası geliştirmenin yöntemleri&lt;br /&gt;• Bir ASP.NET sayfasının yapısı&lt;br /&gt;• .NET de kullanılan programlama dilleri&lt;br /&gt;• ASP.NET sayfasında bulunan temel yapıların açıklanması?&lt;br /&gt;&lt;br /&gt;Herkese merhaba. Bu bölümde .NET teknolojilerine ilişkin yazılarla karşınızda olacağım.&lt;br /&gt;Ağırlıklı olarak ASP.NET uygulamaları üzerinde duracağım, bunun yanında .NET ile birlikte gelen diğer teknolojilerde bu köşede işleyeceğim.&lt;br /&gt;Microsoft’un geliştirdiği .NET,  içinde pek çok yeni teknolojiyi barındırmaktadır. &lt;br /&gt;Her bir teknoloji kendi başına uzmanlık gerektirir. &lt;br /&gt;Pek çoğunuz .NET hakkında bir şeyler okumuşsunuzdur. Bazılarınızın ise hiçbir fikri olmayabilir. .NET, ASP.NET ile ilgili internette pek çok kaynak bulunmaktadır. Bu kaynakların maalesef çok azı (kayda değer) Türkçe sitelerdir. Yinede diğer teknolojilere bakıldığında her zamankinden çok daha fazla Türkçe kaynak bulmak mümkün .NET üzerine. Özellikle çıkan kitap sayısı, ASP nin ilk çıktığı dönemkilere oranla daha fazla.&lt;br /&gt; &lt;br /&gt;Bu yazımdaki derste, en baştan bir ASP.NET uygulaması geliştireceğiz. Amacım, bu konuda daha önceden hiç uygulama geliştirmemiş olanlar ile, bunu deneyip de başarılı olamamış olan kitleye hitap etmektir. Ancak orta düzeyde bir kullanıcı iseniz belki sizinde öğreneceğiniz kritik kavramlar olabilir. &lt;br /&gt;İlerki aylarda işleyeceğim Teorik bilgilere geçmeden önce .NET de bir ASP.NET uygulaması (sayfası) nasıl geliştirilir ve çalıştırılır bunu görelim. &lt;br /&gt;Daha sonraki aylardaki yazılarımda ASP.NET ve .NET ait diğer kavramları daha yakından inceleriz.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nelere ihtiyaç var ?&lt;/strong&gt;&lt;br /&gt;Öncelikle .NET i çalıştırabilecek uygun bir işletim sistemine ihtiyacınız var. Her ne kadar microsoft, .NET in windows98, windowsNT gibi işletim sistemlerinde bazı service pack lerle çalışabileceğini söylesede, bunun sağlıklı olacağından pek emin değilim. &lt;br /&gt;Ancak her zaman söylediğim gibi, .NET teknolojilerini veya ASP.NET i öğrenmek gibi bir işe kalkışıyorsanız en azından bir windows2000 veya XP Professional gibi bir işletim sistemine sahip olmanızı öneririm. .NET’in (framwork’ünün) kurulabileceği işletim sistemleri aşağıda anlatacağım Framework sürümlerine göre değişmektedir. Bunu web sitesi adresinden görebilirsiniz.&lt;br /&gt;&lt;br /&gt;İkinci gereksiniminiz .NET in altyapısını oluşturan .NET Framework programıdır. &lt;br /&gt;Bu Framework (altyapı, çatı), .NET’e ait , “ASP.NET”, “VB.NET”, “web servisleri” gibi teknolojileri çalıştırmanıza, kullanabilmenize olanak sağlayan altyapıyı bilgisayarınıza kurar. &lt;br /&gt;Bu program, Microsoft’un sitesinde bedava olarak mevcuttur.&lt;br /&gt;.NET Framework’unu http://msdn.microsoft.com/netframework/downloads/howtoget.asp adresinden indirebilirsiniz. &lt;br /&gt;Bu adreste Framework’un iki sürümü sunuluyor. Birinci sürüm sadece programın kendisini ihtiva eden “Microsoft .NET Framework Redistributable” dir.&lt;br /&gt;İkincisi ise programla beraber yardımcı dokümanları da beraberinde sunan “.NET Framework SDK” dır .&lt;br /&gt;“Redistributable” sürümü, yaklaşık 30MB olup makul bir boyuttadır. &lt;br /&gt;SDK sürümü ise 270 MB a yakındır. Eğer herhangi bir şekilde (CD veya başka bir kaynaktan) elde edebiliyorsanız, yardımcı dokümanları ihtiva eden SDK sürümünü kurmanızı öneririm. Bu önerimin  nedeni , SDK sürümünün, her ne kadar İngilizce olsa da, yardımcı pek çok doküman ve örnek sunan bir içeriği sağlamasıdır.  &lt;br /&gt;Ancak eğer bu imkânınız yoksa “Redistributable” sürümünü de kurabilirsiniz. &lt;br /&gt;Çalışma açısında aralarında hiçbir fark yoktur. İkisi de .NET Framework’ünü bilgisayarınıza kurar. Diğer bir ifade ile bilgisaya
