All Projects → Happi-cat → Untech.sharepoint

Happi-cat / Untech.sharepoint

Licence: mit
Untech.SharePoint - library that will improve your work with Lists in SharePoint (can be used with SSOM and CSOM)

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Untech.sharepoint

Data
Fast DB-independent DAL for .NET Core: abstract queries, SQL commands builder, schema-less data access, POCO mapping (micro-ORM).
Stars: ✭ 150 (+1775%)
Mutual labels:  orm, dot-net
Eloquent Filter
This simple package helps you filter Eloquent data using query filters.
Stars: ✭ 24 (+200%)
Mutual labels:  orm
Records
SQL for Humans™
Stars: ✭ 6,761 (+84412.5%)
Mutual labels:  orm
Sylar
C++高性能分布式服务器框架,webserver,websocket server,自定义tcp_server(包含日志模块,配置模块,线程模块,协程模块,协程调度模块,io协程调度模块,hook模块,socket模块,bytearray序列化,http模块,TcpServer模块,Websocket模块,Https模块等, Smtp邮件模块, MySQL, SQLite3, ORM,Redis,Zookeeper)
Stars: ✭ 895 (+11087.5%)
Mutual labels:  orm
Orm
PHP DataMapper, ORM
Stars: ✭ 827 (+10237.5%)
Mutual labels:  orm
Queryablelist
Python module to add support for ORM-style filtering to any list of items
Stars: ✭ 19 (+137.5%)
Mutual labels:  orm
One
一个极简高性能php框架,支持[swoole | php-fpm ]环境
Stars: ✭ 789 (+9762.5%)
Mutual labels:  orm
Joomla Entity
Semantical API for Joomla!
Stars: ✭ 25 (+212.5%)
Mutual labels:  orm
Entityframework.lazyloading
LazyLoading for EF Core
Stars: ✭ 23 (+187.5%)
Mutual labels:  orm
Gravity
ORM Framework for Relativity Custom Development
Stars: ✭ 17 (+112.5%)
Mutual labels:  orm
Delphi Orm
Delphi ORM
Stars: ✭ 16 (+100%)
Mutual labels:  orm
Advpl Orm
Biblioteca ORM (Object Relational Mapping) desenvolvida inteiramente em ADVPL para o ERP Protheus
Stars: ✭ 6 (-25%)
Mutual labels:  orm
Spreplicator
♻ Replicates SharePoint Lists
Stars: ✭ 22 (+175%)
Mutual labels:  sharepoint
Diesel
A safe, extensible ORM and Query Builder for Rust
Stars: ✭ 7,702 (+96175%)
Mutual labels:  orm
Baristacore
BaristaCore is a framework for providing a serverless platform using ChakraCore and .Net Core
Stars: ✭ 24 (+200%)
Mutual labels:  sharepoint
Gonet
go分布式服务器,基于内存mmo
Stars: ✭ 804 (+9950%)
Mutual labels:  orm
Entityframework.docs
Documentation for Entity Framework Core and Entity Framework 6
Stars: ✭ 888 (+11000%)
Mutual labels:  orm
Framework
High-Performance Long-Living PHP Framework for modern enterprise application development
Stars: ✭ 895 (+11087.5%)
Mutual labels:  orm
Php Es Mapper
An elasticsearch simple mapping ORM for php
Stars: ✭ 25 (+212.5%)
Mutual labels:  orm
Swoft Db
[READ ONLY] Database Compoment for Swoft
Stars: ✭ 25 (+212.5%)
Mutual labels:  orm

Untech.SharePoint

Master build status Develop build status GitHub issues GitHub closed issues GitHub license Join the chat at https://gitter.im/Happi-cat/Untech.SharePoint

  • Untech.SharePoint.Common: NuGet version
  • Untech.SharePoint.Server: NuGet version
  • Untech.SharePoint.Client: NuGet version

Untech.SharePoint - library that will improve your work with Lists in SharePoint (can be used with SSOM and CSOM).

For more information go to project wiki

Project Structure

  • Untech.SharePoint.Common - library that contains some global and common code (like MetaModels, Annotation mappings, common FieldConverters, SP to Linq providers and etc.)

  • Untech.SharePoint.Client - contains CSOM specific code (i.e. SPClientContext and etc.)

  • Untech.SharePoint.Server - contains SSOM specific code (i.e. SPServerContext and etc.)

How to install

They can be installed using NuGet in Visual Studio:

  • for Client
	Install-Package Untech.SharePoint.Client 
  • for Server
	Install-Package Untech.SharePoint.Server

Example

  • SSOM:
	var cfg = ServerConfig.Begin()
		.RegisterMappings(n => n.Annotated<ServerDataContext>())
		.RegisterMappings(n => n.ClassLike(new FlexibleDataContextMap()))
		.BuildConfig();

	// ...

	var web = new SPSite("http://localhost/sites/some").OpenWeb();
	var ctx = new ServerDataContext(web, cfg);
	var ctx2 = new FlexibleDataContext(new SpServerCommonService(web, cfg))

	// ...

	var result = ctx.Projects
		.Where(n => n.ProjectUniqueId.StartsWith("TTT") && n.Status == "Approved")
		.Where(n => n.Title.Contains("LALA"))
		.ToList();
  • CSOM:
	var cfg = ClientConfig.Begin()
		.RegisterMappings(n => n.Annotated<ClientDataContext>())
		.RegisterMappings(n => n.ClassLike(new FlexibleDataContextMap()))
		.BuildConfig();

	// ...

	var clientCtx = new ClientContext("http://spserver/sites/some");
	var ctx = new ClientDataContext(clientCtx, cfg);
	var ctx2 = new FlexibleDataContext(new SpClientCommonService(clientCtx, cfg))

	// ...

	var result = ctx.Projects
		.Where(n => n.ProjectUniqueId.StartsWith("TTT") && n.Status == "Approved")
		.Where(n => n.Title.Contains("LALA"))
		.ToList();
  • Models & Context
	// Server-only data context
	public class ServerDataContext : SpServerContext<ServerDataContext>
	{
		public ServerDataContext(SPWeb web, Config config) 
			: base(web, config) {  }

		[SpList(Title = "/Lists/Test%20List")]
		public ISpList<TestListItem> TestList { get { return GetList(x => x.TestList); }}
	}

	// Client-only data context
	public class ClientDataContext : SpServerContext<ClientDataContext>
	{
		public ClientDataContext(ClientContext ctx, Config config) 
			: base(ctx, config) {  }

		[SpList(Title = "/Lists/Test%20List")]
		public ISpList<TestListItem> TestList { get { return GetList(x => x.TestList); } }

		// etc.
	}

	// More flexible data context (i.e. can be used on server & client)
	public class FlexibleDataContext : SpContext<FlexibleDataContext>
	{
		public FlexibleDataContext(ICommonService commonService)
			: base(commonService) {  }

		public ISpList<TestListItem> TestList { get { return GetList(x => x.TestList); }}

		// etc.
	}

	// Class-like map for flexible data context.
	public class FlexibleDataContextMap : ContextMap<FlexibleDataContext>
	{
		public FlexibleDataContextMap()
		{
			List("/Lists/Test%20List")
				.AnnotatedContentType(n => n.TestList);

			// etc.
		}
	}

	[SpContentType]
	public class TestListItem : Entity
	{
		[SpField]
		public virtual string SomeField { get;set; }	 

		[SpField]
		public virtual string SomeField2 { get;set; }
	}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].