Skip to content

Commit dcc8259

Browse files
authored
Merge branch 'development' into 990970-AI-FAIL
2 parents 18a8b0a + 86b633d commit dcc8259

25 files changed

+2785
-1939
lines changed

blazor-toc.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,9 @@
386386
<li>
387387
<a href="/blazor/common/deployment/deployment-azure">Deploy a Blazor Web App to Azure App Service</a>
388388
</li>
389+
<li>
390+
<a href="/blazor/common/deployment/deployment-linux-nginx">Deploy a Blazor Web App to Linux with NGINX</a>
391+
</li>
389392
</ul>
390393
</li>
391394
<li>
@@ -3143,7 +3146,8 @@
31433146
<li> <a href="/blazor/gantt-chart/excel-export">Excel Export</a></li>
31443147
<li> <a href="/blazor/gantt-chart/pdf-export">PDF Export</a>
31453148
<ul>
3146-
<li> <a href="/blazor/gantt-chart/template-pdf-export">PDF Exporting with Templates</a> </li>
3149+
<li> <a href="/blazor/gantt-chart/header-and-footer">Header and Footer</a> </li>
3150+
<li> <a href="/blazor/gantt-chart/customize-pdf-export">Customize PDF Export</a> </li>
31473151
</ul>
31483152
</li>
31493153
<li> <a href="/blazor/gantt-chart/timezone">Timezone</a></li>
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
layout: post
3+
title: Deploy a Blazor Web App to Linux with NGINX | Syncfusion
4+
description: Learn here all about deploying the Blazor Web App with Syncfusion Blazor Components to Linux server using NGINX.
5+
platform: Blazor
6+
component: Common
7+
documentation: ug
8+
---
9+
10+
# Deploy Blazor Web App to Linux with NGINX
11+
12+
This section provides information about deploying a Blazor Web applications with the Syncfusion Blazor components to Linux server using NGINX as a reverse proxy.
13+
14+
Refer to [Host ASP.NET Core on Linux with NGINX](https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-9.0&tabs=linux-ubuntu) topic for more information.
15+
16+
## Prerequisites
17+
18+
* Linux Server – Ubuntu 20.04, Red Hat Enterprise (RHEL) 8.0 and SUSE Linux Enterprise Server 12.
19+
* [.NET runtime](https://blazor.syncfusion.com/documentation/system-requirements#net-sdk) installed on the server.
20+
* An existing Blazor Web App with Syncfusion components or create a new one.
21+
22+
## Install and Start NGINX
23+
24+
Install NGINX on your Linux system and enable it to start automatically:
25+
26+
```bash
27+
sudo dnf install nginx
28+
sudo systemctl start nginx
29+
sudo systemctl enable nginx
30+
sudo systemctl status nginx
31+
```
32+
33+
**Verification**: Open `http://your-server-ip` in a browser — you should see the NGINX welcome page.
34+
35+
## Create and publish Your Blazor Web App with Syncfusion Components
36+
37+
* You can create a Blazor Web App using the .NET CLI commands with Syncfusion components by referring [here](https://blazor.syncfusion.com/documentation/getting-started/blazor-web-app?tabcontent=.net-cli).
38+
39+
* Publish your Blazor Web application in Release configuration using the following command and run it:
40+
41+
```bash
42+
dotnet publish -c Release -o publish
43+
cd publish
44+
dotnet SfBlazorApp.dll --urls "http://0.0.0.0:5000"
45+
```
46+
47+
![Publish Blazor Web App](../images/publish-blazor-app.png)
48+
49+
## Configure NGINX to Proxy Requests
50+
51+
Create a new NGINX configuration file for your Blazor application:
52+
53+
```bash
54+
sudo nano /etc/nginx/conf.d/blazorapp.conf
55+
```
56+
57+
Add the following configuration to enable NGINX to act as a reverse proxy:
58+
59+
```nginx
60+
server {
61+
listen 80;
62+
server_name _;
63+
location / {
64+
proxy_pass http://localhost:5000;
65+
proxy_http_version 1.1;
66+
proxy_set_header Host $host;
67+
proxy_set_header X-Real-IP $remote_addr;
68+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
69+
proxy_set_header X-Forwarded-Proto $scheme;
70+
proxy_set_header Upgrade $http_upgrade;
71+
proxy_set_header Connection "upgrade";
72+
}
73+
}
74+
```
75+
76+
Save and exit the file (Ctrl+O, Enter, then Ctrl+X).
77+
78+
## Validate and Restart NGINX
79+
80+
Test the NGINX configuration and restart the service:
81+
82+
```bash
83+
sudo nginx -t
84+
sudo systemctl restart nginx
85+
```
86+
87+
## Configure SELinux (For Red Hat-based Systems)
88+
89+
On Red Hat-based systems, SELinux may block NGINX from accessing your Blazor app. Allow NGINX to connect to network services:
90+
91+
```bash
92+
sudo setsebool -P httpd_can_network_connect 1
93+
```
94+
95+
## Access the Application
96+
97+
From your Windows machine or any other device, open a browser and navigate to:
98+
99+
```
100+
http://<your-vm-ip>/
101+
```
102+
103+
You should now see your Blazor Web app running successfully with Syncfusion components!
104+
105+
![Output-Linux](../images/output-linux.png)
106+
107+
## See also
108+
109+
* [Host ASP.NET Core on Linux with NGINX](https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-9.0)
110+
* [Configure NGINX for ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-9.0#configure-nginx)
59.7 KB
Loading
76 KB
Loading

blazor/datagrid/context-menu.md

Lines changed: 191 additions & 215 deletions
Large diffs are not rendered by default.

blazor/gantt-chart/criticalpath.md

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,45 @@
11
---
22
layout: post
33
title: Critical Path in Blazor Gantt Chart Component | Syncfusion
4-
description: Checkout and learn here all about critical path in Syncfusion Blazor Gantt Chart component and much more details.
4+
description: Learn here all about Critical path in Syncfusion Blazor Gantt Chart component and much more details.
55
platform: Blazor
6-
component: Gantt Chart
6+
component: Critical path
77
documentation: ug
88
---
99

1010
# Critical Path in Blazor Gantt Chart component
1111

12-
The critical path in a project is indicated by a single task or a series of tasks. If a task in critical path is delayed, the entire project will be delayed. A task is considered to be critical if any delay to this task would affect the project end date.
12+
The critical path represents the longest sequence of dependent tasks that determines the minimum project duration. Tasks on the critical path have zero or negative [SlackValue](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.GanttCriticalPathSettings.html#Syncfusion_Blazor_Gantt_GanttCriticalPathSettings_SlackValue) (float), meaning any delay in these tasks directly impacts the overall project completion date. The Blazor Gantt Chart component automatically calculates and highlights critical tasks in red with emphasized dependency connector lines when the [EnableCriticalPath](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.SfGantt-1.html#Syncfusion_Blazor_Gantt_SfGantt_1_EnableCriticalPath) property is enabled. Critical path analysis helps identify which tasks require immediate attention and cannot be delayed without affecting project deadlines.
1313

14-
The critical path can be enabled in the Gantt Chart by using the built-in toolbar button or by setting the [EnableCriticalPath](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.SfGantt-1.html#Syncfusion_Blazor_Gantt_SfGantt_1_EnableCriticalPath) property to true in the [SfGantt](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.SfGantt-1.html) component.
14+
## Understanding critical path calculation
1515

16-
The following code example shows how to display the critical path in the Gantt control:
16+
The component uses Critical Path Method (CPM) principles to identify critical tasks through a comprehensive calculation process that analyzes task dependencies, timing relationships, and slack values to determine which tasks have no scheduling flexibility. A task becomes critical when it has zero or negative slack, meaning any delay (even by a minute) shifts the entire project end date. This occurs because critical tasks are linked through dependencies, creating a chain reaction where delays propagate across the dependency network, ultimately affecting the project completion date.
17+
18+
**Project end date determination**: The calculation begins by determining the overall project end date. If the [ProjectEndDate](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.SfGantt-1.html#Syncfusion_Blazor_Gantt_SfGantt_1_ProjectEndDate) property is provided, it uses that value as the project completion reference. If `ProjectEndDate` is not specified, the component automatically calculates the project end date by examining all task end dates in the data source to find the latest completion point. This reference point determines how much delay each task can tolerate without affecting project completion.
19+
20+
**Slack value calculation**: For each task, the component calculates slack by measuring the time difference between the task's end date and the project end date. Slack represents how much time a task can be delayed without affecting the project completion:
21+
- **Zero slack**: The task must finish exactly on time. Any delay will push back the project end date, making it critical
22+
- **Negative slack**: The task is already behind schedule or creates scheduling conflicts. This occurs when a task's end date is beyond the project end date, or when dependency relationships create impossible timing constraints.
23+
24+
**Parent-Child task relationships**: In projects with hierarchical tasks, the critical path calculation focuses on dependencies rather than the parent-child structure used for task organization. For example, if Task 1.1 (a child task) depends on Task 2 (a parent task), only the tasks directly linked by the dependency are evaluated for criticality based on their timing. A parent task like Task 2 being critical does not automatically make its child tasks (e.g., Task 2.1, Task 2.2) critical, nor does a critical child task imply a critical parent. The component evaluates each task’s slack independently, ensuring that only tasks with zero or negative slack, driven by their dependency constraints, are marked as critical. This distinction allows precise identification of critical tasks without conflating organizational hierarchy with scheduling dependencies.
25+
26+
**Dependency-based analysis**: The component analyzes different dependency relationship types to determine slack impacts:
27+
- **Finish-to-Start**: When a predecessor task ends after its successor should start, negative slack results from the timing conflict
28+
- **Start-to-Start**: When a predecessor starts after its successor should start, the component calculates negative slack based on scheduling impossibility
29+
- **Finish-to-Finish** and **Start-to-Finish**: These relationships can also produce negative slack when timing conflicts exist between connected tasks
30+
- **Offset and scheduling mode handling**: When dependencies include time offsets (e.g., "+2 days" or "-1 hour"), the component adjusts slack calculations by factoring in the offset duration. The calculation differs for automatically scheduled versus manually scheduled tasks: automatic tasks use forward and backward pass algorithms to compute slack, while manual tasks compare their end dates directly against the project completion date.
31+
32+
**Progress consideration**: The component considers task completion progress. Only tasks with less than 100% progress can be marked as critical, since completed tasks cannot cause future delays. Tasks that end on or beyond the project end date automatically become critical regardless of their dependency relationships, as they directly determine the project completion timing.
33+
34+
## Critical path setup and configuration
35+
36+
The Critical Path feature in the Blazor Gantt component highlights tasks that directly impact the overall project completion date. To enable this functionality, ensure that the data source must contain tasks with valid start dates, end dates, and task dependencies properly mapped through the [Dependency](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.GanttTaskFields.html#Syncfusion_Blazor_Gantt_GanttTaskFields_Dependency) field in [TaskFields](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.GanttTaskFields.html).
37+
38+
Enable critical path display by setting [EnableCriticalPath](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.SfGantt-1.html#Syncfusion_Blazor_Gantt_SfGantt_1_EnableCriticalPath) to **true**, or add the `CriticalPath` option to the [Toolbar](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.SfGantt-1.html#Syncfusion_Blazor_Gantt_SfGantt_1_Toolbar) array to allow interactive toggling. The [GetCriticalTasks](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Gantt.SfGantt-1.html#Syncfusion_Blazor_Gantt_SfGantt_1_Toolbar) method retrieves all tasks identified as critical at runtime.
39+
40+
The critical path recalculates automatically when task properties change, including start and end dates, duration modifications, dependency updates, or progress adjustments. This ensures the visualization remains accurate throughout project management workflows.
41+
42+
The following example demonstrates enabling critical path analysis:
1743

1844
{% tabs %}
1945
{% highlight razor tabtitle="Index.razor" %}

0 commit comments

Comments
 (0)