So here we are at the reboot of the Community Toolkit. Let's get this show on the road! There are a few things I'm wondering about that we might want to tackle first though, so I'm opening some issues to have these discussions. So let's get to it!
Namespace naming
I think we can all agree that the "Community Toolkit" part of the name is fine. It's the other parts that I'm wondering about both from a public naming perspective and a namespace naming perspective. With .NET MAUI on the horizon, we can choose to either go with a bit more of a platform-independent namespace naming scheme or face the fact that we will have to adjust somewhere in the future :) I personally don't mind the latter as I don't think it'll be a big effort.
The current namespace of the existing codebase seems to be Xamarin.Toolkit, which I personally _would_ consider changing to Xamarin.CommunityToolkit to align it a bit better.
NuGet naming
With regards to the actual NuGet package we will be putting out there are also a few different routes we could take:
For discoverability, I would include the Xamarin name in there somewhere. Regarding the author, I wonder if we should put Microsoft there or something different. As it's "only" an endorsed project but not specifically made by Microsoft I can imagine that MS wouldn't want that there though. Perhaps @davidortinau can chime in on that one as he might have some insights regarding the customers that only want to use Microsoft packages 馃榾
Logo!
Every project starts with a cool logo. We all know this. I'm just experimenting a bit at this point, but here's a suggestion to take the Essentials icon as a base and change it onto something that indicates the group/community feeling by connecting all the separate orbs:

For reference in regards of the Namespace and Nuget naming, we can always look over the wall at what is being done with the UWP community toolkit.
Their namespace is: Microsoft.Toolkit.Uwp as is their Nuget package.
The repo is underneath WindowsCommunityToolkit.
So, yes having a namespace with Microsoft reference seems a good suggestion.
Since it's Xamarin.Forms addition, perhaps it would make sense to extend Xamarin.Forms namespace.
namespace Xamarin.Forms.CommunityKit
{
}
And NuGet package's name Xamarin.Forms.CommunityKit.
How about getting rid of the "Tool" word. Usually, I see that SDK names use "short" version of this word (just "kit")
I don't think it would be wise to take the Xamarin.Forms name now that it is announced that it's going away, right? It might still take a while, but since we know it will be happening I would say avoid a big breaking change like renaming all the things since we already know it will need to happen in the future.
OTOH, anticipating on .NET MAUI might be a bit early too. Also, will this be specific fo Forms or more Xamarin in general?
I like @Depechie idea about name and namespace since the idea of @davidortinau was to have a Microsoft branded package to reassure the users.
Now that I said that, this is a XF toolkit not a Xamarin toolkit.
So I think it should be explicit in the name otherwise it is misleading for the users.
But Microsoft.Xamarin.Forms.CommunityToolkit seems absurd :)
Xamarin.Forms.CommunityToolkit seems a better fit.
XamarinFormsCommunityToolkit as name seems more logic, but it's a bit ugly.
Having said all that I do understand now why the package was named FormsCommunityToolkit.
Too bad we can't use yet Microsoft.Maui.CommunityToolkit, it seems elegant to me :)
So the real question I am asking here is:
Is it okay to drop the Forms verb in the namespace and the nuget package name whereas it a Xamarin.Forms toolkit ?
For the logo, I like the idea and the shape, but the blue rectangular background seems a bit dated to me, feels like "old Xamarin" :) Don't know if it makes sense to you since design considerations are so subjective.
Taking the other toolkit as a sample we could potentially settle on Microsoft.Toolkit.Xamarin as the naming scheme. The only worry I have is that some of the other toolkits packages have names like Microsoft.Toolkit.Forms.UI.XamlHost which... well... can become confusing since its WinForms XAML islands stuff and not XamForms XAML stuff :D
Yes, what will be in is primarily Xamarin.Forms, but not limiting the name to that will at least leave room to branch out with additional helpers in the Xamarin space. A move to .NET MAUI in the future would make it a simple matter of renaming the word Xamarin to MAUI and be done with it.
Putting this comment from @jsuarezruiz on Slack in here for reference:
Taking a look to other toolkits (like the UWP one), thinking in how we can organize everything. If we use a similar organization will be something like:
Microsoft.Toolkit.Xamarin.Forms: Main NuGet package includes code only helpers, etc.
Microsoft.Toolkit.Xamarin.Forms.UI: UI Packages - XAML converters, Visual tree extensions, and other extensions and helpers for your XAML UI.
Microsoft.Toolkit.Xamarin.Forms.UI.Controls: Controls such as TabView, etc.
Microsoft.Toolkit.Xamarin.Forms.UI.Layout: Layouts such as WrapLayout, etc.
Microsoft.Toolkit.Xamarin.Forms.SampleApp: Sample App.And https://docs.microsoft.com/en-us/xamarin-forms/communitytoolkit/ for the documentation.
I think we need to have figured this one out before releasing our first NuGet. I'm not against Javier's suggestion since it'll at least keep us in line with other Microsoft endorsed toolkits.
Can we do a poll on this thread, list a couple of candidates, and collect the votes from the community?
OK to get back on this: I think we have settled on what Javier was proposing here. This could potentially be split out in multiple NuGets in the future, but for now we will just stick to these namespaces in 1 package (to rule them all). I'll update the README.md with a description of the namespaces both so that users know where to find what and as a reminder to ourselves where to put what.
I think we then are still looking for some kind of branding/logo/whatever?
Hi all! Glad to find you inspired by our project, but the Microsoft.Toolkit package name on NuGet is reserved for our organization.
@jfversluis are you the new maintainer of this project and the right contact to discuss this?
Sure thing! Ping me on Teams
OK I think we're good here for now. Let me open one for a logo of sorts
Most helpful comment
For reference in regards of the Namespace and Nuget naming, we can always look over the wall at what is being done with the UWP community toolkit.
Their namespace is: Microsoft.Toolkit.Uwp as is their Nuget package.
The repo is underneath WindowsCommunityToolkit.
So, yes having a namespace with Microsoft reference seems a good suggestion.