Skip to content

SPMeta2 v1.2.0-beta1

Compare
Choose a tag to compare
@SubPointSupport SubPointSupport released this 15 Jul 14:45
· 691 commits to master since this release

SPMeta2 v1.2.0 release IS fully tested and production ready

Is is marked as -beta1 to avoid automatic upgrade from v1.1.XXX due to possible minor breaking changes in the API and source code base. The following information aims to provide an overview on assembly related changes, refactorings, API changes, new features and API to prepare and simplify migration from v1.1.XXX to v1.2.XXX.

Please review it carefully, consider that depending on your solution and API usage additional effort might be required to get updated to v1.2.XXX. Once updated, make sure your solution can be compiled without errors, then give a few rounds of provision.

In case you have unexpected issues please contact support on SPMeta2 Yammer network or sent a ticket here at github:

What's new in v1.2.0

The major improvement is a "strongly-typed" syntax to build up a model tree. That means that .AddXXX()/AddHostXXX() methods know about allowed SharePoint artifact relationships and pop up in the VS Intellisense only at the right places.

For istance, you see AddListView() method only on the list level, and AddField() only on site, web or list level. That helps to prevent incorrect models being build, moves model check to the compile time and offers a better DSL/domain model for both SharePoint related and non-SharePoint people.

Apart that there are several other enhancements and new API:

  • Strongly-typed syntax for model tree construction
  • Built-in validation on definition required properties
  • Built-in validation on XML properties (a well-formed XML is expected for some properties)
  • Fault tolerant provision for O365 and SP 2013 CSOM (provision survives connectivity issues and IISReset)
  • Obsolete API and assemblies clean up

Removed assemblies

  • Removed SPMeta2.Syntax.Default assembly, moved to SPMeta2.dll preserving namespaces
  • Removed SPMeta2.Validation assembly, moved to SPMeta2.dll preserving namespaces
  • Removed *.Behaviours assemblies

Removed API

  • Fixed BuiltInListDefinitions.Calalogs typo -> use BuiltInListDefinitions.Catalogs instead
  • Removed OnCreating/OnCreated events, use OnProvisioning/OnProvisioned events instead
  • Removed TaxonomyTermStoreDefinitionSyntax.AddTermStore(), use AddTaxonomyTermStore() instead
  • Removed TaxonomyTermGroupDefinitionSyntax.AddTermGroup(), use AddTaxonomyTermGroup() instead
  • Removed TaxonomyTermGroupDefinitionSyntax.AddTermSet(), use AddTaxonomyTermSet() instead
  • Removed TaxonomyTermDefinitionSyntax.AddTerm(), use AddTaxonomyTerm() instead
  • Removed SPMeta2Model.NewModel(), use NewSiteModel()/NewWebModel()/NewWebApplicationModel()/NewFarmModel() methods
  • Removed SPMeta2Model.DummySite(), use NewSiteModel()/NewWebModel()/NewWebApplicationModel()/NewFarmModel() methods
  • Removed SPMeta2Model.DummyWeb(), use NewSiteModel()/NewWebModel()/NewWebApplicationModel()/NewFarmModel() methods
  • Removed "RequireSelfProcessing" property from definitions, please use ModelNode.Options.RequireSelfProcessing instead
  • Removed "WithResolvingModelHost()" method on model handlers, use WithResolvingModelHost(ModelHostResolveContext context) instead

New definitions

  • No new definition were added

Fixes

  • Default RichTextMode/RichText attributes for ImageFieldDefinition to enfore correct HTML render on publishing pages (SharePoint-specific default bahaviour)

Enhancements

  • O365 runtime updated to 16.1.3912.1204 from https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/16.1.3912.1204
  • WebPartDefinition.TitleUrl supports ~sitecollection/~site tokens
  • Web parts provision support under list views
  • Various "CapabilityAttributes" on definitions to provide additional meta information for external 3rd part tooling (/SPMeta2/Attributes/Capabilities)
  • Simple "Provision Progress" callback to track deployment progress, use
    ProvisionService.OnModelNodeProcessing / OnModelNodeProcessed events

Regression tests

Improved and hardened regression tests coverage - 520+ tests run again the following three environments

  • SP2013 SP1+ SSOM
  • SP2013 SP1+ CSOM
  • O365 tenants

Current test coverage is split into three major categories:

  • Classic unit tests for pure c# based API
  • Random generated definition provision - tests deploy several randomly generated artifacts multiple times, then fetch provisioned SharePoint artifacts, compare properties with original definitions, then randomly update original definition properties and make the second round of the provision, fetch and property comparing
  • Scenario based definition provision - manually written provision to cover various real word provision scenarios. Validation process is the same - deploy several times, check, changes, deploy and check again.

Support & Issue Resolution

In case you have unexpected issues please contact support on SPMeta2 Yammer network or sent a ticket here at github: