Implement protobuf serialization and component updates #495
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements the full protobuf serialization system and includes various component updates. It is a stacked PR that builds on top of #493 (protobuf infrastructure) and must be merged after that PR is completed.
Depends on: #493 (Add protobuf serialization infrastructure)
Related Pro PR: https://github.com/dymaptic/GeoBlazor.Pro/pull/219 - These PRs should be reviewed together as they contain coordinated changes across both repositories.
What's Included
Protobuf Serialization Implementation (PR 1.5 from divergence analysis)
Geometry & Graphics Enhancements
Geometry.cs,Point.cs,Polygon.cs,Polyline.cs,Extent.cswith protobuf supportGraphic.cswith improved serializationSymbol.csand derived symbol classesMesh Geometry Support (3D)
MeshComponent.csandMeshComponent.gb.cs- Base mesh componentMeshMaterial.cs/.gb.cs- Mesh material definitionsMeshMaterialMetallicRoughness.cs/.gb.cs- PBR material supportMeshTexture.cs- Texture handlingMeshTextureTransform.cs/.gb.cs- Texture transformationMeshTransform.cs/.gb.cs- Mesh spatial transformsMeshVertexAttributes.cs/.gb.cs- Vertex attribute definitionsMeshGeoreferencedVertexSpace.cs,MeshLocalVertexSpace.cs- Vertex space typesPopup System Updates
PopupContent.cs,PopupTemplate.cs,PopupExpressionInfo.csComponent Updates
MapView.razor.cs- Enhanced view with protobuf supportMapComponent.razor.cs- Base component updatesSource Generator Updates
ProtobufSourceGenerator.csCoreSourceGeneratorTests.cswith comprehensive test coverageESBuildLauncherTests.csRoslynUtility.csfor test utilitiesTypeScript Updates
arcGisJsInterop.ts- Major updates for protobuf integrationbaseComponent.ts- New base component utilitiesgeoBlazorCore.ts- Core module updatesmapView.ts- MapView TypeScript enhancementsgraphic.ts- Graphic handling updatesPerformance Benefits
Binary serialization via protobuf-net provides significant improvements for Blazor Server scenarios:
Relationship to PR Series
This PR is part of a planned series to merge changes from
feature/478-multipart-operatorincrementally (see BRANCH_DIVERGENCE_ANALYSIS.md):Statistics
Test Plan
ran testscommit)Review Notes
Please review this PR alongside the Pro PR:
The mesh component additions in this PR correspond to mesh component removals in the Pro PR (moved from Pro to Core).
🤖 Generated with Claude Code