İleri Yazılım Eğitimleri

OOP Prensipleri ve Tasarım Desenleri - OOP Principle and design pattern

Nesne Yönelimli Programlama (OOP) tekniği, modern uygulama geliştirme tekniklerinden biridir. Fakat bu tekniği uygularken nasıl standartlara dikkat etmemiz gerekiyor? Bu teknikle uygulama geliştirirken karşılaşılan sorunlara nasıl çözüm bulabiliriz?

Bu sorulara, evrensel ölçekte bir cevap vermek istersek, yolumuz SOLID prensipleri ve Tasarım Desenlerinden geçiyor.

İşte bu eğitimde, başlangıçta OOP’nin felsefesi üzerinde duracağız ve ardından evrensel olarak kabul edilen SOLID Prensiplerini ve Tasarım Desenlerini inceleyeceğiz.

Kimler Katılabilir

C#.NET platformunda temel bilgiye sahip, basit de olsa bir proje deneyimi olan herkes  bu eğitime katılabilir.

Eğitim İçeriği

1. OOP Kavramları

  • Kalıtım, Polimorfizm, Compositon
  • Temel OOP Terimlerinin Anlaşılması (is-a ve has-a ikişkileri)
  • OOP Mimarilerinin Başarısı
  • Nesne ve Sınıf Kavramları

2. OOP Principles (Nesne Yönelimli Programlama Disiplinleri)

  • Single Responsibility Principle
  • Open Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle
  • Reuse Release Equivalency Principle
  • Common Closure Principle
  • Common Reuse Principle
  • Acyclic Dependencies Principle
  • Stable Dependencies Principle
  • Stable Abstractions Principle

3. C# ile Tasarım Desenleri (Design Patterns)

  • Pattern ve Anti Pattern Kavramları
  • Çeşitli Pattern Tanımları
  • GoF (Gangs of Four) Desenleri
  • Creational Patterns (Örneklerle)
    • Abstract Factory
    • Builder
    • Factory Method
    • Prototype
  • Behavioral Patterns (Örneklerle)

    • Chain of responsibility

    • Command

    • Interpreter

    • Iterator

    • Mediator

    • Memento

    • Observer

    • State

    • Strategy

    • Template method

    • Visitor

  • Structural Patterns (Örneklerle)
    • Adapter

    • Bridge

    • Composite

    • Decorator

    • Façade

    • Flyweight

    • Proxy

Kurumsal Tasarım Desenleri - Enterprise Design Patterns

Günümüzde geliştirilmekte olan kurumsal ölçekteki yazılım ürünlerinin belirli standartları ve geliştirme stratejileri söz konusu. Nesne Yönelimli Programlama Tekniği (OOP) temel alınarak geliştirilen bu standartlar sayesinde, daha kaliteli verimli yazılım ürünleri geliştirilebilmektedir.

C#.NET platformu üzerinden aktarılacak olan bu eğitimde, modern geliştirme süreçlerinde kullanılan katmanlı mimari modeli ve bu paralelde karşılaşılabilecek problemler ile çözümleri ele alınmaktadır. 

Kimler Katılabilir

C#.NET platformunda, Senior seviyesinde uzmanlığa sahip yazılımcılar, altyapı uygulama geliştiricileri, takım yöneticileri ve mimarlar katılabilirler.

Eğitim İçeriği

1. Kurumsal Mimari Nedir?

2. Kurumsal Kodlama için gerekli prensipler

  • SOLID prensipleri
  • Gevşek Bağlılık (Loosely Coupled) prensibi
  • Birim Test (Unit Testing) Prensibi
  • Dependency Injection ve IoC Containers

3. Kodu daha kurumsal hale getirmek

  • Çok katmanlı mimari modeli
  • Bağlılık (Dependency) üzerine
  • İlginin ayrımı (Seperation of Concerns) ilkesi
  • Dependency Injection ve IOC pratikleri

4. Test Driven Development

  • Red-Green-Refactor yaklaşımı
  • Mock Object

5. IoC Derin Bakış

  • Factory Pattern
  • Service Locator Pattern
  • IoC Tasarımı
  • Hazır IoC araçları (Unity, Castle Windsor vs)

6. İş Katmanı Tasarımı (Business Logic Layer)

  • Transaction Script Deseni
  • Active Record Deseni
  • Domain Model

7. Servis Katmanı (Service Layer)

  • Domain Driven Design Pratikleri

8. Veri Erişim Katmanı Tasarım Teknikleri (Data Layer)

  • ORM araçları
  • Entity Framework ve DDD
  • Veri Erişim katmanında kullanılan desenler

9. Sunum (Presentation) Katmanı

  • Model-View-Presenter Deseni
  • Model-View-Controller Deseni

10. Olası senaryolar ve çözümler

  • Hata Yönetim senaryoları
  • Genişleyebilir Mimariler

İleri C#.NET

C#.NET uygulama geliştirme platformu, birçok yazılım problemine çözüm olarak kullanabilecek kütüphane ve tekniği bir araya getirmektedir. Bu eğitimde, bu ileri düzey kavramları, örnekler ile inceliyoruz. Bu sayede, .NET geliştiricisinin konu hakkındaki uzmanlığını arttırmayı hedefliyoruz.

Kimler Katılabilir?

Temel C# konularına ve OOP temellerine hâkim tüm yazılım geliştiriciler katılabilir.

Eğitim İçeriği

1. Types

  • Enum
  • Interface
  • Anonymous Types

2.Generics

  • Generic Types
  • Constraints
  • Generic Methods
  • Variance

3. Collections

  • List<T>
  • IEnumarable, IEnumarator vs
  • Dictionary
  • FIFO ve LIFO
  • Concurrent Collection
  • Tuples

4. Object Lifetime

  • Garbage Collection
  • Destructor and Finalization
  • IDisposable

5. Exception Handling

6. Delegates – Lambdas – Events

7. Advanced C#

  • Indexer Methods
  • Operator Overloading
  • Custom Type Conversions
  • Anonymous Types

8. Reflection – Custom Attributes

9. Dynamic Type ve DLR

  • dynamic anahtar kelimesi
  • Dynamic Language Run-Time (DLR)

10. App Domains

11. Multithreading, Parallel and Async Programming

ASP.NET MVC

Microsoft’un ASP.NET teknolojisi üzerine konumlandırdığı MVC Framework ile daha temiz, yönetilebilir ve esnek web uygulamaları geliştirmeye hazır olun. Başlangıçtan orta seviyeye kadar ilerleyeceğimiz bu eğitimde, örnek projeler üzerinde ilerleyerek problemlere ve çözümlerine odaklanacağız.

Kimler Katılabilir

Temel seviyede HTML ve Temel seviyede C# programlama bilgisine sahip herkes bu eğitime katılabilir.

Eğitim İçeriği

1. ASP.NET MVC Temelleri

  • MVC Tasarım Deseni
  • ASP.NET MVC Framework
  • Web Form’dan MVC’ye

2. Controller

  • Controller Temelleri
  • Action kavramı
  • Action parametreleri

3. View

  • View Temelleri
  • Strongly Typed View
  • View Model
  • Razor Kullanımı
  • Partial View Belirleme

4. Models

  • Model Tanımalama
  • Scaffolfding Kullanımı
  • Model Binding

5. Formlar ve HtmlHelper

  • Form elementlerini kullanmak
  • Html Input Helper
  • Rendering Helper

6. Validasyon ve Data Annotations

  • Data Annotation ile Validasyon uygulamak
  • Validasyon mekanizmasını özelleştirmek

7. Güvenlik ve Üyelik Sistemleri

  • Authentication ve Authorization
  • Identity
  • OAuth ve OpenId
  • Güvenlik

8. AJAX

  • JQuery ile AJAX
  • Ajax Helpers

9. Routing

  • Routing Temelleri
  • Route Sınırlamak

10. Dependency Injection Kullanımı

Eğitim Konusu