https://github.com/CoreWCF/CoreWCF
Main repository for the Core WCF project
https://github.com/CoreWCF/CoreWCF
corewcf wcf
Last synced: about 1 month ago
JSON representation
Main repository for the Core WCF project
- Host: GitHub
- URL: https://github.com/CoreWCF/CoreWCF
- Owner: CoreWCF
- License: mit
- Created: 2019-05-09T17:14:51.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-10-14T20:53:32.000Z (7 months ago)
- Last Synced: 2024-10-29T17:48:49.912Z (6 months ago)
- Topics: corewcf, wcf
- Language: C#
- Homepage:
- Size: 12 MB
- Stars: 1,656
- Watchers: 82
- Forks: 292
- Open Issues: 355
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- RSCG_Examples - CoreWCF
- csharp-source-generators - CoreWCF -   CoreWCF provides support of WCF server side code on .NET Core / .NET6. CoreWCF allows users to inject services into `OperationContract` implementation using a source generator to provide an `OperationContract` implementation that fits the expected `ServiceContract`. The supplied implementation fetch services from the DI container the same way the `[FromServices]` attribute works in ASP.NET core MVC Controllers. The source generator supports both a dedicated `[Injected]` attribute and the ASP.NET Core MVC `[FromServices]` attribute. (Source Generators / Communication)
README
### What is CoreWCF?
CoreWCF is a port of the service side of Windows Communication Foundation (WCF) to .NET Core. The goal of this project is to enable existing WCF services to move to .NET Core.
### Package Status
The latest released packages can be found at NuGet.org:
| Package | NuGet Stable | Downloads |
|:---------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------:|
| [CoreWCF.ConfigurationManager](https://www.nuget.org/packages/CoreWCF.ConfigurationManager/) | [](https://www.nuget.org/packages/CoreWCF.ConfigurationManager/) | [](https://www.nuget.org/packages/CoreWCF.ConfigurationManager/) |
| [CoreWCF.Http](https://www.nuget.org/packages/CoreWCF.Http/) | [](https://www.nuget.org/packages/CoreWCF.Http/) | [](https://www.nuget.org/packages/CoreWCF.Http/) |
| [CoreWCF.Kafka](https://www.nuget.org/packages/CoreWCF.Kafka/) | [](https://www.nuget.org/packages/CoreWCF.Kafka/) | [](https://www.nuget.org/packages/CoreWCF.Kafka/)
| [CoreWCF.Kafka.Client](https://www.nuget.org/packages/CoreWCF.Kafka.Client/) | [](https://www.nuget.org/packages/CoreWCF.Kafka.Client/) | [](https://www.nuget.org/packages/CoreWCF.Kafka.Client/)
| [CoreWCF.MSMQ](https://www.nuget.org/packages/CoreWCF.MSMQ/) | [](https://www.nuget.org/packages/CoreWCF.MSMQ/) | [](https://www.nuget.org/packages/CoreWCF.MSMQ/)
| [CoreWCF.NetNamedPipe](https://www.nuget.org/packages/CoreWCF.NetNamedPipe/) | [](https://www.nuget.org/packages/CoreWCF.NetNamedPipe/) | [](https://www.nuget.org/packages/CoreWCF.NetNamedPipe/)
| [CoreWCF.NetTcp](https://www.nuget.org/packages/CoreWCF.NetTcp/) | [](https://www.nuget.org/packages/CoreWCF.NetTcp/) | [](https://www.nuget.org/packages/CoreWCF.NetTcp/) |
| [CoreWCF.Primitives](https://www.nuget.org/packages/CoreWCF.Primitives/) | [](https://www.nuget.org/packages/CoreWCF.Primitives/) | [](https://www.nuget.org/packages/CoreWCF.Primitives/) |
| [CoreWCF.RabbitMQ](https://www.nuget.org/packages/CoreWCF.RabbitMQ/) | [](https://www.nuget.org/packages/CoreWCF.RabbitMQ/) | [](https://www.nuget.org/packages/CoreWCF.RabbitMQ/)
| [CoreWCF.RabbitMQ.Client](https://www.nuget.org/packages/CoreWCF.RabbitMQ.Client/) | [](https://www.nuget.org/packages/CoreWCF.RabbitMQ.Client/) | [](https://www.nuget.org/packages/CoreWCF.RabbitMQ.Client/)
| [CoreWCF.Templates](https://www.nuget.org/packages/CoreWCF.Templates/) | [](https://www.nuget.org/packages/CoreWCF.Templates/) | [](https://www.nuget.org/packages/CoreWCF.Templates/)
| [CoreWCF.UnixDomainSocket](https://www.nuget.org/packages/CoreWCF.UnixDomainSocket/) | [](https://www.nuget.org/packages/CoreWCF.UnixDomainSocket/) | [](https://www.nuget.org/packages/CoreWCF.UnixDomainSocket/) |
| [CoreWCF.WebHttp](https://www.nuget.org/packages/CoreWCF.WebHttp/) | [](https://www.nuget.org/packages/CoreWCF.WebHttp/) | [](https://www.nuget.org/packages/CoreWCF.WebHttp/) |### Community Packages
The latest CoreWCF extension released packages from community can be found at NuGet.org:| Package | NuGet Stable | Downloads |
|:---------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------:|
| [AWS.CoreWCF.Extensions](https://www.nuget.org/packages/AWS.CoreWCF.Extensions/) | [](https://www.nuget.org/packages/AWS.CoreWCF.Extensions/) | [](https://www.nuget.org/packages/AWS.CoreWCF.Extensions/) |
| [AWS.WCF.Extensions](https://www.nuget.org/packages/AWS.WCF.Extensions/) | [](https://www.nuget.org/packages/AWS.WCF.Extensions/) | [](https://www.nuget.org/packages/AWS.WCF.Extensions/) |### Code Quality
[](https://sonarcloud.io/summary/new_code?id=CoreWCF_CoreWCF)
### Announcements
To keep up to date on what's going on with CoreWCF, you can subscribe to the [announcements](https://github.com/CoreWCF/announcements) repo to be notified about major changes and other noteworthy announcements.
### How do I get started?
* Install the Nuget packages listed above, either via the Package Manager Console or the UI.
* See [Walkthrough](Documentation/Walkthrough.md) for a step by step guide to creating a service and referencing it from a client project.
* See [Testing](Documentation/Testing.md) for running unit and integration tests in your development environment.
* The [Samples](https://github.com/CoreWCF/samples) repo has examples for multiple scenarios.
* The [Blog](https://corewcf.github.io/) has details on the design philosophy and a deep dive into the features are included in each new release.### Use CoreWCF project templates (dotnet CLI or VisualStudio)
* Install CoreWCF project templates, create a directory for your project and cd inside the directory and initialize your project
```cmd
dotnet new install CoreWCF.Templates
dotnet new corewcf --name MyService
```
* `CoreWCF Service` project template creates a minimal ASP.NET Core web application thats exposes the well-known WCF default service using a `BasicHttpBinding`.
It supports the following arguments:
* `--framework`: `net8.0` (default), `net6.0`, `net48`, `net472` and `net462` are valid values.
* `--use-program-main`: whether to turn off ASP.NET Core minimal API hosting. This option only affects projects targeting .NET as .NET Framework requires a `Startup` and a `Program` class.
* `--no-https`: whether to turn off HTTPS and use `BasicHttpSecurityMode.None`. Default is HTTPS enabled using `BasicHttpSecurityMode.Transport`.
* `--no-wsdl`: whether to turn off WSDL metadata feature.
* `--use-operation-invoker-generator`: whether to turn on OperationInvokerGenerator feature.### Development Builds
There are pre-release packages available for development builds of main from a NuGet feed hosted in Azure DevOps. You can download the packages by adding the following package source to your list of feeds using the `dotnet` CLI.
```cmd
dotnet nuget add source https://pkgs.dev.azure.com/dotnet/CoreWCF/_packaging/CoreWCF/nuget/v3/index.json
```If you are using a nuget.config file with only the default nuget.org package source, after adding the CoreWCF feed it would look like this:
```xml
```
### How do I contribute?
Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for details.
### License, etc.
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.
For more information see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).CoreWCF is Copyright © 2019 .NET Foundation and other contributors under the [MIT license](LICENSE).
### .NET Foundation
This project is supported by the [.NET Foundation](https://dotnetfoundation.org).