Universe.NetCore.FIAS.Normalizer
1.0.0.100
dotnet add package Universe.NetCore.FIAS.Normalizer --version 1.0.0.100
NuGet\Install-Package Universe.NetCore.FIAS.Normalizer -Version 1.0.0.100
<PackageReference Include="Universe.NetCore.FIAS.Normalizer" Version="1.0.0.100" />
<PackageVersion Include="Universe.NetCore.FIAS.Normalizer" Version="1.0.0.100" />
<PackageReference Include="Universe.NetCore.FIAS.Normalizer" />
paket add Universe.NetCore.FIAS.Normalizer --version 1.0.0.100
#r "nuget: Universe.NetCore.FIAS.Normalizer, 1.0.0.100"
#addin nuget:?package=Universe.NetCore.FIAS.Normalizer&version=1.0.0.100
#tool nuget:?package=Universe.NetCore.FIAS.Normalizer&version=1.0.0.100
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: regions, districts, streets, cities;AsHouses
- houses;Object statuses
- AsActStatuses, AsCenterStatuses, AsOperStatuses, AsStrStatuses;Other FIAS-related tables
- AsVersions, AsAddrObjTypes, where AS - it's meaning Address System.
2. FiasEntity
and Derived Classes
Represents FIAS data structures:
AsAddrObj
– represents for FIAS address objects: regions, districts, streets, cities;AsHouse
– represents house records.
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 houses = db.Houses
.Where(h => h.RegionCode == "63") // 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);
Second sample:
var scope = new UniverseFiasScope(resolver, settings, container);
var searcher = new FiasUtil(scope);
var info = searcher.GetFiasInfo("ул. Молодогвардейская, д.244");
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.