From a6999d268ff51405e80f3aa9388663d4046fef22 Mon Sep 17 00:00:00 2001 From: grandsilence Date: Tue, 15 May 2018 19:20:43 +0300 Subject: [PATCH] Cross platform: target .NET Core 2.0 + UnitTests for both targets. NuGet support. --- .gitignore | 218 +----------------- Icons/icon-1979.png | Bin 0 -> 68006 bytes Icons/icon-300.png | Bin 0 -> 9044 bytes Icons/icon-500.png | Bin 0 -> 14416 bytes Icons/icon.svg | 19 ++ Leaf.Core.Tests/.gitignore | 217 +++++++++++++++++ .../String/StringBetweenExtensionsTests.cs | 8 +- .../String/StringExtensionsTests.cs | 1 - .../String/StringHtmlExtensionsTests.cs | 2 +- Leaf.Core.Tests/Leaf.Core.Tests.csproj | 84 ++----- Leaf.Core.Tests/Properties/AssemblyInfo.cs | 20 -- Leaf.Core.csproj | 61 ----- Leaf.Core.sln | 4 +- Leaf.Core.sln.DotSettings.user | 2 + Leaf.Core/.gitignore | 217 +++++++++++++++++ .../Collections}/Generic/ConcurrentFactory.cs | 1 + .../String/StringBetweenException.cs | 0 .../String/StringBetweenExtensions.cs | 1 - .../String/StringEncodingExtensions.cs | 0 .../Extensions}/String/StringExtensions.cs | 0 .../String/StringHtmlExtensions.cs | 0 .../Extensions}/System/DateTimeExtensions.cs | 0 .../Extensions}/System/TimeSpanExtensions.cs | 0 {IO => Leaf.Core/IO}/BinarySerializer.cs | 0 Leaf.Core/Leaf.Core.csproj | 60 +++++ {Patterns => Leaf.Core/Patterns}/Singleton.cs | 0 .../Serialization/IStringSerializeable.cs | 0 .../Serialization/SplitSerializeable.cs | 0 {Text => Leaf.Core/Text}/StringGenerator.cs | 0 .../Threading}/TaskPanicException.cs | 0 .../Threading}/TaskRepeatException.cs | 0 .../Threading}/TaskSkipException.cs | 0 .../Threading}/ThreadManager.cs | 0 .../Threading}/ThreadSafeUI.cs | 0 Properties/AssemblyInfo.cs | 35 --- Threading/ThreadArgs.cs | 8 - test.txt | 1 - 37 files changed, 538 insertions(+), 421 deletions(-) create mode 100644 Icons/icon-1979.png create mode 100644 Icons/icon-300.png create mode 100644 Icons/icon-500.png create mode 100644 Icons/icon.svg create mode 100644 Leaf.Core.Tests/.gitignore delete mode 100644 Leaf.Core.Tests/Properties/AssemblyInfo.cs delete mode 100644 Leaf.Core.csproj create mode 100644 Leaf.Core.sln.DotSettings.user create mode 100644 Leaf.Core/.gitignore rename {Collections => Leaf.Core/Collections}/Generic/ConcurrentFactory.cs (99%) rename {Extensions => Leaf.Core/Extensions}/String/StringBetweenException.cs (100%) rename {Extensions => Leaf.Core/Extensions}/String/StringBetweenExtensions.cs (99%) rename {Extensions => Leaf.Core/Extensions}/String/StringEncodingExtensions.cs (100%) rename {Extensions => Leaf.Core/Extensions}/String/StringExtensions.cs (100%) rename {Extensions => Leaf.Core/Extensions}/String/StringHtmlExtensions.cs (100%) rename {Extensions => Leaf.Core/Extensions}/System/DateTimeExtensions.cs (100%) rename {Extensions => Leaf.Core/Extensions}/System/TimeSpanExtensions.cs (100%) rename {IO => Leaf.Core/IO}/BinarySerializer.cs (100%) create mode 100644 Leaf.Core/Leaf.Core.csproj rename {Patterns => Leaf.Core/Patterns}/Singleton.cs (100%) rename {Runtime => Leaf.Core/Runtime}/Serialization/IStringSerializeable.cs (100%) rename {Runtime => Leaf.Core/Runtime}/Serialization/SplitSerializeable.cs (100%) rename {Text => Leaf.Core/Text}/StringGenerator.cs (100%) rename {Threading => Leaf.Core/Threading}/TaskPanicException.cs (100%) rename {Threading => Leaf.Core/Threading}/TaskRepeatException.cs (100%) rename {Threading => Leaf.Core/Threading}/TaskSkipException.cs (100%) rename {Threading => Leaf.Core/Threading}/ThreadManager.cs (100%) rename {Threading => Leaf.Core/Threading}/ThreadSafeUI.cs (100%) delete mode 100644 Properties/AssemblyInfo.cs delete mode 100644 Threading/ThreadArgs.cs delete mode 100644 test.txt diff --git a/.gitignore b/.gitignore index 68e61ef..d2adc68 100644 --- a/.gitignore +++ b/.gitignore @@ -1,217 +1,3 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -build/ -bld/ -[Bb]in/ -[Oo]bj/ - -# Visual Studio 2015 cache/options directory +packages/ .vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# DNX -project.lock.json -artifacts/ - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf -*.cachefile - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config - -# Windows Azure Build Output -csx/ -*.build.csdef - -# Windows Store app package directory -AppPackages/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -[Ss]tyle[Cc]op.* -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.pfx -*.publishsettings -node_modules/ -orleans.codegen.cs - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions \ No newline at end of file +TestResults/ diff --git a/Icons/icon-1979.png b/Icons/icon-1979.png new file mode 100644 index 0000000000000000000000000000000000000000..51d018aac76d854393f1d080ba1c44b4e6152f43 GIT binary patch literal 68006 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 literal 0 HcmV?d00001 diff --git a/Icons/icon-300.png b/Icons/icon-300.png new file mode 100644 index 0000000000000000000000000000000000000000..69aedf49002b000eddddb58d98a101876a887857 GIT binary patch literal 9044 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 + + + + + + + + + + diff --git a/Leaf.Core.Tests/.gitignore b/Leaf.Core.Tests/.gitignore new file mode 100644 index 0000000..68e61ef --- /dev/null +++ b/Leaf.Core.Tests/.gitignore @@ -0,0 +1,217 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions \ No newline at end of file diff --git a/Leaf.Core.Tests/Extensions/String/StringBetweenExtensionsTests.cs b/Leaf.Core.Tests/Extensions/String/StringBetweenExtensionsTests.cs index 5e83ed7..865f84a 100644 --- a/Leaf.Core.Tests/Extensions/String/StringBetweenExtensionsTests.cs +++ b/Leaf.Core.Tests/Extensions/String/StringBetweenExtensionsTests.cs @@ -1,14 +1,8 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -using Leaf.Core.Extensions.String; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Leaf.Core.Extensions.String.Tests { - [TestClass()] + [TestClass] public class StringBetweenExtensionsTests { private const string BetweenLeft = "

"; diff --git a/Leaf.Core.Tests/Extensions/String/StringExtensionsTests.cs b/Leaf.Core.Tests/Extensions/String/StringExtensionsTests.cs index d4e8935..87b81fd 100644 --- a/Leaf.Core.Tests/Extensions/String/StringExtensionsTests.cs +++ b/Leaf.Core.Tests/Extensions/String/StringExtensionsTests.cs @@ -1,5 +1,4 @@ using System; -using Leaf.Core.Extensions.String; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace Leaf.Core.Extensions.String.Tests diff --git a/Leaf.Core.Tests/Extensions/String/StringHtmlExtensionsTests.cs b/Leaf.Core.Tests/Extensions/String/StringHtmlExtensionsTests.cs index 39d0358..752880c 100644 --- a/Leaf.Core.Tests/Extensions/String/StringHtmlExtensionsTests.cs +++ b/Leaf.Core.Tests/Extensions/String/StringHtmlExtensionsTests.cs @@ -3,7 +3,7 @@ namespace Leaf.Core.Extensions.String.Tests { - [TestClass()] + [TestClass] public class StringHtmlExtensionsTests { private readonly string[] _htmlItems = { diff --git a/Leaf.Core.Tests/Leaf.Core.Tests.csproj b/Leaf.Core.Tests/Leaf.Core.Tests.csproj index 357e6f6..cde83b9 100644 --- a/Leaf.Core.Tests/Leaf.Core.Tests.csproj +++ b/Leaf.Core.Tests/Leaf.Core.Tests.csproj @@ -1,76 +1,24 @@ - - - + + - Debug - AnyCPU - {BF41594D-3A6E-44EB-9E27-F9AC4852C7AC} - Library - Properties - Leaf.Core.Tests - Leaf.Core.Tests - v4.6.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + net462;netcoreapp2.0 + + false + - - ..\packages\MSTest.TestFramework.1.2.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - - - ..\packages\MSTest.TestFramework.1.2.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - + + + + + + + - - - - - - - - - - - - {BA0C7F23-B1E8-43FD-8ACD-3BC7B4154B8D} - Leaf.Core - + - - - - - Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их. Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}. - - - - - - \ No newline at end of file + + diff --git a/Leaf.Core.Tests/Properties/AssemblyInfo.cs b/Leaf.Core.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 500986d..0000000 --- a/Leaf.Core.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("Leaf.Core.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Leaf.Core.Tests")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -[assembly: ComVisible(false)] - -[assembly: Guid("bf41594d-3a6e-44eb-9e27-f9ac4852c7ac")] - -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Leaf.Core.csproj b/Leaf.Core.csproj deleted file mode 100644 index a78a209..0000000 --- a/Leaf.Core.csproj +++ /dev/null @@ -1,61 +0,0 @@ - - - - - Debug - AnyCPU - {BA0C7F23-B1E8-43FD-8ACD-3BC7B4154B8D} - Library - Properties - Leaf.Core - Leaf.Core - v4.6.2 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Leaf.Core.xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Leaf.Core.sln b/Leaf.Core.sln index 6795372..4f7b8b1 100644 --- a/Leaf.Core.sln +++ b/Leaf.Core.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.27428.2043 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Leaf.Core", "Leaf.Core.csproj", "{BA0C7F23-B1E8-43FD-8ACD-3BC7B4154B8D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Leaf.Core", "Leaf.Core\Leaf.Core.csproj", "{BA0C7F23-B1E8-43FD-8ACD-3BC7B4154B8D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Leaf.Core.Tests", "Leaf.Core.Tests\Leaf.Core.Tests.csproj", "{BF41594D-3A6E-44EB-9E27-F9AC4852C7AC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Leaf.Core.Tests", "Leaf.Core.Tests\Leaf.Core.Tests.csproj", "{BF41594D-3A6E-44EB-9E27-F9AC4852C7AC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Leaf.Core.sln.DotSettings.user b/Leaf.Core.sln.DotSettings.user new file mode 100644 index 0000000..446d0e6 --- /dev/null +++ b/Leaf.Core.sln.DotSettings.user @@ -0,0 +1,2 @@ + + 2 \ No newline at end of file diff --git a/Leaf.Core/.gitignore b/Leaf.Core/.gitignore new file mode 100644 index 0000000..68e61ef --- /dev/null +++ b/Leaf.Core/.gitignore @@ -0,0 +1,217 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions \ No newline at end of file diff --git a/Collections/Generic/ConcurrentFactory.cs b/Leaf.Core/Collections/Generic/ConcurrentFactory.cs similarity index 99% rename from Collections/Generic/ConcurrentFactory.cs rename to Leaf.Core/Collections/Generic/ConcurrentFactory.cs index 8586623..a6e6990 100644 --- a/Collections/Generic/ConcurrentFactory.cs +++ b/Leaf.Core/Collections/Generic/ConcurrentFactory.cs @@ -3,6 +3,7 @@ using System.Collections.Concurrent; using Leaf.Core.Runtime.Serialization; using Leaf.Core.Threading; +// ReSharper disable UnusedMember.Global namespace Leaf.Core.Collections.Generic { diff --git a/Extensions/String/StringBetweenException.cs b/Leaf.Core/Extensions/String/StringBetweenException.cs similarity index 100% rename from Extensions/String/StringBetweenException.cs rename to Leaf.Core/Extensions/String/StringBetweenException.cs diff --git a/Extensions/String/StringBetweenExtensions.cs b/Leaf.Core/Extensions/String/StringBetweenExtensions.cs similarity index 99% rename from Extensions/String/StringBetweenExtensions.cs rename to Leaf.Core/Extensions/String/StringBetweenExtensions.cs index 5e288b9..0b6063b 100644 --- a/Extensions/String/StringBetweenExtensions.cs +++ b/Leaf.Core/Extensions/String/StringBetweenExtensions.cs @@ -119,7 +119,6 @@ public static string[] BetweensEx(this string self, string left, string right, #endregion - #region Between - Вырезание одной подстроки. Прямой порядок (слева направо) /// diff --git a/Extensions/String/StringEncodingExtensions.cs b/Leaf.Core/Extensions/String/StringEncodingExtensions.cs similarity index 100% rename from Extensions/String/StringEncodingExtensions.cs rename to Leaf.Core/Extensions/String/StringEncodingExtensions.cs diff --git a/Extensions/String/StringExtensions.cs b/Leaf.Core/Extensions/String/StringExtensions.cs similarity index 100% rename from Extensions/String/StringExtensions.cs rename to Leaf.Core/Extensions/String/StringExtensions.cs diff --git a/Extensions/String/StringHtmlExtensions.cs b/Leaf.Core/Extensions/String/StringHtmlExtensions.cs similarity index 100% rename from Extensions/String/StringHtmlExtensions.cs rename to Leaf.Core/Extensions/String/StringHtmlExtensions.cs diff --git a/Extensions/System/DateTimeExtensions.cs b/Leaf.Core/Extensions/System/DateTimeExtensions.cs similarity index 100% rename from Extensions/System/DateTimeExtensions.cs rename to Leaf.Core/Extensions/System/DateTimeExtensions.cs diff --git a/Extensions/System/TimeSpanExtensions.cs b/Leaf.Core/Extensions/System/TimeSpanExtensions.cs similarity index 100% rename from Extensions/System/TimeSpanExtensions.cs rename to Leaf.Core/Extensions/System/TimeSpanExtensions.cs diff --git a/IO/BinarySerializer.cs b/Leaf.Core/IO/BinarySerializer.cs similarity index 100% rename from IO/BinarySerializer.cs rename to Leaf.Core/IO/BinarySerializer.cs diff --git a/Leaf.Core/Leaf.Core.csproj b/Leaf.Core/Leaf.Core.csproj new file mode 100644 index 0000000..35ff29f --- /dev/null +++ b/Leaf.Core/Leaf.Core.csproj @@ -0,0 +1,60 @@ + + + + + + + Debug + AnyCPU + {BA0C7F23-B1E8-43FD-8ACD-3BC7B4154B8D} + Library + Properties + Leaf.Core + Leaf.Core + net462;netcoreapp2.0 + 512 + true + Grand Silence + Kelog Studio + Leaf + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + bin\$(Configuration)\$(TargetFramework)\Leaf.Core.xml + 1.3.0 + https://github.com/csharp-leaf/Leaf.Core + Git + https://github.com/csharp-leaf + © 2018 Developed by Grand Silence — Kelog Studio + threading,patterns,strings,serialization + + + + + + + + + + + + diff --git a/Patterns/Singleton.cs b/Leaf.Core/Patterns/Singleton.cs similarity index 100% rename from Patterns/Singleton.cs rename to Leaf.Core/Patterns/Singleton.cs diff --git a/Runtime/Serialization/IStringSerializeable.cs b/Leaf.Core/Runtime/Serialization/IStringSerializeable.cs similarity index 100% rename from Runtime/Serialization/IStringSerializeable.cs rename to Leaf.Core/Runtime/Serialization/IStringSerializeable.cs diff --git a/Runtime/Serialization/SplitSerializeable.cs b/Leaf.Core/Runtime/Serialization/SplitSerializeable.cs similarity index 100% rename from Runtime/Serialization/SplitSerializeable.cs rename to Leaf.Core/Runtime/Serialization/SplitSerializeable.cs diff --git a/Text/StringGenerator.cs b/Leaf.Core/Text/StringGenerator.cs similarity index 100% rename from Text/StringGenerator.cs rename to Leaf.Core/Text/StringGenerator.cs diff --git a/Threading/TaskPanicException.cs b/Leaf.Core/Threading/TaskPanicException.cs similarity index 100% rename from Threading/TaskPanicException.cs rename to Leaf.Core/Threading/TaskPanicException.cs diff --git a/Threading/TaskRepeatException.cs b/Leaf.Core/Threading/TaskRepeatException.cs similarity index 100% rename from Threading/TaskRepeatException.cs rename to Leaf.Core/Threading/TaskRepeatException.cs diff --git a/Threading/TaskSkipException.cs b/Leaf.Core/Threading/TaskSkipException.cs similarity index 100% rename from Threading/TaskSkipException.cs rename to Leaf.Core/Threading/TaskSkipException.cs diff --git a/Threading/ThreadManager.cs b/Leaf.Core/Threading/ThreadManager.cs similarity index 100% rename from Threading/ThreadManager.cs rename to Leaf.Core/Threading/ThreadManager.cs diff --git a/Threading/ThreadSafeUI.cs b/Leaf.Core/Threading/ThreadSafeUI.cs similarity index 100% rename from Threading/ThreadSafeUI.cs rename to Leaf.Core/Threading/ThreadSafeUI.cs diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs deleted file mode 100644 index a0c7683..0000000 --- a/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// Общие сведения об этой сборке предоставляются следующим набором -// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, -// связанные со сборкой. -[assembly: AssemblyTitle("Leaf.Core")] -[assembly: AssemblyDescription("https://github.com/csharp-leaf/Leaf.Core")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Kelog Studio")] -[assembly: AssemblyProduct("Leaf.Core")] -[assembly: AssemblyCopyright("Copyright © 2018. Developed by Grand Silence, Kelog Studio")] -[assembly: AssemblyTrademark("Kelog™")] -[assembly: AssemblyCulture("")] - -// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми -// для компонентов COM. Если необходимо обратиться к типу в этой сборке через -// COM, задайте атрибуту ComVisible значение TRUE для этого типа. -[assembly: ComVisible(false)] - -// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM -[assembly: Guid("ba0c7f23-b1e8-43fd-8acd-3bc7b4154b8d")] - -// Сведения о версии сборки состоят из следующих четырех значений: -// -// Основной номер версии -// Дополнительный номер версии -// Номер сборки -// Редакция -// -// Можно задать все значения или принять номер сборки и номер редакции по умолчанию. -// используя "*", как показано ниже: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.0.0")] -[assembly: AssemblyFileVersion("2.0.0.0")] diff --git a/Threading/ThreadArgs.cs b/Threading/ThreadArgs.cs deleted file mode 100644 index 758d779..0000000 --- a/Threading/ThreadArgs.cs +++ /dev/null @@ -1,8 +0,0 @@ -// ReSharper disable UnusedMember.Global - -namespace Leaf.Core.Threading -{ - public abstract class ThreadArgs - { - } -} diff --git a/test.txt b/test.txt deleted file mode 100644 index 30d74d2..0000000 --- a/test.txt +++ /dev/null @@ -1 +0,0 @@ -test \ No newline at end of file