jump to navigation

Uno – Dos – Tres Mono! What MonoDevelop Means for your ActiveEngine November 18, 2009

Posted by ActiveEngine Sensei in .Net, ActiveEngine, Linux, Mono, New Techniques, Open Source.
Tags: , ,
3 comments

Much of Sensei’s philosophy is based on stepping out of your comfort zone.  When practiced frequently you enable yourself to pilot your way through situations where you may have to possess more confidence than facts.  And let’s face it, sometimes it just out right fun to wing it when you test your skills with the unknown.

MonoDevelop is a platform that will do that very thing.  It will change the way you think about your application’s architecture as you can branch out from the Windows stack.  Why not a C# back-end with PHP as your UI / presentation layer?  Why wait for “IronPHP”?  For the curious, MindTouch, an open source Wiki / CMS engine does just that.  It runs on both Windows and Linux with the core engine is written in C#.  This engine includes an embedded script parser written in C#, as well as an implementation of tuples and an excellent XML utility class that will make you wonder why you ever why Micorosoft could not have made something, well, easier.

If you are nodding your head in agreement, but are still skeptical that you have the time to make the leap to Linux, MonoDevelop is deployed with a openSUSE VMWare slice that only requires 512 MB of memory.  Really light weight.  It takes longer to download than it does to spin it up.  It’s just ready to go.  the IDE is based SharpDevelop and comes with Intellisense that admittedly does not play well with some cases Lambda’s and Anonymous Types.  This may become apparent when you import an assembly, and it slowed Sensei down for a bit.  Know that this is a failing of the intellisense, as when you get a clean build and test you’ll find that your code is all right.  You’ll need to have confidence in your code and may have to devise additional tests to validate that everything is working.

Save this failing of the IDE, the remaining features are quite nice.  THE IDE LOADS REALLY FAST!  I mean Microsoft should think this through.  VS Studio, while feature rich, is a dog with respect to speed.  Personally Sensei thinks we’ve been lulled into thinking that 2 GB is a minimum and that’s “progress”.  When compiling, watch your CPU on the host machine.  Remember your Guest OS is using 512 MB and it produces a build quickly.  It’s rather impressive.  For VS on Windows Sensei uses 4 GB of RAM and there are times when he sits waiting.  Hmmm…

MonoDevelop comes integrated with NUnit, and natively supports Boo – yeah, the stuff that Ayende raves about – MoonLight, which is a port of SilverLight, and of course ASP.Net.  MonoDevelop lacks robust refactoring features.  If you have ever used Resharper or DevExpress you’ll have shared the same regrets that Sensei has about having wasted time in the IDE.  The same holds for MonoDevelop.  In fact, there are times when the refactoring add-ins throw exceptions.  Outside your comfort zone you will be.  That was Yoda talk.

So where are we with all the man-ish developer bravado?  Mono can be a lateral jump for you into a new series of platforms.  Using VMWare you can easily setup test environments and fail. Fast.  Yeah, that’s a good thing.  With most Linux builds you have the chance to use Lua, a really fast embedded scripting environment.  Lua is native to a new open source database called Tokyo Cabinet you gives you the choice storing data in Value Pairs, B+Tree, or normal indexed table schema.  Here’s a cool presentation detailing the possibilities.  More comfort zone?  How about NHibernate and Spring.Net?  They have been reportedly ported to Linux with Mono.

Wrapping it up ’cause Sensei’s running long.  Just do it.  There are many possibilities here that you are missing if you stay safe.  There are many views that are beyond Microsoft’s vision that  they provide for you.  And that’s the point.  You’ll be more agile on your next gig if you’ve already solved problems beyond the scope of normal.  Yoda translation:  ”Agile you will be.”

Holy Snikies – Emit jQuery with C#!!! October 29, 2009

Posted by ActiveEngine Sensei in .Net, ActiveEngine, C#, New Techniques.
Tags:
add a comment

Brief but exciting and really cool.  tommyboyThere’s a new .Net solution called JSM that will take code like this:

jquery1.png

and emit this:
jquery2.png

Head over this nice presentation for further details, or read this gentleman’s post.  This looks very cool.  Question is whether you can use plug-ins as well.

Source code is here.

Resurrection July 9, 2009

Posted by ActiveEngine Sensei in .Net, ActiveEngine.
Tags: , ,
add a comment

Sounds like the title to a sequel.  Well, perhaps that’s right.   It’s been a long time since my last post, and although many of you may be wondering if I have been morning the fact that there will NEVER be any finale to Deadwood as indeed I have, I have been primarily engaged with work.  Lot’s of work.  I did do a grand standing post naming 2008 the year of consistency and yep that was stupid.  Checking the dates on the blog are a good BS indicator.  My only defense is that I have been consistent at work, and in these times that is an achievement in of itself.

My quest has, though, been very consistent.  Rev up productivity.  A year is like a century in the world of technology and much has contributed to my “growth”.  Ewwww – sounds like I’m about to use the phrase “My journey with you has been amaaaazing.”  So scratch that – I’ve gotten smarter about somethings as circumstances have provided me greater illumination.  Yeah.

For one, I’ve learned about the short comings of .Net.  Big short comings.  Big technical debt short comings with respects to RIA.  Am I a jQuery / CSS bigot?  Nope – you just need the right tool for the job.  With regards to domain logic my strength is .Net.  If you were to ask me to create a business layer for an application I would reach for the #, C#.  That said, I am in agreement with Rob Connery – I need to add him to Pantheon along with Atwood and Spolsky – when he pronounced at MIX:

Embrace your inner scripter and stop building rockets

ASP.Net locks you into a box where if you only use the server side controls and rely entirely on ViewState, you cut your ability to adapt to change in half.  Yes – each time you have to re-compile you’re screwed.  Rely on the HTML emitted by the controls, and you’re screwed.  Try to apply CSS to an autogen’ed menu – well, ahh, you CAN’T!  Moving from the UI to the Domain, you can utilize patterns to reduce coupling and isolate the impact of changes but in some cases you need to configure, not develop.  Adding scripting to your app engine can help your users – that’s those who you are working for – introduce alterations to the solution.

I’m babbling here as I try to re-introduce the blog to people, summarize my direction, and bring new thoughts to the table while trying to remain half way intelligent.  Earlier I mentioned RIA, and in the context of ASP.Net there are some truly great things happening that allow you to combine MS platform with awesome Web 2.0 style techniques.  This post by Dave Ward at Encosia will open your eyes to the new possiblities that jQuery bring to the table for great RIA development with .Net.  That’s without Silverlight.  Enjoy.

New Blood in Deadwood December 4, 2007

Posted by ActiveEngine Sensei in .Net, ActiveEngine, C#, Problem Solving.
Tags: , ,
add a comment

Somehow this blog is taking on a real western theme, yet there are moments interspersed with Budo philosophy. Who knows, maybe we’ll even have Kung-fu. No jokes about Neo, so be warned.

Anyway, The Code Slinger has two great posts on some work he has been doing with dymanic object instantiation and MSIL. True to the philosophy of ActiveEngine, he is asking why 5 times and proving that his ideas work. Check out his posts:

Dynamic Object Instantiation Part I
Dynamic Object Instantiation Part II