Sunday, June 10, 2007

M$ exit strategy: OS X, ALT.NET, aop, PIAB, facade/command patterns, use more web (esp. castle) get ready for ironruby. Ajax and Google Gear

http://vikasnetdev.blogspot.com/2007/06/perfect-storm.html

Vikas never fails me to “force” me to look at something wonderful! I followed the links. I have to admit that I abandoned non-M$ for a while – for too long! I almost lose my perspective, I am almost lost! M$-only is not good for your vision for enterprise computing – I guess we all know that already, this is just another example! Be careful when you are M$-only.

The following are items of my notes. The basic ideas is to get a vision or perspective so that not get stuck with M$-only, i.e. M$-only exit strategy or risk-free strategy, for both individual developer's career and company's sustainable IT service.

http://www.marketwatch.com/News/Story/Story.aspx?guid=%7B629B28CD-9E0E-48CA-8E8B-243AA6E2CB92%7D

http://www.paulgraham.com/microsoft.html

Now, let's get to the technical part. The key is aop. Why ruby is good? because it is not only oop (which is ordinary nowadays) it is aop, pragmatic aop!

To reach ruby in corporate culture, you need either JRuby (available now) or IronRuby (not yet). Further, at least for a while, it has to be, mostly, web. So, to get ready for Ruby:

(a) Understand OOP-AOP by using command pattern (CSLA-simplified), facade pattern by PIAB, castle, springframwork.

(b) You need transform all windows to web (with ajax, Google Gears, flash99/silverlight that is not that a big deal anymore!!!) Note that you need to do it anyway. For ordinary business application (i.e., if not weird stuff), always use Web. The de fault is web, anything else must be carefully scrutinized and specially arranged. Saying Web is crap is wrong, simply wrong. Smart winform or WPF, does not matter, they are fat, and fat is out, thin is in, even deep in the heart of business workflow. Intranet is now deep in the "IN". period.



--------------------------------------------os x
http://www.martinfowler.com/bliki/RubyMicrosoft.html


http://www.martinfowler.com/bliki/AlphaGeek.html


http://www.oreillynet.com/pub/a/network/2002/04/09/future.html


OS X combines Linux (guilty-free computing, yes, I am using cygwin; I want to use unix, because it’s open source, well, most of them) and ipod!

http://www.linuxdevcenter.com/pub/a/mac/2002/05/14/oreilly_wwdc_keynote.html?page=2


Hardware: Apple makes it clear that although open-hardware is a good thing, however, it is less important than open-source-software. The reality is that for now it is not easy to get both (but it is possible though, like linux or Solaris for PC; however, they are not consumer-feature oriented – the reason, money, of course – so, it is difficult to do that, let’s face it) we cannot get both, so, if we have to make choice, we should choose close-hardware-and-open-software, instead of the other way around (which leads to M$). Apple or PC-M$ -- that is the question.



----------------------------- stacks and frameworks, DRY, ALT.NET, AOP, Ruby as perl-relive
You may say that perl started the internet booming; let’s hope ruby can do that again!

I guess that is the reason I begin to dislike using frameworks “as is”. They tend to encourage developers to get into warming water and be cooked like frogs. I want to get the ideas, and remove all those artificial stuff, or, non-DRY (Don't Repeat Yourself. Take a look of CSLA, it is so not DRY! I am not biting my feeding hand; I just love the truth more ;-)

http://weblogs.asp.net/rosherove/archive/2007/06/04/alt-net-alternative-tools-and-approaches-to-mainstream-net.aspx


ALT.NET: just like lightweight Java, ALT.NET is cool, and also lightweight. The key of it is AOP – aspect oriented programming, and that leads to castle and ruby directly) – neither heavyweight Java nor VB6 style (or M$ mainstream) has it.


Also, M$ now has the PIAB. It requires interface, so, it cannot be used for entity properties, so, it is less useful (and much slower) than castle's -- perhaps I should work on borrowinng castle into PIAB. Still, it can be used for many things already. For example, we can use it to avoid CSLA's command pattern (on the forth hand, CSLA's command pattern will be always be an option, for its simplicity). In other words, I guess becuause of PIAB, the facade pattern is now officially has a upper hand toward command pattern! This is a historical moment. My prediction that .Net will take a different path from Java's may turn out to be incorrect. Command pattern sucks, anyway, even it is simpler.

---------------------------------ALT.NET: the following are related with the 8 core techniques
---------------------------------the core of the core is marked by "****" (aop)
---------------------------------it is amazing that those 8 core techniques are now covered by
---------------------------------Elib! the PIAB is the aop.

NHibernate Entity Framework or application block
Windsor Container ObjectBuilder
Aspect# ****Policy Injection Application Block or Use entity-command pattern
CruiseControl.NET Visual Studio Team Build
SharpDevelop Visual Studio + resharp
MonoRail Web Forms with ajax (subsonic)
NUnit/MBUnit MSTest
Scrum MSF Agile
NAnt MSBuild
log4net Logging Application Block
Silverlight Flash
Smartcode CODESMITH
Google Gears
(offline web) Smart client databinding


---------------------------------ruby: web/ajax is important: windows sucks, because you cannot try new technologies almost-freely.

-----------------------------------ruby: new wave:
Quote from Martin: “We're already seeing signs of this at ThoughtWorks - 40% of our new business this year in the US is Ruby work”


----------------------------------I read Martin Fowler’s blog, I have to say that I feel I should start read more his work now regularly. I stopped reading his blogs regularly because of the Enterprise Patterns (I know it is very popular; but I felt it just did some renaming).

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home