C# ile .NET Ortamında Proje Geliştirme


Bu kurs katılımcılara .NET ortamında C# Programlama Dilini kullanarak proje geliştirme becerisi kazandırmayı hedeflemektedir.
Kursun İçeriği:

Kursta katılımcılarla birlikte bir ya da iki proje üzerinde hep birlikte çalışılmakta ve bunun yanı sıra her katılımcının ayrı bir proje üzerinde çalışmasına olanak sağlanmaktadır. Eğitmenler katılımcıların kendi projelerinin yürütülmesi konusunda yönlendirici ve problem çözücü katkılar sağlamaktadır. Kurs normal ders oturumları biçiminde yürütülmektedir.

Önkoşul:
Daha önce C# ile temel uygulama geliştirme becerisini kazanmış olmak ya da C ve Sistem Programcıları Derneği’nin açmış olduğu C# ile .NET Ortamında Uygulama Geliştirme (I) kursuna katılmış olmak.

* Ücreti sorunuz.

C# ile .NET Ortamında Uygulama Geliştirme (III)


Açıklama : Bu kurs C# kullanarak ileri uygulama geliştirme becerisini kazanmış programcılara yönelik daha ayrıntılı ileri düzey bir uygulama kursudur. Kurs içerisinde pek çok konu derinlikli olarak ele alınmaktadır. Bu kurs aynı zamanda bir uygulama kursu olduğundan her konu ele alınırken uygulamalı çalışmalar yapılacaktır.

Kurs konularından bazıları aşağıdadır:

· İleri düzey WPF (Windows Presentation Foundation) uygulamaları

· WPF ile ileri çizim işlemleri

· WPF ile üç boyutlu çizim işlemleri

· İleri düzey Linq (Language Integrated Query) kullanımı ve Entity Framework ile ileri veritabanı uygulamaları

· WWF (Windows Workflow Foundation)

· Güvensiz kodlar (unsafe codes)

· Şifreleme işlemleri ve güvenlik

· İleri düzey WCF (Windows Communication Foundation) uygulamaları

· Windows Store için uygulama geliştirme

· İleri düzey debug işlemleri

· Birim testleri ve NUnit kullanımı

· Unity ortamının (Unity framework) tanıtılması

· Ve diğerleri …

Ön Koşul : Daha önce C# ile .NET ileri düzey uygulama geliştirme becerisini kazanmış olmak ya da C ve Sistem Programcıları Derneği’nin açmış olduğu C# ile .NET Ortamında Uygulama Geliştirme (II) kursuna katılmış olmak.

* Ücreti sorunuz.

C# ile .NET Ortamında Uygulama Geliştirme (II)


Açıklama : Bu kurs C# kullanarak temel uygulama geliştirme becerisini kazanmış programcılara yönelik ileri düzey bir uygulama kursudur. Kurs içerisinde pek çok konu derinlikli olarak ele alınmaktadır. Bu kurs aynı zamanda bir uygulama kursu olduğundan her konu ele alınırken uygulamalı çalışmalar yapılacaktır.

Kurs konularından bazıları aşağıdadır:

· CLR ortamının ayrıntılı işlevleri

· Paylaşılan DLL’ler (shared dlls) ve GAC (Global Assembly Cache) kullanımı

· İleri düzey Windows form işlemleri

· Kontrol tasarımı ve yazımı

· Temel WPF (Windows Presentation Foundation) kullanımı

· İleri çizim işlemleri

· İleri düzey veritabanı işlemleri (ADO.NET sınıf sistemi)

· .NET’te XML işlemleri

· Çok thread’li uygulamalarda karşılaşılan sorunlar ve ileri düzey senkronizasyon işlemleri

· TCP/IP client-server programlama

· .Net ortamının aşağı düzeyli ve sistem programlama bakış açısıyla incelenmesi

· Sembolik arakodla (Common Intermediate Language [CIL]) programlama

· C# programlama diline eklenen yeni özellikler (Anonim metodlar, Lambda ifadeleri vs.)

· Linq (Language integrated Query) kullanımı ve Entity Framework ile temel veritabanı uygulamaları

· .NET Remoting kullanımı

· Temel WCF (Windows Communication Foundation) kullanımı

· TPL (Task Parallel Library)

· C# ile temel Android uygulamaları geliştirme

· Ve diğerleri …

Ön Koşul : Daha önce C# ile temel uygulama geliştirme becerisini kazanmış olmak ya da C ve Sistem Programcıları Derneği’nin açmış olduğu C# ile .NET Ortamında Uygulama Geliştirme (I) kursuna katılmış olmak.

* Ücreti sorunuz.

C# ile .NET Ortamında Uygulama Geliştirme (I)


Açıklama : Bu kurs C# Programlama Dilini kullanarak .NET ortamında uygulama geliştirme becerisini kazandırmayı hedeflemektedir. Kurs içerisinde pek çok konu belli bir derinlikte ele alınmaktadır. Bu kurs aynı zamanda bir uygulama kursu olduğundan her konu ele alınırken uygulamalı çalışmalar yapılacaktır.

Kurs konularından bazıları aşağıdadır:

· CLR ortamının temel özellikleri

· Nesne tutan sınıfların (collections) ayrıntılı incelenmesi

· GUI programlama modeli ve Windows Form Uygulamaları

· Temel çizim işlemleri

· Temel veritabanı işlemleri (ADO.NET sınıf kütüphanesi)

· Çok thread’li uygulamalar ve thread’lerin senkronizasyonu

· C# programlama diline eklenen yeni özellikler (eklenti metodları, var değişkenler, default argumanlar vs.)

· Öznitelikler (attributes)

· Nesnelerin seri hale getirilmesi (object serialization)

· Başkaları tarafından yazılmış kütüphanelerin (bileşenlerin) kullanılması

· MDI uygulamaları

· Uygulamaların kurulması ve konuşlandırılması

· Ve diğerleri …

Ön Koşul: Daha önce C# ile Nesne Yönelimli Programlama dilinde uygulamalı çalışma yapmış olmak ya da C ve Sistem Programcıları Derneği’nin açmış olduğu C# ile Nesne Yönelimli Programlama kursuna katılmış olmak.

* Ücreti sorunuz.

C# ile Nesne Yönelimli Programlama


C# Programlama Dili kolay ve hızlı uygulama geliştirmeyi amaçlayan C++’dan türetilmiş yalın bir nesne yönelimli programlama dilidir. Programlama dili olarak Java’ya oldukça benzemekle birlikte onun biraz daha iyileştirilmiş ve biraz daha C++’a yakınlaştırılmış bir biçimidir. Yalınlığı nedeniyle .NET programlama ortamının temel dili olarak kabul edilmektedir. C#’ı kullanarak, GUI uygulamaları, ASP.NET kullanıcı arayüzü, web servis uygulaması, dağıtık uygulamalar için bileşenler veya klasik bir Windows masaüstü uygulaması geliştirebilirsiniz. Bu kursta bir programlama dili olarak C# ele alınmaktadır. Bu kurs C# ile .NET Ortamında Uygulama Geliştirme kursu için bir önkoşul niteliğindedir.

Kurs konularından bazıları aşağıdadır:

Temel kavramlar

  • .NET ortamına ilişkin temel kavramlar (JIT, MSIL, CLR, CTS, CLS…)
  • Platform bağımsız çalışma olgusu
  • Çevirici programlar, derleyiciler yorumlayıcılar
  • .NET ortamının aşağı seviyede incelenmesi ve Java ile karşılaştırılması
  • Atom kavramı
  • Console sınıfının etkin kullanımı

Tür kavramı

  • .NET ortamının ortak tür sistemi, Type Inference
  • Değişkenler, sabitler ve faaliyet alanı
  • Ömür kavramı

Metotlar

  • Metotların geri dönüş değerleri
  • return deyimi
  • Metotların parametre değişkenleri
  • Opsiyonel parametreler
  • Default argüman alan metotlar
  • Variadic metotlar

Sabitler

  • Sabit kavramı
  • Sabitlerin türleri
  • Tamsayı sabitleri
  • Gerçek sayı sabitleri
  • bool türden sabitler
  • Karakter sabitleri
  • Escape sequence karakterler
  • Tamsayı sabitlerinin hexadecimal, binary ve octal gösterilişleri
  • Gerçek sayı sabitlerinin bilimsel gösterilişi
  • Sabit bildiriminde alttire karakterinin kullanımı

Temel Operatörler

  • Operatörlerin sınıflandırılması
  • Operatör önceliği
  • Aritmetik Operatörler
  • Karşılaştırma operatörleri
  • Mantıksal operatörler
  • Atama operatörü ve işlemli atama operatörleri

Kontrol deyimleri

  • if ve switch deyimleri
  • while ve do while döngü deyimleri
  • for ve foreach döngü deyimleri
  • break ve continue deyimleri
  • Örnek programlar

Tür dönüştürmeleri

  • Farklı türlerin birbirine atanması
  • İşlem öncesi otomatik tür dönüşümleri
  • Tür dönüştürme operatörü

Koşul operatörü

  • Koşul operatörünün özellikleri
  • Koşul operatörünün kullanıldığı durumlar

Aynı isimde metotlar (method overloading)

  • Bir sınıf içerisinde aynı isimde metotlar
  • Bir metodun imzası
  • Çağırma sırasında hangi metodun çağrılacağının belirlenme süreci (overload resolution)
  • Tam uyum (best match)
  • Tam uyum olmadığında hangi metodun çağrılacağının belirlenme süreci

Nesne Yönelimli Programlama Paradigması

  • Nesne yönelimli programlama paradigmasına ilişkin temel kavramlar, diğer paradigmalar ile karşılaştırma
  • Sınıf ve nesne kavramları

Adres kavramı

  • Adres kavramı
  • unsafe uygulamalarda pointer (gösterici) kullanımı
  • Stack, Code ve Heap alanları

Temel sınıf kavramları

  • Sınıf ve nesne kavramları
  • Referans türleri ve değer türleri
  • Referans kavramı
  • new operatörü
  • Sınıfın static olmayan veri elemanlarına erişim ve nokta operatörü
  • Sınıfın static olmayan veri elemanlarının varsayılan değerleri
  • Referans parametreli metotlar
  • Referans geri dönüş değerli metotlar
  • Sınıfın static veri elemanları
  • Sınıfın non-static ve static metotları
  • Sınıfın non-static metotları içerisinde non-static ve static elemanlara doğrudan erişim durumu
  • Sınıfın static metotları içerisinde non-static ve static elemanlara doğrudan erişim durumu
  • Örnek yararlı sınıflar

Sınıfların başlangıç metotları (constructors)

  • Nesne oluşturulması adımları
  • Sınıfın varsayılan (default) başlangıç metodu
  • Başlangıç metotlarının overload edilmesi
  • Örnek yararlı sınıflar

Rassal sayı üretimi (Random sınıfı)

String sınıfı

  • Immutable sınıf kavramı
  • String nesnesinin bellekteki durumu
  • String sabitleri (String literals)
  • String sınıfının metotları
  • String işlemlerine yönelik yararlı metotların yazılması
  • Örnek programlar

İsim alanları

  • Paketleme ve granülasyon kavramları
  • Farklı isim alanlarındaki sınıflara erişim
  • İç içe isim alanı bildirimleri
  • using anahtar sözcüğü

İsim arama

  • Niteliksiz (unqualified) isim arama
  • Nitelikli (qualified) isim arama

Diziler (Arrays) ve uygulamalar

  • Dizi referansları
  • Diziye ilişkin nesnelerin bellekteki durumu
  • Dizi elemanlarına erişim
  • Dizilere ilk değer verilmesi
  • Dizilerin metotlara geçirilmesi: dizi referansı parametreli metotlar
  • Dizi referansı döndüren metotlar
  • Dizilere ilişkin temel algoritmaların yazımı
  • Dizilere ilişkin yararlı metotların yazımı
  • Dizilerde bazı sıralama algoritmaları: kabarcık sıralaması (bubble sort) ve _seçerek sıralama (selection sort) algoritmaları
  • char türden diziler
  • char türden diziler ve String sınıfı
  • Referans dizileri
  • Referans dizilerine ilkdeğer verilmesi
  • String türden diziler
  • Dizi dizileri
  • Dizi dizilerinin çok boyutlu dizi gibi kullanılması
  • Dizi dizilerine ilk değer verilmesi
  • Matrisler ve matrislere ilişkin algoritmalar
  • Örnek programlar

Sınıflarda temel erişim kuralları

  • public erişimcisi
  • private erişimcisi
  • protected erişimcisi
  • internal erişimcisi
  • Başlangıç metodunun private, protected ya da internal olması durumu
  • Singleton tasarım kalıbı
  • Encapsulation kavramı, Property’ler ve property’lerin ara koda nasıl dönüştüğünün incelenmesi
  • Örnek sınıflar

enum’lar

  • enum sabitleri
  • enum sınıfların sabit dışındaki elemanları
  • enum sınıfların başlangıç metotları (constructor)
  • enum’ların eşitlik karşılaştırması
  • enum’ların karşılaştırılması
  • enum’ların kullanımı
  • Örnek enum sınıflar

Sınıflar arası ilişkiler

  • Composition
  • Aggregation
  • Association
  • Inheritance
  • Sınıflar arası ilişkilerin modellenmesi
  • UML modelleme diline giriş

Türetme (inheritance)

  • Base class (taban sınıf) ve derived class (türemiş sınıf) kavramları
  • Türetme sentaksı
  • Başlangıç metodu içerisinde taban sınıfın başlangıç metodunun çağrılması
  • Başlangıç metodu içerisinde taban sınıfa ait istenilen bir başlangıç metodunun çağrılması
  • Başlangıç metodu içerisinde başka bir başlangıç metodunun çağrılması
  • protected bölümün anlamı
  • Object sınıfı
  • Örnek sınıflar

Taban sınıf ve türemiş sınıf arasındaki dönüşümler

  • Yukarıya doğru dönüşüm (upcasting)
  • Yukarıya doğru dönüşümün anlamı
  • Aşağıya doğru dönüşüm (down-casting)
  • is opetörü
  • Otomatik kutulama (auto-boxing) ve otomatik kutuyu açma (auto-unboxing)
  • sealed sınıflar
  • Referansların statik ve dinamik türleri
  • Örnek programlar

this referansı

  • this referansının anlamı
  • non-static metotlar içerisinde this kullanmı

null referans

  • null adres kavramı ve null sabiti
  • null referansın kullanıldığı durumlar

Çöp Toplayıcı (garbage collector)

  • Nesnelerin ömürleri
  • Nesnelerin seçilebilir (garbage collected) duruma gelmesi
  • Çöp toplayıcı’nın çalışma biçimi
  • Nesnelerin gösteren referansların takibine yönelik tipik algoritmalar
  • using anahtar sözcüğü
  • IDisposable arayüzü

Dinamik büyüyen dizi veri yapısı

  • Dinamik büyüyen veri yapısına ilişkin temel kavramlar: capacity, size vs.
  • Dinamik büyüyen veri yapısına ilişkin metotların karmaşıklık durumları
  • ArrayList ve List sınıfları
  • HashTable Dictionary SortedList sınıfları
  • Örnek bir dinamik büyüyen dizi sınıfının yazılması

Çok biçimlilik (polymorphism)

  • Çok biçimliliğin programlamaya yönelik tanımları
  • Çok biçimli mekanizma
  • Sanal metotlar
  • Sanal metotların override edilmesi
  • Metotların override edilmesinin anlamı
  • base referansı
  • Override edilen metot içerisinde taban sınıfın aynı metodunun çağrılması (augmentation)
  • Override edilen metodun erişim belirleyicisinin erişim anlamında yükseltilmesi
  • sealed metotlar
  • Çok biçimliliğe ilişkin örnek tasarımlar ve kodlanması

Soyut sınıflar ve metotlar (abstract classes and methods)

  • Soyut sınıf ve metotların anlamı
  • Soyut metotların override edilmesi
  • Soyut metotların override edilmemesi durumu
  • Soyut sınıfların taban sınıf referansı olarak kullanılması
  • Soyut sınıfların başlangıç metotları
  • Örnek sınıflar

Exception mekanizması

  • Exception kavramı kullanımı
  • throw anahtar sözcüğü ve bir exception nesnesinin fırlatılması
  • try blokları
  • catch blokları
  • catch blokları parametrelerine ilişkin sınıflar ve uygun catch bloğunun bulunması
  • Yeniden fırlatma (rethrow)
  • İçiçe try bloklarının bulunması durumu
  • finally bloğu
  • Yakalanamayan exception durumu
  • Exception sınıflarının anlamı
  • checked ve unchecked exception sınıfları
  • Önemli exception sınıfları
  • Örnek sınıfların exception açısından düzenlenmesi ve genel hale getirilmesi

Arayüzler (interfaces)

  • Bir sınıfın desteklediği arayüzler ve metotların override edilmesi
  • Arayüzler ile abstract sınıflar arasındaki farklar
  • Arayüzler arası tür dönüştürme ayrıntıları
  • Sıkça kullanılan bazı arayüzler

Generic sınıflar ve metotlar

  • Generic sınıflar
  • Generic sınıflarda türetme işlemleri
  • Generic sınıflarda new operatörü ile <> (diamond syntax) kullanımı
  • Generic arayüzler
  • Generic türlerde kısıtlamalar
  • Generic sınıflarda alt sınır ve üst sınır belirlenmesi (invariant, covariant ve contra-variant)
  • Generic metotlar
  • Generic metotlarda parametre türlerinin tespiti
  • Örnek sınıflar ve programlar

Programın komut satırı argümanları

Extension metotlar

Delegate (temsilci) ve Event’ler

Reflection ve metadata kavramlarının uygulamada kullanılması

  • Type sınıfı
  • typeof operatörü

Attribute sınıfları

Lambda ifadeleri

Bit seviyesinde işlemler ve ilişkili operatörler

Dinamik kütüphanelerin DLL oluşturulması ve kullanılması

Dosya işlemleri

  • Dosya ve dizin (directory) kavramları
  • Dosya yol ifadeleri: absolute and relative path
  • Processin çalışma dizini (current working directory)
  • Metin (text) ve ikili (binary) dosyalar
  • File Directory sınıfları
  • Stream soyut sınıfı
  • Dosya işlemleri
  • Örnek programlar

Önkoşul: Daha önce herhangi bir programlama dilinde uygulamalı çalışma yapmış olmak veya derneğimizin açmış olduğu Programlamaya Giriş kursuna katılmış olmak.

* Kurs ücretini sorunuz.

Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.

C# Programcıları için Java


Açıklama : Bu kurs C# Programlama Dilini bilen programcıların Java Programlama Diline geçişlerini sağlamayı amaçlamaktadır. Kurs içerisinde Java Programlama Dili, katılımcıların C# Programlama Dilini bildikleri varsayımıyla ele alınıp anlatılmaktadır.

Önkoşul:
C# Programlama Dilini bilmek ya da C ve Sistem Programcıları Derneği’nin açmış olduğu C# İle Nesne Nesne Yönelimli Programlama kurslarını başarıyla bitirmiş olmak.

* Ücreti sorunuz.

Java Programcıları İçin C#


Açıklama : Bu kurs Java Programlama Dilini bilen programcıların C# Programlama Diline geçişlerini sağlamayı amaçlamaktadır. Kurs içerisinde C# Programlama Dili, katılımcıların Java Programlama Dilini bildikleri varsayımıyla ele alınıp anlatılmaktadır.

Önkoşul: Java Programlama Dilini bilmek ya da C ve Sistem Programcıları Derneği’nin açmış olduğu Java İle Nesne Nesne Yönelimli Programlama kurslarını başarıyla bitirmiş olmak.

* Ücreti sorunuz.

ILASM ile .NET Ortamında Arakod Programlama


Bu kurs .Net ortamında kullanılan ortak arakod programlaması ile ilgilidir. Kursumuzda ILASM arakod programlama modeli aşağı seviyeli bir biçimde ele alınmaktadır. Kursumuz aynı zamanda CLI (Common Language Infrastructure) standartlarının çeşitli yönleri hakkında da aşağı seviyeli bilgiler sunmaktadır.

Kurs konularından bazıları aşağıdadır:
PE dosyasının yapısı ve formatı
ILASM komutlarının kullanımı
Arakod programlarının yapısı ve ayrıntılı özellikleri
ilasm ve ildasm programlarının kullanımı
Metadata kavramı ve organizasyonu
Modül ve Assembly kavramları
Exception mekanizmasının aşağı seviyeli incelenmesi
Attribute işlemleri
Yönetilen (managed) ve yönetilmeyen (unmanaged) kodların birlikte kullanılması
Birden fazla programlama dili kullanarak işlemlerin yürütülmesi
Çeşitli uygulamaları

Önkoşul: .Net geliştirme ortamında uygulamalı çalışma yapmış olmak ya da C ve Sistem Programcıları Derneği’nin açmış olduğu C# ile Nesne Yönelimli Programlama ve C# ile .NET Ortamında Uygulama Geliştirme (I) kurslarını ya da C++ Programcıları için C# ve Visual C++ ile .NET Ortamında Uygulama Geliştirme kursunu başarıyla tamamlamış olmak.

* Ücreti sorunuz.

C++ Programcıları için C# ve Visual C++ ile .NET Ortamında Uygulama Geliştirme


Açıklama : Bu kurs C++ programcılarının Windows altında .NET ortamında uygulama geliştirmesini sağlamaya yöneliktir. C# Programlama Dili C++ bilinç düzeyi ile ele alınıp açıklanmaktadır. .NET ortamında uygulama geliştirmeye yönelik tüm konular uygulamalı olarak ele alınacaktır.

Kurs konularından bazıları aşağıdadır:
Microsoft .Net ortamın genel yapısı
C# Programlama Dili
Sınıf yapısı ve Çokbiçimlilik
.NET sınıf sisteminin kullanımı
XML
Web Servisler
Uygulama örnekler

Önkoşul: C++ Programlama Dilini bilmek ve Windows Programlama konusunda uygulamalı çalışma yapmış olmak ya da C ve Sistem Programcıları Derneği’nin açmış olduğu C++ ve Nesne Yönelimli Programlamaya Giriş kursunu başarıyla bitirmiş olmak.

Kurs ücreti duyuru sayfasında belirtilmektedir.

Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.