NuScien 6.5.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.
dotnet add package NuScien --version 6.5.0
NuGet\Install-Package NuScien -Version 6.5.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.
<PackageReference Include="NuScien" Version="6.5.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NuScien --version 6.5.0
#r "nuget: NuScien, 6.5.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. 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.5.0

// Install NuScien as a Cake Tool
#tool nuget:?package=NuScien&version=6.5.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 Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 is compatible. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 is compatible.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
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
7.0.0 374 1/20/2023
6.6.0 644 11/9/2022
6.5.0 846 4/14/2022
6.4.0 840 1/30/2022
6.3.0 431 1/2/2022
6.2.0 467 12/16/2021
6.1.0 438 12/2/2021
6.0.0 452 11/27/2021
5.2.0 459 12/16/2021
5.1.0 538 11/13/2021
5.0.0 546 6/1/2021