/gedcomx-csharp

C# Libraries for GEDCOM X Processing

Primary LanguageC#Apache License 2.0Apache-2.0

⚠️ This project is no longer maintained. The community is welcome to contribute.

Welcome

This project hosts the C# implementation of GEDCOM X and related extensions. The modules of this project each address specific aspects of the GEDCOM X Specification Set, including:

Data Models

The Gedcomx.Model subproject provides C# classes that correspond to the data types defined by the GEDCOM X Conceptual Model. These classes are instrumented such that they can be used to read and write both XML and JSON.

For more information about GEDCOM X data models, see the Gedcomx.Model module.

GEDCOM X Web Services

The Gedcomx.Rs.Api module provides support for reading from and writing to a GEDCOM X Web service API that conforms to the GEDCOM X RS Specification.

Reading and Writing XML and JSON

The [Gedcomx.File](./GEDCOM X File/README.md) subproject provides support for reading and writing the GEDCOM X File Format.

For more information about reading and writing GEDCOM X files, see [GEDCOM X File](./GEDCOM X File/README.md).

Note: The GEDCOM X File project is responsible for managing all reading and writing to and from XML or JSON, and is the module responsible for all API serialization.

GEDCOM X Extensions

The extensions module provides a place for extensions to GEDCOM X. FamilySearch has defined a set of extensions to the GEDCOM X Conceptual Model and to the GEDCOM X RS specification that comprise the definition of the FamilySearch API.

The FamilySearch API Client comprises the developer SDK for the FamilySearch API.

Here's how you might use this project.

NuGet

The GEDCOM X C# artifacts are provided via NuGet.

There are a total of 7 packages, which you can use in anyway you need.

NuGet Package Id Purpose Notes
FamilySearch.API.SDK This is the main SDK library, and encompasses the ability to work with generic GEDCOM X and FamilySearch specific GEDCOM X data. This is the FamilySearch GEDCOM X SDK. Use this project to perform all GEDCOM X operations supported by FamilySearch, or generic GEDCOM X operations. If you're unsure which library to use, this is the one to use.
Gedcomx.Model Contains the models for GEDCOM X data. Use this by itself to just work with the GEDCOM X models and data, and not any web services or files.
Gedcomx.Model.Fs Contains FamilySearch specific GEDCOM X model extensions. Use this by itself to just work with the GEDCOM X FamilySearch extension models and data, and not any web services or files.
Gedcomx.Model.Rs Contains REST specific GEDCOM X model extensions. Use this by itself to just work with the GEDCOM X REST extension models and data, and not any web services or files. (This project adds atom feed models.)
Gedcomx.API.SDK This is the base SDK library, and encompasses the ability to work with GEDCOM X data. This is the core GEDCOM X SDK project. Use this to perform basic GEDCOM X operations.
Gedcomx.File Contains libraries to read and write GEDCOM X files and provides core serialization functionality for all web API communications. Use this by itself to support reading and writing GEDCOM X files (in XML format) or reading and writing GEDCOM X data in serialized format (JSON OR XML), such as in Web API methods.
Gedcomx.Date Contains libraries to work with a variety of GEDCOM X dates and formats. Use this by itself to support GEDCOM X date processing or manipulation.
Finding the Latest Version

To use the latest version of the libraries, visit the NuGet links above.

Build

Prerequisites:

Here's how you could build this project from source:

git clone https://github.com/FamilySearch/gedcomx-csharp.git
cd gedcomx-csharp
nuget restore
msbuild