Code Monkey home page Code Monkey logo

subpointsolutions / spmeta2 Goto Github PK

View Code? Open in Web Editor NEW
133.0 31.0 56.0 228.93 MB

SharePoint artifact provision for .NET platform. Supports SharePoint Online, SharePoint 2019, 2016 and 2013 via CSOM/SSOM.

Home Page: http://subpointsolutions.com/spmeta2

C# 93.87% PowerShell 1.22% ASP 0.01% CSS 0.04% HTML 0.04% JavaScript 0.11% Smalltalk 4.68% Gherkin 0.04%
sharepoint sharepoint-online csom spmeta2 c-sharp provisioning provision dsl visual-studio enterprise-ready

spmeta2's People

Contributors

andreasblueher avatar antonkhrit avatar avishnyakov avatar maratbakirov avatar sebastianmattar avatar subpointsupport avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spmeta2's Issues

Tests re-engineering - model nestings

Tests needed to be re-engineered.

There should be tests against model "nesting".
Cases such as "Web can host list", "Web can host field", "List can host field" and so on should be covered by tests.

T4 - Adding built-in lists definitions

it would be nice to have predefined list definitions for most common libraries/list in SharePoint:
Style Library
SitePages
Documents
... etc.
It would allow to refer to the particular library without creating new definition every time.

Extracting provision strategy for model

It would be nice to extract model tree traverse to separate class.

In turn, it would allow to create various strategies to implement provision, including multi-threading for separate webs/lists and so on.

Removing "RequireSelfProcessing/ObjectType" properties from DefinitionBase POCO object

POCO needs to be pure POCO without any unnecessary properties.

DefinitionBase.RequireSelfProcessing needs to be move to the ModelNode the same way as OnCreated/OnCreating events work. ModelNode is meant to be "wrapper" on the particular definition, adding other "reach" events and specific properties.

Serialization options are to be configured and setup on ModelNode. POCO must be clean.

Improving model host paradigm, model handlers refactoring

CSOM provisioning requires more complex "model hosts".

For some cases, instead of having just Web/List instance, more variable are required - for SP2013 workflow, security and content type links.

This requires to create and pass "model host" as a complex object to the model handlers.
In turn, re-factoring is required:

  1. Finish CSOM model hosts

  2. Refactor CSOM model handlers

  3. Implement complex model hosts for SSOM

  4. Refactor SSOM model handlers

  5. Finally, refactor ModelHandlerBase class "DeployModel(object modelHost, DefinitionBase model)" method with "DeployModel(object modelHost)" signature supposed to consume only CSOMModelHostBase/SSOMModelHostBase classes with "complex" variables and contexts

Adding T4/PS templates for JS vars generation

It would be nice to generate JS vars including fieds ids, names; content type ids, names and the rest so that JS based development would be much easier. It would allow to avoid "copy-paste" id ids/internal names from c# code and model definition to JS files.

Supporting CSOM content type creating with fixed ContentTypeID

It was impossible to create ContentType with fixed ID via CSOM before SP2013 SP1.

Having content types with predefined is highly important feature to be addressed with SPMeta2 library.
Seems to be done with #if def/else and two different binaries.

Adding model handlers "priority"

Model handlers need to be configured with "priority" so that we may ensure that fields are going to be deployed first, then content types, then lists and so on.

This needs to be configurable and clear.

Adding "strategies" for "artifact" lookup

Fields, conten types and other artifacts can be looked up by ID, internal name, title, URL and so on.

It would ne great to be able to configure "lookup" strategy so that it would be possible to configure provision and "Does artifact exist" strategy per project.

Adding definition validation features

It would be nice to have various validation rules for the model definitions:
*field internal name should be less than 32 chars
*list urls
*OOTB list url
*duplicated fields ids, names
*duplicated content type ids, names
*duplicated list urls
Etc., to be updated as issues arise.

Adding regression provision tests to every web part in SharePoint

CSOM/SSOM plus SP2010/2013/O365 gives too much fun, including difference of .dwp and .webpart files, different behaviors of particular web parts (list not found bla bla bla).

This needs to be automized and covered by regression test across all API/SP versions.

OnAdding/OnAdded events need to be more complex

Adding web part vis CSOM requires additional XML setup. We need to configure .webpart or .dwp XML correctly so that web part can be imported. Exceptions is raised if web part XML is incorrect.

In turn, this require either having 2nd implementation of events or passing more complex "context" object to the event pipeline.

Tests re-engineering - model events OnCreating/OnCreated

Tests needed to be re-engineered.

There should be tests against model "events".

Currently, there are "OnCreating/OnCreated" events raised by model handlers.
Not all of the model handlers raise such events. This should be covered by tests. A "fake" event storage or something like that is required.

Add "post" deployment info with provisioned data

Would be nice to have eother API or providioned copy of ListUrls, Ids, Title and so on while model is being provisioned.

This would help to bind CQWP, Lookup fields, User fields and other "dynamic" artifacts within "post-deployment" event.

Adding "shadow copy" of the model with "provision outcome"

It would be nice to have "shadow copy" of the provisioned model which would store provision outcome; listId, listUrl, contentTypeId and so on - all properties which are unknown and being created while artifacts are provisioned.

This would allow to avoid lots of code to lookup ListId for the webparts, foe example, LitsId for lookup fields, GroupIds for UserFields bounded to particular SharePoint group.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.