Sitecore Slack
Posts about Slack written by Naveed. For DevOps, you can use tools like GitHub, Docker, or Kubernetes. Business tools integration can be done using Slack, Office 365, or G Suite. Cost of developing app like Shipt. The total cost of grocery app development will depend on a number of crucial factors. The primary factor is the mobile app development company chosen for the project. Voicify’s Conversation Experience Platform™ allows marketers to engage with their customers on a deeper and more personal level by creating voice apps. Voicify’s Conversation Content Management System™ (Conversation CMS™) allows brands to rapidly deploy voice experiences across any voice assistant device and easily maintain the content.
From your description, it looks like you have run into the same predicament that all Sitecore developers inevitably run into with regard to Content Search indexing: why don't my data source items just index with the item for the page that they display on? Of course, this question doesn't just apply to data source items and the item for the page that they display on, but that is a valid, real-life example of this situation.
Todd Klindt's home page. Slack All Items. This Site: Podcast Homepage. You should receive an invitation shortly. I feel like there are some major elements missing from the way devs learn to do unit tests, and moreover TDD. Find me on Sitecore Slack and pm me and if we have an overlapped timezone I'll be happy to share. I should probably write a blog post about it. – Richard Hauer May 5 '20 at 14:15.
The answer is that, unfortunately, the indexing technology out of the box isn't quite on par with the more atomic architecture of splitting data into multiple templates and re-merging them together after using Presentation Details. There are some ways for you to get around this, however:
- Computed Index Fields - Traditional Use: I read your question, and I know you're aware of them, but I have to say them. They do get clunky, and it's painful to need to create a separate one for every field. However, you could index all text-based content from item B in a single CIF on item A, should you so choose. CIFs do not have to be complex. You could write an abstract base class that does all of the work and simply have each implementing class pass the field name/ID to a method that identifies the field on item B that you wish to index. You could even do this with a single class that uses a custom constructor to read from a custom attribute in the configuration that identifies the field to be indexed (and maybe even the item or how to search for the item via an enum, like
AncestorSearch
,ChildSearch
,DescendantSearch
, etc). - Computed Index Fields - Merging Like Documents: This really isn't different from the traditional use of CIFs, but if your goal is to take Item A and Item B, both of which inherit from the same template, and index them as the same document without adding any new fields then you can use one CIF per field on the template and the values from both items will be added to the same fields on the resulting document. Both Solr and Lucene append additional values for an existing field to the exising field, rather than creating new fields. This may, however, result in some unexpected results in your boosting.
- Custom Search Provider: This step is more work and adds more risk, since Sitecore supports the native providers but you would have to support your custom one, but it is doable. If you write your own search provider, you could write your own implementation for creating relationships between items that should be indexed together. IMHO, this feature should be native with Sitecore and will hopefully come in a future version (or at least support for being able to tap into code points that let us add this functionality ourselves). Currently, however, there is no way to do this in the system without writing your own provider.
- Dynamic Search Configuration: This is something that I have started to experiment with recently, since Sitecore has exposed the
Sitecore.Configuration.ConfigReader.LoadAutoIncludeFiles
methods for override. This implementation is a bit more complex, but it is, IMHO, lower effort than creating a custom provider, and it leaves the responsibility of supporting your search and indexing implementation up to Sitecore, rather than taking it on yourself. Basically, what you need to do is create a T4 template (or similar tool) for generating Computed Index Field config entries and then write a custom implementation for configuring the relationships between items that should be indexed together (i.e. between items A and B or between templates, etc.). On initialize, theSitecore.Configuration.ConfigReader.LoadAutoIncludeFiles
method would be called, which would in turn call a custom method to retrieve these relationships and generate all of the necessary entries for each relationship. The issue that you will likely come across is that you will need to create the class(es) for the CIFs ahead of time. At this point, you need to know the field name/ID that the CIF should index. One option would be to use theFieldName
property, which holds the name of the field that was set in the configuration, thus mandating that this field name be consistent with what is in Sitecore. Another, and IMHO better solution could be to have your T4 template (or other generation mechanism) add a custom attribute to your CIF config entry that contains the name/ID of the field to index. You would then write a constructor for your CIF class, like the one below, and you would need only to read the 'SitecoreFieldIdentifier' property to know the field to index in the CIF. Beyond that, the rest is left up to how you chose to implement the relationship management. My recommendation would be to have a thread-safe mapping between the index-field name and the item that the Sitecore Field to be indexed lives on. There are many other options though. One additional thing to note is that this implementation is likely to slow your instance's initialization time down based on how many indexing relationships your solution supports.
Constructor for DynamicComputedIndexField:
Sitecore Docs
If you haven’t heard or signed up for Sitecore Stack Exchange or Sitecore Slack Chat - then stop right now, click both of those links and sign up!
There is a vibrant community of amazing Sitecore people hanging out in both area’s that are ready to help anyone with Sitecore problems, questions, troubleshooting or just posting random and weird stuff - Mike Reynolds & @jammykam I’m looking at you here…
So Why Both?
So why do we have 2 communities full of the same people and which one should you use?
The simple answer is use both - they both fulfill 2 different roles for the same community.
When Should I use Sitecore Stack Exchange
Sitecore stack exchange has been running now since mid September 2016 and since that time nearly 2000 users have signed up, asking 2173 questions with a 90% answer rate! That is awesome! And really that is what SSE is for.
If you have a question about Sitecore, whether it is code, best practice, content editing, configuration, xDB… well you get the idea - if its a specific question, then SSE is the place to ask it. But that is the important bit - SSE is designed for SPECIFIC questions that can be answered, they can be as complex as you like, but they must be answerable without a lot of conversation. SSE is a Question and Answer site - not a conversation/troubleshooting site.
Who is SSE For?
Really who is SSE for? Initially you may think its for you - you ask a quesiton and get an answer and move on. WRONG - that is only half the reason - the biggest reason that SSE exists is that someone else might have the exact same problem tha you have! Because you have asked a beautifully deatailed question and got an awesome answer - when a new developer asks google the answer, your SSE post is the highest ranked result - or at least in the top 10 - this is the REAL reason for SSE. For others to learn from problems that we have solved! SO….
Sitecore Community Slack Group
Good SSE Examples
Some good examples of this are these:
- How do you setup 404 and 500 error page for missing files and media items? - this is a great question that spawned a number of equaly great answers. There was a lot of detail in the question, some clarifying comments were added, but it was answerable without diagnosis
- How can I programmatically add a rendering to all of my content items? - again, another clear quesiton with nice detail that didn’t need much conversation to be able to answer
What if the question is a bit more vague tho? What about questions where the answer is opinionated? Well that is fine too - as long as the question is… you guessed it… answerable
- What is the best approach for dependency injection in Sitecore 8.2 - with this question, the answers are going to be opinions based on experience, but its a great question for SSE
And these questions don’t have to be about coding or even directly about using the CMS - as long as its related to the Sitecore CMS, Sitecore or a supporting module and is … say it with me… answerable - Please ASK!
Bad SSE Examples
So we’ve looked at what you can ask, what about some examples of questions that don’t belong on SSE. In this I’m not going to link to any actual questions, or copy them here - this is not a place to put others down! But there are times when questions just don’t fit the format of SSE. Let’s look at some examples of this:
- What are the best practices when using Sitecore/xDB/Solr/other feature - So why is this bad, put simply because it is not answerable (there is that word again) in a single post - this is where the line between an opinionated post like “what is the best way to do xxxxx” is different from “What is the best practice for xxxxxx” - there is a subtile difference here. If you want to know the best practice for something spcific like setting up DI, configuring Glass Mapper etc.. that is fine. But when you ask for best practices on something vague or broad like Sitecore, Solr etc… - that can’t be answered in a single post - so its not a format for SSE. This is a question for Slack - it involves a conversation, a thread, many people involved.
- I just installed xxx module and now I’m getting a runtime error xxxxxxxx” - Initially, this might seem like the perfect question for SSE - and it might well be, BUT if to answer your question there needs to be some diagnosis or a lot of questions, it might be best to ask this on Slack first and then if it is something that might be helpful to others, add it to SSE with an answer once you have one. This is a more tricky line to work out - sometimes, its worth asking the question and then moving to chat or SSE to diagnose the issue. REMEMBER - always add the answer when you have one to SSE otherwise its of no use to anyone.
- XXX feature is not working - how do I fix - really… unless you have spent at least 2-3 days googling/diagnosing yourself you shouldn’t be asking this anyawy - but also, same reasons as above - ask in a format that works for this - Slack or the Sitecore Community Forums.
- Will Akshay Sura be my friend - if you are asking this on SSE, then the answer is NO
Rember - SSE is not for Conversations - its for Questions with direct Answers!!!!
Sitecore Slack Chat
So now we have looked at SSE - where does that leave the Sitecore Slack Chat channels??
Really for all the stuff listed under what not to ask in SSE and more! Do you have a problem with Glass Mapper that needs some diagnosis? Look for the #glass channel in Slack - what about that SOLR problem that you have spent the last week on? #solr is the place to be. Are you just deparate to be Akshay Sura’s best friend - well don’t ask here, cos he hates us all!
Also - do you want direct access to some of the best and brightest minds in the Sitecore world? Just look at some of the people that are regularly on the Sitecore Slack Chat:
- @stephenpope - the genius behind the new Publishing Service
- @sitecorejunkie - just the genius!
- @mikeedwards and @cardinal252 - the minds behind Glass Mapper
- @longhorntaco - The man behind the book Sitecore 8 Development - Why haven’t you bought this yet?
- @akshaysura - The man who wants to be your friend and inventor of the onsie flap! - also has amazing dance moves!
I really could go on forever with this list… There are 183 Sitecore MVP’s regularly active on the channels. If you are not a member of the Sitecore Slack Chat - you are really missing out.
Sitecore Jss Slack
There are so many great sub channels - some really good ones are the #blogfeed - any new blogs are listed here, #stackexchangefeed - lists all new questions on SSE, #helix-habitat - anything you want to know about Sitecores new guidelines are here!
I think the my favourite thing about the Sitecore Slack Channel is the number of Sitecore employees that are regularly active members, and so willing to help us all out with questions we might have about the platform or implementation.
When To Use Both
I’ve mentioned it already in this post, but sometimes you will want to use both Slack and SSE for your question. Right now the Slack chat is a fluid, living thing! Because we are on the free version of Slack there is a message limit of 10,000 messages - it only takes a few days for this limit to be hit, so anything 4-5 days old on Slack is probably gone, never to be seen again.
SO - if you chat about something on Slack and get an answer that others might benefit from - PLEASE - ask the question on SSE and post the answer too - then it is there for all time, to benefit future users of Sitecore - OR alternatively - write a blog post about it. Or even do both (just make sure you link to SSE if you do that). The key here is to make sure that others in the community benefit from your experience and we all create better implementations for our clients!
TLDR; So where does that leave me?
It leaves you with the knowledge that if you are not active on BOTH channels, then you are not using the resources available to you properly!
Both SSE and Slack are essential resources for ALL Sitecore developers, and anyone that says otherwise is lying to you!
Please - be a part of our amazing community. Come and join the fun. Most importantly - make sure you are using the RIGHT resource for your need - don’t just ask something on SSE when it is best suited for Slack, and don’t leave something on Slack that is good for the rest of the community to know - make sure it is publicly available in a format that will not expire, like SSE.
WAIT! What about http://community.sitecore.net?
The Sitecore hosted community site is a great in between of Slack and SSE - its a forum, so designed for having conversations and getting answers that way - its also more permanent than Slack, so it may be a good place to chat if you don’t want the conversation to disappear after a few days.
- Slack - get answers fast, chat about random stuff, keep up with the community etc…
- Community Forums - Not as immediate as Slack, but a permanent record of your conversation. Officially supported by Sitecore
- SSE - For questions and answers, NOT for conversations, debugging etc…
Happy coding!
- Richard