WindnTrees.CRUDS
0.0.21
dotnet add package WindnTrees.CRUDS --version 0.0.21
NuGet\Install-Package WindnTrees.CRUDS -Version 0.0.21
<PackageReference Include="WindnTrees.CRUDS" Version="0.0.21" />
<PackageVersion Include="WindnTrees.CRUDS" Version="0.0.21" />
<PackageReference Include="WindnTrees.CRUDS" />
paket add WindnTrees.CRUDS --version 0.0.21
#r "nuget: WindnTrees.CRUDS, 0.0.21"
#:package WindnTrees.CRUDS@0.0.21
#addin nuget:?package=WindnTrees.CRUDS&version=0.0.21
#tool nuget:?package=WindnTrees.CRUDS&version=0.0.21
CRUD2CRUD (Facade Anti-Facade (Sub-System Independent) Interface Controller System)
WCF CRUD2CRUD API: Develop cross-process and cross-platform distributed applications using WCF (Windows Communication Foundation) CRUD2CRUD API.
Support Websites & Resources:
https://www.invincibletec.com
https://www.invincibletec.com/tutorial/index
http://www.invincibletec.com/tutorial/detail/introduction-to-wcf-cruds
https://github.com/shamszia/windntrees
https://github.com/shamszia/windntrees.nuget.support
https://github.com/shamszia/windntrees.support
Benefits:
- Generalized Communication CRUD2CRUD (CRUDS)
- One interface, no need of multiple service contract interfaces.
- CRUD Repositories for data persistence.
- Extend CRUD repositories with customized functions and integrate in CRUD controllers (CRUD Services) with one IService (or IWCFService).
- Invoke remote methods from clients (ServiceClients CRUDController) by specifying server side method "target" names.
- Support for MVVM desktop application development.
- WCF CRUDS application server.
- Cross-process and cross-platform clients.
- Data communication using synchronous (IService) and asynchronous (IServiceAsync) interface channels.
- Support for event driven response handling.
- Reduced effort and cost of developing multiple service contracts. Think of CRUDL communication with CRUD repository for persistence.
- Reduced complexity and elaborated architecture (CRUDL data communication).
- Distribute applications with simple interfacing model
Code Example:
Following is a server-side Host Services: example. Each service repository is communication and persistence compliant within CRUD2CRUD framework. Learn more about ServiceRepository (or IWCFService Repositories) by example from support links.
StartService("HTTP.Product.IWCFService", typeof(WindnTrees.ICRUDS.IWCFService<Application.Models.Standard.DataAccess.Product>), typeof(Application.WCF.Server.Repositories.ProductRepository), null, "custom.basic.http", "127.0.0.1", "9090", "/product", 1, false);
StartService("HTTP.Product.IWCFService.Secure", typeof(WindnTrees.ICRUDS.IWCFService<Application.Models.Standard.DataAccess.Product>), typeof(Application.WCF.Server.Repositories.ProductRepository), null, "custom.basic.http", "127.0.0.1", "9091", "/secure/product", 1, true);
Following is a client-side Controller example,
private WCFServiceClient<Application.Models.Standard.DataAccess.Product> ProductServiceClient
{
get
{
if (m_ProductServiceClient == null)
{
m_ProductServiceClient = new WCFServiceClient<Application.Models.Standard.DataAccess.Product>(ChannelsAndBindings<Application.Models.Standard.DataAccess.Product>.GetTcpWCFChannelFactory(GetServiceAddress("product")));
m_ProductServiceClient.OnMessage += M_ProductServiceClient_OnMessage;
m_ProductServiceClient.OnObject += M_ProductServiceClient_OnObject;
m_ProductServiceClient.OnContentObject += M_ProductServiceClient_OnContentObject;
m_ProductServiceClient.OnContentObjectList += M_ProductServiceClient_OnContentObjectList;
}
return m_ProductServiceClient;
}
}
ProductServiceClient WCFServiceClient and hosted service repository ProductRepository perform data (Product) communication with their respective automated, integrated processing tasks. CRUDM (CRUDMethod) scales communication requirements without extending interfaces for each new repository method. WCFServiceClient have synchronous, asynchronous and event based data communication and data-object(list)-view integration functionality. Host services and CRUDView WCFServiceClient your forms (winform or wpf).
ProductServiceClient WCFServiceClient is based on IWCFService interface that scales communication and view integration without extending interface.
ProductRepository is a ServiceRepository<> based on IWCFService interface and EntityFramwork repository that centralize conditional and sorting logic reducing code.
WCFServiceClient may be replaced with CRUDView for more specific controlled logic requirements.
public CRUDView<Product> CRUDView
{
get
{
if (m_CRUDView == null)
{
var wcfServiceController = new WCFServiceController<Product>(ConfigurationManager.AppSettings["IPAddress"], ConfigurationManager.AppSettings["TCPTLSPort"], "/secure/adapter/product", "product", true, true);
m_CRUDView = new CRUDView<Product>(wcfServiceController, ControllerType.WCFServiceController, new ProductViewModel());
}
return m_CRUDView;
}
}
public CRUDViewListWindow()
{
InitializeComponent();
CRUDView.CRUDViewModel.ViewInput = new ViewInput { Keyword = "", Page = 1, Size = 10 };
CRUDView.OnViewModel += CRUDView_OnViewModel;
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
- System.Numerics.Vectors (>= 4.5.0)
- System.Private.ServiceModel (>= 4.8.0)
- System.Runtime.CompilerServices.Unsafe (>= 5.0.0)
- System.Security.Cryptography.Xml (>= 5.0.0)
- System.Security.Principal.Windows (>= 5.0.0)
- System.ServiceModel.Primitives (>= 4.8.0)
- WindnTrees.CRUDS.Repository (>= 1.0.8)
- WindnTrees.CRUDS.Repository.Standard (>= 1.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.21 | 701 | 11/7/2022 |
| 0.0.20 | 510 | 11/4/2022 |
| 0.0.19 | 604 | 6/5/2022 |
| 0.0.18 | 599 | 7/12/2021 |
| 0.0.16 | 686 | 11/29/2020 |
| 0.0.15 | 673 | 10/27/2020 |
| 0.0.14 | 640 | 8/26/2020 |
| 0.0.13 | 707 | 8/12/2020 |
| 0.0.12 | 667 | 6/10/2020 |
| 0.0.11 | 711 | 5/18/2020 |
| 0.0.10 | 696 | 1/17/2020 |
| 0.0.6 | 699 | 1/11/2020 |
| 0.0.4 | 749 | 12/20/2019 |
| 0.0.2 | 716 | 12/16/2019 |
Introduces CRUD2CRUD (server side and client side) callback channel support.