Planning for the Next Oxite Release
As many of you have been pointing out, it’s been a long time since the last Oxite release. To be exact, it’s been 4 months today. :| For a piece of software, that isn’t much time at all. For a web application, that can be pretty big. We’re usually fast movers, but we made a decision a while back that we want to “go Beta” for the next release. This means that the next release should be at least halfway comparable to the feature set of other blog engines out there and that non-developers should be able to run Oxite without much work. Here are the 3 high level goals for the next release of Oxite:
- Improve the admin (add missing features and improve the user experience)
- Build a great plug-in model (works well for non-devs and devs alike to build small new features on top of Oxite)
- Make installation easier (include Oxite in the Web App Gallery)
With those goals in mind, here’s what we’re working on and how far along we are with each so you can get an idea how much more we have to go…
Required to ship
The following are items we will not ship without and how far along we are in their development.
Plug-in Model – 90%
There’s really too much to talk about with plug-ins here, but the gist of it is that anyone can use their favorite text editor to write a few lines of code, FTP up the file to their web server and run. You can also use Oxite to edit the code file if your hoster will let you edit files through ASP.NET. We will be including a few plug-ins out of the box so you can see how to build them and we’ll also have documentation when we ship (you can see the work in progress docs here). We have already demo’d plug-ins internally to a few teams and so far the response has been great. We’re just in the process of finishing up a couple things and fixing last minute bugs.
Spam Filtering – 95%
We built a plug-in that will be included in the next release that calls out to a spam filtering service (like Akismet or TypePad AntiSpam) when new comments are added and verifies whether or not they are spam and removes any comments that are spam.
Site Setup Wizard – 15%
This feature has been designed and we’ve gone over the design with one of our new contributors who is going to handle the implementation. We want to make setting up a new Oxite instance as simple as possible so walking through the wizard, you will be asked as little as possible to get Oxite running. Afterwards, you can tweak Oxite’s settings to make it work the way you want it to.
User/Blog Management – 50%
We already have pages for adding, editing and removing users and blogs, however, we’re been doing a major overhaul to the admin area and we don’t expect these to be working at the moment. As we overhaul the admin UX we are going to make some changes to the flow of these pages anyway.
Authorization Management – 50%
We have a permission API in place already for the new release, but we don’t have any UI in the admin for it yet. Permissions are done by associating 3 things together: User, Role and Entity. To make a person an owner of a blog to do whatever they want with it, you would associate the user with the admin role to a particular blog.
MetaWeblog API Improvements – 85%
In the new release, we’ve moved the MetaWeblog implementation from WCF to using MVC controller actions. This makes future work simpler to implement and errors easier to bubble up. This work is complete, but not fully test. We will also be adding file support so you don’t have to use FTP for blog post images anymore.
Rich Text Editor – Complete (sort of)
So far, we’ve been unable to find a rich text editor that is compatible with the license of Oxite (Ms-PL) and built on jQuery. In the meantime, we’ve implemented markItUp! This will allow you to do simple formatting that most people will need. In the near future, we will also be demonstrating how you can write your own plug-in to use your favorite rich text editor instead.
Contact Page – 0%
This is sort of a no brainer that we’ve somehow overlooked in past versions of Oxite. All blogs have a contact page. Oxite will join those ranks in the new version. You know, the standard “enter your name and email and a message and I’ll send it to the site/blog owner” type of page.
Scale – 75%
Dumb caching has been implemented at the service level of Oxite. What this means is that the results of calls to the repositories are now cached after the first time they’re called. We invalidate cache by entity or entity type or sliding expiration. The current cache service is implemented using ASP.NET Web Cache. In the future, we will more than likely implement a Velocity cache service too for those who choose to use Velocity. We will also probably make the caching a bit more smart and cache entities and query results instead of just straight query results.
Random Bugs and Admin UX Enhancements – 40%
We have a gazillion bugs we’ve fixed since the last release and are continuing to fix bugs (be sure to start a discussion on CodePlex and report them when you find them). In this bucket, I am also including all of the admin work we’re doing. We’ve added some cool things like dialogs (that work both service side and client side so they’ll work on phones and modern browsers alike), lots of new management pages, new UX around adding and editing posts and pages, etc. The list goes on and on, but you’ll have to wait and see exactly what features get in the next release.
More Cleanup – 95%
We’ve done some more cleanup in this version of Oxite:
- Database – Some tables have been cleaned up and reorganized to make the schema better match the data we store.
- Model – All of our model classes immutable so objects can never be in an incorrect state.
- Services – All add/edit/remove services have been modified to return generic result instances that include validation/model results to help keep validation in a single place.
- Controllers – All controller action parameters have been converted to ENTITYInput or ENTITYAddress classes with ModelBinders to map the values appropriately, all validation has been pushed into the services and we now return ViewModels directly and have filters that convert them into the appropriate ViewResults.
- Views – Many views have been cleaned up and separated better. The admin is now completely separate from the rest of the site and now renders HTML 5 instead of XHTML. Skinning the site is now simpler since the admin is not included in skinning anymore.
Optional to ship
The following are items we would like to make time for, but if they take too long, we will ship the next release without them and put them in the next release. These are ordered by priority.
Modules – 10%
We have a lot of the infrastructure in place, but have yet to fully design how modules will work in Oxite. Basically, we want to break Oxite up into pieces (like IIS 7) so it’s easy to replace and build your own major chunks of Oxite. Modules will be similar to plug-ins, but much more powerful and for those who are very familiar with .NET. If you want to build forums on top of Oxite, a module would help you accomplish that. Modules will be how you can get into the Oxite/MVC pipeline. We’re really set on getting this into this release of Oxite, but if it ends up taking too long, we will cut it for this release.
Blog Management – 60%
While Oxite does support having more than one blog running in it, we haven’t yet optimized it when you go from one to two blogs. To do this, there’s quite a bit of work involved like getting the dashboard to be aware of all blogs a user has access to, the menu needs to change in the admin, plug-ins need to have a way for site admins to specify which plug-ins are allowed to run and then blog owners need to be able to set their own settings on each plug-in that’s installed, etc. This work is high priority on the optional list, but if it doesn’t make it in, it will in the next version.
Skin Engine Enhancements – 0%
While skinning is pretty great in Oxite, we have some ideas on how to improve it further to make scenarios like building an iPhone skin or optimizing Oxite for MSNBot or Google to index your site or making your site work in IE 6 even easier and better organized than it is today. We will more than likely not get to this one for this version.
Threaded Commenting – 75%
Before we went off and implemented plug-ins we started down the path of adding threaded commenting so it’s easier to understand who is replying to who. We got the server side implementation done, but not the client side implementation and it still needs to be properly tested. Hopefully this one will make it in this release, but not making any promises.
AJAX Enhancements – 25%
We’ve done some work in the admin to make things work well client side, but still have some more we’d like to do as well as getting paging and commenting to work client side. Nice to have, but not needed to ship.
Authorization Provider Model – 0%
Our authorization in Oxite is mostly separated out into its own thing, but there is still work to be done to enable anyone to build a module for their own authentication scheme (like OpenID, Live ID, Facebook Connect, etc). This is another nice to have, but if it doesn’t make it in this version, it will be very high priority for the next version.
Exception Logging – 0%
This will make it much easier to debug problems when they come up for people, but is a nice to have and will not hold up shipping the next version if we don’t have time.
Unit Tests – 25%
For the most part, the Oxite team isn’t a TDD bunch, but we do see the importance of unit testing and will try to get more tests in there.
Post ship
After we ship the next release to CodePlex, we will be nearly immediately submitting Oxite to the Web App Gallery. This will make it so those who want to just use Oxite and not go through the code can get Oxite up and running can get Oxite in a few clicks with the Web Platform Installer. This is exciting stuff and will get Oxite out there much more than it is today.
Future
Even though we haven’t even started any development for these, I believe it’s important to understand where we’re going so we build the right things in the right priority. These are items we’re beginning to plan, but would definitely love to hear feedback and eventually get help coding.
Oxite.net
This currently redirects to http://visitmix.com/lab/oxite (our home base). http://oxite.codeplex.com is the other place most people go to. As we grow and need more features it will more than likely make sense to move the project to our own domain (oxite.net) and consolidate it all to one place (other than the source code). Luckily, this will just be a DNS change since we already point to that domain for all our stuff. This is not set in stone yet, but is our current intent. We want oxite.net to be the page everybody goes to for information about features, documentation on how Oxite works, galleries for skins and plug-ins, etc.
Forums
This one comes up often and we think it’s a good idea. Once Oxite modules are done, this becomes easier, but forums usually have a lot of features that blogs don’t (even though it’s still the same idea…post and then comment on the post).
Social
We don’t have user profile pages at all yet, nor anything like being able to add friends, etc. That’s ok for now because there isn’t much of a reason for anybody to register on an Oxite site yet. Anonymous users can comment and do just about anything an authenticated user could. In the future we’d like there to be profiles and friends and some modules I can’t talk about yet. :)
None of this really even hints at a date for the next release. That’s because we really never know when we’re going to work on Oxite. Seems to be random as we have time. We’re building momentum with Oxite. In the last few weeks we’ve added more contributors to Oxite (5 to be exact and we have 2 more joining soon). Some work for Microsoft, some don’t. We need your help to continue building a great platform. Go build something cool with Oxite and show it off. We’re listening closely for individuals who know what they’re doing, build the right things and are very interested in our “little” project. Show us your code! :)
So how do you think the next Oxite release is shaping up? Useful? Awesome? Horrible? Am I forgetting any other major features? What will you build on top of Oxite? Does it seem like something you’ll want to use?
49 Comments
Tommo said
June 22, 2009
I read "Web App gallery", "MetaWeblog" and "markItUp!".
Wickedly awesome.
I've only been waiting two months for this release to be... released. I can't bare any other engine...
JarrettV said
June 22, 2009
I'm lead developer for AtomSite http://atomsite.net and we seem to be almost in sync with the problems and solutions we are developing. It would be great if we could combine efforts....or at least share code/ideas/techniques. :)
Perhaps a skype session could be arranged.
Regards
SaintMak said
June 25, 2009
Is there a date in mind for this release?
Nicholas Mayne said
June 27, 2009
Hey Guys, is there a release date??!
Avatar X said
June 28, 2009
Sounds Awesome Erik. Looking forward to that Beta.
I am guessing on a late july for it. lets see if i get it right.
Erik said
June 29, 2009
Re: Release Date
No release date. This is an OSS project and it's worked on in our spare time for most of it and we feel strongly that the feature list above is important for a good solid beta so we're going to get it done as fast as we can. If I had to guess, I'd probably go with Avatar X's guess. End of July.
@Tommo
Glad you're excited for it. :)
@JarrettV
Happy to chat sometime. Send me a mail... erik dot porter at microsoft dot com
Jamie Bilinski said
July 08, 2009
I’m excited to see Oxite will be going beta soon. Given the feature set, I plan on moving my personal site to Oxite (and perhaps contribute a few use cases to the community), as soon as you check-in the code.
Thanks for you efforts Erik!
Erik said
July 10, 2009
You're welcome. Glad you like what we're working on, Jamie. Thanks!
Trevor said
July 15, 2009
Please consider using elmah (http://code.google.com/p/elmah/) for exception logging. It is a really great tool and no reason to reinvent the wheel
Trevor said
July 15, 2009
I previously tried to submit a comment using my real email address. But Oxite doesn't seem to allow underscores in email addresses!!! My email is trevor_dek@aspevia.com
Erik said
July 15, 2009
@Trevor
Thanks, I'll check it out. I'm not sure if Apache is compatible with Ms-PL or not. I'll investigate that too.
Sorry about the email issue. We've fixed it (as I mentioned over on CodePlex), but I'm not running the latest bits yet.
gboyah@gmail.com said
July 19, 2009
I've check out the new code, and the plugin/module architecture is exciting.
i do have a small suggestion, though - use Common Service Locator. i know that the project is committed to Unity, but explicit Unity references are used when they're not strictly necessary (there are lots of places where the only use is container.Resolve()"
i personally use Windsor for my infrastructure code, but id like to mix and match, so it would lessen the friction of integrating both sets of code.
Erik said
July 21, 2009
Glad you like plugins and modules so far. :)
We can consider it, but understand that it would be a lot of work to switch without that much benefit.
Jeff Walker "Code Ranger" said
July 22, 2009
It's late July. Can we get an updated feeling for when the next version might be out. I would really like to use Oxite for my blog and could begin setting up a theme etc with the latest code, but it is hard to commit with no indication when the next version will be out. The latest release was missing features I needed so I can't just use that.
Erik said
July 23, 2009
Adam Kinney is running on the latest checkins ( http://adamkinney.com ). He's run into bugs (that we're fixing) and some functionality is incomplete, so I would only recommend running on the latest code if you're very knowledgable and flexible. That said, I would definitely start making a skin for your site because skinning won't be changing much for the next release.
Unfortunately right now we're swamped with PDC and Channel 9 work. A bunch of that code is going back into Oxite as we go, but it's taken away from our time to really nail Oxite and get the next released finished. I'd sway we're still a couple months out.
If you decide to start playing with the latest now and run into issues, do let us know and we will fix the bugs as we have time. We're still very active on Oxite (every day we check something in).
Klaus Jensen said
July 26, 2009
Keep up the good work. Looking forward to the next release.
Avatar X said
July 29, 2009
Going to update on my July prediction since you obviously missed it. This time i am going to play it safe and say no further than the 1st of September :P
anton said
August 01, 2009
Will be great if you add rating system to comments. I think it's not so hard and take long time, but very useful feature in most sites.
P.S. I very very like your project!
Erik said
August 03, 2009
@Avatar X
I enjoy your optimism (or pesimism depending on how you look at it). :) To be honest, once we're out of the woods on PDC stuff we're working on, we'll take a small break and then focus our spare time (because we have more to do for our day job) on getting the dev branch of Oxite stable so you all can check out what we're going to ship. That'll probably only be a couple more weeks I would guess. We probably won't ship for another 2 to 4 weeks after that. Sucks, but it's getting hard to find enough time to do what we've gotta do. We've signed up some new people recently to help with code, but there is still a lot of core stuff that Nathan and I are doing that is taking a while. Lots of plumbing.
Avatar X said
August 04, 2009
@Erik: I understand perfectly. ItThink that for a Alpha, .NET Dev only project that only has 3 releases and less than a year old, it has done quite well and shows to be a really good project.
Based on your projections then we are talking about a late September release at most so it is well before PDC09. The next release sure will make the project testing and evolution to seriously accelerate simple because it will now manageable even for non .NET Devs thanks to its inclusion in the Web App Gallery. So i think it will pay off and you may get surprised to see that a lot more people will raise hands to help with the code and a lot more will be actually using it as their Blog Engine before the year ends.
I consider that it that if you release it by the end of September and it catches on, based on numbers from other other projects like Amplifeeder and MojoPortal, Oxite could have 100k installs by the end of the year.
Oxite is a Project with lots of promise. Oxite, Amplifeeder and MojoPortal must the most interesting new Asp.Net projects and my favorites for 2009.
So take your time, I don't have a doubt it will be worth it.
Gary said
August 04, 2009
I'm looking to get a site up on Oxite, should I go with the current version or should I wait for the upcoming release. Just worried about upgrade pain. P.S Your email validation rejected a valid email _ @ I suspect is not handled ;-)
Avatar X said
August 08, 2009
Thought i had replied here already... did the comment system ate my last comment?
Erik said
August 10, 2009
@Avatar X
Just took me a while to get to approving the comments that weren't spam. Need to upgrade to the latest so I can use the spam control plugin. :)
Also, thanks for your confidence in the project. Really glad you like it so far and I would be very happy with your projections. ;)
@Gary
Hard to say. If you're an experienced dev and are willing to go through some pain as we finish things up for the new version then by all means go with the main dev branch. If you don't have the time to really mess with it or aren't very experienced then go with the last release. We'll have upgrade scripts for it to get to the new version.
Yes, we're aware of that bug in the regex for email validation. It's actually already fixed in the main dev branch and will show up on my blog when I get upgraded to the latest. Been busy writing the latest instead of upgrading to it. ;)
Xuefly said
August 31, 2009
I like Oxite2
Robert said
September 02, 2009
What about making it work with VistaDB out of the box? That way a user can REALLY get up and running fast without having to worry about purchasing SQL Server hosting and setting up the DB.
Erik said
September 09, 2009
@Xuefly
Thanks!
@Robert
Or maybe SQL Lite? Or a custom xml file provider? Or Azure (for those who want that sort of scale)? These are all things we're considering.
Steve Wortham said
September 28, 2009
This looks like the blog engine for me, especially since it's done in ASP.NET MVC. I'm looking forward to the beta release.
One question:
I'm relying heavily on OpenID for my site and I'd like for users to be able to use their OpenID to post comments in the blog as well as the other services on the site. That way everything falls under one login.
If not a built-in feature, is the comment system easily extensible that I'd be able to do this?
Erik said
September 28, 2009
Glad you like Oxite so far. :)
For OpenID you'd want to just build another authentication module to allow users to authenticate via OpenID so it really doesn't have anything to do with comments. Comments support both authenticated and unauthenticated comments so however you get users authenticated works fine with commenting. This feature is in the latest checked in code though and not that latest release. If you want to take a look (but it's all subject to change before the next release) look for the interface IOxiteAuthenticationModule. It's pretty straight forward.
Jeff Ancel said
October 07, 2009
Really excited and looking forward to using this product at next release. Is there a status update? Launching a top level blog engine, will gladly boast the engine as well if I could get it on there.
Erik said
October 08, 2009
Jeff, there is news coming about Oxite, but unfortunately I can't share anything until some other news happens. :( It's looking right now like that news is still a month and a half out. Really sorry! :(
Kieron Lanning said
October 15, 2009
Would that news be Beta 2 or an RC of Visual Stuido 2010?
Erik said
October 15, 2009
Nope, and no amount of guessing will help you figure it out. Sorry I can't say yet. Stay tuned.
Andrew said
October 27, 2009
Can you advise if the next version will be based upon ASP.net MVC 2.0?
Michael P. Schulze said
November 05, 2009
Oxite ---> Orchard ?
Erik said
November 05, 2009
I can't comment on the next version of Oxite at this time. Soon. Stay tuned.
Clarence said
November 08, 2009
Erik, Its been nearly 5 months since the initial post. I want to get into MVC, but it would be foolish to jump in on this project only to find out that some major release is on the burner from a coordinated M$ perspective in sync with MVC 2.0.
Scott Hanselman says a release is coming 'soon', but from Code Plex and this blog, I don't see much movement at all.
Please enlighten us just a bit about this.
Nicholas Mayne said
November 10, 2009
Argh!!... I cant wait any longer!! Will you give us some news this month?
Jason said
November 10, 2009
Erik, can you comment on when we might know more?
ylw said
November 12, 2009
since you and nathan are going over to develop orchard, could you let us know what's the future plan of oxite is?
Erik said
November 13, 2009
Thanks for the comments/questions everyone. I assume you all saw the news?
http://orchard.codeplex.com
Clarence said
November 13, 2009
Great... so now we can have two orphaned products in six months.
The way this was handled was awful.
Erik said
November 21, 2009
Not that it would change anything, but how would you have done it differently? As always, you can expect there are a lot of factors at play here that are internal matters that made some of the unfortunate parts of this happen.
Tom said
November 22, 2009
wait a second, what the hecks happened?
Erik said
December 02, 2009
Not sure what you're asking, Tom.
Steve Wortham said
December 02, 2009
Tom, I think this quote from http://orchard.codeplex.com/ sums it up pretty nicely:
"Together this core team will use their experience working with ASP.NET and Oxite to deliver a fundamentally new architecture that is the Orchard CMS. We have deliberately chosen to start development, with the guidance and contribution from the community. Over time we expect this project to become a viable successor to Oxite v1 and we know that providing a migration path for users of that existing application will be a high priority."
Tom said
December 02, 2009
Is Oxite dead or will it be reborn as Orchard?
Erik said
December 03, 2009
Yup, that's a good answer for your question, Tom. Thanks, Steve!
Korayem said
December 10, 2009
Congrats on the new project "Orchard"
Any news on when to expect the first "releasable" version!?
Erik said
December 10, 2009
Thanks!
No dates yet. Still too early. Definitely keep watching though. We're moving very fast.