All Projects → cenkerkumlucali → e-commerce-backend

cenkerkumlucali / e-commerce-backend

Licence: MIT license
Shopping site backend which used Asp.Net Web API, JWT, Cache, Log, SqlServer, Entity Framework Core and N-Layer Architecture implementation.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to e-commerce-backend

N-Tier-Architecture
This is a n-layer architecture based on Common web application architectures.
Stars: ✭ 105 (+556.25%)
Mutual labels:  sql-server, entity-framework-core, n-layer-architecture
StoreCleanArchitecture-NET
This is a basic project to demonstrate an introduction about the implementation of Clean Architecture on .NET
Stars: ✭ 19 (+18.75%)
Mutual labels:  sql-server, entity-framework-core
fullstack-jobs
Real(ish) demo using Angular with ASP.NET Core GraphQL and IdentityServer.
Stars: ✭ 84 (+425%)
Mutual labels:  sql-server, entity-framework-core
ASPCore.BlazorCrud
CRUD Using Blazor And Entity Framework Core
Stars: ✭ 39 (+143.75%)
Mutual labels:  sql-server, entity-framework-core
Asmin
Asmin is .NET CORE project infrastructure, to get a quick start on the project.
Stars: ✭ 89 (+456.25%)
Mutual labels:  entity-framework-core, n-layer-architecture
SPA-With-Blazor
Creating a Single Page Application with Razor pages in Blazor using Entity Framework Core database first approach.
Stars: ✭ 27 (+68.75%)
Mutual labels:  sql-server, entity-framework-core
RCM
RCM is a simple CRM application designed for Auto Parts Store made with ASP.NET Core based on DDD, CQRS and SOLID Principles.
Stars: ✭ 29 (+81.25%)
Mutual labels:  sql-server, entity-framework-core
MsCoreOne
MsCoreOne is a simple Ecommerce with using many technologies such as .NET 5, Entity Framework Core 5, React 16.13 with modern Clean Architecture, Domain-Driven Design, CQRS, SOLID, Identity Server 4, Blazor. It will focus on resolving the problems always see in the process to develop projects.
Stars: ✭ 77 (+381.25%)
Mutual labels:  sql-server, entity-framework-core
Entityframework.exceptions
Handle database errors easily when working with Entity Framework Core. Supports SQLServer, PostgreSQL, SQLite, Oracle and MySql
Stars: ✭ 266 (+1562.5%)
Mutual labels:  sql-server, entity-framework-core
Aspnetcoregraphql
Sample project demonstrating a GraphQL service built with ASP.NET Core 2.2, Entity Framework Core and graphql-dotnet.
Stars: ✭ 272 (+1600%)
Mutual labels:  sql-server, entity-framework-core
Efcorepowertools
Entity Framework Core Power Tools - reverse engineering, migrations and model visualization for EF Core
Stars: ✭ 774 (+4737.5%)
Mutual labels:  sql-server, entity-framework-core
Sharebook Backend
Projeto backend de código livre para o app Sharebook.
Stars: ✭ 91 (+468.75%)
Mutual labels:  sql-server, entity-framework-core
BookCart
An e-commerce application for an online book store.
Stars: ✭ 116 (+625%)
Mutual labels:  sql-server, entity-framework-core
Aspnetcoreactivedirectorystarterkit
Starter kit to quickly create ASP.NET Core with On-Premises Active Directory Authentication.
Stars: ✭ 71 (+343.75%)
Mutual labels:  sql-server, entity-framework-core
MinimalApi
ASP.NET Core 7.0 - Minimal API Example - Todo API implementation using ASP.NET Core Minimal API, Entity Framework Core, Token authentication, Versioning, Unit Testing, Integration Testing and Open API.
Stars: ✭ 156 (+875%)
Mutual labels:  sql-server, entity-framework-core
Tds fdw
A PostgreSQL foreign data wrapper to connect to TDS databases (Sybase and Microsoft SQL Server)
Stars: ✭ 238 (+1387.5%)
Mutual labels:  sql-server
dbfx
This is a free, cross platform, open source database management tool based on JavaFX and vertx SQL client.
Stars: ✭ 63 (+293.75%)
Mutual labels:  sql-server
Projectnami
WordPress powered by Microsoft SQL Server
Stars: ✭ 238 (+1387.5%)
Mutual labels:  sql-server
Fluentmigrator
Fluent migrations framework for .NET
Stars: ✭ 2,636 (+16375%)
Mutual labels:  sql-server
saleor-sdk
JavaScript/TypeScript SDK for building e-commerce experiences and checkouts with Saleor API.
Stars: ✭ 125 (+681.25%)
Mutual labels:  e-commerce

E-Commerce-Backend

Genel olarak proje katmanlı mimariye uygun şekilde tasarlanıp OOP olarak entity framework kullanılmaktadır.IoC prensibi ve SOLID ilkeleri ile geliştirilmeye devam ediyor

Katmanlar

  • Business:Sunum katmanından gelen bilgileri gerekli koşullara göre işlemek veya denetlemek için oluşturulan Business Katmanı'nda Abstract,Concrete,Utilities,BusinessAspects,DependencyResolvers,Generic ve ValidationRules olmak üzere yedi adet klasör bulunmaktadır. Abstract klasörü soyut nesneleri, Concrete klasörü somut nesneleri tutmak için oluşturulmuştur.Utilities ve ValidationRules klasörlerinde validation işlemleri,BusinessAspects core katmanına eklenebilirdi ancak her proje de olmayan sadece bu projeye özel olan aspectler DependencyResolvers içerisinde olan Autofac dosyasından da belli olduğu gibi sınıflar arasında bağımlılıkları yönetir böylece uygulama boyutu büyüdükçe kolayca değiştirilebilir projede olan bağımlılıkları web api katmanından taşıyıp business katmanında tutulmalıdır,son olarak Generic klasörü var business da 1 den fazla yapılmış olan crud operasyonları için generic bir interface oluşturulup kendimizi tekrar etmekten kurtulduk(DRY).
  • Core:Bir framework katmanı olan Core Katmanı'nda Aspects,CrossCuttingConcerns,DependencyResolvers,Extensions,DataAccess, Entities, Utilities olmak üzere 7 adet klasör bulunmaktadır.Aspects klasörü içersinde 2 adet dosya daha vardır Caching içersinde CacheAspect ve CacheRemoveAspect vardır CacheAspect verilen zaman kadar datanın cache de durmasını sağlıyor CacheRemoveAspect ise cache de olan verileri siliyor örnek olarak ikisini de açıklamak gerekirse kullanıcı ürünleri listeliyor eğer cache de varsa performans açısından veri tabanından almak yerine cache den alıyor eğer ürün eklenirse cache'in süresi dolmasa bile cache den silinip tekrardan ekliyor Validation klasörü her class a özel olarak yapılmış olan business katmanında bulunan FluentValidation ile yazılan kuralları AOP olarak attributes olarak temiz kod ve her method için bağımlı olmamak için yapılan bir Aspect DependencyResolvers içersinde ki CoreModule genel bağımlılıkları çözen class Utilities klasörü projenin en büyük klasörü içerisinde bulunanları size anlatıyım Business klasörü içersindeki BusinessRules Result tipinde olan iş kurallarını tek methodun içinde if else if else yazmak yerine her kural için ayrı method oluşturup onları istediğiniz methodun içinde çağırıp ve sadece tek if yazıp istediğiniz kadar iş kuralı yazmanızı sağlıyan yapıdır. Helpers klasörü içerisinde olan FileHelper bir ürüne veya herhangi bir şeye fotoğraf ekliceğiniz zaman fotoğrafı veri tabanına Guid şekilde eklenmesine olanak sağlanan generic bir yapıdır Interceptors klasörü içerisinde 3 adet class vardır MethodInterceptionBaseAttribute bir abstract classdır ve kendisinin bir attributes olması sağlanır,MethodInterception MethodInterceptionBaseAttribute'i implement alan bir abstract classdır içersinde ezilebilmek üzere 5 adet method tanımlıdır bunlar OnBefore method çalışmadan önce çalışacak olan method OnAfter method bittikten sonra çalışacak olan method OnException hata verdiğinde çalışacak olan method OnSuccess başarılı olduğunda çalışacak olan method son olarak Intercept methodu bahsetmiş olduğu methodların nerede çalışıp çalışmıcağını belirlendiği içerisinde try,cache ve finally ile hayat sıralamasına koyuldu. Results klasöründe IResult ve IDataResult olarak 2 adet interface var Result yapısında ki amaç add delete update gibi post methodları için success bilgisi ve message bilgisi göstermesi DataResult ise Data,success ve message göstermesi eğer ki method başarılı olarsak çalışıyorsa SuccessResult yada SuccessDataResult çalışır eğer bir sorun varsa ErrorResult yada ErrorDataResult çalışır ve message olarak girilen hatayı kullanıcıya gösterir.Security klasöründe 3 adet klasör bulunuyor Encryption'ın içinde SecurityKeyHelper SecurityKey'i kullanarak gelen securityKey i byte a çeviriyor SigningCredentialsHelper ise SigningCredentials tipinde bir method parametre olarak da SecurityKey veriliyor çünkü SigningCredentials bizden 2 parametre istiyor 1-securityKey 2-Hangi Güvenlik algoritmasını kullanılacağı Hashing klasöründe HashingHelper classı vardır içerisinde 2 method tanımlı CreatePasswordHash methodu ile kayıt olurken gelen şifrenin üstüne biraz da kendi bir şeyler ekler ve sonra o şifreyi hashliyip tekrardan çözülemez hale getirir VerifyPasswordHash methodu ise kullanıcı sisteme tekrardan giriş yaparken girmiş olduğu şifre kayıt olduğu sırada ki gibi tekrardan saltlanıp hashlenir ve veri tabanında ki şifre ile karşılaştırılır eğer doğruysa sisteme giriş yapar yanlışsa kullanıcı bilgilendirilir DataAccess klasörü DataAccess Katmanı ile ilgili nesneleri, Entities klasörü Entities katmanı ile ilgili nesneleri tutmak için oluşturulmuştur. Core katmanının .Net Core ile hiçbir bağlantısı yoktur.Oluşturulan core katmanında ortak kodlar tutulur. Core katmanı ile, kurumsal bir yapıda, alt yapı ekibi ilgilenir.

Aspect And Clean Code

Image

  • DataAccess:Veritabanı CRUD işlemleri gerçekleştirmek için oluşturulan Data Access Katmanı'nda Abstract ve Concrete olmak üzere iki adet klasör bulunmaktadır.Abstract klasörü soyut nesneleri, Concrete klasörü somut nesneleri tutmak için oluşturulmuştur.
  • Entites:Veritabanı nesneleri için oluşturulmuş Entities Katmanı'nda Abstract ve Concrete olmak üzere iki adet klasör bulunmaktadır.Abstract klasörü soyut nesneleri, Concrete klasörü somut nesneleri tutmak için oluşturulmuştur.
  • WebAPI

Kütüphaneler

  • EntityFrameworkCore.SqlServer 3.1.11
  • FluentValidation 7.3.3
  • Autofac 6.1.0
  • Autofac.Extensions.DependencyInjection 7.1.0
  • Autofac.Extras.DynamicProxy 6.0.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].