Subapp Support

Developer
Sep 12, 2008 at 8:13 AM
Edited Sep 12, 2008 at 8:24 AM
Hi

Experimented a little with virtual directory and application  support. [not really a subdomain issue :-)] (e.g http://localhost/blogsvc)

Added the following to Rewriter.txt...

#  let the server know that we were reached via /locahost/blogsvc and not
#  a root app
RewriteBase   /blogsvc

And then updated the main links in the MasterPage.Master to use application roots

runat="server" href="~/" etc...

Updated the Web.config and Service.Config as well

Working fine... but I didn't want to go too far into the rest of the site until I got some feedback. Would love to join the project. Have already jotted down a few to-do items that come to mind. A newbie to both AtomPub and WCF but think I could make a contribution. Details about me are at http://www.abouch.com

Jarrett - sent you an email from the contact page on your blog a day or so ago... would you be interested in a brief Skype session? My Skype username is anthony_bouch

Best regards,

Tony


Coordinator
Sep 13, 2008 at 4:47 PM
Thanks for taking a look at this.  I'll add you as a developer so you can contribute your changes.  Please let me know about your "to-do" items in case I'm already working on it.  Thanks.
Developer
Sep 14, 2008 at 1:12 AM
Edited Sep 14, 2008 at 1:17 AM
Hi Jarrett

Thanks for adding me as a dev... looking forward to helping out.

Not sure how this fits with your plan, but here were a couple of first thoughts...

1) How about reorganizing the source repository along the lines of

            trunk /lib
            trunk/tools
            trunk/source/ [projects]        

...we could put the ManagedFusion.Rewriter.dll in the lib dir... and any build or unit test dlls in the tools directory - with build scripts sitting loose in trunk and the .sln file inside trunk/source.

Maybe also agree on the namespace and sub namespaces for the project... not a big deal as well - but I think having assemblies that generally match the namespace is a good idea... so maybe BlogSvc as the root name space... followed by BlogSvc.Domain, BlogSvc.Services, BlogSvc.Repository etc... matching both the assembly output name and the namespace together.

Just a suggestion... I guess not that big a deal - but might be handy for later as the project grows and if you'd like to create some build, or setup scripts (for configuring installations or deployment) at some point.

2) I think getting the codebase setup to run of a virtual directory/app from the default IIS web site is pretty important. At the moment 'casual visitors' (myself included) will get a bit stuck if they want to take a closer look at the code...and just want a solution that they can F5 into , or run without having to do more than create a virdir/app.  But I guess this raises a couple of questions, namely:  a) what would be a good default virtual directory/app name to use so we're all on the same setup without conflicting Rewrite.txt, Service.config and Web.config and Web.csproj settings and b) how do we want to reference this in building Urls. Projects like dasBlog use a site root setting to tell the app where it's located - part of a configuration class - which is then used to build up Urls as they're rendered. Picking a name for the development virtual directory/app would be the first step I guess.. then maybe worrying about building urls later since we can just use the ~/ application root notation for now...

Other stuff in no particular order

1) Where to put some utils, or helper classes?  Create a new Utils project Maybe BlogSvc.Utils? (for now?)

2) Hashing passwords even for basic auth

3) Theme support (maybe even the possibility of separate themes per workspace and per collection? (That might be kind of cool)

3) OpenId support for admin and annotations

4) Thoughts about possible view engine support? Even before you consider MVC - you  might like to think about how to template the application, either with master pages and controls like BlogEngine.Net, or with a templating system like dasBlog. I've used NVelocity before and it's pretty cool (Graffiti CMS is also using this)- very easy to create and modify templates with some power features if needed. Good for the 'published' part of a site - and then use regular ASP.Net Webforms for Admin areas. One for later I guess...

5) Maybe a sample user account for the workspace and each collection inside the Service.config file.

6) Thoughts about some kind of admin UI - allowing a user to create new workspaces, collections, assign authors, editors and themes to them etc.

Thoughts?

I guess for starters we have...

1) Repository layout and namespace changes if you agree?
2) Pick a default name for the virdir/app
3) Make the code and config changes required for the virdir/app to work and commit those.

I'm happy to have a go at 3). Thoughts about 1)? and what about for 2) using "http://localhost/blogsvc" as the default virtual directory name?

Would still like to chat about some of the WCF stuff if you'd like to as well... confess I'm not entirely sure how this works.. :-) along with how AtomPub clients 'get' the service configuration... sort of get this.. but not 100% sure her yet.

Hope some of this helps.

Best,

Tony