by Kofi Sarfo
10. June 2009 01:33
We've spent the last few weeks reading, trying to get up to speed with .NET 3.5 and looking at some code. Meanwhile we've not been writing anything besides snippets for learning generics, LINQ and WCF. No ASP.NET MVC. No WPF. No Silverlight. No worries. It's time to build something.
So the concept is reviews for the Twitterati. Reviews of 120 Characters or less. Tweeviews if you like. Key characteristics should be that it's simple, clean and intuitive.
Key technical features:
- ASP.NET Webforms (initially with AJAX)
- SQL Server
Functional areas:
- Category
- Review
- Thumb up or down (as opposed to 4/5 stars)
- Reviewer
- Reviewed object (restaurant, etc)
Not sure whether we call those things above entities.
Old school Microsoft approach is database design first. Data-centric rather than domain driven. I think we're still stuck in that world. Will be worth reconsidering this application and how it might have been done differently using NHibernate, Rhino Mocks, etc. Ayendeified. It ought to be an adjective.
What's interesting (for me) about this is that we've never written a publicly accessible API. We've done Web Services for both inter and intra application domain hookups (not in the .NET sense but rather as an interface between disparate applications on the same platform as well as between different platforms). We used Web Services, for example, in the Advert Framework* for FireText. No problems with SOAP. It didn't really need to be WS-* as it never made use of transactions as originally intended. Still, it was fun playing with the PHP SOAP implementation
Extra bits:
- URL shortening API
- Twitter API
- Some reporting & filtering type UI
First pass, writing this as quickly as I can using tried/tested approach. Second attempt, a rewrite using shiny newish technology. The idea being then able to compare the old versus new, discern what real advantages the new offers and get some refactoring practice. This should be interesting...
Notes:
* It was subsequently rewritten in PHP because the engineer I handed the code to didn't fancy learning C# but a story for another time...