.NET mülakatları, bir şirketin yazılım geliştirme pozisyonlarına alacağı adayları belirlemek için yaptığı teknik mülakatlardır. Bu mülakatlarda adayların .NET platformu hakkındaki bilgileri, uygulama geliştirme konusundaki deneyimleri ve problem çözme becerileri test edilir.
Bir .NET Developer mülakatına girecekseniz gelebilecek teknik sorulara çalışmanızı tavsiye ederiz. Bu nedenle, .NET Developer’lar için mülakatlarda sorulan en popüler .NET mülakat soruları ve cevaplarını listeledik.
En Sık Sorulan .NET Mülakat Soruları
1. .NET nedir?
.NET, yazılım geliştirmede kullanılan bir framework’tür. Çalışma zamanı yetenekleri, sınıf kitaplığı ve API'ler gibi işlevsellik seti sağlar. .NET, web hizmetleri ve diğer uygulamaları oluşturmak, dağıtmak ve çalıştırmak için bir ortamdır.
2. .NET hangi programlama dillerini destekler?
.NET Framework 40'tan fazla programlama dilini destekler. Bu diller arasından 11 tanesi Microsoft tarafından tasarlanmış ve geliştirilmiştir. En yaygın diller arasında VB.NET, Cobol, Perl, C#, C++ ve F# bulunur.
3. .NET'in temel özellikleri nelerdir?
- Platformlar arası geliştirme: .NET, geliştiricilerin Windows, Linux ve macOS dahil olmak üzere birden çok işletim sisteminde ve aygıtta çalışabilen uygulamalar oluşturmasına olanak tanır.
- Programlama dili desteği: .NET, C#, F# ve Visual Basic dahil olmak üzere birden çok teknolojiyi destekler.
- Ortak Dil Çalışma Zamanı (CLR): CLR, .NET kodunun yürütülmesini yönetmekten sorumludur ve bellek yönetimi, güvenlik ve istisna işleme gibi hizmetler sağlar.
- Temel Sınıf Kitaplığı (BCL): BCL, .NET uygulamaları için dosya girişi/çıkışı, ağ oluşturma ve iş parçacığı oluşturma gibi ortak işlevler sağlayan bir sınıflar ve türler koleksiyonudur.
- Çöp toplama: .NET, çöp toplama yoluyla bellek sızıntılarını önlemeye yardımcı olan ve uygulama kararlılığını artıran otomatik bellek yönetimi içerir.
- .NET ve DevOps: Github entegrasyonuyla .NET, tam yazılım geliştirme yaşam döngüsünü destekler.
4. .NET Framework ve .NET Core arasındaki fark nedir?
🆚 .NET Framework ve .NET Core, Microsoft tarafından geliştirilmiş, .NET platformu üzerinde çalışan iki farklı uygulama geliştirme çözümüdür. .NET Framework ve .NET Core arasındaki fark, .NET Core'un açık kaynaklı olması ve Windows dışındaki platformlarda da çalışabilmesidir.
.NET Framework, sadece Windows işletim sistemi üzerinde çalışabilir. .NET Core ise, açık kaynaklı bir çözümdür ve Windows, Linux ve macOS gibi farklı platformlarda çalışabilir. Bu, .NET Core'un çapraz platform uygulama geliştirme için daha uygun olmasını sağlar. Ayrıca, .NET Core daha küçük boyutludur ve daha hızlı performans sunar.
5. .NET uygulamalarının derlenmesi ve dağıtımı nasıl yapılır?
Adım 1️⃣: İlk olarak, .NET uygulamasının kodlanması gerekir. Bu adımda, uygulamanın gereksinimlerine uygun olarak sınıflar, arayüzler, metotlar ve diğer bileşenlerin tanımlanır.
Adım 2️⃣: .NET uygulaması kullandıktan sonra, uygulama derlenir. Bu adımda, uygulamanın çalıştırılabilir dosyası (exe veya dll) oluşturulur.
Adım 3️⃣: Derleme işlemi tamamlandıktan sonra, uygulama test edilir. Test işlemi, uygulamadaki hataları ve sorunları belirlemeye yardımcı olur.
Adım 4️⃣: Uygulama test edildikten sonra, dağıtım aşamasına geçilir. Bu adımda, uygulama kullanıcılar tarafından kullanılmak üzere paketlenir ve dağıtılır.
6. LINQ nedir ve neden kullanılır?
Language Integrated Query yani LINQ, XML belgesi, veri tabanları ve koleksiyonlar gibi farklı veri kaynaklarından veri almayı destekleyen bir .NET dil uzantısıdır. LINQ, veri kaynaklarından veri sorgulamayı kolaylaştırmak için kullanılır.
7. .NET uygulamasında hata ayıklama nasıl yapılır?
Hata ayıklama, uygulamanın çalışma zamanında oluşan hataların tespit edilmesi ve çözülmesi sürecidir. .NET uygulamasında hata ayıklamak için ilk olarak hata ayıklama modunun aktif hale getirilmesi gerekir. Ayrıca, Visual Studio gibi araçlar da .NET uygulamasında hata ayıklamayı kolaylaştırır.
8. .NET'te önbelleğe alma nedir?
✔️ .NET’te önbelleğe alma işlevi, hızlı erişim için bellekte veri depolamaya izin verir.
✔️ Önbelleğe alma işlevi, verileri kullanılabilir hale getirerek performansı artırmaya yardımcı olur ve ölçeklenebilirliği artırır.
9. .NET'te önbelleğe alma türleri nelerdir?
Önbelleğe alma işlevi uygulamanın verimini artırdığı gibi hızını da artırır. .NET'te 3 tür önbellek bulunur:
- Bellek içi önbellek
- Kalıcı işlem içi önbellek
- Dağıtılmış önbellek
10. .NET'te kullanılan tasarım ilkeleri nelerdir?
.Net SOLID tasarım ilkesini kullanır. .NET’te kullanılan başlıca tasarım ilkeleri şunlardır:
- Single responsibility principle (SRP)
- Open-Closed Principle (OCP)
- Liskov substitution principle (LSP)
- Interface segregation principle (ISP)
- Dependency inversion principle (DIP)
11. .NET'te çöp toplama nedir?
🗑️ .NET’te çöp toplama, otomatik bellek yönetimini kolaylaştırır. Çöp toplama işlevi, programda kullanılmayan nesnelerin bellekten otomatik olarak temizlenmesini sağlayan bir süreçtir. Kullanılmayan nesnelerin bellekten silinmesini sağlar ve bellek sızıntıları gibi hataların önler.
12. MVC nedir?
MVC, .Net uygulamaları oluşturmak için kullanılan bir mimari modeldir. Model-Görünüm-Denetleyicisi anlamına gelir. MVC kullanımı oldukça kolaydır.
13. .NET'in bileşenleri nelerdir?
.NET'in bileşenleri şöyledir:
- Common Language run-time
- Application Domain
- Common Type System
- .NET Class Library
- .NET Framework
- Profiling
14. CTS nedir?
.NET CTS (Common Type System), .NET platformunda kullanılan bir bileşenin (component) veri türlerinin nasıl temsil edileceği ve kullanılacağı hakkında bir dizi kurallar bulundurur.
CTS, uygulamada kullanılacak veri türlerini açıklar. CTS'deki kurallara göre kendi sınıflarınızı ve fonksiyonlarınızı oluşturabilirsiniz. Bu, bir program dilinde bildirilen veri tipinin diğer programlama dilleri tarafından çağrılmasına yardımcı olur.
15. CLR nedir?
CLR, ortak dil çalışma zamanı anlamına gelir ve .NET framework’ünün önemli bir bileşenidir. .NET programlarının çalışması için gereklidir. CLR, kodun derlenmesi, yönetilmesi ve çalıştırılması işlemlerini yürütür. Bu sayede, .NET programları farklı platformlarda çalışabilir.
16. JIT nedir? JIT ne işe yarar?
JIT, farklı dillerdeki .NET programlarının makine koduna dönüştürülerek yürütülmesinden sorumlu bir derleyicidir. Kod yürütmeyi hızlandırır ve birden çok platformu destekler.
17. .Net'te Response.Output.Write() nedir?
Response.Output.Write() biçimlendirilmiş çıktıyı almak için kullanılır. Metod aldığı değeri direkt olarak ekrana yazdırır.
👉 Bu kod, “Merhaba dünya!" metnini doğrudan tarayıcıya gönderilmesini sağlar.
18. Yönetilen (managed) ve yönetilmeyen (unmanaged) kod arasındaki fark nedir?
Yönetilen kod |
Yönetilmeyen kod |
CLR tarafından yönetilir. |
CLR tarafından yönetilmez. |
Yönetilen kodu yürütmek için .NET framework’ü gereklidir. |
.NET framework’ünden bağımsızdır. |
CLR, çöp toplama aracılığıyla bellek yönetimini düzenler. |
Derleme ve yürütme için kendi çalışma zamanı ortamı vardır. |
19. BCL nedir?
✅ BCL, sınıflar, arayüzler ve değer türlerinden oluşan temel bir sınıf kütüphanesidir.
✅ .NET uygulamalarının, çalışması için gerekli olan işlevleri ve özellikleri içerir.
✅ Çok sayıda ortak işlevi içine alır ve bunları geliştiriciler için kolayca kullanılabilir hale getirir.
✅ İş parçacığı oluşturma, giriş/çıkış, güvenlik, kaynaklar, veri türleri, dosya işlemleri, metin işlemleri, ağ iletişimi, veri koleksiyonları, güvenlik, threading vb. gibi işlevler sağlar.
20. Namespaces ile derleme arasındaki fark nedir?
👉 Derleme (Assembly), mantıksal birimlerin fiziksel bir gruplandırmasıdır. .NET platformunda yazılan kodun çalıştırılabilir bir formata dönüştürülmesini sağlar.
Derleme işlemi, kaynak kodunu derleyici tarafından anlaşılabilir bir ara dil formuna çevirir. Derleme sonucunda oluşturulan bu ara dil, .NET ortamında çalıştırılabilir ve herhangi bir platformda çalıştırılabilir bir "derleme dosyası" (assembly file) içerir.
👉 Namespaces, sınıfları gruplandırır. Bu, kodun okunabilirliğini artırır ve kodun farklı parçalarının isimleri arasındaki çakışmaları engeller. Bir namespaces birden çok derlemeye yayılabilir.
Örnek bir namespaces tanımlama:
21. MDI ve SDI nedir?
İki tür arayüz bulunur. Bunlar MDI ve SDI’dir.
1️⃣MDI (Multiple Document Interface) Formlar: MDI, kullanıcıya aynı anda birçok formu gösterme ve birden çok pencereyi açma imkânı verir. Bir ana penceresi ve birden çok alt penceresi bulunur.
2️⃣SDI (Single Document Interface) Formlar: Tek başına çalışan formlara SDI form denir. Her belge için ayrı bir pencere açar. Her pencerenin menü çubuğu, araç çubuğu vb. gibi kendi bileşenleri vardır.
22. .net CAS nedir?
CAS, kaynaklara yetkisiz erişimi önleyen ve .NET uygulamasının güvenli bir şekilde çalışmasını sağlayan güvenlik modelinin parçasıdır. Ayrıca, kullanıcıların kod için izinler ayarlamasına olanak tanır. CLR daha sonra izinlere bağlı olarak kodu yürütür.
🔐 .NET Framework içinde "CAS" kısaltması "Code Access Security" (Kod Erişim Güvenliği) anlamına gelir.
23. .NET'te temsilci (delegate) nedir?
.NET’te temsilci (delegate), program içerisindeki bir veya daha fazla metodu gösteren metotların referansını taşıyan ve çağrılabilen bir türdür. Temsilciler sayesinde, dinamik olarak metodlar değiştirilebilir.
24. ASP.NET'teki doğrulayıcılar (validators) nelerdir?
ASP.NET’te bir dizi doğrulayıcı vardır. Doğrulamalar, sunucu tarafında veya istemci tarafında (web tarayıcısı) gerçekleştirilebilir.
- 🖥️ İstemci tarafı doğrulama (Client-side validation) – Doğrulama, istemci tarayıcısında gerçekleştiğinde, buna istemci tarafı doğrulaması denir. İstemci tarafında doğrulama gerçekleştirildiğinde, tüm kullanıcı girişleri kullanıcının tarayıcısında doğrulanır. Sunucuya gidiş-dönüş gerektirmez, bu nedenle sunucunun daha iyi çalışmasını sağlar. Bu tür bir doğrulama, JavaScript, VBScript veya HTML5 nitelikleri gibi betik dilleri kullanılarak tarayıcı tarafında yapılır.
- 🗳️ Sunucu tarafı doğrulama (Server-side validation) – Doğrulama sunucuda gerçekleştiğinde buna sunucu tarafı doğrulama denir. Sunucu tarafı doğrulaması, güvenli bir doğrulama şekli olarak kabul edilir. ASP.Net, PHP vb. sunucu taraflı betik dillerinden biri kullanılarak doğrulama yapılır.
25. ASP.NET uygulamasından e-posta gönderimi nasıl yapılır?
📩 Örnek kod şu şekildedir:
26. Global.asax dosyası nedir?
Global.asax dosyası, ASP.NET tabanlı bir uygulamada Application_Start, Application_End, Session_Start, Session_End ve daha fazlası gibi önemli uygulama olaylarını işleyen isteğe bağlı bir bileşendir.
Genellikle uygulamanın kök dizininde bulunur. Global.asax dosyası yalnızca sunucu (server) üzerindeki çalışan bir dosyadır, içinde sunucu tabanlı kodlar barındırır. Kullanıcılar tarafından hiçbir şekilde ulaşılamazlar. Bu sayede güvenli bir şekilde dosya kullanılabilir.
- Application Events:
- Application_Start, Application_End, Application_AcquireRequestState, Application_AuthenticateRequest, Application_AuthorizeRequest, Application_BeginRequest, Application_Disposed, Application_EndRequest, Application_Error, Application_PostRequestHandlerExecute, Application_PreRequestHandlerExecute, Application_PreSendRequestContent, Application_PreSendRequestHeaders, Application_ReleaseRequestState, Application_ResolveRequestCache, Application_UpdateRequestCache
- Session Events:
- Session_Start, Session_End
27. ASP.NET temaları nasıl uygulanabilir?
Uygulama düzeyinde tema kullanabilmek için "web.config" dosyasında birkaç ayar yapılması gerekebilir. Dosyadaki "pages" düğümüne aşağıdaki gibi "theme" ve "styleSheetTheme" özelliklerini eklemek gerekir. 👇
28. web.config dosyasındaki appSettings bölümü nedir?
appSettings, ASP.NET web uygulamasının yapılandırma bilgilerini içeren bir bölümdür. Özel uygulama ayarlarını içerir. Bu, . NET Framework tarafından sağlanan önceden tanımlanmış bir yapılandırma bölümüdür. 👇
29. Response.Redirect ve Server.Transfer arasındaki fark nedir?
1️⃣ Response.Redirect, kullanıcının tarayıcısını başka bir sayfaya veya siteye yönlendirmeyi sağlar. Kullanıcının tarayıcı geçmişi de yeni sayfayı yansıtacak şekilde güncellenir.
2️⃣ Server.Transfer, müşterinin tarayıcısına herhangi bir güncelleme yapmadan bir sayfadan diğerine aktarır. Server.Transfer durumunda tarayıcı geçmişi güncellenmez.
30. MSIL nedir?
MSIL, Microsoft ara dili veya ortak ara dili anlamına gelir. Kaynak kodunda oluşturulur. MSIL, platformdan bağımsız bir dizi talimattır. Yöntemleri çağırma, depolama ve başlatma gibi talimatları içerir. C#,VB,.NET gibi derleyiciler tarafından üretilir.
31. EXE ve DLL nedir?
EXE, "yürütülebilir" anlamına gelen "executable" kelimesinin kısaltmasıdır. EXE, Windows üzerinde derlenmesi gereken programlardır. Bu dosyalar, "EXE dosyaları" olarak bilinir ve .exe uzantısına sahiptir. EXE dosyalarının, birincil amacı bir program başlatmaktır. Bu, belirli komut dosyalarını çalıştırarak veya dosyada bulunan bazı verileri kullanarak gerçekleştirilir.
DLL, "paylaşılan kütüphane" anlamına gelen "dynamic link library" kelimelerinin kısaltmasıdır. DLL, izlenmesi gereken kodlardan oluşan bir dinamik bağlantı kitaplığıdır. DLL dosyaları, birden çok program tarafından kullanılabilir. Bu nedenle, DLL dosyaları programların daha küçük boyutlu olmasına ve daha az bellek kullanmasına olanak tanır.
32. ASP.NET güvenlik denetimleri nelerdir?
- 🪪 <asp: Login>: Kullanıcıların kimlik bilgilerini girmelerini sağlayan bir mekanizmadır.
- ℹ️ <asp: LoginName>: Oturum açmış kullanıcının adını görüntülemenizi sağlar.
- ✅ <asp: LoginStatus>: Kullanıcının kimliğinin doğrulanıp doğrulanmadığını gösterir.
- 💻 <asp: LoginView>: Seçilen şablona bağlı olarak çeşitli oturum açma görünümleri sağlar.
- 🔑 <asp: PasswordRecovery>: Kullanıcılara kayıp parolaları e-posta ile gönderir.
.NET Mülakat Hazırlık İpuçları
Aşağıdaki .NET mülakat ipuçları, .NET mülakatına hazırlanmanıza yardımcı olabilir:
- .NET resmi dokümanlarını inceleyin - .NET’in resmi belgelerini okumak, .NET’i daha iyi anlamanıza ve işlevlerini hatırlamanıza yardımcı olur. Bu işlevlerin, .NET'te nasıl uygulandığını anlamak, görüşme sırasında ilgili soruları yanıtlamanızı kolaylaştırır.
- Şirket hakkında araştırma yapın - Mülakatına davet edildiğiniz şirketi inceleyin. Şirketin uygulamaları hakkında bilgi sahibi olmak, görüşme sırasında hangi becerilerinizi test edebilecekleri konusunda size fikir verir.
- Temel .NET konularına hakim olun - Mülakatta, .NET teknolojisi ile ilgili temel konulara hakim olmanız beklenir. Örneğin, .NET Framework ve .NET Core arasındaki farkı, LINQ'i veya veri tabanı erişimini anlatabilmeniz gerekir.
- Proje deneyimlerinize önceden hazırlanın - .NET projelerindeki deneyimlerinizi anlatmak için önceden hazırlanın. Örneğin, kullandığınız teknolojileri, karşılaştığınız sorunları ve çözümleri anlatın.