1- <?xml version =" 1.0" encoding =" utf-8" ?>
2- <Project ToolsVersion =" 15.0" xmlns =" http://schemas.microsoft.com/developer/msbuild/2003" >
3- <Import Project =" $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition =" Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
1+ <Project Sdk =" Microsoft.NET.Sdk" >
2+
43 <PropertyGroup >
5- <Configuration Condition =" '$(Configuration)' == '' " >Debug</Configuration >
6- <Platform Condition =" '$(Platform)' == '' " >AnyCPU</Platform >
7- <ProjectGuid >{6C3664E2-AA85-410C-BA2C-81BFFF33B9DE}</ProjectGuid >
8- <OutputType >Library</OutputType >
9- <AppDesignerFolder >Properties</AppDesignerFolder >
10- <RootNamespace >TableStorage.Abstractions.POCO</RootNamespace >
11- <AssemblyName >TableStorage.Abstractions.POCO</AssemblyName >
12- <TargetFrameworkVersion >v4.6.2</TargetFrameworkVersion >
13- <FileAlignment >512</FileAlignment >
14- <TargetFrameworkProfile />
4+ <TargetFramework >netstandard2.0</TargetFramework >
5+ <Version >2.0.0</Version >
6+ <Authors >Giovanni Galbo</Authors >
7+ <Company >Giovanni Galbo</Company >
8+ <Description >Easily convert POCOs (Plain Old CLR Objects) to Azure Table Storage TableEntities and vice versa
9+
10+ The Azure Storage SDK requires that objects that it works with to implement the ITableEntity interface. This puts us into one of two places that are often not desirable:
11+
12+ You implement the ITableEntity interace, or inherit from TableEntity. This is easy, but now you've got a leaky abstraction, as well as properties that won't make much sense in your domain (e.g. instead of a UserId, you've now got a RowKey, of the wrong type), or you have fields that are out of place, like ETag and Timestamp.
13+ You create DTOs to save to ship data back and forth from the domain to Table Storage. This is a common style, but often is overkill, especially if we're just looking for a simple abstraction on top of Azure Table Storage.
14+ This simple library seeks to take care of the mapping for us, so that you can continue to write your domain objects as POCOs, while still being able to leverage the Azure Storage SDK.
15+
16+ The library will convert simple properties to fields in Azure Table Storage. Complex types will serialize as json.</Description >
17+ <Copyright >© Giovanni Galbo 2019</Copyright >
18+ <PackageLicenseUrl >https://github.com/giometrix/TableStorage.Abstractions.POCO/blob/master/LICENSE</PackageLicenseUrl >
19+ <PackageProjectUrl >https://github.com/giometrix/TableStorage.Abstractions.POCO</PackageProjectUrl >
20+ <RepositoryUrl >https://github.com/giometrix/TableStorage.Abstractions.POCO</RepositoryUrl >
21+ <PackageTags >table-storage azure-table-storage poco table-entities tableentity</PackageTags >
22+ <PackageReleaseNotes >support for .net core. updated nuget references to latest</PackageReleaseNotes >
1523 </PropertyGroup >
16- <PropertyGroup Condition =" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " >
17- <DebugSymbols >true</DebugSymbols >
18- <DebugType >full</DebugType >
19- <Optimize >false</Optimize >
20- <OutputPath >bin\Debug\</OutputPath >
21- <DefineConstants >DEBUG;TRACE</DefineConstants >
22- <ErrorReport >prompt</ErrorReport >
23- <WarningLevel >4</WarningLevel >
24- </PropertyGroup >
25- <PropertyGroup Condition =" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " >
26- <DebugType >pdbonly</DebugType >
27- <Optimize >true</Optimize >
28- <OutputPath >bin\Release\</OutputPath >
29- <DefineConstants >TRACE</DefineConstants >
30- <ErrorReport >prompt</ErrorReport >
31- <WarningLevel >4</WarningLevel >
32- </PropertyGroup >
33- <ItemGroup >
34- <Reference Include =" FluentValidation, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7de548da2fbae0f0, processorArchitecture=MSIL" >
35- <HintPath >..\packages\FluentValidation.8.1.2\lib\net45\FluentValidation.dll</HintPath >
36- </Reference >
37- <Reference Include =" Microsoft.Azure.KeyVault.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" >
38- <HintPath >..\packages\Microsoft.Azure.KeyVault.Core.3.0.1\lib\net452\Microsoft.Azure.KeyVault.Core.dll</HintPath >
39- </Reference >
40- <Reference Include =" Microsoft.Data.Edm, Version=5.8.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" >
41- <HintPath >..\packages\Microsoft.Data.Edm.5.8.4\lib\net40\Microsoft.Data.Edm.dll</HintPath >
42- </Reference >
43- <Reference Include =" Microsoft.Data.OData, Version=5.8.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" >
44- <HintPath >..\packages\Microsoft.Data.OData.5.8.4\lib\net40\Microsoft.Data.OData.dll</HintPath >
45- </Reference >
46- <Reference Include =" Microsoft.Data.Services.Client, Version=5.8.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" >
47- <HintPath >..\packages\Microsoft.Data.Services.Client.5.8.4\lib\net40\Microsoft.Data.Services.Client.dll</HintPath >
48- </Reference >
49- <Reference Include =" Microsoft.WindowsAzure.Storage, Version=9.3.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" >
50- <HintPath >..\packages\WindowsAzure.Storage.9.3.3\lib\net45\Microsoft.WindowsAzure.Storage.dll</HintPath >
51- </Reference >
52- <Reference Include =" Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL" >
53- <HintPath >..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath >
54- </Reference >
55- <Reference Include =" System" />
56- <Reference Include =" System.ComponentModel.Annotations, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" >
57- <HintPath >..\packages\System.ComponentModel.Annotations.4.5.0\lib\net461\System.ComponentModel.Annotations.dll</HintPath >
58- </Reference >
59- <Reference Include =" System.ComponentModel.DataAnnotations" />
60- <Reference Include =" System.ComponentModel.Primitives, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" >
61- <HintPath >..\packages\System.ComponentModel.Primitives.4.3.0\lib\net45\System.ComponentModel.Primitives.dll</HintPath >
62- <Private >True</Private >
63- <Private >True</Private >
64- </Reference >
65- <Reference Include =" System.Core" />
66- <Reference Include =" System.Reactive, Version=4.1.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" >
67- <HintPath >..\packages\System.Reactive.4.1.2\lib\net46\System.Reactive.dll</HintPath >
68- </Reference >
69- <Reference Include =" System.Reactive.Core, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" >
70- <HintPath >..\packages\System.Reactive.Core.4.1.2\lib\net46\System.Reactive.Core.dll</HintPath >
71- </Reference >
72- <Reference Include =" System.Reactive.Interfaces, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" >
73- <HintPath >..\packages\System.Reactive.Interfaces.4.1.2\lib\net46\System.Reactive.Interfaces.dll</HintPath >
74- </Reference >
75- <Reference Include =" System.Reactive.Linq, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" >
76- <HintPath >..\packages\System.Reactive.Linq.4.1.2\lib\net46\System.Reactive.Linq.dll</HintPath >
77- </Reference >
78- <Reference Include =" System.Reactive.PlatformServices, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" >
79- <HintPath >..\packages\System.Reactive.PlatformServices.4.1.2\lib\net46\System.Reactive.PlatformServices.dll</HintPath >
80- </Reference >
81- <Reference Include =" System.Reactive.Windows.Threading, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL" >
82- <HintPath >..\packages\System.Reactive.Windows.Threading.4.1.2\lib\net46\System.Reactive.Windows.Threading.dll</HintPath >
83- </Reference >
84- <Reference Include =" System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" >
85- <HintPath >..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath >
86- </Reference >
87- <Reference Include =" System.Spatial, Version=5.8.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" >
88- <HintPath >..\packages\System.Spatial.5.8.4\lib\net40\System.Spatial.dll</HintPath >
89- </Reference >
90- <Reference Include =" System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" >
91- <HintPath >..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath >
92- </Reference >
93- <Reference Include =" System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL" >
94- <HintPath >..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath >
95- </Reference >
96- <Reference Include =" System.Windows" />
97- <Reference Include =" System.Windows.Forms" />
98- <Reference Include =" System.Xml.Linq" />
99- <Reference Include =" System.Data.DataSetExtensions" />
100- <Reference Include =" Microsoft.CSharp" />
101- <Reference Include =" System.Data" />
102- <Reference Include =" System.Net.Http" />
103- <Reference Include =" System.Xml" />
104- <Reference Include =" TableStorage.Abstractions, Version=2.1.2.0, Culture=neutral, processorArchitecture=MSIL" >
105- <HintPath >..\packages\TableStorage.Abstractions.2.1.2\lib\net461\TableStorage.Abstractions.dll</HintPath >
106- </Reference >
107- <Reference Include =" TableStorage.Abstractions.TableEntityConverters, Version=1.1.4.0, Culture=neutral, processorArchitecture=MSIL" >
108- <HintPath >..\packages\TableStorage.Abstractions.TableEntityConverters.1.1.4\lib\net462\TableStorage.Abstractions.TableEntityConverters.dll</HintPath >
109- </Reference >
110- <Reference Include =" Useful.Extensions, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL" >
111- <HintPath >..\packages\Useful.Extensions.2.2.0\lib\net461\Useful.Extensions.dll</HintPath >
112- </Reference >
113- <Reference Include =" WindowsBase" />
114- </ItemGroup >
24+
11525 <ItemGroup >
116- <Compile Include =" CalculatedKeyMapper.cs" />
117- <Compile Include =" CalculatedKeysConverter.cs" />
118- <Compile Include =" FixedKeyMapper.cs" />
119- <Compile Include =" IPocoTableStore.cs" />
120- <Compile Include =" KeyMapper.cs" />
121- <Compile Include =" SimpleKeysConverter.cs" />
122- <Compile Include =" IKeysConverter.cs" />
123- <Compile Include =" PocoTableStore.cs" />
124- <Compile Include =" Properties\AssemblyInfo.cs" />
26+ <PackageReference Include =" System.Reactive" Version =" 4.1.2" />
27+ <PackageReference Include =" TableStorage.Abstractions.TableEntityConverters" Version =" 1.1.4" />
28+ <PackageReference Include =" Useful.Extensions" Version =" 2.2.0" />
12529 </ItemGroup >
30+
12631 <ItemGroup >
127- <None Include =" app.config" />
128- <None Include =" packages.config" />
32+ <ProjectReference Include =" ..\TableStorage.Abstractions\TableStorage.Abstractions.csproj" />
12933 </ItemGroup >
130- < Import Project = " $(MSBuildToolsPath)\Microsoft.CSharp.targets " />
131- </Project >
34+
35+ </Project >
0 commit comments