Everything about software architecture and software engineering

20070227

Sketchized and Backgroundized by Mac


I've been sketchized and backgroundized by Mac in public...shame on me!

What does a good manager do?

I've read it from this post. And I'm totally agree. Empowering the Individual helps things go better. The principles by Frank Arrigo.

"invest in the people, make sure they have a career path, make sure they are happy, empower the individuals, and they will do great work".

20070226

Designer's Toolbox...



Three things we use our daily developer's life:

1. OOP principles: Encapsulation, Polymorphism, Abstraction
2. Application design pattern: Model-View-Controller (MVC)
3. Application essential architecture: 3-tiers: Presentation-Business Logic-Data Access

20070223

DSL Seminar Confirmed

We've confirmed the date of DSL and Software Factories Seminar.

The seminar will be hold at Microsoft Turkey office at March, 10th.

During the seminar, I'll try to expose the features of DSL's and Software Factories. Now I'm preparing examples which highlights those features. After seminar, I'll publish my presentation from here and msakademik.net

There and back again...A .NET Conversion tale

I've used Java Language Conversion Assistant today. It's really amazing to see whole project's conversion to .NET. Although there are issues especially on UI packages, those are minor and could easily be handled with a little refactoring. I'd like express my gratitudes to all buddies involved in development of this tool. The most impressing thing was to see whole RMI stuff (which the project has its own implementation of RMIRegistry and rest) are converted to .NET Remoting without a problem. Really amazing...

20070221

why mom's don't like XP...

Very funny... read from here.

20070220

DSL & Software Factories

I'm preparing to a seminar on Domain Specific Languages and Software Factories. The seminar will be hold in Microsoft Turkey office, but the date is not clear yet. The details will be anounced soon at msakademik.net and this blog site.

DSL technology is known and used technology for a while. However, with Visual Studio 2005, DSL is exposed with its power when backed with Software Factories. The leaders of this initiative at MS are Jack Greenfield, Steve Cook and Keith Short. In this seminar, topics included are what is DSL, why to use DSL, practical DSL considerations, the Software Factories concept, using DSL in conjunciton with Software Factories, etc.

20070213

Dominick joins Thinktecture...

.NET security expert Dominick Baier joins thinktecture. I see thinktecture as thoughtworks with different expertise. I like their works as far as I follwed from their blogs.

To me, providing such expertise in IT industry is really great thing. Because, we, the day-to-day developers and architects, sometimes get stuck on something because of loosing insight and blinded on bigpicture. Those experts, like thinktecture saves us from drowning.

Use Inversion of Control in method signatures

IBM's IT Architect André Fachat published an article about how to use Inversion of Control in method signatures. This way, we decrease coupling between components. Read it.

20070212

SaaS and Dependency Injection

Lately, I've been working on Spring.NET to figure out the possibilities of DI-SaaS relationship. Since we all are talking on Software as a Service thing, let's try to understand the requirements.

First, we need software components to be used as a service, those components should satisfy some requirements. The re-usability is the key, but it is not enough to have a generic/common design. Re-usability relies on dynamic configuration at runtime.

Second, Software components should expose their functionality over standard mechanisms. Thus, any type of configurable software component could be able to use them.

Third, configuration on-the-fly shouldn't require you to go back design-time. Which, configuration itself should be self-configurable.

Therefore, It's better to use Spring kind-of (pico or Avalon, too) framework to make it easy to interchange your components into service elements. This is my tought of course, but if you read MFowler's famous article on DI/IoC you can see for yourself.

Marc Fleury quits.....

Marc Fleury quits Redhat... Just to remind his 4 posts The Elephant and The Tiger.

Here is the original posts link:

The Elephant and The Tiger - pt.1
The Elephant and The Tiger - pt.2
The Elephant and The Tiger - pt.3
The Elephant and The Tiger - pt.4

As a matter of fact: The original post to part-2 was removed right after Redhat bought JBoss...

Simply, world's changing, so people are...

20070208

Grid computing on .NET

MSDN published a nice webcast for developing grid applications using .NET. I like the cast. Although it's based on Digipede Network, many aspects are hold true under different platforms. Moreover, there are many architectural principles in the webcast. See for yourself.

ILM 2007 ...

Microsoft announced and released Identity Lifecycle Management 2007. The integrated and unified security solution from MS seems boost up Windows Server sales...

20070207

software engineering re-loaded

Attention please, In spring semester, I'll continue to conduct Software Engineering course. The syllabus is here.

The motto of the course is "to evolve..."

20070206

Synchronization among old and new

A friend at MSDN asked how to design a synchronization mechanism for legacy db and "new" db. What I thought first was the data transportation. I mean, your application could construct such a chain-of-responsibility and proxy like structures which can switch the DB on-the-fly. You can construct an application logic such as trying to extract data from legacy if it fails then check on application db on read cycles. And, try to insert on both parties by firing just one command on write cycles. But be sure to keep log on operations and use transactions on both reading and writing. Such an approach might help you to run reliable.

The last but the most important thing is to keep in mind that such transportation tasks (r/w from some data source) usually introduces so many trade-offs. For instance, you'd probably have comm and resource mngmt costs on the solution above. But, hey, you've to choose an end on trade-off (performance vs. reliability)

20070205

Issue list of VS on Vista

Hasan commented out the list of issues and asks me what are they. So, I post the URL of issues, as enlisted by Microsoft. Also, I'm posting the MSDN page for VS on Vista.

VS on Vista

I did not want to show off, but I switched to Vista Business. Then, as usual, I installed VS.NET 2005 onto it. However, Vista warns me that VS might have compliance problems. Then I figure out that there is a beta SP for this issue... But it seems awkward to me since VS 2005 is the only supported platform for developing .NET 3.0 and Windows SDK. On the other hand, Vista is barely enhanced and matured than XP.

What makes you a good programmer...

Peter Hallam of MS posts his opinion on being a good programmer...I like the way he thinks

job oppenings in R&D



R&D job oppenings from Dilbert

20070202

Load Balancing issues...

Let say you design a distributed software application, and you decided to add a load balancing feature on it. Probably, you'd like to consider network latencies, rules, etc. This load balancer will forwards connections to appropriate endpoint. Then client starts to use that endpoint. But what about binary transfers? How you can handle, let say, file transfers? I mean, if you dynamically forward client to different endpoints each time, how those r/w cycles could be handled for file/data sync. Isn't it creates additional network costs and decreases the benefits of loadbalancer? Do you have any idea? Please mail me your thoughts.

20070201

What tha f.....

Ok, I've read it two times, carefully. Is it possible to construct a service-based application without coding? Am I read it right? GHAAAA!!!

Ok probably because of definitely not being a sales person or even a good businessman, I'm overreacting :P But, man, is this possible really? Do you believe this in heart? Is it possible to say something like that?

Hey, mr.some-software-company, could you build, err...sorry give me, a service for communicating with my accountant?

Read it yourself...

Good service, happy customer....

Nope, I'm not gonna talk about SOA in this post. I only mention few things about service concept.

Let say somehow (whatever you selected to implement a service, might be CORBA or Web Services) you gonna implement a service. The first thing you should consider is the Quality of the Service. Without any sign of quality of your service (sign of quality??? that's another story) that your application would be built upon it, it's not possible to make your application's customers happy.

Furthermore, another thing you should consider when building a web service is easiness of maintenance and management.

My point is,

1. If you consider to create a service, think on dependencies. Because stability is the main point of services. If your service is not stable, then what is it good for?
2. Do not try to, or force to, use Web Services just for show off and say that "we're using SOA, aren't you?" geek. Is Web Service the right enabler? Consider more reliable and mature distributed computing technologies like RMI, CORBA etc. Because SOA isn't Web Services or vice versa.

SOA what?

A friend of mine factor it out as

SOA = Sonuc Olarak Anlamadım ("in the end, i didn't understand" in Turkish)

on SOA thing...(2)

Ok, I've found this article from IBM which expose SOA with a lifecycle (a methodological approach)

on SOA thing....(1)

As far as i figure it out from e-mails, everybody confused about SOA phenomena.

To me, this is normal, since SOA just jumped into our regular developer life.

Some people consider SOA as a software development methodology while others take it as an implementation issue. I think both approaches are right.

Before getting into it, let's flashback several years ago and think about web services thing. Those days were the Web Services day where everybody were trying to inject this new concept into their applications and the mainstream of development was "integration" and "consolidation" was the gold biz-hype. Right after those days, everybody then switched on the interfacing those web service-enable systems with each other. Then, some biz-people backed by technical geeks, tried to name this phenomena with a fancy name. So this is the story.

Because of this light-speed shift, everybody got confused on SOA thing. Some people tried to expose and focus on integrating the services methodologicaly, and others tried to mark the implementation strategies. And even more confused ones tried to explain the subject as Web Services = SOA.

This is the all story from my point of view.

Plug the plug-ins...

Gabriel highlights the approach on plug-in subsystems. Check this out.

However, if we gonna talk on plug-in archiectures, we should keep in mind that we have dependency issues.

Superior being...

the managerial aspect (once again re-published)