Skip to content

Katmanlı Mimaride Olsun farklı sistemlerde tasarım yaparken ilgili Interface nesnesi için tek bir nesne üretmeye yarayan ideal bir araçtır. Ağırlıklı olara RESTFULL API

BekirPiralp/AppObjectOlusturucu

Repository files navigation

Uygulama Nesne Oluşturcu
  (App Object Creater)


Platform Bilgi
Nuget NuGet VersionNuGet Downloads
Github GitHub language countGitHub top language
GitHub commit activityGitHub last commit (branch)
GitHub repo file or directory countGitHub repo size
GitHub watchersGitHub followersGitHub Repo stars

Tanıtım

 Bu uygulama öncelikli olarak RESTfull Apilerde katmanlar (Layers) arasında iletişimi ve nesne oluşturmasını sağlamak amacı ile yazılmış bir uygulamadır. Dependency İnjection (ör. bkz.) işlemni sağlamak için genelde Kurucu Method (Constructors) ile enjecte ederek sağlamaktayız fakat katmaların ve katmanlarda bulunan sınıfların bol olması bizlere nesneleri ara yüzleri (interface) (bkz.) kullanarak temellendirip özelleştirdiğimiz sınıflara erişimlerimizin belirli merkezlerde toplamalı ve bu toplamış olduğumuz nesnelere OOP (bkz. bkz.)'nin temeli olan SOLID (bkz.)'in gereği fazla bir bağımlılık olmadan nesneye heryerden erişmeyi sağlamamız gerekmektedir.

 Paketimiz yukarıda da bilrtiğimiz OOP ve SOLID için gerekli olan tek merkezde toplama, kolay yönetim, rahat değişiklik ve düşük bağımlılık gerekbinimlerinin hepsini sağlamaktadır.

Kullanımı

 Paketizmi kullanabilmek için temel olarak iki işlem mevcuttur. İlk olarak ilgili katman içerisinde gerekli inheritance (miras alma) ve implementions (uygulamalar) yapılarak oluşturulacak nesneler belirlenmeli, ardından Program.cs vb. yerde ise servis kullanılarak gerekli kayıtların yapılıp kullanılır hale getirilmesi gerekmektedir. Sonrası ise kullanılmak istenen yerde kullanma...

Örnek:

İlk olarak ilgili katmanlarda gerekli olan interface ve classlar arasında eşlemmeler yapılır.

using AppObjectOlusturucu.Abstract;
using AppObjectOlusturucu.Concrete;

namespace MyAppBackend.ExampleLayer {

    public class ExampleLayerCreateHandler : OlusturCreateHandler, IOlusturucuCreateHandler {

        public override void CreateObj() {

            this._nextHandler = null;

            // or

            this._nextHandler = ExampleLayer1CreateHandler;

            ...
            ...


            #region example

            OlusturCreator.CreateObject<IFooClassExampleLayer, FooClassExampleLayer>();

            ...
            ...
              //your create ...
            .
            #endregion
        }
    }
}

Gerekli eşlemelerin ardından Program.cs vb. şekilde ilk başlatılacak yerden ilgi service çekilerek çalıştırılır. Not: Tüm creaters (kayıt ediciler) çağrıldıktan sonra Olusturucu ile nesne çağrılmaya gidilmelidir diğer şeilde ise Dipose edildikten sonra tekrar oluşturulmalıdır.

using AppObjectOlusturucu.Concrete.Service;
using MyAppBackend.ExampleLayer;

var builder = WebApplication.CreateBuilder(args);

...
...

builder.Services.OlusturcuServiceCreate(
    new ExampleLayerCreateHandler()
);

// or

builder.Services.OlusturcuServiceCreate(
    new ExampleLayerCreateHandler(),
    new ExampleLayer1CreateHandler(),
    new ExampleLayer2CreateHandler()
);

...
...

Kullanılması gereken diğer katmanda ise cağrılma ve nesne getirilmesi ise :

using AppObjectOlusturucu.Concrete

namespace OtherExampleLayer {
    class OtherClassOtherExampleLayer {

        OtherClassOtherExampleLayer(){

            IFooClassExampleLayer foo = Olusturucu.olustur.GetObj<IFooClassExampleLayer>();

        }

        //or

        IFooClassExampleLayer foo = Olusturucu.olustur.GetObj<IFooClassExampleLayer>();


    }
}

ya da

using AppObjectOlusturucu.Concrete

namespace OtherExampleLayer {
    class OtherClassOtherExampleLayer {

        OtherClassOtherExampleLayer(){
            
            Olusturucu.olustur;

            //or

            var a = Olusturucu.olustur;

        }

        IFooClassExampleLayer foo = Olusturucu.GetObj<IFooClassExampleLayer>();

    }
}

About

Katmanlı Mimaride Olsun farklı sistemlerde tasarım yaparken ilgili Interface nesnesi için tek bir nesne üretmeye yarayan ideal bir araçtır. Ağırlıklı olara RESTFULL API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages