{"id":21445435,"url":"https://github.com/kathleenwest/myserializationdemowcfappsharedlib","last_synced_at":"2025-07-26T13:38:09.135Z","repository":{"id":116069877,"uuid":"211437712","full_name":"kathleenwest/MySerializationDemoWCFAppSharedLib","owner":"kathleenwest","description":"This project presents a simple, but fun “Adopt a Dog” Service Application. The service provides a factory creational design pattern to create and return a single Dog object (complete with a cute photo). It is hosted using IIS Express to quickly demo and test the service with a client.  The service interface is defined not in the service application but in a Shared Library. The Shared Library also defines the Dog class object with custom serialization using the ISerializable interface implemented on the Dog class. This project is intended to demo custom serialization and a shared library concept between both the service and the client. With the Shared Library concept of both the service interface definition and the Dog class, there is no need to use SVCUTIL or the Service Wizard to create a tightly coupled service reference. Instead, the client uses a simple ChannelFactory concept to build a channel to the service knowing the interface details in the Shared Library. Also, it can understand and work with the Dog objects as specified in the Shared Library.  A client “tester” windows form application tests the service and provides output to the user in a simple GUI.  In addition, a short discussion and code demo of debugging service errors and activity using diagnostics and a trace listener pattern is included in this article. Some of my lessons learned in debugging service errors and custom serialization may help you on your next project.","archived":false,"fork":false,"pushed_at":"2019-09-28T21:40:16.000Z","size":2431,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T01:18:13.523Z","etag":null,"topics":["adopt-a-pet","channelfactory","custom-serialization","debugging","diagnostics","dogs","factory-pattern","iserializable","serialization","service","services","shared-library","wcf","wcf-bindings","wcf-client","wcf-proxies","wcf-proxy","wcf-service","wcf-service-client-demo","windows-form-application"],"latest_commit_sha":null,"homepage":"https://portfolio.katiegirl.net/2019/09/28/wcf-adopt-a-dog-service-application-shared-library-with-custom-serialization-client-tester-windows-form-application/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kathleenwest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"kathleenwest"}},"created_at":"2019-09-28T03:22:08.000Z","updated_at":"2019-09-28T21:46:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"4672eb06-1eb2-4e6f-81d3-a41ce0848130","html_url":"https://github.com/kathleenwest/MySerializationDemoWCFAppSharedLib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kathleenwest/MySerializationDemoWCFAppSharedLib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kathleenwest%2FMySerializationDemoWCFAppSharedLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kathleenwest%2FMySerializationDemoWCFAppSharedLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kathleenwest%2FMySerializationDemoWCFAppSharedLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kathleenwest%2FMySerializationDemoWCFAppSharedLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kathleenwest","download_url":"https://codeload.github.com/kathleenwest/MySerializationDemoWCFAppSharedLib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kathleenwest%2FMySerializationDemoWCFAppSharedLib/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267175728,"owners_count":24047917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adopt-a-pet","channelfactory","custom-serialization","debugging","diagnostics","dogs","factory-pattern","iserializable","serialization","service","services","shared-library","wcf","wcf-bindings","wcf-client","wcf-proxies","wcf-proxy","wcf-service","wcf-service-client-demo","windows-form-application"],"created_at":"2024-11-23T02:27:08.098Z","updated_at":"2025-07-26T13:38:09.126Z","avatar_url":"https://github.com/kathleenwest.png","language":"C#","funding_links":["https://github.com/sponsors/kathleenwest"],"categories":[],"sub_categories":[],"readme":"# MySerializationDemoWCFAppSharedLib\n\nWCF “Adopt a Dog” Service Application \u0026 Shared Library with Custom Serialization \u0026 Client \"Tester\" Windows Form Application\n\n\nProject Article here: https://portfolio.katiegirl.net/2019/09/28/wcf-adopt-a-dog-service-application-shared-library-with-custom-serialization-client-tester-windows-form-application/\n\n\nAbout\n\n\nThis project presents a simple, but fun “Adopt a Dog” Service Application. The service provides a factory creational design pattern to create and return a single Dog object (complete with a cute photo). It is hosted using IIS Express to quickly demo and test the service with a client.\nThe service interface is defined not in the service application but in a Shared Library. The Shared Library also defines the Dog class object with custom serialization using the ISerializable interface implemented on the Dog class. This project is intended to demo custom serialization and a shared library concept between both the service and the client. With the Shared Library concept of both the service interface definition and the Dog class, there is no need to use SVCUTIL or the Service Wizard to create a tightly coupled service reference. Instead, the client uses a simple ChannelFactory concept to build a channel to the service knowing the interface details in the Shared Library. Also, it can understand and work with the Dog objects as specified in the Shared Library. \n\nA client “tester” windows form application tests the service and provides output to the user in a simple GUI.  \nIn addition, a short discussion and code demo of debugging service errors and activity using diagnostics and a trace listener pattern is included in this article. Some of my lessons learned in debugging service errors and custom serialization may help you on your next project. \n\n\nArchitecture\n\n\nThe demo project consists of these component topics:\n\n•\tAdopt A Dog WCF Service Application Project “WcfServiceApplication”\no\tAdoptADogService (Code that Implements the Service Interface)\no\tWeb.config (Configuration for Trace Diagnostics on Service)\no\tReference to the Shared Class Library\n\n\n•\tShared Class Library Project “SharedLibrary”\no\tIAdoptADogService (Interface for Service)\no\tDog class (defines a Dog object and Custom Serialization)\no\tPhotos of the Dogs \no\tLogs for Trace Diagnostics \n\n\n•\tClient “Tester to Service” Windows Form Application Project “AdoptADogClient”\no\tReference to the Shared Class Library\no\tMain Form GUI User Interface\no\tForm Code – Processes GUI User Interface\n\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkathleenwest%2Fmyserializationdemowcfappsharedlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkathleenwest%2Fmyserializationdemowcfappsharedlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkathleenwest%2Fmyserializationdemowcfappsharedlib/lists"}