Tags: , , , | Categories: Genel, Programlama Posted by okutbay on 08.09.2009 09:45 | Yorumlar (0)

JSON stands for Javascript Object Notation and this is the new lightweight (then XML) standart for transferring data from one point to another over the network.  Here you can find a sample web page codebehind to see usage in C#.

 

    1 namespace Prototype

    2 {

    3     public partial class Json : System.Web.UI.Page

    4     {

    5         protected void Page_Load(object sender, EventArgs e)

    6         {

    7             //create instance of the object

    8             SampleObject sampleObject = new SampleObject();

    9 

   10             //Json Serialize

   11             string json = Functions.ToJson<SampleObject>(sampleObject);

   12 

   13             Response.Write(string.Format("Json result: {0}<br/>",Server.HtmlEncode(json)));

   14 

   15             SampleObject deserializedSampleObject = Functions.FromJson<SampleObject>(json);//Json Deserialize

   16             Response.Write(string.Format("Object Result: {0}<br/>", deserializedSampleObject.ToString()));

   17 

   18         }

   19     }

   20 

   21     [Serializable]

   22     public class SampleObject

   23     {

   24         public int Id { get; set; }

   25         public string Name { get; set; }

   26         public string Surname { get; set; }

   27         public string EMail { get; set; }

   28 

   29         public SampleObject()

   30         {

   31             this.Id = 2345;

   32             this.Name = "Ozan K.";

   33             this.Surname = "BAYRAM";

   34             this.EMail = "xyz@abc.com";

   35         }

   36 

   37         public override string ToString()

   38         {

   39             return string.Format("{0} {1}", Name, Surname);

   40         }

   41     }

   42 }

Static methods in 'Functions' class

 

    1 /// <summary>

    2 /// Serializes to Json string

    3 /// Class must be serializable

    4 /// </summary>

    5 /// <typeparam name="T"></typeparam>

    6 /// <param name="ObjectToSerialize"></param>

    7 /// <returns>json string</returns>

    8 public static string ToJson<T>(object ObjectToSerialize)

    9 {

   10     DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));

   11     MemoryStream ms = new MemoryStream();

   12     ser.WriteObject(ms, ObjectToSerialize);

   13 

   14     string json = Encoding.Default.GetString(ms.ToArray());

   15     ms.Close();

   16 

   17     return json;

   18 

   19 }

   20 

   21 /// <summary>

   22 /// Deserializes json string to object

   23 /// </summary>

   24 /// <typeparam name="T"></typeparam>

   25 /// <param name="JsonString"></param>

   26 /// <returns></returns>

   27 public static T FromJson<T>(string JsonString)

   28 {

   29     MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(JsonString));

   30 

   31     DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));

   32     T returnObject = (T)ser.ReadObject(ms);

   33     ms.Close();

   34 

   35     return returnObject;

   36 }

Happy codings...

1 kişi tarafından 2.0 olarak değerlendirildi

  • Currently 2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories: Genel, Programlama, SSS (FAQ), Tip Posted by okutbay on 02.09.2009 16:58 | Yorumlar (0)

For example you have a base class and a class that inherits it like below.

 

    1 public class A

    2 { }

    3 

    4 public class B : A

    5 { }

And you have generic list of these types. Then if you want to convert List<B> to List<A>

You can use this code block:

 

    1 List<B> listB = new List<B>();

    2 List<A> listA = listB.Cast<A>().ToList();

 Happy coding.

 

 

 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , | Categories: Genel Posted by okutbay on 06.08.2009 14:58 | Yorumlar (0)

In Windows Vista, Hosts file is a read only hidden system file. So that you cannot edit that file. Also running notepad as an administrator doesn't solve this problem.
There are a lot of articles about this topic but none of them giving this solution.

You can solve this by typing some DOS commands at command line:

C:\Users\Administrator>cd C:\Windows\system32\drivers\etc
C:\Windows\System32\drivers\etc>attrib -s -r -h hosts

After you edit and save the file you can put attributes back.

C:\Windows\System32\drivers\etc>attrib +s +r +h hosts

Hope this helps...

PS: Order of the attribute switches is important. Write s first.

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

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , | Categories: Genel Posted by okutbay on 06.08.2009 14:38 | Yorumlar (1)

Bildiğiniz gibi geliştirme yaparken alan adı varmış gibi bir sunucuyu kullanmak istedğimizde hosts dosyamıza test sunucusu ip adreslerine karşılık gelen alan adı tanımlamalarını yapıyoruz. (Başka amaçlar da olabilir tabi. Örneğin youtube açmak :) )

Ama Vistada Notepad programını yönetici olarak çalıştır deseniz bile Hosts dosyayı salt okunur gizli sistem dosyası olduğu için dosyayı kaydetmenize izin vermez. Bu sorunu aşmak için eski DOS komutlarına dönüp şunu yazmak yeterli olacaktır.

C:\Users\Administrator>cd C:\Windows\system32\drivers\etc
C:\Windows\System32\drivers\etc>attrib -s -r -h hosts

Artık dosya standart bir dosya olarak editlenebilir. Güvenlik sorunu yaratmamak için işiniz bittikten sonra öznitelikleri geri ayarlayabilirsiniz.

C:\Windows\System32\drivers\etc>attrib +s +r +h hosts

Kolay gelsin.

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

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , | Categories: Genel, Programlama, Tanıtım Posted by okutbay on 19.12.2007 09:25 | Yorumlar (0)
F# (f şarp okunur), .NET Framework için tiplendirilmiş işlevsel programlama dilidir.

F#, yüksek kaliteli, iyi desteklenen modern bir runtime sistemi üzerinde çalışmanın tüm avantajları ile tip güvenliği, başarım ve betik yazımının (scripting) çok arzu edilen bileşimini sağlar.

Bu anlamda F#, betik/işlevsel/emreden/nesne yönelimli programlama dilidir. Bir çok pratik bilimsel, mühendislik ve web tabanlı programlama görevleri için temel oluşturur.

F# programlama dili ile yapılan yazılımlar .NET Framework üzerinde çalışırlar.

F#, .NET Framework için tiplendirilmiş işlevsel programlama dilidir.

F#, OCaml ile aynı çekirdek dili paylaşan bir tür ML dilidir.

F# diline yapısal olarak baktığımızda program bir dizi ifadenin tanımlayıcılara bağlanmasından oluşmaktadır.

F# kodları Microsoft F# sayfasından indirilebilecek F# Interactive (fsi.exe) dosyası ile doğrudan çalıştırılabilir. Dikkat ederseniz girişleri ayırmak için satır sonlarında ";;" kullanılmaktadır.

Kodlar satır satır fsi.exe konsol uygulaması ile çalıştırılır. Konsol uygulamasına girdikten sonra aşağıdaki satırları yazarak deneyebilirsiniz.

let x = 3 + (4 * 5);;
let res = (if x = 23 then "doğru" else "yanlış");;
System.Console.WriteLine(res);;

Aynı zamanda yazdığımız bu kodları .fs uzantılı bir metin dosyaya kayderek F# derleyici (fsc.exe) programı ile derlenebiliriz.

Derleme:
> fsc test.fs

Çalıştırma:
> test.exe


Not: Dosya uzantısı olarak .ml uzantısını kullanmayı da tercih edebilirsiniz.

Tüm bunlara ilave olarak kodunuz kütüphane içine de yerleştirebilirsiniz.

lib.fs dosyası:
let myLibFunction() = System.Console.WriteLine("Hello World")

hello.fs dosyası:
let main = Lib.myLibFunction()

Burada main bir fonksiyon değildir. Sadece = işaretinin sağ tarafında gerçekleştirilen ifadenin sonucunu taşımak için bir dummy değerdir.

Dosyaları derlenmek için:
> fsc -a lib.fs
> fsc -r lib.dll hello.fs


Derleme sonucunda lib.dll kütüphanesi ve hello.exe çalıştırılabilir dosyaları oluşturulur. Bu dosyaların her ikisi de .NET montaj (assembly) dosyalarıdır.İsteseniz tek bir exe dosya oluşturacak şekilde dosyaları beraberce derleyebiliriz.

Dosyaları beraber tek exe olarak derlenmek için:
> fsc -o hello2.exe lib.fs hello.fs

Klavyeleriniz şen ola...

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , | Categories: Genel, Programlama Posted by okutbay on 11.11.2007 15:38 | Yorumlar (0)

Miras (Inheritance) kavramının iki önemli boyutu vardır.

Bunlardan birincisi kodun tekrar kullanımıdır. Bir sınıftan türetilen bir sınıf oluşturduğunuzda taban sınıfın mantığının bir kısmını kullanabilirsiniz...

Mirasın ikinci önemli boyutu ise çok biçimliliktir.
Çok biçimlilik bir tipin birden fazla formunun olması demektir. Böylece tipin detaylarına bakmadan birden fazla biçiminin kullanılabilmesidir. Konuyu açmamız gerekirse şu klasik bir örnek verilebilir. Kedi ve köpek farklı iki canlı paylaştıkları ortak özellikler ve ihtiyaçlar nedeniyle temel de ikisi de hayvandır.

Yani bir tip (class) türediği tip gibi davranabilir. İşte buna Çok Biçimlilik (Polymorphism) denir!

Detaylı bilgi için Kaynaklar:
http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming
http://en.csharp-online.net/Inheritance_and_Polymorphism%E2%80%94Creating_Polymorphic_Types 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , | Categories: Genel, Programlama Posted by okutbay on 20.09.2007 00:53 | Yorumlar (0)
Erişim Değiştirici (Access Modifier) : Bir tipe veya tipin üyelerine erişimi sınırlayan private, protected, internal, public gibi kelimelerdir.

Erişilebilir Üye (Accessible Member) : Verilen tip tarafından ulaşılabilen üyedir. Bir tip ile erişilebilen bir üye başka bir üye tarafından erişilebilir olmayabilir.

Erişimci (Accessor) : Bir özellik (Property) ile ilişkilendirilmiş Özel (private) veri alanı (data field) üyenin değerini alan veya ayarlayan metodlardır. Okunur-Yazılır özellikler get ve set erişimcilerine sahipken salt okunur özellikler sadece get erişimcisine sahiptirler.

İsimsiz-Anonim metod (Anonymous Method) : Bir delegeye parametre olarak geçilirilen bir kod bloğudur.

Taban Sınıf (Base Class) : Türetilmiş sınıf (Derived Class) tarafından miras alınan sınıftır (Inherited Class).

Çağrı Yığını (Call Stack) : Çalıştırma zamanında (runtime) programın başından başlayarak çalıştırılacak ifadeye kadar olan yapılan metod çağrılarının dizisidir.

Sınıf (Class) : Nesneyi tanımlayan, nesneye şablon oluşturan veri tipidir. Sınıflar veri ve veriyi etkileyen metodlardan her ikisini de içerebilirler.

İlklendirici (Constructor) : Bir sınıf veya yapı üzerinde bulunan ve o tipteki nesneleri oluşturan özel metodlardır.

Temsilci-Delege (Delegate) : Bir metodu referans eden bir tiptir. Bir delege metoda atandığında tam olarak o metod gibi davranır.

Türetilmiş Sınıf (Derived Class) : Başka bir taban sınıfın davranışına ve verisine erişmek, geliştirmek veya değiştirmek için miras yöntemini kullanan sınıftır.

Sonlandırıcı (Destructor) : Örneğin sistem tarafından sonlandırılmasını hazırlayan, sınıf veya yapı üzerindeki özel bir metodtur.

Olay (Event) : Bir değişikliğin bilgilendirmelerini gönderen sınıf veya yapı üyesidir.

Alan (Field) : Sınıfın ya da yapının doğrudan erişilen veri üyesidir.

Jenerikler (Generics) : Jenerikler, bir sınıf ya da metodun bir tip parametresi ile tanımlanabilmesine olanak sağlarlar. İstemci kodu tipin örneğini yaratırken parametre olarak tanımlanan tipi belirli bir tipte değişken olarak tanımlar. Böyle parametrenin hangi tipte olduğu tanımlandığından sınıf ya da metodta o tip olarak kullanılabilir.

IDE (Integrated Development Environment) : Derleyici, debug edici, kod düzenleyici ve tasarım araçları gibi çeşitli geliştirme araçları için birleştirilmiş bir arayüz sağlayan uygulamalardır.

Değişmez-Sabit Tip (Immutable Type) : Örnek yaratıldıktan sonra, örneğinin veri, alan ve özellikleri değişmeyen tiplerdir. Değer tiplerinin çoğu böyle tiplerdir.

Erişilemez Üye (Inaccessible Member) : Belirtilen bir tip tarafından erişilemeyen bir üyedir. Bir tipe Erişilmez bir üyenin başka bir tipe de erişilmez olması gerektiğine dair bir zorunluluk yoktur.

Miras (Inheritance) : C#, Miras almayı destekler. Yani bir sınıf (class) taban sınıf (base class) olarak adlandırılan sınıftan türetilir ve aynı metod ve özellikleri miras alır. Bunu sınıfa Türetilmiş Sınıf (Derived Class) denir.

Arayüz (Interface) : Sadece public metod, olay ve delegelere ait imzaları içeren bir tiptir. Arayüzü miras alan bir nesne arayüzde imzaları tanımlanan tüm metod, olayları geliştirmek zorundadır. Sınıflar veya Yapılar (Structs) herhangi bir sayıda arayüzden miras alabilirler...

Öteleyici (Iterator) : Öteleyici, bir sınıfın içerdiği bir koleksiyon veya diziyi (array) sınıf kullanıcılarının foreach ile kullanabilmesine olanak sağlar.

Üye (Member) : Bir sınıf (class) ya da yapı (struct) üzerinde tanımlana alan (field), özellik (property), metod (method) veya olaylara (events) o sınıfın üyeleri (class members) denir.

Metod (Method) : Bir sınıf (class) ya da yapı (struct) için davranışı sağlayan isimlendirilmiş kod bloğudur.

Değişken Tip (Mutable Type) : > Örnek yaratıldıktan sonra, örneğinin veri, alan ve özellikleri değiştirilebilen tiplerdir. Referans tiplerinin çoğu böyle tiplerdir.

İçiçe Tip (Nested Type) : Diğer bir tipi tanımının içinde tanımlanmış tiptir.

Nesne (Object) : Sınıf örneğidir (instance). Bir nesne bellekte bulunur ve verisi ve bu veriler üzerinde etkisi olan metodları vardır.

Özellik (Property) : Özellikler, erişimcileri aracılığı ile bir veri üyesine ulaştırırlar.

Yeniden Düzenleme (Refactoring) :
Bilgisayar terminolojisinde bilgisayar yazılımının çıktılarını ve işlevlerini değiştirmeden iç yapısının yeniden düzenlenerek uygulamanın geliştirilmesi, iyileştirilmesi demektir. Kısaca önceden girilmiş kodun tekrar kullanılması diyebiliriz. Visual Studio C# düzenleyicisi akıllıca kodunuzu tekrar biçimlendirebilir. Mesela işaretlediğiniz bir kod bloğunu bir hamleyle bir metoda dönüştürebilirsiniz.

Referans Tipi (Reference Type) : Bir veri tipidir. Referans tipi olarak tanımlanan bir değişken verinin depolandığı konumu işaret eder.

Durağan-Statik (Static) : Statik olarak tanımlanan bir sınıf ya da metod "new" anahtar kelimesi ile ilklendirilmeden varolabilir.
Örneğin Main() statik bir metoddur.

Yapı (Struct) : Tipik olarak bazı mantıksal ilişkileri olan değişkenler içermesi için kullanılan birleşik veri tipidir. Yapılar aynı zamanda metodlar ve olaylar içerebilirler. Miras almayı desteklemezken arayüz kullanımını desteklerler. Sınıflar referans tipiyken, yapılar değer tipidir.

Değer Tipi (Value Type) : Öbek (Heap) üzerine yerleştirilen referans tiplerine karşın yığın (stack) üzerine yerleştirilen veri tipidir. Yapı ve null değer alabilen (Nullable) tiplerin de olduğu gibi Nümerik tipleri de içeren Yerleşik (built-in) tiplerin hepsi değer tipleridir. Sınıf tipi ve string tipi referans tipleridir.

kaynak: http://msdn2.microsoft.com/en-us/library/ms173231.aspx

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

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: | Categories: Genel, Web Uygulaması Posted by okutbay on 28.05.2007 05:24 | Yorumlar (0)
Eskiden olsa üşenmeden ezberlerdim bu karakterlerin kodlarını. Hala hatırlarım ekrana çerçeve çizdirmek için gereken tek ve çift çizgili kenar karakerlerinin ASCII kodlarını. Ama zor geliyor artık.


Karakter Adı: Karakter | Kodu
Copyright : © | &copy;
Registered : ® | &reg;
Trademark : ™ | &#153;
Pound : £ | &pound;
Euro : € | &euro;
Quotes left : “ | &#147;
Quotes right: ” | &#148;
Long stripe : — | &#151;
Plus minus : ± | &plusmn;
Promile : ‰ | &#137;

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

  • Currently 3,5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories: Genel, Tanıtım Posted by okutbay on 03.05.2007 23:49 | Yorumlar (0)
Ne yapsam, nasıl başlasam.

İnsanın kafasındaki parçaları birleştirip ortaya birşeyler çıkartması zor bir iş, zor bir süreç...

Bu sitenin yapımında kaç kez bilgisayar başına oturup, kaç kez hiç bir şey yapmadan kalktığımı tahmin edemezsiniz. Artık, oturup bir gecede tamamen yeni site oluşturduğum yıllardan ve o yıllarda sahip olduğum enerjiden çok uzağım...

Ama pes etmek yok. :)

Umarım faydalı bir şeyler yapabilirim.

Bu yazıyı ilk değerlendiren siz olun

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