#3767
Up
0
Down
::

برای پیاده سازی یک پروژه با استفاده از معماری سه لایه با رویکرد Code First در سی شارپ، راه حل را به سه لایه اصلی تقسیم می کنیم: لایه ارائه (Presentation Layer)، لایه منطق تجاری (Business Logic Layer) و لایه دسترسی به داده (Data Access Layer). در زیر، یک مثال ساختاریافته برای شما ارائه خواهم کرد که شرایط شما را برای محاسبه شهریه بر اساس مسافت، قیمت ثابت و قیمت متغیر برآورده می کند.

ساختار پروژه

لایه دسترسی به داده (DAL): این لایه با پایگاه داده تعامل دارد.

لایه منطق تجاری (BLL): این لایه حاوی قوانین و محاسبات تجاری است.

لایه ارائه (PL): این لایه مسئول تعامل با کاربر است.

مرحله 1: طبقه قیمت را تعریف کنید

ابتدا، اجازه دهید کلاس Price را تعریف کنیم که ساختار داده را برای قیمت های ثابت و متغیر نشان می دهد.


public class Price
{
    public int Id { get; set; }
    public decimal FixedPrice { get; set; }
    public decimal VariablePrice { get; set; }
}

مرحله 2: DbContext را ایجاد کنید
بعد، ما باید یک کلاس DbContext ایجاد کنیم تا عملیات پایگاه داده خود را مدیریت کنیم.


using System.Data.Entity;

public class ApplicationDbContext : DbContext
{
    public DbSet<Price> Prices { get; set; }

    public ApplicationDbContext() : base("YourConnectionStringName")
    {
    }
}

مرحله 3: لایه منطق تجاری را پیاده سازی کنید
حالا بیایید سرویسی ایجاد کنیم که منطق محاسبه شهریه را مدیریت کند.


public class TuitionService
{
    private readonly ApplicationDbContext _context;

    public TuitionService()
    {
        _context = new ApplicationDbContext();
    }

    public decimal CalculateTuition(decimal distance)
    {
        var priceInfo = _context.Prices.FirstOrDefault();
        if (priceInfo == null)
        {
            throw new Exception("Price information not found.");
        }

        decimal totalTuition;
        if (distance <= 3)
        {
            totalTuition = priceInfo.FixedPrice;
        }
        else
        {
            // Distance above 3 km
            decimal additionalDistance = distance - 3;
            totalTuition = priceInfo.FixedPrice + (additionalDistance * priceInfo.VariablePrice);
        }

        return totalTuition;
    }
}

مرحله 4: لایه ارائه را ایجاد کنید
در نهایت، بیایید یک فرم ساده در یک برنامه Windows Forms ایجاد کنیم تا ورودی کاربر را گرفته و شهریه محاسبه شده را نمایش دهد.


using System;
using System.Windows.Forms;

public partial class TuitionForm : Form
{
    private TuitionService _tuitionService;

    public TuitionForm()
    {
        InitializeComponent();
        _tuitionService = new TuitionService();
    }

    private void btnCalculate_Click(object sender, EventArgs e)
    {
        try
        {
            decimal distance = Convert.ToDecimal(txtDistance.Text);
            decimal tuition = _tuitionService.CalculateTuition(distance);
            txtTotalTuition.Text = tuition.ToString("C");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error: " + ex.Message);
        }
    }
}

مرحله 5: عناصر UI را ایجاد کنید
در برنامه Windows Forms خود، مطمئن شوید که موارد زیر را ایجاد کرده اید:

یک TextBox به نام txtDistance برای وارد کردن فاصله.
یک TextBox به نام txtTotalTuition برای نمایش شهریه محاسبه شده.
یک دکمه به نام btnCalculate برای شروع محاسبه.

نتیجه گیری
این کد پیاده سازی کامل یک معماری سه لایه را با استفاده از رویکرد Code First در سی شارپ ارائه می دهد. می‌توانید با اضافه کردن مدیریت خطا، اعتبارسنجی ورودی کاربر و عناصر رابط کاربری پیچیده‌تر در صورت نیاز، این را بهبود بخشید. مطمئن شوید که “YourConnectionStringName” را با رشته اتصال پایگاه داده واقعی خود در ApplicationDbContext جایگزین کنید.

پی نوشت: این پاسخ با استفاده از ابزارهای AI ایجاد شده است.

 

پیمایش به بالا