AppObjectOlusturucu 1.0.4
See the version list below for details.
dotnet add package AppObjectOlusturucu --version 1.0.4
NuGet\Install-Package AppObjectOlusturucu -Version 1.0.4
<PackageReference Include="AppObjectOlusturucu" Version="1.0.4" />
paket add AppObjectOlusturucu --version 1.0.4
#r "nuget: AppObjectOlusturucu, 1.0.4"
// Install AppObjectOlusturucu as a Cake Addin #addin nuget:?package=AppObjectOlusturucu&version=1.0.4 // Install AppObjectOlusturucu as a Cake Tool #tool nuget:?package=AppObjectOlusturucu&version=1.0.4
Uygulama Nesne Oluşturcu (App Object Creater)
Platform | Bilgi |
---|---|
Nuget | |
Github |
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>();
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.DependencyInjection (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.