MySpaceNG Development Page

Monday, July 10, 2006

Disable the LINQ warning!

Howdy All,

How sad is it when an anoying dialog derails you from using an exciting new technology? Very, so I have found a way to disable the anoying warning that ships with LINQ. And, it's not even hard!

1) Start the registry editor
2) Navigate to: HKCU\SOFTWARE\Microsoft\VisualStudio\8.0\CSharp\Options\Editor
3) If the key DisplayAlphaWarning exists, set it to zero. If it doesn't, create a new DWORD value called 'DisplayAlphaWarning' and set it to zero (the default)

TA DA!

Tuesday, July 04, 2006

Hello All,

Todays update deals with Security in MySpaceNG. While writing this, security has been a part of the archatecture from the start, not an afterthought. Now try to combine powerful declaritive security with an extensible meta system... (makes ones head spin).

Some stuff thats "concrete".... ish

I have wrote a nifty class that I plan to post to TheCodeProject called Secret. This generaic class takes any serializable type and provides an easy means of converting it to and from a secure format. It does this with the help of a class called SecretPolicy. Following is an example use:

byte[] encKey = (load an encryption key)
byte[] valKey = (load a validation key)

SecretPolicy policy = new SecretPolicy(new EncryptionKey(encKey, "3DES"), new ValidationKey(valKey, "HMACSHA1"));

SomeType clearSecret = (the secret)

Secret secret = new Secret(policy, clearSecret);

Console.WriteLine(secret.GetStringEncoded());

Secret secret2 = new Secret(policy, secret.GetBinaryEncoding());

SomeType clearSecret2 = secret2.Value;



This is used extensivley in Application.Web.Security.Authentication


Another note, I will host this in IIS7 now that I peeked at it. It hosts all my code in an integrated way so that I can tie security etc EVEN TO NON ASP.NET CONTENT

Hello All,

Todays update deals with Security in MySpaceNG. While writing this, security has been a part of the archatecture from the start, not an afterthought. Now try to combine powerful declaritive security with an extensible meta system... (makes ones head spin).

Some stuff thats "concrete".... ish

I have wrote a nifty class that I plan to post to TheCodeProject called Secret. This generaic class takes any serializable type and provides an easy means of converting it to and from a secure format. It does this with the help of a class called SecretPolicy. Following is an example use:

byte[] encKey = (load an encryption key)
byte[] valKey = (load a validation key)

SecretPolicy policy = new SecretPolicy(new EncryptionKey(encKey, "3DES"), new ValidationKey(valKey, "HMACSHA1"));

SomeType clearSecret = (the secret)

Secret secret = new Secret(policy, clearSecret);

Console.WriteLine(secret.GetStringEncoded());

Secret secret2 = new Secret(policy, secret.GetBinaryEncoding());

SomeType clearSecret2 = secret2.Value;



This is used extensivley in Application.Web.Security.Authentication


Another note, I will host this in IIS7 now that I peeked at it. It hosts all my code in an integrated way so that I can tie security etc EVEN TO NON ASP.NET CONTENT

Hello All,

Todays update deals with Security in MySpaceNG. While writing this, security has been a part of the archatecture from the start, not an afterthought. Now try to combine powerful declaritive security with an extensible meta system... (makes ones head spin).

Some stuff thats "concrete".... ish

I have wrote a nifty class that I plan to post to TheCodeProject called Secret. This generaic class takes any serializable type and provides an easy means of converting it to and from a secure format. It does this with the help of a class called SecretPolicy. Following is an example use:

byte[] encKey = (load an encryption key)
byte[] valKey = (load a validation key)

SecretPolicy policy = new SecretPolicy(new EncryptionKey(encKey, "3DES"), new ValidationKey(valKey, "HMACSHA1"));

SomeType clearSecret = (the secret)

Secret secret = new Secret(policy, clearSecret);

Console.WriteLine(secret.GetStringEncoded());

Secret secret2 = new Secret(policy, secret.GetBinaryEncoding());

SomeType clearSecret2 = secret2.Value;



This is used extensivley in Application.Web.Security.Authentication


Another note, I will host this in IIS7 now that I peeked at it. It hosts all my code in an integrated way so that I can tie security etc EVEN TO NON ASP.NET CONTENT

Friday, June 30, 2006

Long time, little progress...

Greatings All!

So it has been a very VERY long time sense I put anything here, and frankly had forgotten about it for the most part. Tonight I was spured to update you all on what on earth is happening with MySpaceNG, if is still exists, and so on.

The down and dirty...

Yes, I am still working on it.
No, it's nowhere neer complete.
Yes, I am making LOTS of progress, my friends will understand when I say I havn't been able to work on this for the past 4 months
Yes, I plan to open betas in 2 months or less
Yes, I would like some help

Basicly, I had some personal issues distracting me for the past four months... and have gotten back into the grove with this in the past two weeks. I spent a lot of the past few months considering how to implament this entire thing. The archatecture is supposed to be perfect... and elegent. The reason that I am slaving months on the planning phase is because the top items on my list for this project were stability and extensibility.

Tonight I worked on the types:

Application.Security.WebAuthentication
Application.Security.WebAuthneticationTicket
Application.Security.WebAuthenticationModule
Application.Security.WebAuthenticationEventArgs
Application.Security.WebAuthenticationEventHandler
Application.Utility

Yes, I am building the Authentication system from SCRATCH... replacing FormsAuthentication with what I declare to be, a superiour, leaner, cleaner system.

More to come, more often too!

Monday, January 16, 2006

Current Progress...

So I realized that I have failed miserably to keep this up to date

Things that are done

DLinq database schemas
Indigo service host
Most of the core Indigo services
Avalon administration console
Atlas framework for the front end

Wednesday, November 30, 2005

I suppose I best update you all...

So, I finaly have a RTM version of Visual Studio 2005... go me!

I've been working on some of the "plumbing" of the site, classes like LabelCollection, interfaces like ILabelable, IErrorPage, IOwner, and such... the class designer is my favorite new feature, if it had a wee bit more support for things like indexers it would be beautyful. So here is one particular thing that is of interest...

In the data tier, there is a table on the order of [User.Photo]... This table is defined with columns like (PhotoID uniqueidentifier, OwnerID uniqueidentifier, Metadata xml, MimeType varchar(32), RawData image) right? It's a basic schema for such a table... my first task was to create the "ImageFetch" object, and being used to ASP.NET1.X I went straght to a ASHX file... but, I discovered something interesting, there is a new ASIX file in ASP.NET2 for serving image files!!! Yippie I thought! Only one small problem, Visual Studio has no support for it. I was like, the heck? So I have yet to decide wether I am going to simply create the ASIX and let it be, or to use a better supported ASHX... perhaps your comments will let me know eather way.

Other things I have been doing, I will use a database MySpaceNGASPNET for the userbase as well as some select user information in the form of the "Profile" property, but majority of the actual content will go into MySpaceNG, so talking to two databases, fun. The reason is that the ASP.NET membership provider makes things SO easy its not even funny... in fact its a simple matter to link the two...

Guid _userGuid = (Guid)User.Identity.DataStoreIdentity;

or something like that, anyway, the users all have Guids, spiffy


other things of note, ASP.NET2 caching supports SQL invalidation, basicly, a page can be cached until its invalid... there is just one problem with this that I see, if I have a table names [Mail.Messages] that has all the messages in the database, then I can't make Caching work because the invalidation works on a table basis... meening that if anyone sends a message to anyone, it will invalidate all users inboxes... I'm sure there will be plenty of good uses though!

Friday, November 18, 2005

AJAX, Atlas and the Lion King

Hello All-

So your probably not all interested in The Lion King part of the title, but I went and saw it last night, (yes there here in Spokane) and was greatly impressed.

Anyway, this morning I've been lazily studing Atlas, a AJAX technology from ASP.NET. I really wish the development was a bit furthur along, because I've had a great idea. With a combonation of XML datatypes in SQL 2005, and XSLT transforms, most of the hard work can be done on the browser instead of the server. This also lends to the hope that comment posts, etc can be done without a postback! The goal is to make a postback something that is done only when one navigates to a different page. The web service infrastructre will also lend to the possible development of a WinForms client app... (Go XAML!)

The Atlas code is very interesting, mainly because I am a old C++ developer that moved to C# as it was in beta, so any language without namespaces, inharitance, classes, abstracts, and virtuals just seems... wrong. Although JScript is still not strongly typed, its a step in the right direction. The thing I dont know too much about is M$'s declaritive XMLScript... I've often thought that you could implament script as an XML document, and I suppose they can... and have! I'm excited to see more documentation about this all, just wish it were done! I'm rooting for you Atlas teem!!!

Thursday, November 17, 2005

Front end UI

Hello All-

I had receved some questions as to the front end of the platform. Alas, I beleve that the original MySpace is an excelent example of how poorly ColdFusion can perform. The platform that is planed to be ASP.NET. Yes, yes, SQL Server 2005, ASP.NET, IIS 6.0, sounds like the Windows Server Platform eh? We even planed on using ADAM until we realized that NO ONE wanted to learn that for this project. I am working on drafts of a few XML schemas that I hope that you will all review, examples being CommentML and IdentityML. IdentityML serves to be a general purpose markup for anynomous and registered users of other sites, much like OpenID... in fact, we would like to implament both an OpenID server and consumer. IdentityML will contain an Identity element with at least one proof, even if it be an anynomous proof with a logged IP. The proofs that we will be implamenting should be a IDMLverify open standards web service, an OpenID proof, a .NET passport proof, an anynomous proof, and perhaps others.

CommentML is just general purpose makup for leaving comments on photos, people, blogs, and so on. Should be able to contain XHTML and SimpleTextML, a reformated XHTML implamentation, complete with XSLT and XQuery translations to XHTML. It's just a simple version of XHTML for the end user.

Wednesday, November 16, 2005

Database Schema

Hello All-

About recent progress made on the site. I have been inspired to write the frontend competely in CSS abstracting the UI from the content, which should actualy help me, I can just focus on the site mechanics and let somone else CSS it all. The majority of work though has been the defination of the Photo, Person, and Bond schemas. When theres more progress I will be sure to post them. The other part is the T-SQL script to create the database. I perfer writing the entire script by hand and then executeing it. Seems to have more control and it's eaiser for me to create new nodes in a cluster as well. When these are a little more hammered out I will be posting them for public review (if anyone even looks at it), after which I will begin writing the object model. One thing that I have determaned is though we can use the ASP.NET authentication manager, and perhaps a modified role manager, the profile management isnt going to be sufficiant for this sites demands. It's a wonderful peace of design and is beyond elegent in the declaritive storage system, but alas, it doesn't seem to be what I need for this complex database design.

I will keep you posted

Rick

Tuesday, November 15, 2005

Welcome to the MySpace Next Generation Project!

Hello all,

This is a website devoted to the progress of the MySpaceNG project. Here I will post occasional information on the progress being made and whos involved. As of now, I have the domain name myspaceng.com and am using it as the primary url for the site. Also, the actual website is avalible at http://beta.myspaceng.com/ for the testing phase. Don't expect too much on it right now; I've been playing with the layout some (and yes... I made a logo! Go me!) but majority of the work has been on the backend database. As soon as the database and XML schemas are in place, I should be able to create the object models, then its just the front end left. I just want to get some of this online and build as I go you know? One of the hardest things to do thus far is data-store representation of "bonds" or relations between users. Ah well, using XML as a base system should make this eaiser. Thank you SQL server 2005!