Takvim
<<  Eylül 2010  >>
PaSaÇaPeCuCuPa
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Uygulamalarımızda kullandığımız her tipin veya tipteki üyelerin birer erişilebilirlik seviyesi vardır. Bu erişilebilirlik seviyelerini;

1.      public
2.     
private
3.     
protected
4.     
internal
5.      protected internal
 olarak sıralayabiliriz.  

Bu seviyeleri kısaca açıklarsak
1.      public : Bu seviyede tanımlanmış tip veya tip üyelerimize, aynı assembly veya bu assemblyi referans alan başk bir assembly nin her hangibir yerinden erişilebilir.
2.      private : Bu seviyede tanımlanmış tip veya tip üyelerimize, sadece tanımlandığı yapı veya sınıf içerisinden erişilebilir
3.      protected : Bu seviyede tanımlanmış tip veya tip üyelerimize, aynı sınıf, yapı veya bu sınıftan türemiş başka sınıf üzerinden erişilebilir.
4.      internal : Bu seviyede tanımlanmış tip veya tip üyelerimize, sadece aynı assembly üzerinden erişilebilir. Bu assemblyi referans alan başka bir assembly üzerinden erişilemez.
5.      protected internal : Bu seviyede tanımlanmış tip veya tip üyelerimize ise, tanımlandıkları kod bloğundan, aynı assembly den veya bu sınıftan türemiş başka bir assembly deki sınıftan erişilebilir. 

Enum, class, interface ve struct olarak tanımladığımız tip üyelerinin default olarak belirlenmiş erişilebilirlik seviyeleri vardır. Bunlardan; 

Enum olarak tanımlamış üyelerin default erişilebilirlik seviyesi public tir. Ve uygulama dahilinde izin verilen erişim seviyesi sadece public tir.
Sınıflar default olarak private olarak tanımlanırlar. İzin verilen seviyeler ise;public, private, protected, internal, protected internal dır.
Arayüzler olarak tanımlamış üyelerin default erişilebilirlik seviyesi public tir. Ve uygulama dahilinde izin verilen erişim seviyesi sadece public tir. 

Daha geniş bilgi edinmek isteyenler aşağıdaki adresleri ziyaret edebilirler
http://msdn.microsoft.com/en-us/library/ms173121.aspx
http://csharpfeeds.com/post/6962/Knowing_the_Default_Access_Modifiers_in_Csharp

http://www.vijaymukhi.com/documents/books/csbasics/chap8.htm

http://www.programlama.com/sys/c2html/view.php?DocID=1967

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
muammerhallac , Tarih : 14. Ağustos 2008, 15:19

Bilindiği üzere C# çoklu kalıtımı desteklemiyor. Bu nedenle bu eksikliği gidermek amacıyla Arayüz alt yapısı geliştirilmiştir.  Arayüzlerin en belirgin özelliği soyut klaslarda olduğu gibi metod bildirimleri içermesidir. Metod bildirimlerinin yanı sıra bir arayüz ;

1. Event
2. Property
3. Indexer

gibi yapıların bildirimlerini de içerebilir. Ancak soyut klaslarda olduğu gibi bu yapıların implemente edilmiş hallerini içeremezler. Sadece bu saydığımız 4 yapının bildirimlerini içerebilirler. Diğer bir deyişle bu yapıların implementasyonları  klaslar veya diğer yapılar içerisinde yapılmalıdır. Kısaca Arayüzler, kendisini uygulayan sınıflara rehberlik etmek üzere bir takım bildirimleri barındırırlar.

Peki neden Arayüzleri kullanmalıyız?
Bu soruyu bir örnekle açıklarsak sanırım daha iyi olur. Örneğin bir web sitemiz var ve verilerimizi XML dosyalarından okuyor ve XML dosyalarına yazıyoruz. Veri okumak için ise XmlReader kullanıyoruz. Oysa ki bir süre sonra XML ihtiyaçlarımızı artık karşılayamaz oldu ve bir veri tabanı kullanmaya karar verdik. Bu noktada kullandığımız XMLReader başımızı ağrıtabilir. Çünkü veri tabanından veri okurken işimize yaramayacaktır artık. Bunun yerine verileri okurken IDataReader arayüzünü kullanmış olsaydık daha az kod değiştirerek sonuca hızlıca ulaşabilirdik.

Gelelim arayüzlerin nasıl kullanıldıklarına. Örnek bir senaryo üzerinden gidersek; senaryomuz gereği iki tana arayüz tanımlayalım. Bunlarsan biri 4 işlem fonksiyonlarını yerine getirsin. Diğeri ise bu arayüzün ürettiği sonucu bize bildirsin. Arayüzlerimizi aşağıdaki şekilde tanımlıyoruz.

 

Arayüzlerimizi tanımladıktan sonra bu arayüzleri uygulayacak olan sınıfımızı tanımlıyoruz.


Eklediğimiz sınıfa oluşturmuş olduğumuz arayüzleri implemente ettiğimizde Visual Studio bize hemen yardımcı olarak söz konusu arayüzlerin içerisindeki bildirimleri oluşturuyor. Arayüzlerimizdeki bildirimleri oluşturduğumuz zaman aşağıdaki gibi bir kod bloğumuzun olması gerekiyor.

 

Görüldüğü üzere sınıfımızda implemente ettiğimiz arayüzlerin bildirimleri oluşturuldu. Sınıfımızı da oluşturduğumuza göre sıra geldi sonucu görmeye.

Ben bir ASP.NET uygulamasında sonucu yazdırmıştım, ihtiyaca göre istenilen yerde işlem yapılabilir.

 Yüzeysel olarak arayüzlerin ne olduğundan ve çok basit olarak nasıl kullanıldığından böylece bahsetmiş olduk. Daha detaylı bilgi edinmek isteyenler aşağıdaki linkleri takip edebilirler.

1. http://www.codersource.net/csharp_tutorial_interface.html
2. http://msdn.microsoft.com/en-us/library/87d83y5b.aspx
3. http://www.codeguru.com/csharp/csharp/cs_syntax/interfaces/article.php/c7563#more
4. http://www.codeproject.com/KB/cs/cs_interfaces.aspx
5. http://aspalliance.com/1516_Understanding_Interfaces_in_C.1
6. bir de tabiki http://www.google.com.tr :)

2 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

    GirdView ın bulunduğu aspx sayfamızın source kısmına aşağıdaki JavaScript kodunu ekliyoruz 

function DeleteText(ctrl)
{
document.getElementById(ctrl).innerText=
"";
}

daha sonra GridView ın RowDataBound eventine

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if (e.Row.RowType != DataControlRowType.Header && e.Row.RowType != DataControlRowType.Footer)
   {
     TextBox txt = new TextBox();
     txt = (
TextBox)e.Row.FindControl("TextBox1");
     txt.Attributes.Add(
"onfocus", "DeleteText('"+txt.ClientID+"')");
   }
}

kodunu ekledikten sonra gridview da herhangibir satırdaki TextBox a tıkladığımızda içerisinde bulunan değer kaybolmuş olacak.

 

veya

Çok kısa bir çözüm daha

<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" onfocus="if(this.value=='hede hödö') {this.value=''};" ></asp:TextBox>

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

GridView içerisinde tıkladığımız satırda istediğimiz kolona ulaşmak için;

GridView a bir detay butonu ekleyelim ve CommandName özelliğine [birisim] verelim. Daha sonra da GridView ın  RowCommand eventine aşağıdaki kodu ekleyelim

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "[birisim]")
{
    Response.Write(GridView1.Rows[Convert.ToInt32(e.CommandArgument.ToString())].Cells[3].Text.ToString());
}
}

şeklinde tıklanan satırın istenilen kolonuna erişmiş oluruz

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
muammerhallac , Tarih : 13. Ağustos 2008, 09:42

İnternet artık hayatımızın bir parçası olmaktan çıktı nerdeyse hayatımız olmaya başladı. Geçen senelerde TCDD birkaç treninde kablosuz internet hizmeti vermeye başlamıştı. Şahsen birkaç defa deneme imkanım oldu. Ancak trenin gittiği yerlerde kör noktalar çok olunca haliyle internet bağlantısı da kopuyordu. Ancak trenin iki vagonunda bilgisayarını şarj edebilmen için koltukların kenarında prizlerin olması, internet olmasa bile uzun tren yolculuklarında film izlemek isteyenler için bulunmaz bir fırsat.

TCDD den sonra bazı otobüs firmaları da internet hizmeti vermeye başlamışlar. ZyXEL, ÇağSat ve Probil'in işbirliğiyle uygulamaya konan proje ile otobüs firmaları yolcularına seyir halindeyken internet erişimi sağlamaya başladılar. Şimdilik Kamil Koç, Metro, Pamukkale, Ulusoy ve Varan gibi otobüs firmalarınında arasında bulunduğu 15 kadar firma bu hizmeti sunmaya başladılar.

Ama tabi şehirler arası yolculuklarda, bilgisayarların şarj sorunlarını da aşabilecek bir yöntem bulabilirlerse artık uzun otobüs yolculukları sıkıcı olmaktan çıkacaktır...

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
muammerhallac , Tarih : 1. Ağustos 2008, 15:03

Şu an kendi bloğumda da kullandığım;

I- Herhangi bir kurulum aşamasına gerek duymadan, birkaç saniye içerisinde kullanmaya başlayabileceğiniz
II- Herhangi bir veritabanı sistemi ile ilişkilendirmek zorunda olmadığınız (isteğe bağlı olarak SQL Server kullanabilirsiniz)
III- ASP.NET tabanlı olan
IV- Açık kaynak kod olarak geliştirilebilen,
V- Her geçen gün büyüyen tema ve eklenti desteği olan,
VI- BlogEngine.NET TR ekibi tarafından geliştirilen Türkçe içeriği ve Türkçe desteği olan
VII- Geniş destek ve yardım ağı olan

gibi birtakım özellikleri olan BlogEngine artık türkçe...

BlogEngine.NET TR ekibine çok ama çok teşekkür ediyorum. Kullanmak veya denemek isteyenler http://www.blogenginetr.com/  adresinden kaynak dosyalara, kurulum ve daha bir çok konuya ulaşabilirler.

 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
muammerhallac , Tarih : 1. Ağustos 2008, 14:01
 Chip.com.tr adresinde okuduğum bir haberi sizinle paylaşmak istedim. Birçok filme de konu olmuş olan uzaylılar hakkındaki söylentileri duymayan kalmamıştır sanırım. Örneğin Transformers filminde de geçmişti bu söylentiler. Yıllar önce NASA nın uzaylılarla bağlantıya geçtiği ve hatta onlardan birtakım teknolojileri de çaldıkları konu oluyordu filme. Aşağıdaki haber de sanki bunu destekler durumda. Yoksa neden hacker ın iadesini isterlerde ki??? :)
Pentagon'un sistemine girmekle suçlanan İngiliz hacker'ı isteyen ABD amacına ulaştı mı? İşte karar.
McKinnon'ın itirazı reddedildi, hacker ABD'de yargılanacak.
McKinnon hakkındaki karar nihayet verildi. Dünyanın en tehlikeli hacker'ı Gary McKinnon Amerika'ya teslim edilecek. Pentagon'un bilgisayar sistemine girmekle suçlanan 42 yaşındaki İngiliz Gary McKinnon'un davasının Amerika'da görülmesine karar verildi.

Lordlar Kamarası, McKinnon'un Amerika'ya teslimi konusundaki itirazına olumsuz cevap verdi. Amacının Amerikan hükümetinin gizlediği uzaylılar hakkındaki bilgilere ulaşmak olduğunu belirten McKinnon, Amerika tarafından dünyanın en tehlikeli hacker'ı ilan edilmişti. Amerikan resmi görevlileri ayrıca McKinnon'u girdiği sistemlerdeki önemli bilgileri silerek yüz binlerce dolarlık zarara sebep olmakla suçluyor.

Savcılığa göre McKinnon Amerikan hükümetine ait 73.000 bilgisayarı taradı ve Amerikan ordusu, donanması, hava kuvvetleri ve NASA'ya ait 93 bilgisayara izinsiz giriş yaptı.

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

 

Biz yazılımcılar için en kısa yoldan, etkili ve en geniş kapsamlı çözüm üretmek ölümcül derecede önemlidir. Ancak bunu yaparken kodumuzu yazdığımız editörün özelliklerini iyi bilmek bize inanılmaz derecede kolaylık sağlayacaktır ve kodlarımızı daha hızlı yazmamızı sağlayacaktır.

Bu amaçla, "VS.NET  ortamında nasıl daha hızlı kod yazabilirim?" sorusuna hizmet eden kısa bir araştırma yaptım ve aslında daha önce keşke bu kısa yolları bilseymişim dediğim bir çok kısayol tuşuna ulaştım.

Bu kısa yolları paylaşmak istedim. Ancak o kadar çok ki, bu yüzden pdf dosyası olarak koymayı, daha etkili bir çözüm olacağını düşündüm.

Microsoft' un sitesinden ulaştığım bu dosyayı indirmek ve incelemek isterseniz aşağıdaki linkten ulaşabilirsiniz.

Umarım yararlı olur...

VCSharp_2005_color.pdf (1,41 mb)

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

NotePad2,  en yaygın kullanılan programlama dilleri için söz dizimi vurgulamasını destekleyen, kurulum gerektirmeyen, açık kaynak kodlu, çok küçük boyutlu ve Windows un klasik NotePad' i ile değiştirilebilen bir program.

Özellikleri:
- Sözdizimi vurgulaması: HTML, XML, PHP, ASP (JS, VBS), CSS, JavaScript, VBScript, C/C++, C#, Kaynak Komut Dosyaları, Makefiles, Java, Visual Basic, Pascal, Assembly, SQL, Perl, Python, Yapılandırma Dosyaları, Apache Yapılandırma Dosyaları, Toplu İş Dosyaları, Diff Dosyaları
- Notepad2 içinde ve dışında sürükle / bırak yöntemi ile metin düzenleme
- Temel düzenli ifadeleri arama ve değiştirme
- Kullanışlı sözcük, satır ve blok düzenleme kısayolları
- Dikdörtgen seçim (Alt+Mouse)
- Ayraç eşleştirme, otomatik girintileme, uzun satır işaretleme, büyütme/küçültme işlevleri
- Unicode, UTF-8, Unix ve Mac metin dosyaları desteği
- Açık kabuk kısayolları
- Yüksek ayarlanabilirlik

İndirip denemek isteyenler http://www.flos-freeware.ch/notepad2.html adresinden programın kaynak kodlarına ve yürütülebilir haline ulaşabilirler.

Birde indirip normal NotePad ile değiştirmek isteyenler aşağıdaki adımları izleyerek programı kullanabilirler:

Not Defteri programını Notepad2 ile değiştirme işlemine başlamadan önce C:\WINDOWS\system32 klasöründeki ya da C:\WINDOWS klasöründeki Notepad.exe dosyasının yedeğini alın. (Daha sonra değiştirmek isterseniz tekrar kullanmak için)

* Notepad2.exe dosyasının adını Notepad.exe olarak değiştirin.
* Başlat menüsünden Çalıştır'ı tıklayın. Açılan pencereye C:\WINDOWS\system32\dllcache yazın ve TAMAM butonunu tıklayın.
* Adını Notepad.exe değiştirdiğiniz dosyayı panoya kopyalayın.
* Kopyaladığınız Notepad.exe dosyasını 2'nci aşamada açtığınız C:\WINDOWS\system32\dllcache klasörüne yapıştırın.

Dosya Değişimini Onayla uyarısını Evet diye cevaplayın.

* Geri tuşuna basın, C:\WINDOWS\system32 klasörüne geleceksiniz, panodaki Notepad.exe dosyasını bu kez C:\WINDOWS\system32 klasörüne yapıştırın.

Dosya Değişimini Onayla uyarısını Evet diye cevaplayın.

Birkaç saniye içinde Windows Dosya Koruması uyarısı alacaksınız. Açılan pencerede İptal'i tıklayın, daha sonra gelen uyarıda da Evet'i tıklayın.

* Geri tuşuna tekrar basın, C:\WINDOWS klasörüne geleceksiniz,
panodaki Notepad.exe dosyasını şimdi de C:\WINDOWS klasörüne yapıştırın.
Dosya Değişimini Onayla uyarısını Evet diye cevaplayın.

Bu işlemden sonra, Windows Not Defteri yerine her açtığınızda Notepad2 açılacaktır.

Yedeğini aldığınız Orijinal Notepad.exe dosyasını kullanarak aynı işlemi yaptığınızda Not Defteri programını geri getirebilirsiniz. 

Kaynak : Chip.com.tr

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5