Skip to content

Commit 8ca3588

Browse files
committed
Update copy and metadata for packages and doc site, add logo
1 parent 3c23712 commit 8ca3588

15 files changed

Lines changed: 151 additions & 58 deletions

File tree

‎Directory.Build.props‎

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@
1212
<Authors>Anthony Reilly</Authors>
1313
<Copyright>2026 Anthony Reilly</Copyright>
1414
<PackageLicenseExpression>MIT</PackageLicenseExpression>
15-
<PackageProjectUrl>https://github.com/anthonyreilly/NetCoreForce</PackageProjectUrl>
15+
<PackageProjectUrl>https://netcoreforce.com/</PackageProjectUrl>
1616
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
17-
<PackageTags>salesforce,api,forcedotcom,netstandard,netcore</PackageTags>
17+
<!-- shared tags - projects append their own package-specific tags -->
18+
<PackageTags>salesforce;salesforce-api;sfdc;force.com;rest;crm;dotnet;csharp;netstandard</PackageTags>
1819
<RepositoryType>git</RepositoryType>
1920
<RepositoryUrl>https://github.com/anthonyreilly/NetCoreForce</RepositoryUrl>
20-
<PackageReleaseNotes>Release notes and documentation can be found on the project site: https://github.com/anthonyreilly/NetCoreForce</PackageReleaseNotes>
21+
<PackageReleaseNotes>v6.0.0 adds .NET 10 and Client Credentials login, and removes EOL .NET Core 3.1 - 7.0 targets. See the CHANGELOG for full details and breaking changes: https://github.com/anthonyreilly/NetCoreForce/blob/main/CHANGELOG.md</PackageReleaseNotes>
22+
<PackageIcon>netcoreforce_logo_128px.png</PackageIcon>
2123

2224
<!-- Intentionally targeting EOL frameworks -->
2325
<CheckEolTargetFramework>false</CheckEolTargetFramework>
@@ -26,6 +28,11 @@
2628
<SolutionDir>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), *.sln))</SolutionDir>
2729
</PropertyGroup>
2830

31+
<!-- NuGet package icon, included in packable projects only -->
32+
<ItemGroup Condition=" '$(IsPackable)' == 'true' ">
33+
<None Include="$(MSBuildThisFileDirectory)netcoreforce_logo_128px.png" Pack="true" PackagePath="\" Visible="false" />
34+
</ItemGroup>
35+
2936
<PropertyGroup>
3037
<LibTargetFrameworks>netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0;net462;net472;net48;net481</LibTargetFrameworks>
3138
<AppTargetFrameworks>net8.0;net9.0;net10.0</AppTargetFrameworks>

‎README.md‎

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,33 @@
11
# NetCoreForce
22

3-
## A .NET Standard and .NET Core Salesforce REST API integration library
3+
## A Salesforce REST API client library for .NET and C#
44
*This project is not offered, sponsored, or endorsed by Salesforce.*
55

6-
![NuGet Downloads](https://img.shields.io/nuget/dt/NetCoreForce.Client)
6+
NetCoreForce lets .NET applications query, create, update and delete Salesforce records through the Salesforce REST API, with OAuth 2.0 login, SOQL and SOSL queries, composite requests, and strongly typed models for Salesforce objects.
77

8-
[Documentation](https://anthonyreilly.github.io/NetCoreForce/)
8+
[![NuGet Version](https://img.shields.io/nuget/v/NetCoreForce.Client)](https://www.nuget.org/packages/NetCoreForce.Client/) [![NuGet Downloads](https://img.shields.io/nuget/dt/NetCoreForce.Client)](https://www.nuget.org/packages/NetCoreForce.Client/)
9+
10+
[Documentation](https://netcoreforce.com/)
11+
12+
## Install
13+
14+
```
15+
dotnet add package NetCoreForce.Client
16+
dotnet add package NetCoreForce.Models
17+
```
18+
19+
## Quick Start
20+
21+
```csharp
22+
// Log in with the OAuth Client Credentials flow
23+
ForceClient client = await ForceClient.FromClientCredentialsAsync(
24+
"your-client-id", "your-client-secret", "https://your-domain.my.salesforce.com/services/oauth2/token");
25+
26+
// Query records
27+
List<SfAccount> accounts = await client.Query<SfAccount>("SELECT Id, Name FROM Account LIMIT 10");
28+
```
29+
30+
See the [Authentication](https://netcoreforce.com/auth.html) and [Examples](https://netcoreforce.com/examples.html) docs for other login flows and more usage examples.
931

1032
## Changes in v6
1133

@@ -27,13 +49,14 @@ The primary target is .NET Standard 2.0 to provide the widest possible support.
2749
- .NET Standard 2.0 for widest possible support including .NET Framework 4.6.2+
2850
- .NET Standard 2.1 for newer .NET Core versions
2951

30-
For more info on .NET Standard compatiblity [see the Microsoft documentation here](https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-0)
52+
For more info on .NET Standard compatibility [see the Microsoft documentation here](https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-0)
3153

3254
Full target list
3355
- .NET Standard 2.0
3456
- .NET Standard 2.1
3557
- .NET 8.0
3658
- .NET 9.0
59+
- .NET 10.0
3760
- .NET Framework 4.6.2
3861
- .NET Framework 4.7.2
3962
- .NET Framework 4.8 & 4.8.1

‎docfx.json‎

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,38 @@
3333
{
3434
"src": "docs",
3535
"files": [
36-
"images/**"
36+
"images/**",
37+
"robots.txt"
3738
]
39+
},
40+
{
41+
"src": ".",
42+
"files": [
43+
"netcoreforce_logo_128px.png"
44+
],
45+
"dest": "images"
3846
}
3947
],
4048
"output": "docs/_site",
4149
"template": [
4250
"default",
43-
"modern"
51+
"modern",
52+
"docs/template"
4453
],
4554
"globalMetadata": {
4655
"_appName": "NetCoreForce",
4756
"_appTitle": "NetCoreForce",
57+
"_appLogoPath": "images/netcoreforce_logo_128px.png",
58+
"_appFaviconPath": "images/netcoreforce_logo_128px.png",
59+
"_description": "NetCoreForce is a Salesforce REST API client library for .NET and C#: OAuth login, SOQL queries, CRUD, composite requests, and generated object models.",
60+
"_lang": "en",
4861
"_enableSearch": true,
4962
"pdf": false
63+
},
64+
"sitemap": {
65+
"baseUrl": "https://netcoreforce.com/",
66+
"changefreq": "weekly",
67+
"priority": 0.5
5068
}
5169
}
5270
}

‎docs/auth.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
---
2+
title: "Salesforce OAuth Authentication in .NET"
3+
_description: "How to log in to the Salesforce REST API from .NET and C# with NetCoreForce, using the OAuth 2.0 Client Credentials, Web Server, refresh token, and Username-Password flows."
4+
---
5+
16
# Authentication
27

38
NetCoreForce supports several Salesforce OAuth 2.0 flows. There are two ways to use them:

‎docs/examples.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
---
2+
title: "Salesforce REST API Examples in C#"
3+
_description: "C# examples for the Salesforce REST API with NetCoreForce: CRUD, SOQL queries, upsert by external ID, composite requests, SOSL search, file downloads, and metadata."
4+
---
5+
16
# Examples
27

38
Usage examples for common tasks, starting with everyday CRUD and query operations and moving on to less common ones. For other ways to log in and initialize the client, see [Authentication](auth.md).

‎docs/index.md‎

Lines changed: 60 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,47 @@
11
---
22
_layout: landing
3+
title: "NetCoreForce: Salesforce REST API Client for .NET"
4+
_description: "NetCoreForce is a Salesforce REST API client library for .NET and C#: OAuth login, SOQL queries, CRUD, composite requests, and generated object models."
35
---
46

5-
- [ForceClient](~/docs/api/NetCoreForce.Client.ForceClient.yml)
6-
- [NetcoreForce.Client](~/docs/api/NetCoreForce.Client.yml)
7+
# NetCoreForce
78

9+
## A Salesforce REST API client library for .NET and C#
10+
*This project is not offered, sponsored, or endorsed by Salesforce.*
811

9-
# NetCoreForce
12+
NetCoreForce lets .NET applications query, create, update and delete Salesforce records through the Salesforce REST API, with OAuth 2.0 login, SOQL and SOSL queries, composite requests, and strongly typed models for Salesforce objects.
1013

11-
## A .NET Salesforce REST API integration library
12-
*This project is not offered, sponsored, or endorsed by Salesforce.*
14+
![NuGet Version](https://img.shields.io/nuget/v/NetCoreForce.Client) ![NuGet Downloads](https://img.shields.io/nuget/dt/NetCoreForce.Client)
15+
16+
## Install
17+
18+
```
19+
dotnet add package NetCoreForce.Client
20+
dotnet add package NetCoreForce.Models
21+
```
22+
23+
## Quick Start
24+
25+
```csharp
26+
// Log in with the OAuth Client Credentials flow
27+
ForceClient client = await ForceClient.FromClientCredentialsAsync(
28+
"your-client-id", "your-client-secret", "https://your-domain.my.salesforce.com/services/oauth2/token");
29+
30+
// Query records
31+
List<SfAccount> accounts = await client.Query<SfAccount>("SELECT Id, Name FROM Account LIMIT 10");
32+
```
33+
34+
- [Authentication](auth.md) - Client Credentials, Web Server, refresh token, and other login flows
35+
- [Examples](examples.md) - CRUD, queries, upserts, composite requests, search, metadata and more
36+
- [API Reference](api/NetCoreForce.Client.ForceClient.yml) - full `ForceClient` reference
1337

1438
## Library Targets
1539

16-
The primary target is .NET Standard 2.0 to provide the widest possible support.
40+
The primary target is .NET Standard 2.0 to provide the widest possible support.
1741
- .NET Standard 2.0 for widest possible support including .NET Framework 4.6.2+
1842
- .NET Standard 2.1 for newer .NET Core versions
1943

20-
For more info on .NET Standard compatiblity [see the Microsoft documentation here](https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-0)
44+
For more info on .NET Standard compatibility [see the Microsoft documentation here](https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-0)
2145

2246
Full target list
2347
- .NET Standard 2.0
@@ -32,55 +56,48 @@ Full target list
3256

3357
All possible frameworks are specifically targeted so that conditional compilation can be done where required.
3458

35-
Full tested support is for .NET Core 8.0 - 10.0 as tooling and tests target those.
36-
Legacy .NET Frameworks are partially tested
59+
Full tested support is for .NET 8.0 - 10.0 as tooling and tests target those.
60+
Legacy .NET Frameworks are partially tested.
3761

38-
![NuGet Downloads](https://img.shields.io/nuget/dt/NetCoreForce.Client)
62+
## NuGet Packages
63+
* [NetCoreForce.Client](https://www.nuget.org/packages/NetCoreForce.Client/) - the Salesforce REST API client
64+
* [NetCoreForce.Models](https://www.nuget.org/packages/NetCoreForce.Models/) - pre-generated models for standard Salesforce objects
65+
* [NetCoreForce.ModelGenerator](https://www.nuget.org/packages/NetCoreForce.ModelGenerator/) - .NET CLI tool to generate models for your org, including custom objects and fields
3966

40-
[GitHub Repository](https://github.com/anthonyreilly/NetCoreForce)
67+
### [CHANGELOG](https://github.com/anthonyreilly/NetCoreForce/blob/main/CHANGELOG.md)
4168

42-
### NuGet Packages
43-
* [NetCoreForce.Client](https://www.nuget.org/packages/NetCoreForce.Client/)
44-
* [NetCoreForce.Models](https://www.nuget.org/packages/NetCoreForce.Models/)
45-
* [NetCoreForce.ModelGenerator](https://www.nuget.org/packages/NetCoreForce.ModelGenerator/)
69+
[GitHub Repository](https://github.com/anthonyreilly/NetCoreForce)
4670

47-
### [CHANGELOG](CHANGELOG.md)
48-
49-
CI main:
50-
[![CI](https://github.com/anthonyreilly/NetCoreForce/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/anthonyreilly/NetCoreForce/actions/workflows/ci.yml)
51-
CI dev:
71+
CI main:
72+
[![CI](https://github.com/anthonyreilly/NetCoreForce/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/anthonyreilly/NetCoreForce/actions/workflows/ci.yml)
73+
CI dev:
5274
[![CI](https://github.com/anthonyreilly/NetCoreForce/actions/workflows/ci.yml/badge.svg?branch=dev)](https://github.com/anthonyreilly/NetCoreForce/actions/workflows/ci.yml)
5375

54-
55-
### Projects in this solution:
56-
* [NetCoreForce.Client](src/NetCoreForce.Client)
57-
- Main library
58-
* [NetCoreForce.Client.Tests](src/NetCoreForce.Client.Tests)
59-
- Unit tests (offline/mocked)
60-
* [NetCoreForce.FunctionalTests](src/NetCoreForce.FunctionalTests)
61-
- Online Unit tests (Needs valid login credentials)
62-
* [NetCoreForce.ModelGenerator](src/NetCoreForce.ModelGenerator)
63-
- Check [README](src/NetCoreForce.ModelGenerator/README.md) for docs
64-
- Optional custom dotnet-cli tool for code generation of custom objects/fields.
65-
* [NetCoreForce.Models](src/NetCoreForce.Models)
66-
- Check [README](src/NetCoreForce.Models/README.md) for docs
67-
- Optional library with a set of pre-generated standard models
68-
* [SampleConsole](src/SampleConsole)
69-
- A simple .NET Core console app to demonstrate the library.
70-
71-
72-
73-
### Designed to minimize dependencies:
76+
## Projects in this solution
77+
* [NetCoreForce.Client](https://github.com/anthonyreilly/NetCoreForce/tree/main/src/NetCoreForce.Client)
78+
- Main library
79+
* [NetCoreForce.Client.Tests](https://github.com/anthonyreilly/NetCoreForce/tree/main/src/NetCoreForce.Client.Tests)
80+
- Unit tests (offline/mocked)
81+
* [NetCoreForce.FunctionalTests](https://github.com/anthonyreilly/NetCoreForce/tree/main/src/NetCoreForce.FunctionalTests)
82+
- Online Unit tests (Needs valid login credentials)
83+
* [NetCoreForce.ModelGenerator](https://github.com/anthonyreilly/NetCoreForce/tree/main/src/NetCoreForce.ModelGenerator)
84+
- Check [README](https://github.com/anthonyreilly/NetCoreForce/blob/main/src/NetCoreForce.ModelGenerator/README.md) for docs
85+
- Optional custom dotnet-cli tool for code generation of custom objects/fields.
86+
* [NetCoreForce.Models](https://github.com/anthonyreilly/NetCoreForce/tree/main/src/NetCoreForce.Models)
87+
- Check [README](https://github.com/anthonyreilly/NetCoreForce/blob/main/src/NetCoreForce.Models/README.md) for docs
88+
- Optional library with a set of pre-generated standard models
89+
* [SampleConsole](https://github.com/anthonyreilly/NetCoreForce/tree/main/src/SampleConsole)
90+
- A simple .NET console app to demonstrate the library.
91+
92+
## Designed to minimize dependencies
7493
* [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json) (JSON Serialization)
7594
* [System.Text.Encodings.Web](https://www.nuget.org/packages/System.Text.Encodings.Web) (URL formatting)
7695
* [Microsoft.Bcl.AsyncInterfaces](https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterfaces/)
77-
- Only included in .netstandard2.0, .netcoreapp2.0 targets
96+
- Only included in .NET Standard 2.0 and .NET Framework targets
7897
- Provides await using, async disposables
7998

8099
(Migration from Newtonsoft.Json to System.Text.Json is planned)
81100

82101
Feedback and suggestions welcome.
83102

84103
Licensed under the MIT license.
85-
86-

‎docs/robots.txt‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
User-agent: *
2+
Allow: /
3+
4+
Sitemap: https://netcoreforce.com/sitemap.xml

‎docs/template/public/main.css‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/* custom styles, layered on top of the docfx modern template */
2+
3+
/* scale the 128px logo down to fit the navbar */
4+
#logo {
5+
height: 40px;
6+
width: auto;
7+
margin-right: 0.5rem;
8+
}

‎netcoreforce_logo_128px.png‎

12.3 KB
Loading

‎src/NetCoreForce.Client/NetCoreForce.Client.csproj‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
<TargetFrameworks>$(LibTargetFrameworks)</TargetFrameworks>
77

88
<!--NuGet-->
9-
<Description>A .NET Standard and .NET Core Salesforce REST API integration library</Description>
9+
<Title>NetCoreForce Salesforce REST API Client</Title>
10+
<Description>Salesforce REST API client library for .NET and C#. OAuth 2.0 login (Client Credentials, Web Server, refresh token), SOQL and SOSL queries, CRUD and upsert, composite requests, and file downloads. Supports .NET 8-10, .NET Standard 2.0/2.1 and .NET Framework 4.6.2+.</Description>
11+
<PackageTags>$(PackageTags);soql;sosl;oauth</PackageTags>
1012
<IsPackable>true</IsPackable>
1113
<PackageId>NetCoreForce.Client</PackageId>
1214
<PackageReadmeFile>README.md</PackageReadmeFile>

0 commit comments

Comments
 (0)