Let me first say I love MonoX and I have been using it for a little over a year now and It along with the MonoX staff have proven to be a great experience.
From my experience though I really think you guys should ditch the idea around the default profile part having so many sub parts.
I just recently been heavily working on customizing the profile and at first I tried the standard profile and even customized it using the custom profile tutorial.
But, the design of the MonoX profile limited me, and I ended up needing to put more then one primary profile part on the custom profile to get the design to look like I wanted and even then the functionality I was trying to accomplish still was not there..
So, In the end I am pretty much having to rewrite all my custom profile parts just to reach the design of the profile due to the limitations of the current MonoX profile design.
Here is what I would like to see if possible..
Individual profile parts.. - remove the idea behind the central control of the profile and instead make each part control itself..
Like the ability to have multiple avatar up-loaders.. just set a id and fly, then add another one somewhere else if I want them to be able to pick another
picture for something else.. set a id.. If I place them on a profile page.. automatically just link to the profile they are inserted on and use the id to distinguish which one is what picture.
I also don't want to place a profile web part to have a profile..
That part just limits my design.. It has <Main> <header> and <footer> only.. and if my design does not fall in those guides then I cant use it..
On top of that.. each part you add to it by using the options is inserted above all those tags.. those tags only seem to be for custom content or drag and drop content.
I been experimenting and I found that I can code web controls that have nothing inherited from the profile part and still they will grab the id if placed on a URL rewritten profile location.
Below is my example code:
public Guid GetCurrentProfileGuid()
string userName = string.Empty;
userName = UrlParams.UserProfile.UserName.Value;
Guid userId = SecurityUtility.GetUserId(userName);
if (userId.Equals(Guid.Empty) && (Page.User.Identity.IsAuthenticated))
userId = SecurityUtility.GetUserId();
userName = Membership.GetUser(userId).UserName;
if (!String.IsNullOrEmpty(userName) && !Guid.Empty.Equals(userId))
The above code so far has been working and I can make my own custom individual profile parts.
I also then don't need a central profile control.
I think some of the MonoX web parts do work like this but not all of them..
My problem right now is I wanted to use the avatar up-loader control but it cant be used without the profile control.
so in order for my design to work, I will have to rewrite that control.