C Sharp: Porovnání verzí

Z WoWResource Wiki
Přejít na: navigace, hledání
 
(Upravil jsem priklad zdrojoveho kodu.)
 
(Není zobrazeno 5 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
 +
'''C#''' (vyslovované anglicky jako '''C Sharp''', /siː ʃʌɹp/, doslova to označuje [[nota|notu]] cis) je vysoko úrovňový [[objektově orientované programování|objektově orientovaný]] [[programovací jazyk]] vyvinutý firmou [[Microsoft]] zároveň s platformou [[.NET Framework]], později schválený standardizačními komisemi [[ECMA]] a [[Mezinárodní organizace pro normalizaci|ISO]]. Microsoft založil C# na jazycích [[C++]] a [[Java]] (a je tedy nepřímým potomkem jazyka [[C (programovací jazyk)|C]], ze kterého čerpá syntaxi).
 +
 +
C# se využívá hlavně k tvorbě databázových programů, webových aplikací, [[webová služba|webových služeb]], formulářových aplikací ve [[Microsoft Windows|Windows]] apod.
 +
 +
==Cíle jazyka ==
 +
Standard ECMA definuje současný design C# takto:
 +
* C# je jednoduchý, moderní, mnohaúčelový a objektově orientovaný programovací jazyk.
 +
* Jazyk a jeho implementace poskytuje podporu pro principy [[softwarové inženýrství|softwarového inženýrství]] jako jsou: hlídání hranic polí, detekce použití neinicializovaných proměnných a automatický [[garbage collector]]. Důležité jsou také jeho vlastnosti jako: robustnost, trvanlivost a programátorská produktivita.
 +
* Jazyk je vhodný pro vývoj softwarových komponent distribuovaných v různých prostředích.
 +
* Přenositelnost zdrojového kódu je velmi důležitá, obzvláště pro ty programátory kteří jsou obeznámeni s [[C (programovací jazyk)|C]] a [[C++]].
 +
* Mezinárodní podpora je též důležitá.
 +
 +
==Používané platformy==
 +
 +
Jazyk C# je navržen tak, aby co nejvíce zohledňoval strukturu [[Common Language Infrastructure]] (CLI), se kterou je používán. Většina základních typů v C# přímo odpovídá základním typům v platformě CLI. Návrh jazyka ale nevyžaduje, aby [[překladač]] generoval [[Common Intermediate Language]] (CIL) nebo jíný konkrétní formát. Teoreticky je možné, aby překladač vytvářel strojový kód podobný běžným překladačům jazyka C++ a jiných, ale v praxi všechny překladače jazyka C# generují CLI.
 +
 +
== Historie a verze jazyka ==
 +
 +
=== C# 1.0 ===
 +
 +
První verze vydaná v roce společně s .NET Frameworkem 1.0 obsahovala základní podporu objektového programování, ve které vycházela z jazyka C++ a zkušeností s jejich aktualizací v jazyce Java.
 +
 +
=== C# 2.0 ===
 +
 +
Na další verzi se čekalo až do konce roku 2005. Mezi její nové vlastnosti patří:
 +
 +
* Nativní podpora generik vycházející z podpory na úrovni CLI.
 +
* Částečné a statické třídy.
 +
* Iterátory.
 +
* Anonymní metody pro pohodlnější užívání delegátů (odkazů na metody).
 +
* Nullovatelné hodnotové typy a operátor koalescence.
 +
 +
=== C# 3.0 ===
 +
 +
Vyjde v roce 2008 společně s .NET Frameworkem 3.5 a Visual Studiem 2008, jeho specifikace je však již hotová. Bude obsahovat poměrně revoluční změny, které však nebudou vyžadovat změnu podkladového IL, takže aplikace v něm psané půjdou spouštět i na počítačích vybavených toliko druhým Frameworkem.
 +
 +
* [[LINQ]] (Language Integrated Query) zavede několik nových klíčových slov převzatých z jazyka SQL, za pomocí kterých se půjde dotazovat na objekty reprezentující databáze, XML soubory, nebo cokoliv dalšího.
 +
* Lambda metody jsou jednodušší metodou zápisu anonymních metod.
 +
* Inicializátory objektů a kolekcí.
 +
* Rozšiřující metody.
 +
* Anonymní třídy umožňující např. rychlé vytvoření objektů přenášejících informace vyžádané z databáze přes LINQ.
 +
* Klíčové slovo var, nutná to podmínka pro využití anonymních tříd.
 +
* Výrazové stromy (expression trees) umožňující za jistých podmínek kompilátoru místo vyhodnocení výrazu vytvoření jeho objektové reprezentace.
 +
 +
== „Ahoj, světe!“ ==
 +
Následující jednoduchá aplikace vypíše „[[Ahoj světe|Ahoj, světe!]]“ na [[standardní výstup]] [[konzolová aplikace|konzolové aplikace]].
 +
 +
 +
 +
<pre>
 +
using System;
 +
namespace MojeKonzolovaAplikace
 +
{
 +
  class HlavniTrida
 +
  {
 +
    static void Main(string[] args)
 +
    {
 +
      Console.WriteLine("Ahoj, světe!");
 +
    }
 +
  }
 +
}
 +
</pre>
 +
 +
 +
Rozeberme krátce jednotlivé příkazy. Třídy, základní jednotky objektového programování, jsou v C# rozděleny pro lepší orientaci a jednoznačnost názvů do jmenných prostorů. Na počátku zdrojového kódu jmenujeme příkazem using jmenné prostory, jež budeme používat — nebudeme pak muset rozepisovat jejich název, všechny třídy z nich jsou nám hned přístupny.
 +
 +
Na dalším řádku příkazem namespace říkáme, že chceme zařadit kód vymezený následujícími složenými závorkami do jmenného prostoru MojeKonzolováAplikace. Hned poté definujeme klíčovým slovem class třídu Hlavní třída, její obsah bude opět vymezen dalšími složenými závorkami. Kód není nutné odsazovat (bílé znaky se ignorují), jen je to praktické.
 +
 +
Všimněme si také, že identifikátory mohou obsahovat písmenka s háčky a čárkami — je tomu tak již od prvních verzí jazyka.
 +
 +
== Vývojová prostředí ==
 +
* [[Microsoft Visual Studio|Microsoft Visual Studio]] – oficiální nástroj od společnosti [[Microsoft|Microsoft]]
 +
* [[Turbo Csharp Explorer|Turbo C# Explorer]] – nástroj od společnosti [[Borland]]
 +
* [[SharpDevelop|SharpDevelop]] – OpenSource nástroj fungující jen v [[Microsoft Windows]]
 +
* [[MonoDevelop]] – [[multiplatformní software|multiplatformní]] OpenSource nástroj využívající [[Mono (platforma)|Mono]] a [[Gtk Sharp|Gtk#]]
 +
* [[Baltík|Baltík]] – Programovací nástroj pro začátečníky v C#
 +
 +
== Externí odkazy ==
 +
* [http://www.zive.cz/h/Programovani/AR.asp?ARI=134680 Srovnání Visual C#, Turbo C# a SharpDevelop na serveru zive.cz]
 +
 +
 +
 +
 +
 +
 +
 +
 
[[Category:Programování]]
 
[[Category:Programování]]

Aktuální verze z 22. 2. 2008, 15:25

C# (vyslovované anglicky jako C Sharp, /siː ʃʌɹp/, doslova to označuje notu cis) je vysoko úrovňový objektově orientovaný programovací jazyk vyvinutý firmou Microsoft zároveň s platformou .NET Framework, později schválený standardizačními komisemi ECMA a ISO. Microsoft založil C# na jazycích C++ a Java (a je tedy nepřímým potomkem jazyka C, ze kterého čerpá syntaxi).

C# se využívá hlavně k tvorbě databázových programů, webových aplikací, webových služeb, formulářových aplikací ve Windows apod.

Cíle jazyka

Standard ECMA definuje současný design C# takto:

  • C# je jednoduchý, moderní, mnohaúčelový a objektově orientovaný programovací jazyk.
  • Jazyk a jeho implementace poskytuje podporu pro principy softwarového inženýrství jako jsou: hlídání hranic polí, detekce použití neinicializovaných proměnných a automatický garbage collector. Důležité jsou také jeho vlastnosti jako: robustnost, trvanlivost a programátorská produktivita.
  • Jazyk je vhodný pro vývoj softwarových komponent distribuovaných v různých prostředích.
  • Přenositelnost zdrojového kódu je velmi důležitá, obzvláště pro ty programátory kteří jsou obeznámeni s C a C++.
  • Mezinárodní podpora je též důležitá.

Používané platformy

Jazyk C# je navržen tak, aby co nejvíce zohledňoval strukturu Common Language Infrastructure (CLI), se kterou je používán. Většina základních typů v C# přímo odpovídá základním typům v platformě CLI. Návrh jazyka ale nevyžaduje, aby překladač generoval Common Intermediate Language (CIL) nebo jíný konkrétní formát. Teoreticky je možné, aby překladač vytvářel strojový kód podobný běžným překladačům jazyka C++ a jiných, ale v praxi všechny překladače jazyka C# generují CLI.

Historie a verze jazyka

C# 1.0

První verze vydaná v roce společně s .NET Frameworkem 1.0 obsahovala základní podporu objektového programování, ve které vycházela z jazyka C++ a zkušeností s jejich aktualizací v jazyce Java.

C# 2.0

Na další verzi se čekalo až do konce roku 2005. Mezi její nové vlastnosti patří:

  • Nativní podpora generik vycházející z podpory na úrovni CLI.
  • Částečné a statické třídy.
  • Iterátory.
  • Anonymní metody pro pohodlnější užívání delegátů (odkazů na metody).
  • Nullovatelné hodnotové typy a operátor koalescence.

C# 3.0

Vyjde v roce 2008 společně s .NET Frameworkem 3.5 a Visual Studiem 2008, jeho specifikace je však již hotová. Bude obsahovat poměrně revoluční změny, které však nebudou vyžadovat změnu podkladového IL, takže aplikace v něm psané půjdou spouštět i na počítačích vybavených toliko druhým Frameworkem.

  • LINQ (Language Integrated Query) zavede několik nových klíčových slov převzatých z jazyka SQL, za pomocí kterých se půjde dotazovat na objekty reprezentující databáze, XML soubory, nebo cokoliv dalšího.
  • Lambda metody jsou jednodušší metodou zápisu anonymních metod.
  • Inicializátory objektů a kolekcí.
  • Rozšiřující metody.
  • Anonymní třídy umožňující např. rychlé vytvoření objektů přenášejících informace vyžádané z databáze přes LINQ.
  • Klíčové slovo var, nutná to podmínka pro využití anonymních tříd.
  • Výrazové stromy (expression trees) umožňující za jistých podmínek kompilátoru místo vyhodnocení výrazu vytvoření jeho objektové reprezentace.

„Ahoj, světe!“

Následující jednoduchá aplikace vypíše „Ahoj, světe!“ na standardní výstup konzolové aplikace.


using System;
namespace MojeKonzolovaAplikace
{
  class HlavniTrida
  {
    static void Main(string[] args)
    {
      Console.WriteLine("Ahoj, světe!");
    }
  }
}


Rozeberme krátce jednotlivé příkazy. Třídy, základní jednotky objektového programování, jsou v C# rozděleny pro lepší orientaci a jednoznačnost názvů do jmenných prostorů. Na počátku zdrojového kódu jmenujeme příkazem using jmenné prostory, jež budeme používat — nebudeme pak muset rozepisovat jejich název, všechny třídy z nich jsou nám hned přístupny.

Na dalším řádku příkazem namespace říkáme, že chceme zařadit kód vymezený následujícími složenými závorkami do jmenného prostoru MojeKonzolováAplikace. Hned poté definujeme klíčovým slovem class třídu Hlavní třída, její obsah bude opět vymezen dalšími složenými závorkami. Kód není nutné odsazovat (bílé znaky se ignorují), jen je to praktické.

Všimněme si také, že identifikátory mohou obsahovat písmenka s háčky a čárkami — je tomu tak již od prvních verzí jazyka.

Vývojová prostředí

Externí odkazy