پیادهسازی یک سیستم مدیریت پروژهها با استفاده از **ASP.NET Web Forms** میتواند شامل قابلیتهای زیر باشد:
- **ثبت پروژه جدید**
- **لیست پروژهها**
- **ویرایش و حذف پروژهها**
- **مدیریت اعضای تیم برای هر پروژه**
- **اضافه کردن وظایف به پروژهها**
در اینجا یک راهنمای گام به گام برای پیادهسازی یک سیستم ساده مدیریت پروژهها آورده شده است:
### مراحل پیادهسازی
#### 1. ایجاد پروژه ASP.NET Web Forms
- در **Visual Studio**، یک پروژه جدید از نوع **ASP.NET Web Application** ایجاد کنید.
- از الگوی **Web Forms** استفاده کنید.
#### 2. ایجاد مدل پروژه و وظیفه
ایجاد دو کلاس برای مدل پروژه و وظیفه:
```csharp
public class Project
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
public class Task
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public int ProjectId { get; set; }
public bool IsCompleted { get; set; }
}
```
#### 3. ایجاد پایگاه داده
ایجاد پایگاه دادهای با نام **ProjectManagementDB** و دو جدول برای پروژهها و وظایف:
```sql
CREATE TABLE Projects (
Id INT PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(100),
Description NVARCHAR(500),
StartDate DATETIME,
EndDate DATETIME
);
CREATE TABLE Tasks (
Id INT PRIMARY KEY IDENTITY(1,1),
Title NVARCHAR(100),
Description NVARCHAR(500),
ProjectId INT,
IsCompleted BIT,
FOREIGN KEY (ProjectId) REFERENCES Projects(Id)
);
```
#### 4. اضافه کردن اتصال به پایگاه داده
در فایل **Web.config**، رشته اتصال به پایگاه داده را اضافه کنید:
```xml
```
#### 5. ایجاد صفحه ثبت پروژه (AddProject.aspx)
یک صفحه جدید به نام **AddProject.aspx** ایجاد کنید و کد زیر را در آن قرار دهید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddProject.aspx.cs" Inherits="AddProject" %>
ثبت پروژه جدید
```
#### 6. نوشتن کد برای ثبت پروژه در AddProject.aspx.cs
در فایل **AddProject.aspx.cs**، کد زیر را برای ذخیره اطلاعات پروژه در پایگاه داده بنویسید:
```csharp
using System;
using System.Configuration;
using System.Data.SqlClient;
public partial class AddProject : System.Web.UI.Page
{
private string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
protected void btnAddProject_Click(object sender, EventArgs e)
{
string name = txtName.Text;
string description = txtDescription.Text;
DateTime startDate = DateTime.Parse(txtStartDate.Text);
DateTime endDate = DateTime.Parse(txtEndDate.Text);
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("INSERT INTO Projects (Name, Description, StartDate, EndDate) VALUES (@Name, @Description, @StartDate, @EndDate)", connection);
command.Parameters.AddWithValue("@Name", name);
command.Parameters.AddWithValue("@Description", description);
command.Parameters.AddWithValue("@StartDate", startDate);
command.Parameters.AddWithValue("@EndDate", endDate);
connection.Open();
command.ExecuteNonQuery();
}
lblStatus.Text = "پروژه با موفقیت ثبت شد.";
txtName.Text = string.Empty;
txtDescription.Text = string.Empty;
txtStartDate.Text = string.Empty;
txtEndDate.Text = string.Empty;
}
}
```
#### 7. ایجاد صفحه لیست پروژهها (ProjectList.aspx)
یک صفحه جدید به نام **ProjectList.aspx** ایجاد کنید و کد زیر را در آن قرار دهید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ProjectList.aspx.cs" Inherits="ProjectList" %>
لیست پروژهها
```
#### 8. نوشتن کد برای نمایش لیست پروژهها در ProjectList.aspx.cs
در فایل **ProjectList.aspx.cs**، کد زیر را برای بارگذاری پروژهها از پایگاه داده بنویسید:
```csharp
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
public partial class ProjectList : System.Web.UI.Page
{
private string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadProjects();
}
}
private void LoadProjects()
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("SELECT * FROM Projects", connection);
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable dt = new DataTable();
adapter.Fill(dt);
gvProjects.DataSource = dt;
gvProjects.DataBind();
}
}
protected void gvProjects_RowEditing(object sender, GridViewEditEventArgs e)
{
gvProjects.EditIndex = e.NewEditIndex;
LoadProjects();
}
protected void gvProjects_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int projectId = Convert.ToInt32(gvProjects.DataKeys[e.RowIndex].Value);
string name = ((TextBox)gvProjects.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
string description = ((TextBox)gvProjects.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
DateTime startDate = DateTime.Parse(((TextBox)gvProjects.Rows[e.RowIndex].Cells[3].Controls[0]).Text);
DateTime endDate = DateTime.Parse(((TextBox)gvProjects.Rows[e.RowIndex].Cells[4].Controls[0]).Text);
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("UPDATE Projects SET Name = @Name, Description = @Description, StartDate = @StartDate, EndDate = @EndDate WHERE Id = @Id", connection);
command.Parameters.AddWithValue("@Id", projectId);
command.Parameters.AddWithValue("@Name", name);
command.Parameters.AddWithValue("@Description",
description);
command.Parameters.AddWithValue("@StartDate", startDate);
command.Parameters.AddWithValue("@EndDate", endDate);
connection.Open();
command.ExecuteNonQuery();
}
gvProjects.EditIndex = -1;
LoadProjects();
}
protected void gvProjects_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int projectId = Convert.ToInt32(gvProjects.DataKeys[e.RowIndex].Value);
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("DELETE FROM Projects WHERE Id = @Id", connection);
command.Parameters.AddWithValue("@Id", projectId);
connection.Open();
command.ExecuteNonQuery();
}
LoadProjects();
}
}
```
#### 9. ایجاد صفحه اضافه کردن وظایف (AddTask.aspx)
یک صفحه جدید به نام **AddTask.aspx** ایجاد کنید و کد زیر را در آن قرار دهید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddTask.aspx.cs" Inherits="AddTask" %>
اضافه کردن وظیفه
```
#### 10. نوشتن کد برای اضافه کردن وظیفه در AddTask.aspx.cs
در فایل **AddTask.aspx.cs**، کد زیر را برای ذخیره وظیفه در پایگاه داده بنویسید:
```csharp
using System;
using System.Configuration;
using System.Data.SqlClient;
public partial class AddTask : System.Web.UI.Page
{
private string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadProjects();
}
}
private void LoadProjects()
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("SELECT Id, Name FROM Projects", connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
ddlProjects.DataSource = reader;
ddlProjects.DataTextField = "Name";
ddlProjects.DataValueField = "Id";
ddlProjects.DataBind();
}
}
protected void btnAddTask_Click(object sender, EventArgs e)
{
string title = txtTitle.Text;
string description = txtDescription.Text;
int projectId = Convert.ToInt32(ddlProjects.SelectedValue);
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand("INSERT INTO Tasks (Title, Description, ProjectId, IsCompleted) VALUES (@Title, @Description, @ProjectId, @IsCompleted)", connection);
command.Parameters.AddWithValue("@Title", title);
command.Parameters.AddWithValue("@Description", description);
command.Parameters.AddWithValue("@ProjectId", projectId);
command.Parameters.AddWithValue("@IsCompleted", false);
connection.Open();
command.ExecuteNonQuery();
}
lblStatus.Text = "وظیفه با موفقیت اضافه شد.";
txtTitle.Text = string.Empty;
txtDescription.Text = string.Empty;
}
}
```
### 11. تست و اجرای پروژه
پس از انجام مراحل بالا، پروژه را اجرا کنید و صفحات مربوط به ثبت پروژهها، لیست پروژهها و اضافه کردن وظایف را تست کنید.
### نکات اضافی
- **ایمنی و اعتبارسنجی**: حتماً از اعتبارسنجی مناسب برای ورودیهای کاربر و امنیت اطلاعات استفاده کنید.
- **UI و UX**: برای بهبود تجربه کاربری، میتوانید از CSS و JavaScript برای طراحی زیباتر استفاده کنید.
- **گزارشات و آمار**: میتوانید گزارشات مختلفی از پیشرفت پروژهها و وظایف به کاربران ارائه دهید.
با این مراحل، شما یک سیستم مدیریت پروژه ساده با استفاده از **ASP.NET Web Forms** پیادهسازی کردهاید. اگر سوال یا نکتهای دارید، خوشحال میشوم کمک کنم!
| صفحه قابل مشاهده:
دانلود کد پیادهسازی سیستم مدیریت پروژهها با ASP.NET Web Form میباشد