ASP.NET MVC (Fatura Kayıtları)

  • 148
  • (1)
  • (5)
  • 01 Şub 2018

İçerisinde faturaların tutulduğu, sorgulandığı, görüntülendiği bir web uygulaması oluşturabilirsiniz. Uygulamanın adı Fatura Kayıtları olsun. Visual Studio geliştirme ortamı içerisinde bu web uygulaması için yeni bir proje oluşturmalısınız. File, New menüsünde New Project ile InvoicesWeb isimli bir web projesi oluşturarak başlayabilirsiniz. İçerikte anlatılan proje Visual Studio 2017 sürümünde oluşturulmuştur.

OK tuşuna bastıktan sonra web uygulamanızın türü ve çeşitli ayarları için aşağıdaki pencere ile karşılaşacaksınız. Bu ayarlar Empty yani boş bir web projesi oluşturabilir, WebForms projesi ile aspx sayfaları üzerinde çalışabilirsiniz. MVC ile veya WebApi seçeneği ile içeriğinde MVC yapısı barındıran bir web uygulaması oluşturabilirsiniz. Eğer WebApi seçeneğini seçerseniz hem MVC yapısını kullanabilir, hem de sunucuya belli parametreler gönderip xml veya json yapısında veri alabileceğiniz web metotlar oluşturabilirsiniz. Bu web metotlar web uygulamanızı herhangi bir masaüstü uygulamasına veya mobil uygulamaya entegre edebilmenizi sağlayacaktır.

WebApi seçeneği ile devam edebilir, Authentication seçeneğini No Authentication olarak belirleyebilirsiniz. Oturum açma işlemleri manuel olarak oluşturulacaktır.

Projeniz kısa süre içerisinde oluşturulacaktır.

MVC Nedir?

Model View Controller yapısı 1978 yılında Norveçli bilgisayar bilimcisi Trygve Reenskaug tarafından geliştirilmiş bir yapıdır.kaynak 2007 yılında ise Microsoft tarafından ASP.NET' e entegre edilerek ASP.NET MVC Framework geliştirilmiş ve 2009 yılında ise yayınlanmıştır. MVC yapısı birçok programlama dili ve teknolojisi için kullanılmıştır.

Birbirinden bağımsız üç katmandan oluşan bu yapının katmanlarına kısaca aşağıdaki gibi değinilebilir.

Model

Uygulama içerisinde kullanılan verilerin yapısı, erişimi, doğrulanması ve işleyişi ile ilgili katmandır. Projenin büyüklüğüne göre kendi içerisinde çok sayıda katman halinde oluşturulabilir.

View

Projenin arayüzü ile ilgili kısmıdır. ASP.NET MVC içerisinde View yapıları HTML dili ile oluşturulan web sayfalarıdır. Bu sayfalar içerisinde sunucu tarafından belli parametrelere göre gelen veriler görüntülenir ya da istek(request) olarak Controller katmanına iletilir.

Controller

ASP.NET MVC uygulamasının çalışması esnasında gerçekleşen işlemleri yürüten katmandır. Kullanıcı(client) tarafından gelen istek(request) burada değerlendirilir. Bu değerlendirmenin sonucu olarak View katmanında hangi bilgilerin yanıt(response) olarak döneceği belirlenir.

Proje İçeriği

Visual Studio üzerinde ASP.NET MVC projesi oluşturduğunuz zaman Solution Explorer içerisinde projenin bütün dizin ve dosyaları yer almaktadır. Solution Explorer kutusunu göremiyorsanız View menüsünden tıklayıp veya CTRL + ALT + L kısayol tuşuyla açabilirsiniz.

App_Data klasörü içerisinde programın işleyişi esnasında ulaşılması gereken dosyaları tutabilirsiniz. Örneğin web sayfanızın bağlı olduğu domain (alan adı) değiştikten sonra Google aramalarını yönlendirmek için 301 yönlendirmeleri yapmalısınız. Bu yönlendirmelerde hangi eski url' nin hangi yeni url' ye yönlendirileceğini bir dosyaya kaydedip bu klasörün içerisinden erişebilirsiniz.

App_Start klasörü içerisinde 4 adet dosya bulunmaktadır. BundleConfig.cs proje için gerekli olan Javascript ve CSS dosyalarını çağırırken bu dosyalara toplu Bundle oluşturabileceğiniz kodlamayı içerir. Bundle yapısı ile bu dosyaları birleştirip minify edebilir (böylece daha hızlı sayfa yüklemesi sağlayabilir), dosyaların sunucuda hangi dizinde durduklarını gizleyebilir veya CDN üzerinden kullanıcıya sunabilirsiniz. FilterConfig.cs dosyasında Controller nesnelerinin içerisinde çalışan Action metotlarına bağlı filtreler oluşturabilirsiniz. RouteConfig.cs dosyasında bu Action metotları için birer url atayabilirsiniz. Bu url atama işlemi hem Controller ve Action' ların isimlerinin bilinmemesini sağlar hem de SEO açısından avantaj sağlayabileceğiniz breadcrumb linkleri oluşturmanıza yarar. Eğer projeyi oluştururken WebApi değil de sadece MVC olarak oluştursaydınız WebApiConfig.cs dosyası olmayacaktı. Bu dosyada da WebApi kısmı ile ilgili routing ayarlarını belirleyebilirsiniz.

BundleConfig.cs


public class BundleConfig
{
    // For more information on bundling, visit https://go.microsoft.com/fwlink/?LinkId=301862
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at https://modernizr.com to pick only the tests you need.
        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

        bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js"));

        bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/site.css"));
    }
}

FilterConfig.cs


public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }
}

RouteConfig.cs


public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

Content klasörü içerisinde HTML için Bootstrap yapısını barındıran CSS dosyaları bulunmaktadır. Bu dosyaları optimize edebilir veya farklı bir web şablonuna ait dosyaları buraya kopyalayabilirsiniz.

Controllers klasörü içerisinde web uygulamasının işlemlerini çalıştıran Controller ve Actionlar bulunmaktadır. İstediğiniz gibi yeni Controller oluşturabilirsiniz.

HomeController.cs


public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Title = "Home Page";

        return View();
    }
}

ValueController.cs


public class ValuesController : ApiController
{
    // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }

    // POST api/values
    public void Post([FromBody]string value)
    {
    }

    // PUT api/values/5
    public void Put(int id, [FromBody]string value)
    {
    }

    // DELETE api/values/5
    public void Delete(int id)
    {
    }
}

HomeController arayüzlerinin çağırıldığı bir controller nesnesidir. ValueController ise bir ApiController nesnesidir. Yani kullanıcı tarafına html arayüzü değil sadece xml veya json formatında veri gönderir.

fonts klasörü içerisinde kullanılacak yazı tipleri veya css font simgeleri bulunmaktadır.

Models klasörü içerisinde veri modelleri tanımlayabilir ve bunları Controller nesneleri içerisinde kullanabilirsiniz.

Scripts klasörü içerisinde Javascript dosyaları barındırılır. Bootstrap yapısında ait dosyalar proje oluşturulduğunda doğrudan oluşturulur. Ek javascript dosyaları da oluşturabilirsiniz.

Views klasörü içerisinde her Controller nesnesine bağlı arayüzlerin cshtml dosyaları bulunmaktadır.

Global.asax altında Global.asax.cs dosyasında her istek gönderildiğinde çalışan Application_Start metodu bulunmaktadır. Bu metot uygulamanın ilk kaynakları çağırıldığı zaman çalışmaktadır. Bunun yanısıra her kullanıcı için çalıştırılabilen Session_OnStart metodu veya herhangi bir hatada çalıştırılabilecek Application_Error metodu da bu dosyada kullanılabilir.

Web.config dosyası içerisinde web uygulamasının çeşitli ayarları bulunmaktadır. Veritabanı bağlantı metinleri, kullanılacak mail oturum bilgileri, sabit değerler, maksimum url uzunluğu veya maksimum istek(request) boyutu gibi ayarlar belirlenebilir.

İlişkili İçerikler

Fatura kayıtlarının içerisinde tutulacağı ve işleneceği veritabanını MS-SQL üzerinde oluşturabilirsiniz.

Web uygulaması içinde veritabanından çağırılacak veya sunucuya gönderilecek veri modelleri oldukça önem teşkil etmektedir.

Oturum açmak için sayfa düzenini belirlemek, gönderilen oturum bilgilerinin veritabanında prosedür ile doğrulanması ve yönlendirme işlemleri login sayfasının temel işleyişidir.

Fatura Kayıtları projesinde faturalar ve fatura satırları için de birer controller oluşturup gereken metotları oluşturabilirsiniz.

Paylaşın
Etiket Bulutu