Herkese merhaba;
Bugünkü konumuz Microsoft Visual Studio (2019) kullanarak boş bir Asp.NET Core MVC projesi oluşturmak ve sadece temel bileşenleri ekleyerek, MVC uygulamamızı ayağa kaldırmak.
Visual Studio tarafında proje oluşturmak için hazırlanmış olan herhangi bir şablon kullanmadan boş bir proje oluşturarak işe sıfırdan başlamamızın sebebi, arka planda gerçekleşen işlemleri daha iyi anlayabilmek ve ihtiyacımız olmayan bir çok bileşeni devre dışı bırakarak daha sade ve temiz bir projeyle işe başlamaktır.
A) Visual Studio 2019 uygulamasını başlatarak sayfanın altında link olarak yer alan "Continue without code" seçeneğini seçelim. Uygulama açıldıktan sonra, File > New > Project menüsü altından ASP.NET Core Web Application seçelim ve Next ile devam edelim.
B) Projemize bir isim verelim. Ben "EmptyCoreMvc" ismini veriyorum. Create ile projeyi oluşturalım.
C) Bir sonraki ekranda şablon olarak Empty seçelim ve "Configure for HTTPS" seçeneğindeki işareti kaldırarark Create butonuna basalım.
Bu aşamada elmizde boş bir projemiz oluşmuş oldu.
Yukarıda belirtilen şekilde projemizi oluşturduktan sonra, karşımıza gelen yapıyı özet olarak incelediğimizde projenin yapısı itibarı ile bir web uygulamasından çok bir konsol uygulamasına benzediğini fark edeceksiniz. ASP.NET Core web uygulamaları yapı itibarı ile gerçekten de uygun bir web sunucusu üzerinde çalışabilecek şekilde ayarlanmış olan konsol uygulamalarıdır. Uygulama Program.cs dosyasında yer alan Main metodunun çalıştırılması ile başlamaktadır.
Projemizi her ne kadar boş olarak oluşturmuş olsak da, F5 ile çalıştırdığımızda karşımıza Hello World! mesajı getiren bir web uygulamasının açıldığını göreceğiz. Şimdilik bu mesajı nasıl olup da görüntülendiğini sonraya bırakarak, uygulamamızı geliştirmeye başlayalım.
Temel Bileşenlerin Eklenmesi
A) Projemizi geliştirmeye öncelikle MVC yapımızın temellerini oluşturacak klasörleri ekleyerek başlayalım. Proje adına sağ tıklayarak, "Add New Folder" ile aşağıdaki klasörleri ekleyelim:
B) Views/Shared klasörü altına bir Razor Layout dosyası ekleyelim:
C) Views klasörü altına bir Razor ViewStart dosyası ekleyelim:
D) Views klasörü altına bir Razor ViewImports dosyası ekleyelim:
Eklemiş olduğumuz _ViewImports.cshtml dosyasına aşağıda yer alan addTagHelper direktifini ekleyelim:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
wwwroot is assumed to be the static root folder of the web application. In order to make this folder running properly we need to add
app.UseStaticFiles();
in the Startup.cs Configure method.
These were the standard folders and files, that can be found in a typical ASP.NET MVC Core Web application.
Add a Controller:
This adds the HomeController.cs file in the Controllers folder. Open this HomeController.cs (if it is not already opened) and right click the method name Index and select Add View...
Just use the default values and click Add.
After completing the steps defined above, run the project again (F5) and see what has happened. You will notice that nothing has changed despite all the things we have made so far. Let's take a closer look at the project and see what is happening.
Since ASP.NET Core MVC is actually a console application, lets open the Program.cs by double clicking it. In the Program.cs, there is Main method, the entry point, and inside it we have CreateWebHostBuilder method call. If we examine that method, we see it is creating the default builder, using Startup (Startup.cs class) as the initializer.
Lets select (by clicking) the Startup and right click > Go to definition (F12) to open the contents. Startup.cs has two methods, ConfigureServices and Configure respectively having comments on them. Unlike the empty ConfigureServices method, Configure method has some code which help the application show the Hello World! message.
Clear the contents of the Configure method (not he method itselft, just the code in it) and run (F5) the application. This time we have an error, showing page is not found. Now, stop the application. Modify the Startup.cs as the following:
public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseStaticFiles(); app.UseMvcWithDefaultRoute(); } }
Re-run the application and now you can see the Index view is showing.