NuScien 6.2.0

.NET 5.0 .NET Core 3.1 .NET Standard 2.0 .NET Framework 4.6.1
There is a newer version of this package available.
See the version list below for details.
NuGet\Install-Package NuScien -Version 6.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
dotnet add package NuScien --version 6.2.0
<PackageReference Include="NuScien" Version="6.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NuScien --version 6.2.0
#r "nuget: NuScien, 6.2.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install NuScien as a Cake Addin
#addin nuget:?package=NuScien&version=6.2.0

// Install NuScien as a Cake Tool
#tool nuget:?package=NuScien&version=6.2.0

Core library

This provides a solution to build community and enterprise projects based on resource entity and accessories with ACL and CMS built-in.

Resource Entity

The resource entity is the model for DAL (data access layer), BLL (business logic layer) and UX layer (including GUI view model and web API model).

The abstract class BaseResourceEntity is the base class for inheriting. It supports property changing notifier so it also can be used as view model of UWP and WPF directly with databinding. Its sub-class SiteOwnedResourceEntity, SpecificOwnerResourceEntity and OwnerResourceEntity<TOwner, TTarget> are also used to inherit with advanced usages.

It need be defined like following to map the entity to the table design in database and to JSON schema of the web API.

  • Set an attribute [Table] on the class to map the table name in database.
  • Set an attribute [Column] on the property to map the column name in the table of the database; or attribute [NotMapped] for the one without mapping.
  • Set an attribute [JsonPropertyName] on the property to map the JSON property name for network transfer; or attribute [JsonIgnore] for the one that does not need serialize and deserialzie.
  • The getter and setter of the property should be implemented by GetCurrentProperty<T> and SetCurrentProperty method to supports databinding feature except the ones you don't care about it or they are just route and convert to/from other properties.

Authentication & Permissions

The static class ResourceAccessClients is used to manage the core resource access client about following features.

  • User authentication and management.
  • Client authentication and management.
  • Site and sub-site management.
  • Permission management.
  • User group management.
  • Authorization tokens and sessions.
  • CMS (content management system).

You need set up the connection information to the data source before usages by calling its Setup static method. Then you can call it CreateAsync static method to get an instance to use.


DAL is implemented by the framework by default so we can skip it unless we have a special reason to override it. We just need implement BLL based on that.

Base class OnPremisesResourceEntityProvider<T> is used to implement the provider of the specific entity as its business logic layer. It contains some methods for basic accessing capabilities. You can override it to add ACL. You can also extend it to add further accessing way. Please make sure it contains the constructors with parameter types and orders as same as the one of base class. And, of course, you can add further constructors as you want.

Then inherit OnPremisesResourceAccessContext class to organize all the entity providers in your business logic. The way is very simple: define them as properties with public getter and setter. They will be filled automatically when the instance is initialized.


It also includes a built-in contact, blog and internal mail system. The static class SocialNetworkResources is the entry point to access them.

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 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
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on NuScien:

Package Downloads

The NuScien on-premises library. It implements the resource access client and base business context by Entity Framework Core.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
6.5.0 139 4/14/2022
6.4.0 127 1/30/2022
6.3.0 158 1/2/2022
6.2.0 197 12/16/2021
6.1.0 175 12/2/2021
6.0.0 162 11/27/2021
5.2.0 173 12/16/2021
5.1.0 249 11/13/2021
5.0.0 290 6/1/2021