Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-14T20:53:32.000Z (about 2 months ago)
- Last Synced: 2024-10-29T17:48:49.912Z (about 1 month 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 - ![stars](https://img.shields.io/github/stars/CoreWCF/CoreWCF?style=flat-square&cacheSeconds=604800) ![last commit](https://img.shields.io/github/last-commit/CoreWCF/CoreWCF?style=flat-square&cacheSeconds=86400) 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/) | [![CoreWCF.ConfigurationManager](https://img.shields.io/nuget/v/CoreWCF.ConfigurationManager.svg)](https://www.nuget.org/packages/CoreWCF.ConfigurationManager/) | [![CoreWCF.ConfigurationManager](https://img.shields.io/nuget/dt/CoreWCF.ConfigurationManager)](https://www.nuget.org/packages/CoreWCF.ConfigurationManager/) |
| [CoreWCF.Http](https://www.nuget.org/packages/CoreWCF.Http/) | [![CoreWCF.Http](https://img.shields.io/nuget/v/CoreWCF.Http.svg)](https://www.nuget.org/packages/CoreWCF.Http/) | [![CoreWCF.Http](https://img.shields.io/nuget/dt/CoreWCF.Http)](https://www.nuget.org/packages/CoreWCF.Http/) |
| [CoreWCF.Kafka](https://www.nuget.org/packages/CoreWCF.Kafka/) | [![CoreWCF.Kafka](https://img.shields.io/nuget/v/CoreWCF.Kafka.svg)](https://www.nuget.org/packages/CoreWCF.Kafka/) | [![CoreWCF.Kafka](https://img.shields.io/nuget/dt/CoreWCF.Kafka)](https://www.nuget.org/packages/CoreWCF.Kafka/)
| [CoreWCF.Kafka.Client](https://www.nuget.org/packages/CoreWCF.Kafka.Client/) | [![CoreWCF.Kafka.Client](https://img.shields.io/nuget/v/CoreWCF.Kafka.Client.svg)](https://www.nuget.org/packages/CoreWCF.Kafka.Client/) | [![CoreWCF.Kafka.Client](https://img.shields.io/nuget/dt/CoreWCF.Kafka.Client)](https://www.nuget.org/packages/CoreWCF.Kafka.Client/)
| [CoreWCF.MSMQ](https://www.nuget.org/packages/CoreWCF.MSMQ/) | [![CoreWCF.MSMQ](https://img.shields.io/nuget/v/CoreWCF.MSMQ.svg)](https://www.nuget.org/packages/CoreWCF.MSMQ/) | [![CoreWCF.MSMQ](https://img.shields.io/nuget/dt/CoreWCF.MSMQ)](https://www.nuget.org/packages/CoreWCF.MSMQ/)
| [CoreWCF.NetNamedPipe](https://www.nuget.org/packages/CoreWCF.NetNamedPipe/) | [![CoreWCF.NetNamedPipe](https://img.shields.io/nuget/v/CoreWCF.NetNamedPipe.svg)](https://www.nuget.org/packages/CoreWCF.NetNamedPipe/) | [![CoreWCF.NetNamedPipe](https://img.shields.io/nuget/dt/CoreWCF.NetNamedPipe)](https://www.nuget.org/packages/CoreWCF.NetNamedPipe/)
| [CoreWCF.NetTcp](https://www.nuget.org/packages/CoreWCF.NetTcp/) | [![CoreWCF.NetTcp](https://img.shields.io/nuget/v/CoreWCF.NetTcp.svg)](https://www.nuget.org/packages/CoreWCF.NetTcp/) | [![CoreWCF.NetTcp](https://img.shields.io/nuget/dt/CoreWCF.NetTcp)](https://www.nuget.org/packages/CoreWCF.NetTcp/) |
| [CoreWCF.Primitives](https://www.nuget.org/packages/CoreWCF.Primitives/) | [![CoreWCF.Primitives](https://img.shields.io/nuget/v/CoreWCF.Primitives.svg)](https://www.nuget.org/packages/CoreWCF.Primitives/) | [![CoreWCF.Primitives](https://img.shields.io/nuget/dt/CoreWCF.Primitives)](https://www.nuget.org/packages/CoreWCF.Primitives/) |
| [CoreWCF.RabbitMQ](https://www.nuget.org/packages/CoreWCF.RabbitMQ/) | [![CoreWCF.RabbitMQ](https://img.shields.io/nuget/v/CoreWCF.RabbitMQ.svg)](https://www.nuget.org/packages/CoreWCF.RabbitMQ/) | [![CoreWCF.RabbitMQ](https://img.shields.io/nuget/dt/CoreWCF.RabbitMQ)](https://www.nuget.org/packages/CoreWCF.RabbitMQ/)
| [CoreWCF.RabbitMQ.Client](https://www.nuget.org/packages/CoreWCF.RabbitMQ.Client/) | [![CoreWCF.RabbitMQ.Client](https://img.shields.io/nuget/v/CoreWCF.RabbitMQ.Client.svg)](https://www.nuget.org/packages/CoreWCF.RabbitMQ.Client/) | [![CoreWCF.RabbitMQ.Client](https://img.shields.io/nuget/dt/CoreWCF.RabbitMQ.Client)](https://www.nuget.org/packages/CoreWCF.RabbitMQ.Client/)
| [CoreWCF.Templates](https://www.nuget.org/packages/CoreWCF.Templates/) | [![CoreWCF.Templates](https://img.shields.io/nuget/v/CoreWCF.Templates.svg)](https://www.nuget.org/packages/CoreWCF.Templates/) | [![CoreWCF.Templates](https://img.shields.io/nuget/dt/CoreWCF.Templates)](https://www.nuget.org/packages/CoreWCF.Templates/)
| [CoreWCF.UnixDomainSocket](https://www.nuget.org/packages/CoreWCF.UnixDomainSocket/) | [![CoreWCF.UnixDomainSocket](https://img.shields.io/nuget/v/CoreWCF.UnixDomainSocket.svg)](https://www.nuget.org/packages/CoreWCF.UnixDomainSocket/) | [![CoreWCF.UnixDomainSocket](https://img.shields.io/nuget/dt/CoreWCF.UnixDomainSocket)](https://www.nuget.org/packages/CoreWCF.UnixDomainSocket/) |
| [CoreWCF.WebHttp](https://www.nuget.org/packages/CoreWCF.WebHttp/) | [![CoreWCF.WebHttp](https://img.shields.io/nuget/v/CoreWCF.WebHttp.svg)](https://www.nuget.org/packages/CoreWCF.WebHttp/) | [![CoreWCF.WebHttp](https://img.shields.io/nuget/dt/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/) | [![AWS.CoreWCF.Extensions](https://img.shields.io/nuget/v/AWS.CoreWCF.Extensions.svg)](https://www.nuget.org/packages/AWS.CoreWCF.Extensions/) | [![AWS.CoreWCF.Extensions](https://img.shields.io/nuget/dt/AWS.CoreWCF.Extensions)](https://www.nuget.org/packages/AWS.CoreWCF.Extensions/) |
| [AWS.WCF.Extensions](https://www.nuget.org/packages/AWS.WCF.Extensions/) | [![AWS.WCF.Extensions](https://img.shields.io/nuget/v/AWS.WCF.Extensions.svg)](https://www.nuget.org/packages/AWS.WCF.Extensions/) | [![AWS.WCF.Extensions](https://img.shields.io/nuget/dt/AWS.WCF.Extensions)](https://www.nuget.org/packages/AWS.WCF.Extensions/) |### Code Quality
[![SonarCloud](https://sonarcloud.io/images/project_badges/sonarcloud-white.svg)](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).