Jul 15 2010

New Features In Symbiote

Category: SymbioteAlexRobson @ 20:03
I’ve been working a lot lately on a few changes to Symbiote that make me happy. I thought I’d write a quick post about them. No More Hard Dependency On StructureMap In a recent job interview, I was talking about some of the things Symbiote can do that make it worth looking at when I was asked, “Can I use something besides StructureMap?” This question made me sad, because the answer at the time was no. This wasn’t the first time other developers had indicated that they didn’t like the idea of a... [More]

Tags: , ,

Jul 1 2010

An Improved Rx Approach For Limiting Asynchronous Calls

Category: .Net Framework | Tips | ToolsAlexRobson @ 00:44
Not a day after I posted Using Reactive Extensions To Throttle Asynchronous Tasks, Josh Bush was already (kindly) saying “I think your code may have a problem”. The issue with the first example is two-fold: one it doesn’t really work as posted and two, if it did it would behave in a less than ideal way. Basically, it calls wait after each item. Not exactly what I was going for. It Would Be Cool If… You have some known/unknown quantity of total work (Y), and you want to limit the number of work... [More]

Tags: ,

Jun 29 2010

Using Reactive Extensions To Throttle Asynchronous Tasks

Category: Tips | ToolsAlexRobson @ 07:58
This weekend I discovered two very valuable ways to control asynchronous processes using the fantastic, amazing and immensely useful Reactive Extensions from the Microsoft Could Programmability Team (not the Research team as I had previously thought). Limiting The Number Of Asynchronous Tasks I recently blogged about ETL with Couch, Relax and Symbiote here. The source batched asynchronous results and blocked until they were completed causing the work to get queued 5 calls at a time and then bl... [More]

Tags: ,

Jun 17 2010

Adding LINQ and Lucene.Net Support To CouchDB with Relax

Category: Open Source | Symbiote | NoSQLAlexRobson @ 09:40
As I mentioned in my last post about ETL fun with CouchDB and Relax, I’m trying to get Relax to an RC state. A big part of that is trying to wrap up a few concerns that our development group at work has around using CouchDB as the application store. One of the biggest concerns we’ve had is surrounding programmatic querying. Trade-offs As .Net developers, we’re “spoiled” with a really nice RDBMS in SQL Server. It’s great being able to get data based on any criteria my heart desires. But the cos... [More]

Tags: , , , , ,

Jun 15 2010

ETL To CouchDB With Symbiote, Relax and Reactive Extensions

Category: Open Source | .Net Framework | SymbioteAlexRobson @ 11:47
I’ve been working on Relax a lot lately. I’ve recently added a Lucene.Net Symbiote project which Relax then uses to provide document indexing and LINQ queries for CouchDB (more about that in another post). A very important part of getting Relax to an RC is understanding how it all behaves under high load. But what’s high load? We generally target SMBs or internal applications which aren’t going to see social networking kinds of stress. Still, I like knowing the upper bounds of what I’m working ... [More]

Tags: , , ,

Jun 10 2010

A Peek Inside My Brain

While my recent work on Symbiote and Relax probably appears to be all over the place, there is a unifying, underlying purpose behind all the work I’m doing. This post is about my short and long term goals. It’s about the technologies and architectures I believe are going to become important in the not-too-distant-yet-not-immediate future. Who I’m Building For I’m primarily building tools for our development team at work. We have seven developers (myself included), which work on multiple projec... [More]

Tags: , , , , , ,

May 5 2010

Talking To CouchDB in .Net With Relax

Category: Symbiote | ToolsAlexRobson @ 16:51
Recently, one of our newest team members, Josh Bush, encouraged me to make my CouchDB API, originally a part of Symbiote, a free-standing assembly that would allow people to talk to CouchDB without having to use the Symbiote stack. Given that Dan Mohl and Elijah Manor had already convinced me that it was a good idea, I couldn’t justify putting it off any longer. So Relax isn’t entirely free of it’s Symbiote dependency. It does still reference Symbiote.Core to get certain baseline functionality ... [More]

Tags: , ,

Apr 13 2010

Symbiote Daemon Screencast

Category: Open Source | Symbiote | ScreencastAlexRobson @ 19:15
I’m hopeful that screencasts will provide a quick way for developers to see how quick and painless it is to use Symbiote. In this screen cast, I demonstrate how to create Windows Services using Symbiote Daemon. Symbiote Daemon Screencast   Since this is my first screencast, it’s probably rough around the edges, as usual, I’m interested in constructive feedback : ) [Edit] A Little More About TopShelf TopShelf is a part of the MassTransit library created by Dru Sellers and Chr... [More]

Tags: ,

Apr 12 2010

Symbiote – Reducing The Radius Of Comprehension

Category: Open Source | Tools | SymbioteAlexRobson @ 05:49
Recently, Mike Taylor talked about his concerns about the increase of all the frameworks and libraries in his Pragmatic Bookshelf article, Tangled Up In Tools. If I understand his point correctly, he’s concerned that developers are too quick to adopt a library or framework which may or may not actually be a good fit and could actually cost the team time and functionality that they wouldn’t have lost had they just built what they needed. At the end of his post, he introduces the term ‘radius of c... [More]

Tags: ,

Apr 8 2010

To All The Frameworks I’ve Started And Abandoned

Category: Open Source | ArchitectureAlexRobson @ 07:56
For years now I’ve been trying to create an open source framework that would address many common application development concerns while reducing the amount of time required to get a project started and on it’s way. My professional experience has taught me that development teams are almost never given enough time and are constantly having to cut corners, incur a lot of technical debt, and choose technologies which aren’t a good fit simply because they don’t have time to incorporate anything new. ... [More]

Tags: ,