Universe.NetCore.FIAS.Normalizer
1.0.0
See the version list below for details.
dotnet add package Universe.NetCore.FIAS.Normalizer --version 1.0.0
NuGet\Install-Package Universe.NetCore.FIAS.Normalizer -Version 1.0.0
<PackageReference Include="Universe.NetCore.FIAS.Normalizer" Version="1.0.0" />
<PackageVersion Include="Universe.NetCore.FIAS.Normalizer" Version="1.0.0" />
<PackageReference Include="Universe.NetCore.FIAS.Normalizer" />
paket add Universe.NetCore.FIAS.Normalizer --version 1.0.0
#r "nuget: Universe.NetCore.FIAS.Normalizer, 1.0.0"
#addin nuget:?package=Universe.NetCore.FIAS.Normalizer&version=1.0.0
#tool nuget:?package=Universe.NetCore.FIAS.Normalizer&version=1.0.0
Universe.FIAS
The Universe.FIAS project is a .NET library designed to work with the Federal Information Address System (FIAS) database in Russia. FIAS is a federal-level address database used for standardizing and managing address data across various systems. This library provides tools to parse, process, and query FIAS data efficiently.
Project Overview
- Purpose: Simplifies interaction with FIAS data (importing, querying, and processing).
- Technology: Built with .NET (C#), using Entity Framework Core for database operations.
- Database Support: Works with PostgreSQL (as indicated by
Npgsql
dependency). - Key Features:
- Parsing FIAS XML data.
- Importing FIAS data into a database.
- Querying address hierarchies (regions, cities, streets, etc.).
- Supporting incremental updates.
Main Classes and Components
The project is structured into several key classes and namespaces:
1. FiasDbContext
(Database Context)
- Inherits from
DbContext
(Entity Framework Core). - Defines database tables (
DbSet<T>
) for FIAS entities like:AddrObjs
(Address Objects)Houses
(Houses)Rooms
(Rooms)Steads
(Land Plots)- Other FIAS-related tables.
2. FiasEntity
and Derived Classes
Represents FIAS data structures:
FiasObject
– Base class for FIAS address objects.FiasHouse
– Represents house records.FiasRoom
– Represents apartment/room records.FiasStead
– Represents land plots.
3. FiasXmlParser
- Handles parsing of FIAS XML files (e.g.,
AS_ADDROBJ.XML
,AS_HOUSES.XML
). - Uses
XmlSerializer
to deserialize data into C# objects.
4. FiasImporter
- Responsible for bulk-importing FIAS data into the database.
- Uses Entity Framework Core for batch inserts.
- Supports incremental updates.
5. FiasService
(or similar query service)
- Provides methods to query FIAS data:
- Get addresses by region/city.
- Search by postal code, GUID, or address text.
- Fetch hierarchical data (e.g., regions → cities → streets).
6. FiasDownloader
(if present)
- Helps download FIAS archives from official sources.
7. FiasExtensions
- Contains helper methods for:
- Normalizing address strings.
- Converting between FIAS GUIDs and database IDs.
Example Usage
// Initialize the database context
using var db = new FiasDbContext();
// Query addresses in a specific region
var moscowHouses = db.Houses
.Where(h => h.RegionCode == "77") // Moscow region code
.ToList();
// Import FIAS data from XML
var parser = new FiasXmlParser();
var objects = parser.Parse("AS_ADDROBJ.XML");
var importer = new FiasImporter(db);
importer.Import(objects);
Dependencies
EntityFrameworkCore
(for database operations)Npgsql.EntityFrameworkCore.PostgreSQL
(PostgreSQL support)System.Xml
(XML parsing)
Conclusion
This library is useful for applications that need to work with Russian address data (e.g., logistics, government systems, CRM). It abstracts the complexities of FIAS XML parsing and database operations, providing a clean API for developers.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
.NETCoreApp 3.1
- Unity (>= 5.11.10)
- Universe.NetCore.CQRS (>= 0.9.3.5)
- Universe.NetCore.DataAccess (>= 0.9.3.5)
- Universe.NetCore.Diagnostic (>= 0.9.3.5)
- Universe.NetCore.Helpers (>= 0.9.3.5)
- Universe.NetCore.IO (>= 0.9.3.5)
- Universe.NetCore.Types (>= 0.9.3.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.