http___progenc.blogcu.com_c-programlama-dili-tarihi-dogusu_2606425_1.xml
1.1 2.1 3.1 4.1 4.2 5.1 6.1 7.1 8.1 9.1 9.2 10.1 11.1 12.1 13.1 14.1 15.1 16.1 17.1 18.1 19.1 19.2 20.1 21.1 22.1 23.1 24.1 25.1 25.2 26.1 27.1 28.1 29.1 29.2 30.1 31.1 32.1 32.2 33.1 34.1 34.2 35.1 36.1 36.2 37.1 38.1 38.2 39.1 40.1 41.1 42.1 43.1 43.2 44.1 45.1 46.1 47.1 48.1 48.2 49.1 50.1 51.1 52.1 53.1 54.1 55.1 56.1 56.2 57.1 57.2 58.1 58.2 59.1 60.1 61.1 62.1 62.2 63.1 64.1 64.2 65.1 66.1 67.1 68.1 69.1 71.1 74.1 77.1 80.1 81.1 84.1 86.1 90.1 92.1 94.1 98.1 99.1 100.1 101.1 102.1 103.1 103.2 104.1 105.1 105.2 106.1 107.1 108.1 109.1 110.1 111.1 112.1 113.1 114.1 115.1 116.1 117.1 118.1 119.1 120.1 121.1 122.1 123.1 124.1 125.1 126.1 127.1 128.1 129.1 130.1 131.1 132.1 133.1 134.1 134.2 135.1 136.1 137.1 139.1 140.1 141.1 142.1 143.1 143.2 144.1 145.1 146.1 147.1 148.1 149.1 151.1 152.1 153.1 154.1 155.1 156.1 156.2 157.1 157.2 158.1 159.1 159.2 160.1 161.1 162.1 163.1 164.1 165.1 166.1
< Back to Qt to WP7 Guide contents Microsoft Windows Phone (WP) applications are developed using VB.NET or C# programming languages and corresponding libraries. In the previous chapter we already took a first look at the C# programming language while developing the ShoppingList example application and getting familiar with the WP application development tools. This chapter maps the essential WP C# language features to the similar C++ language features in Qt. Overview of the C# programming language is provided and the most important WP C# features are described to help you write safe and quality code. Common idioms and programming concepts in WP C# are compared to Qt C++ and, in addition, example code snippets are provided to help you get familiar with WP C# code faster and enhance productivity. Overview of the C# programming C# is an elegant and type-safe object-oriented programming language that enables developers to build a variety of secure and robust applications that run on the .NET Framework. C# syntax is highly expressive, yet it is also simple and easy to learn to anyone familiar with C, C++ or Java. C# syntax simplifies many of the complexities of C++ and provides powerful features such as nullable value types, enumerations, delegates, lambda expressions and direct memory access, which are not found in Java. C# supports generic methods and types, which provide increased type safety and performance, and iterators, which enable implementers of collection classes to define custom iteration behaviors that are simple to use by client code. Language-Integrated Query (LINQ) expressions make the strongly-typed query a first-class language construct As an object-oriented language, C# supports the concepts of encapsulation, inheritance and polymorphism. All variables and methods, including the Main method, the application's entry point, are encapsulated within class definitions. A class may inherit directly from one parent class, but it may implement any number of interfaces. Methods that override virtual methods in a parent class require the override keyword as a way to avoid accidental redefinition. In C#, a struct is like a lightweight class; it is a stack-allocated type that can implement interfaces but does not support inheritance. The following chapters give an overview of Windows Phone C# applications in .NET framework and the C# programming guidelines and conventions. See Introduction to the C# language for wider overview of the C# programming language. Managed Programming in .NET framework In Symbian Qt, the C++ code is compiled and built directly to executable for Symbian Qt target platform. WP supports managed programming in C# (and VB.NET), as visualized in the following image: Managed programming visualized In WP, the C# compiler (and similarly, the VB compiler) compiles the C# (or VB.NET) code to an intermediate language (IL) byte code that conforms to the Common Language Infrastructure (CLI) specification, and to associated metadata. The Common Language Runtime (CLR) executes the byte code. The C# uses metadata to manage type safety, exception handling and array bounds. CLR also manages memory and performs garbage collection. Overview of a Windows Phone C# application WP C# applications can consist of one or more .cs files. Each file can contain zero or more namespaces. A namespace can contain types such as classes, structs, interfaces, enumerations and delegates, in addition to other namespaces. The following code snippet outlines a skeleton for a WP C# application containing these basic elements. // A skeleton of a C# application using System; namespace YourNamespace class YourClass struct YourStruct interface IYourInterface delegate int YourDelegate(); enum YourEnum namespace YourNestedNamespace struct YourStruct class YourMainClass static void Main(string[] args) // Your program starts here... The C# Language Specification does not define an explicit coding standard for C# applications. coding conventions describes general conventions and best practices for layout and code commenting and provides guidelines for C# language usage. Common naming conventions for C# applications are covered in Guidelines for Names. Secure coding guidelines and design guidelines for class libraries provide a unified programming model that promotes quality, secure code and consistency in C# application design. Introduction to the C# programming language In this chapter, the following essential idioms and concepts of WP C# programming language are introduced and compared to the Symbian Qt C++ programming language: - Managed Programming - Threading - Timers - Data Binding - Memory Management - Base Class - Class Reference - Class Declaration - Polymorphism: Base class - Polymorphism: Derived class - Interfaces: Interface - Interfaces: Implementation - Properties: Defining a property - Properties: Auto-implemented properties - Struct - Exception Handling - Event Handling The following table addresses the above-mentioned essential programming language idioms and provides a quick comparison between WP C# and Symbian Qt C++ programming languages. See the attached links for more information about the topics. In addition to WP C# and Symbian Qt C++ languages, implementation of some features includes usage of UI description languages XAML and QML respectively. Comparison between C# and Qt C++ programming language fundamentals See C# Language Specification for more details about all aspects of the C# programming language. See C# Programming Guide for more information about C# programming. Differences between C# and Qt C++ The following table summarizes the most essential differences between syntax and features of C# and Qt C++ programming languages. C# for C++Developersprovides more information about how to adapt to C# development as a C++ developer. Summary In this chapter, we looked at C# programming from the perspective of a Symbian Qt C++ developer. C# is a strongly typed, object-oriented programming language that uses static binding. The most essential differences between Qt C++ and C# were described and visualized using comparisons and code snippets. However, several C# concepts are similar to the Qt C++ concepts so the knowledge of Qt C++ and the object oriented programming in general will help you to master C# quickly. Related Resources To go deeper into C# programming language, visit: < Back to Qt to WP7 Guide contents
1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 16.1 17.1 18.1 19.1 20.1 21.1
ARKDAŞLAR İKİNCİ TANITACAĞIMIZ PROGAMLAMA DİLİ C# ..İleride diğer programlama dilleride gelecek...progenc .:::ASİ::... C# Nedir? , Ne değildir? C# ; Microsoft 'un gelecek vaadeden " .NET ortamının çatısını oluşturan .Net Framework 'ü " desteklemek-geliştirmek amacıyla geliştirdiği bir programlama dilidir. C# 'ın baş mimarı olan Anders Hejlsberg aynı zamanda 80 'li yıllarda büyük başarı sağlayan Turbo Pascal 'ı yazan bir programlama dehasıdır. Bu faktörlerin yanında C# çoğu otorite tarafından kabul edilen ve dünyanın en " başarılı " iki dili olan : C ve C++ ' tan türetilmiştir. Kişisel olarak C# dili ile tanışmam , şuan için boş zamanlarımda geliştirmeye çalıştığım CSL projesi ile başladı. Özellikle bir programlama dili kullanarak başka bir alanda bir programlama dili geliştirmek çok zordur. CSL projesinin ilk zamanlarında çektiğim zorluklardan sonra, uzun zaman önce aktardığım C++ ın yaratıcısı Bjarne Stroustrup ile röpörtaj makalesi aklıma geldi. Makalede bahsi geçen C# üzerinde kısa bir araştırma yaptıktan sonra ozamanlar sadece boş zamanlarımı değerlendirmek için yaptığım bu projede C# 'ın çok daha etkili olduğunu düşünüp CSL 'i C++ yerine C# ile yazmayı uygun gördüm. Programlama Dilleri Tarihinde Önemli Adımlar 60 ' lı yıllarda özellikle Pascal gibi önemli başarılar elde etmiş programlama dilleri, yapısal programlama ( structured programming ) mantığı ile oldukça büyük ilerlemeler kaydetti. 70 'li yıllara gelindiğinde Dennis Ritchie Unix İşletim sistemi kullanan bir DEC bilgisayar üzerinde " C " dilini yarattı. C programlama dili ozaman için büyük bir adımdı ve 80 'li yıllarda en yaygın kullanılan programlama dili haline geldi. Fakat gelişen teknoloji beraberinde daha gelişmiş programları ve komplike sistemleri ortaya çıkardı. Çok kısa bir süre sonrada C dili artık yetersiz gelmekteydi. 1979 yılında nesne yönelimli programlama ( OOP, Object Oriented Programming ) yöntemi ilk kez kayda değer bir hale geldi. Bu değer Bjarne Stroustrup 'un yazdığı C++ diliydi. C++ aslında tamamen C dili üzerine kurulmuş, yani onun tüm özelliklerini içeren ve ayrıca nesne yönelimli programlama yöntemi kazandırılmış bir dildi. Bu sayede C++ dili C ye göre hem çok daha etkili oldu hemde kullanıcıların dili öğrenmek için harcayağı zamandan tasarruf sağlayarak yumuşak bir geçiş ve dolayısıyla yaygınlaşmasında avantajlar sağladı. Sonraki 10 yıl sonunda C++ artık dünyada en çok kullanılan ve en iyi programlama dili olarak gösteriliyordu. " C++ 'ın keşfinin bir programlama dili ortaya çıkarmaya yönelik bir girişim olmadığını anlamak kritik bir öneme sahiptir. Bilakis, C++ zaten çok başarılı bir dilin gelişmiş haliydi. Dillerin gelişimi ile ilgili bu yaklaşım - mevcut bir dil ile başlayıp, onu daha da ileriye taşımak - bu gün bile devam etmekte olan bir trendin öncüsü oldu. " ( Herbert Schildt ) Programlama dillerindeki bu gelişmelerden sonra en büyük adım Java ile oldu. 1991 'de Sun Microsystems tarafından geliştirilen dilin arkasındaki en güçlü isim James Gosling 'di. Java söz dizimi ve felsefesi C++ 'tan alınan yapısal ve nesne yönelimli bir dildir. Özellikle Internet 'in oluşması ile Java büyük bir hız kazandı. Aslında bunun nedeni çok basitti. O zamana kadar programlama dilleri ile yazılan programların çoğu belirli işletim sistemleri ve işlemciler için yazılıyordu. Yani kodun taşınılabilirliği karşısında Java en iyi yöntemdi. Java 'nın sunduğu platform bağımsız ( cross-platform ) teknolojisi bir anda büyük bir çevre tarafından kabul gördü. Yazılımcılar sistemlere göre program geliştirmektense yazılan kodun heryerde kullanılmasını tercih ettiler. Elbette internete bağlı birbirinden farklı bu sistemlerin ortak veya ayrı noktalarda aynı uygulamaları kullanabilmesi için.... yada her nasıl ise öyle olması için :) " Gosling ve arkadaşları yeni ve yenilikçi özelliklere odaklanmakta serbesttiler. Tıpkı Stroustrup 'un C++ 'ı geliştirirken " tekerleği yeniden icat etmesine " gerek olmadığı gibi, Gosling 'ın de Java 'yı geliştirirken bütünüyle bir dil icat etmesi gerekmiyordu. İlaveten Java 'nın ortaya çıkışıyla C ve C++ yeni bilgisayar dillerinin üzerine inşa edileceği onaylanmış bir katman oluyordu. " ( Herbert Schildt ) Tabi java 'nın da eksik yönleri vardı... Java platform bağımsız bir kodlama için JVM ( Java Virtual Machine ) kullanıyordu. Java kaynak kodu " bytecode " denilen bir koda çeviriyor, ve gerektiğinde JVM ile programı çalıştırıyordu. Yani JVM 'nin olduğu her sistemde her kod aynı muameleyi görüyor, böylece kodun işletim sistemi veya işlemciye göre tekrar derlenmesine gerek kalmıyordu. Fakat bu aynı zamanda Java 'nın diğer programlama dilleri ile uyum içinde çalışması ( cross-language interoperability ) için dezavantaj oluşturuyordu. İşte bu noktada bir gereksinim ortaya çıkıyordu... C# 'ın Doğuşu 1990 'lı yılların sonlarına doğru Microsoft 'un programlama dehası Anders Hejlsberg C# dilini yarattı. 2000 yılının ortalarında C# 'ın ilk alfa versiyonu piyasaya çıktı. C# programlama dili ; C, C++ ve Java ile bağlantılı bir dil olarak yapıldı. Bunun bir tesadüf olduğunu düşünmeyin. Bunlar dünyada en yaygın kullanılan ve sevilen dillerden üçüdür. Hejlsberg 'de aynı Stroustrup ve Gosling gibi tekerleği yeniden icat etmektense mevcut bir dili geliştirmeyi uygun görmüştür. Eğer bu diller arasında bir bağlantı kurmak gerekirse. C# programlama dili; C dilinin söz dizimini ve C++ dilinin nesne yönelimli programlama yöntemlerini ve tekniklerini almıştır. C# 'ın Java ile olan ilişkisi ise özel bir durumdur. Zira C# 'ta Java gibi C ve C++ dillerinden özellikler almış ama aynı zamanda Java gibi platform bağımsız kod amaçlı tasarlanmıştır. Yani C# dili, Java dilinden türememiştir. En iyi tarafı ise C, C++, C# veya Java dillerinden birinde iyi olmanız diğer tüm dillerdede size büyük kolaylıklar sağlar. Tüm bu diğer dillerle olan bağlantısına rağmen C# beraberinde pek çok yenilik, özellik getirmiştir. Zaten diğer başarılı dillerin doğuşunda da aynı trend yaşanmıştır. İşte bu noktada C# : bileşen yönelimli bir dil ( component-oriented language ) olarak nitelendirilmiştir. Zira C# bileşenleri yazmak için bütünleşik destek içermektedir. Bunların içinde en önemlisi; karışık dillerin olduğu bir ortamda çalışabilme becerisidir. Dikkat ettiyseniz, birbirinden türeyen her dil bir önceki dilde eksik olan bir özelliği tamamlarayarak ilk adımları atmıştır. C++; C deki nesne eksikliğini, Java; C++ daki platform bağımsızlık özelliğini ve son olarak C# hem hepsinde olan özellikleri hemde Java 'da olmayan uyumlu çalışma desteğini almıştır. İnşallah Faydalı olmuştur... sorularınız için ziyaretçi defterini ziyaret edin..