Energy.Core
20.12.20
Install-Package Energy.Core -Version 20.12.20
dotnet add package Energy.Core --version 20.12.20
<PackageReference Include="Energy.Core" Version="20.12.20" />
paket add Energy.Core --version 20.12.20
#r "nuget: Energy.Core, 20.12.20"
// Install Energy.Core as a Cake Addin
#addin nuget:?package=Energy.Core&version=20.12.20
// Install Energy.Core as a Cake Tool
#tool nuget:?package=Energy.Core&version=20.12.20
Energy Core Library
Energy.Core is a .NET class library which boosts your program with functionality covering various type conversions, utility classes, database abstraction layer, object mapping and simple application framework.
To be used by wide range of applications, services, web or console programs.
Filled with radioactive rays and made with love for you...
Installation
The easiest way is install using nuget either by finding Energy.Core package in official gallery or by executing command.
Install-Package Energy.Core
Installation package contains versions for .NET 4, .NET Standard / .NET Core and legacy .NET 2. Nuget should choose apropriate version automatically.
For Windows CE development Compact Framework package needs to be downloaded manually from GitHub.
Documentation
http://energy-core.readthedocs.io/
Examples
Safely converting value types
Conversion functions are located in Energy.Base.Cast class. These functions will try to convert value to desired type or use defaults if value cannot be converted.
int numberInt = Energy.Base.Cast.StringToInteger("123");
long numberLong = Energy.Base.Cast.StringToLong("1234567890");
double numberDouble = Energy.Base.Cast.StringToDouble("3.1415"); // or "3,1415"
Console.WriteLine(Energy.Base.Cast.DoubleToString(numberDouble));
Last will always result in culture invariant version "3.1415".
Displaying bytes in pretty format
byte[] array = Energy.Base.Random.GetRandomByteArray(40);
Console.WriteLine(Energy.Base.Hex.Print(array));
Which may result in example output.
2c c5 31 be de 96 fb 5a 76 53 b7 84 2c 09 8d 16 ,.1....ZvS..,...
88 0f c5 6c 50 c3 69 51 48 99 4b 9f 53 00 79 89 ...lP.iQH.K.S y.
1d c9 de c6 4a c9 dc e2 ....J...
This was very basic usage but you may extend it with different formatting options, offsets and even coloring.
Waiting for user input on console
When you call Console.ReadLine() program will stop and wait for user input. If you want to stop only when user enters data, use Energy.Core.Tilde.ReadLine() which will result in null as long as user has not accepted its input by pressing Enter key allowing your program to do its job.
Easily make REST requests
How about:
string url = "https://www.google.com/search?q=Energy";
Console.WriteLine(Energy.Core.Web.Get(url).Body);
Easy to use, build upon standard System.Net.WebRequest class REST functions available for common methods like GET, POST, PUT, PATCH, DELETE, HEAD or OPTIONS.
Generic SQL database connection
Here database connection is made using general connection class cooperating with each ADO.NET provider of the database connection.
Energy.Source.Connection<MySql.Data.MySqlClient.MySqlConnection> db
= new Energy.Source.Connection<MySql.Data.MySqlClient.MySqlConnection>();
db.ConnectionString = @"Server=127.0.0.1;Database=test;Uid=test;Pwd=test;";
if (!db.Test())
{
Console.WriteLine("Connection test error");
}
else
{
string result = db.Scalar<string>("SELECT CURRENT_TIMESTAMP()");
Console.WriteLine("Current server time is: {0}", result);
}
Connections are thread safe, may be cloned or even set to be persistent if you want to limit connections to your SQL database.
Content
Library has been divided into several different namespaces. Following table briefly describes the purpose of each of them.
- Energy.Base - Contains base classes
- Energy.Core - Library functions
- Energy.Attribute - Attributes
- Energy.Enumeration - Enumerations
- Energy.Interface - Interfaces
- Energy.Source - Database connection
History
Working for many years on different development projects, from simple applications, web applicatons, to a rich and monolithic production environment with plenty of small software programs that act as interfaces and all kinds of small services, as most of you have probably noticed that some part of the functionality is repeated to a greater or lesser extent regardless of the project type.
This library was created completely independently from my professional work as an attempt to build a "base", which can be quickly used in almost any project in order not to repeat again the same codes to achieve functionality like safe (international) type conversion or generic database connection which is easy and most importantly safe to use.
Greetings
To be continued...
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net20 net35 net40 net403 net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETFramework 2.0
- No dependencies.
-
.NETFramework 3.5
- No dependencies.
-
.NETFramework 4.0
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
20.12.20 | 746 | 12/1/2021 |
20.12.19 | 274 | 11/7/2021 |
20.12.18 | 201 | 10/20/2021 |
20.12.17 | 171 | 10/6/2021 |
20.12.16 | 579 | 4/12/2021 |
20.12.15 | 234 | 2/25/2021 |
20.12.14 | 233 | 2/6/2021 |
20.12.13 | 231 | 1/31/2021 |
20.12.12 | 234 | 1/22/2021 |
20.12.11 | 241 | 1/17/2021 |
20.12.10 | 270 | 12/30/2020 |
18.12.35 | 292 | 12/20/2020 |
18.12.34 | 274 | 11/21/2020 |
18.12.33 | 304 | 10/20/2020 |
18.12.32 | 400 | 9/16/2020 |
18.12.31 | 319 | 8/20/2020 |
18.12.30 | 290 | 8/11/2020 |
18.12.29 | 337 | 5/27/2020 |
18.12.28 | 358 | 5/22/2020 |
18.12.27 | 320 | 5/13/2020 |
18.12.26 | 322 | 5/12/2020 |
18.12.25 | 356 | 5/5/2020 |
18.12.24 | 357 | 4/30/2020 |
18.12.23 | 375 | 4/1/2020 |
18.12.22 | 412 | 3/21/2020 |
18.12.21 | 340 | 3/8/2020 |
18.12.20 | 350 | 2/20/2020 |
18.12.19 | 450 | 2/16/2020 |
18.12.18 | 399 | 2/3/2020 |
18.12.17 | 361 | 1/31/2020 |
18.12.16 | 361 | 1/29/2020 |
18.12.15 | 392 | 1/20/2020 |
18.12.14 | 365 | 12/1/2019 |
18.12.12 | 375 | 10/17/2019 |
18.12.11 | 388 | 9/19/2019 |
18.12.10 | 392 | 8/13/2019 |
18.12.9 | 429 | 6/2/2019 |
18.12.8 | 424 | 5/26/2019 |
18.12.7 | 476 | 4/18/2019 |
18.12.6 | 446 | 3/26/2019 |
18.12.5 | 432 | 3/25/2019 |
18.12.4 | 427 | 3/7/2019 |
18.12.3 | 474 | 2/27/2019 |
18.12.2 | 609 | 12/2/2018 |
18.12.0 | 555 | 12/1/2018 |
18.11.1 | 540 | 11/17/2018 |
18.11.0 | 539 | 11/4/2018 |
18.10.0 | 598 | 10/10/2018 |
18.8.0 | 710 | 8/10/2018 |
18.7.0 | 636 | 7/31/2018 |
18.5.0 | 809 | 5/15/2018 |
18.3.0 | 824 | 3/24/2018 |
18.1.2 | 818 | 1/31/2018 |
18.1.1 | 989 | 1/23/2018 |
18.1.0 | 789 | 1/17/2018 |
17.12.0 | 773 | 12/29/2017 |
17.11.0 | 706 | 11/2/2017 |
17.10.3 | 686 | 10/20/2017 |
17.10.2 | 694 | 10/12/2017 |
17.10.1 | 707 | 10/10/2017 |
17.10.0 | 683 | 10/7/2017 |
17.9.4 | 693 | 9/27/2017 |
17.9.3 | 731 | 9/21/2017 |
17.9.2 | 700 | 9/17/2017 |
17.9.1 | 739 | 9/10/2017 |
17.9.0 | 696 | 9/6/2017 |
17.7.0 | 733 | 7/31/2017 |
17.6.0 | 738 | 6/30/2017 |
17.5.0 | 765 | 5/21/2017 |
16.10.0 | 769 | 3/1/2017 |
16.6.0 | 1,072 | 6/11/2016 |
16.5.0 | 778 | 5/19/2016 |
16.4.9 | 788 | 4/27/2016 |
16.4.8 | 877 | 4/24/2016 |
16.4.6 | 792 | 4/16/2016 |
16.4.5 | 775 | 4/13/2016 |
16.4.4 | 819 | 4/9/2016 |
16.4.3 | 822 | 4/9/2016 |
16.4.2 | 813 | 4/6/2016 |
16.4.1 | 777 | 4/2/2016 |
16.3.2 | 793 | 3/31/2016 |
16.3.1 | 811 | 3/16/2016 |
16.3.0 | 776 | 3/16/2016 |
16.2.3 | 1,146 | 2/28/2016 |
16.2.2 | 1,079 | 2/25/2016 |
16.2.1 | 1,623 | 2/24/2016 |
16.2.0 | 943 | 2/24/2016 |
How much reality can you take?