gsoft-inc / dynamite Goto Github PK
View Code? Open in Web Editor NEWC# toolkit to help you build maintainable SharePoint 2013 farm solutions
License: MIT License
C# toolkit to help you build maintainable SharePoint 2013 farm solutions
License: MIT License
A 2010 project introduced VariationExpert VariationBuilder logics while, in the same time, a 2013 project introduced a VariationHelper. The Helper has been moved to the Globalization.Variation namespace, but the merge of the methods must be done. The only 2 methods that seems to be used are SyncList and SyncWeb in the PowerShell dll.
The 2010 one (v0.4_SP2010 is already in prod) is under GSoft.Dynamite/Properties/GSoft.Dynamite.snk
The 2013 one (ideally, the one we get rid of) is under ~\Shared\GSoft.Dynamite.snk. This may cause problems during ugrapes in environments where Dynamite 2013 is already deployed.
Maybe both are one and the same and we screwed up while linking them to our projects somehow, we'll see...
Deleted GRegModule:
using GSoft.Dynamite.Binding;
using GSoft.Dynamite.Caching;
using GSoft.Dynamite.Logging;
using GSoft.Dynamite.Navigation;
using GSoft.Dynamite.Repositories;
using GSoft.Dynamite.Taxonomy;
using GSoft.Dynamite.Utils;
using Microsoft.Practices.Unity;
namespace GSoft.Dynamite.Unity
{
/// <summary>
/// Container registrations for GSoft.G.SharePoint components
/// </summary>
public class GRegistrationModule : IRegistrationModule
{
private readonly string _logCategoryName;
private readonly string _defaultResourceFileName;
/// <summary>
/// Creates a new registration module to prepare dependency injection
/// for GSoft.G.SharePoint components
/// </summary>
/// <param name="logCategoryName">The ULS category in use when interacting with ILogger</param>
/// <param name="defaultResourceFileName">The default resource file name when interacting with IResourceLocator</param>
public GRegistrationModule(string logCategoryName, string defaultResourceFileName)
{
this._logCategoryName = logCategoryName;
this._defaultResourceFileName = defaultResourceFileName;
}
/// <summary>
/// Registers the modules type bindings
/// </summary>
/// <param name="container">The container on which to register type bindings</param>
public void Register(IUnityContainer container)
{
#if DEBUG
// Logger with debug output
var logger = new TraceLogger(this._logCategoryName, this._logCategoryName, true);
container.RegisterInstance<ILogger>(logger);
#else
// Logger without debug output
var logger = new TraceLogger(this._logCategoryName, this._logCategoryName, false);
container.RegisterInstance<ILogger>(logger);
#endif
// Binding
var builder = new EntitySchemaBuilder<SharePointEntitySchema>();
var binder = new SharePointEntityBinder(new CachedSchemaBuilder(builder, logger));
container.RegisterInstance<ISharePointEntityBinder>(binder);
// Taxonomy
container.RegisterType<ITaxonomyService, TaxonomyService>();
container.RegisterType<TaxonomyService>();
container.RegisterType<TaxonomyHelper>();
// Navigation
container.RegisterType<ICatalogNavigation, CatalogNavigation>();
// Caching
container.RegisterType<IAppCacheHelper, AppCacheHelper>();
container.RegisterType<ISessionCacheHelper, SessionCacheHelper>();
// Repositories
container.RegisterType<FolderRepository>();
container.RegisterType<ListLocator>();
// Utilities
container.RegisterInstance<IResourceLocator>(new ResourceLocator(this._defaultResourceFileName));
container.RegisterType<ContentTypeHelper>();
container.RegisterType<EventReceiverHelper>();
container.RegisterType<FieldHelper>();
container.RegisterType<ListHelper>();
container.RegisterType<ListSecurityHelper>();
container.RegisterType<MuiHelper>();
container.RegisterType<SecurityHelper>();
container.RegisterType<SearchHelper>();
container.RegisterType<WebPartHelper>();
container.RegisterType<MasterPageHelper>();
container.RegisterType<RegionalSettingsHelper>();
container.RegisterType<CustomActionHelper>();
container.RegisterType<WebConfigModificationHelper>();
container.RegisterType<VariationsHelper>();
container.RegisterType<NavigationHelper>();
}
}
}
Some caching helpers were added by @FranckyC and @yohanb in Dyn 2013 while I did the same under another GSoft.Dynamite.Cache namespace. Prefer using the Cache namespace if possible because it evolved to be a bit more generic (and to have one separate cache per security group) during our latest SP2010 project.
Review : Private static Term Getters. Duplicate?
The bad part is this: For now, ISharePointServiceLocator doesn't have the methods:
Those would be essential if you wanted to use PowerShell cmdlets to manipulate SharePoint objects outside a site collection context (e.g. play with a WebApp property bag, etc.).
I recently added 2 github accounts to my Windows SourceTree and cloned 2 repositories. Pushing and pulling from the first repo suddenly stopped working. The error given was:
remote: Repository not found.
fatal: repository 'https://github.com/xyz/' not found
I managed to get around the problem by uninstalling and reinstalling the credentials manager using:
$ git credential-manager uninstall
$ git credential-manager install
Anyone know how to set the clone depth of a repo in SourceTree?
Lorsqu'on utilise un KeywordQuery dans un SearchExecutor, on nous retourne des DataTable qui contiennent des DataRow dont les clés sont des ManagedProperties. On doit supporter le mapping vers des entités sachant que nous n'avons pas le SPWeb d'origine, donc pas de SPFieldCollection.
<Segments>
<TaxonomyField InternalName="AgropurNavigation"
DisplayName=""
Description=""
Required="true"
Group="Intranet"
IsMultiple="false"
IsOpen="false"
TermSetGroupName="Agropur - Navigation"
TermSetName="Navigation - Message from the CEO"
TermSubsetId="e308761a-333d-4d17-a5eb-65fe429c816b"/> <!-- News -->
</Segments>
Make sure no 2013-specifc changes get manually merge into their new-namespace'd counterparts (e.g. if anything changed in Utils/FieldHelper since October 2013, it need st obe incorporated maybe into the new Definitions/FieldHelper)
Check out the 2013 history of these in particular:
<Compile Include="Utils\FieldHelper.cs" />
<Compile Include="Utils\FieldInfo.cs" />
<Compile Include="Utils\IResourceLocator.cs" />
<Compile Include="Utils\ListHelper.cs" />
<Compile Include="Utils\ListSecurityHelper.cs" />
<Compile Include="Utils\MasterPageHelper.cs" />
<Compile Include="Utils\MuiHelper.cs" />
<Compile Include="Utils\NavigationHelper.cs" />
<Compile Include="Utils\RegionalSettingsHelper.cs" />
<Compile Include="Utils\ResourceLocator.cs" />
<Compile Include="Utils\SearchHelper.cs" />
<Compile Include="Utils\SecurityHelper.cs" />
<Compile Include="Utils\Unsafe.cs" />
<Compile Include="Utils\VariationsHelper.cs" />
<Compile Include="Utils\WebConfigModificationHelper.cs" />
<Compile Include="Utils\WebPartHelper.cs" />
The entity binder and taxonomy utilities have seen tremendous improvements so we need to merge those in.
Don't forget to send those changes downstream to Dynamite-2010 when you get a chance.
Ideally, we should enhance FieldInfos to be more complete (e.g. TaxonomyFieldInfo, etc.) and collaborate with/reuse the new Schemas utils so that we don't have to depend on any Element.xml.
Basically, we want:
This way we can provision fields easily on a site collection or on a list. This is related to #1, where some things that @FranckyC or @yohanb added to ListHelper don't follow the "Ensure"/"Add if not exists" philosophy of ContentTypeHelper.
See TODOs in ListHelper.cs
Make Create***Field -> EnsureField
While installation it is not asking for steps given below:
Enter your full name and email address (your @gsoft.com email, if you work for GSoft)
Choose the option to install the self-contained Git version to be used by when prompted
Skip the Mercurial option
Choose Putty as SSH option
Enter your github.com username and password
Will this create any problem while working on it.
I am facing issue of checking resource stuck while making clone.
Please help me.
This means we need to add an IResourceLocatorConfig interface that will be registered by client WSPs and apps in their own registration module (instead of forwarding those settings directly through an App-specific service-locator). Same thing for the ILoggerConfig to inject the trace category keys instead of passing them ourselves in our container config.
Running the New-DSPQueryRules script in a new PowerShell window gives an error.
The error occured in AgroPur deployment using :
$script = './New-SPQueryRules.ps1'
Start-Process powershell.exe -ArgumentList $script -Wait
The exception is thrown in the method GSoft.Dynamite.ServiceLocator.SPWebLifetimeScopeProvider:EnsureWebScopeInternal(SPWEB web) while accessing the web.ID property.
Resolved les dependencies avec DI.
Hello,
I'm not sure if this is the best place to put this but I noticed when looking through your "Git step by step" guide that steps 4 & 5 are yet to be done.
I realise this isn't likely to be high up on your list of priorities but I thought I'd point it out. Also what was meant to be in those parts? If there was an outline of what should be there someone else could write it?
Hi, guys. I've read some topics and some classes
https://github.com/GSoft-SharePoint/Dynamite/wiki/How-to-break-up-your-solution-in-many-Visual-Studio-projects-with-their-own-responsibilities
https://github.com/GSoft-SharePoint/Dynamite#c2-initialize-your-term-store
https://github.com/GSoft-SharePoint/Dynamite/tree/91cdefb6a6434afec3130aa8acc759a81550d582/Source/GSoft.Dynamite/Taxonomy
but didn't found how to provision my taxonomy tree to my ManagedMetadata Service through code? I wonna do timer job that would be update and populate my taxonomy from SQL, but dunno how Dynamite can help with this. So, is it possible to do with dynamite?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.