Get the goodies here.
Yes, another preview, this being #4. A new preview/beta has not yet been released for MVC3, and I wanted to hold off until it did come, but why wait? Read the notes on the previous release (POP Forums 9 - Preview September 2010), as they all apply to this one as well. Added since then:
- Error logging
- Session tracking
- Time adjustments based on server or user's time zone
- User delete and delete-ban from admin
- No sign-up from banned e-mail or IP addresses
- Background service infrastructure, right now just cleaning up old sessions and logging their ends
- Proper cache headers on HTTP responses, and 304's, for avatars and user images
- Moved stuff in and out of different namespaces
As with the previous release, it's still a bit rough looking, especially the admin stuff (and who cares, only you'll see it anyway).
The service locator stuff is, again, expected to change in the next release of MVC3, so don't get too used to it. The extensibility points, however, should stay the same. If that kind of thing interests you, note that some of the page views, those with dates, inherit from a base page that gets an ITimeFormattingService injected for the "less than a minute ago" and "Yesterday, 3:12p" time formatting from UTC. I'm not sure if I like this, but at the same time, don't want to get overly academic about it.
If you're brave enough to mess with the app, I'm most interested in finding any potential text/HTML parsing bugs. At this point, the wire-up for whether the user uses plain text or the rich text isn't in place, so it's probably broken (or painfully slow) in mobile browsers. Rest assured, it's not permanent.
I've been asked this before: "Why are you running a 'service' in the context of the Web app?" Glad you asked! To reach the widest possible audience, including folks who can't control the box they live on, and therefore can't set up MSMQ or a Windows service (or don't know how to), this is a fairly reliable way to go. I've been using it for years to clean up session data, send e-mail and index posts for searching, and it has been 100% reliable. I'm certainly open to suggestions about the implementation, but again, I like keeping it simple for the crowd that needs to Xcopy and go.
I can't say that I've ever known any kind of Web-based service to suck as much as Twitter, yet be as simple and popular. It really boggles the mind.
As just a regular user, it can be annoying enough with the constant outages and failures. As a developer, it's even worse. In my case, I put a simple hook in CoasterBuzz to publish links from our news page using our cstr.bz short URL's. At the time, you could do simple authorization, as well as OAuth. Since I wasn't dealing in nuclear secrets, and the .NET libraries for OAuth and/or Twitter were somewhere between weak and non-existent, I took the path of least resistance and did up some basic auth against a super simple RESTful URL. It took all of five minutes. And hey, all the docs said is that they'd support basic auth for a long time (or something to that effect).
Then yesterday, I noticed that the publishing is failing. I look at my error logs, and it's 401'ing. I do some looking around to find that they've turned off basic auth. To add insult to injury, I see this on their blog:
Fortunately, developers have known about our transition to OAuth since last December, so they’ve had time to update their apps."
Wow, really? Everyone knew? It's news to me. I pushed out my silly stuff in February, and there was no mention anywhere of any intention to discontinue basic auth, or dates or anything else. Lame.
So I'm chatting with a friend about this, and as we're chatting, lo and behold, e-mail from Twitter lands in our inboxes simultaneously. It contains this gem:
"Over the coming weeks, we will be making two important updates that will impact how you interact with Twitter applications. We are sending this notice to all Twitter users to make sure you are aware of these changes... Starting August 31, all applications will be required to use “OAuth” to access your Twitter account."
You know when this would have been great information? Weeks before September 1, when the e-mail arrived.
My issue is not about using OAuth (however much I'm annoyed that the once simple API is not simple anymore). In fact, the technical merits of using it aren't even an issue to me, as it took less than an hour to fix the problem, and most of that was just evaluating libraries. What annoys me to no end is how unprofessional these kinds of changes are. People are building businesses around Twitter. It's not OK to pull crap like this.
Between this and the annoyance of intermittent outages for the world at large, I can't understand how Twitter is the only game in town. I realize there's a critical mass issue, but the world is a fickle place, especially when it comes to the Internet. Perhaps it's because no one wants to get into a "business" that, to date, has no business.