Saturday, July 28, 2007
Visual Web GUI
Visual Web GUI is a solution that allows you to write a winforms application and at compile time transform it into an ASP.NET application. The application has same look and feel as winforms applications and it will behave exactly as the winforms application does. So instead of creating an ASP.NET page you create a VWG-form. At Build time the form and controls are translated into ASP.NET, Ajax and JavaScript code.
I’m speechless. The whole thing is so amazing that you must see it before you believe it. Take a look at it.
And the whole stuff is open source and licensed under LGPL.
Roy Osherove wrote more about VWG.
Thursday, July 12, 2007
Wednesday, July 4, 2007
Tuesday, July 3, 2007
ADO.Net Entity Framework and persistence ignorance
I read an ADO.net Entity Framework blog post and realized that those guys don’t fully understand why people are so concerned about lack of persistence ignorance in ADO.net Entity Framework.
Separation of concerns and single-responsibility principle (a.k.a. cohesion) are very important concepts in OO-design. Basically, you want to keep classes, functions, etc. focused so that there is only one reason for them to change. If your domain classes aren´t fully persistence ignorant you have 2 reasons for a business class to change. First, when you need to change the persistence logic, and second, when you need to change the business rules. This “violates” the SRP.
If your domain classes are fully persistence ignorant, it makes them more testable. If they are too tightly coupled to persistence mechanisms, how do you test them? Objects are not just data containers. They also contain behavior and business rules. Testing will be a nightmare if you can’t test behavior without persistence.
Msdn blogs had also an interesting thread.
Wednesday, June 20, 2007
Are you ALT.NET?
David Laribee summarized
nicely a movement in the .NET community - ALT.NET
What does it mean to be to be ALT.NET? In short it signifies:
- You’re the type of developer who uses what works while keeping an eye out for a better way.
- You reach outside the mainstream to adopt the best of any community: Open Source, Agile, Java, Ruby, etc.
- You’re not content with the status quo. Things can always be better expressed, more elegant and simple, more mutable, higher quality, etc.
- You know tools are great, but they only take you so far. It’s the principles and knowledge that really matter. The best tools are those that embed the knowledge and encourage the principles (e.g. Resharper.)
When tools, practices, or methods become mainstream it’s time to get contrarian; time to look for new ways of doing things; time to shake it up. The minute Entity Framework surpasses NHibernate, I mean the very instant it empowers me to better express my intent, so long NHibernate. It’s been real, it’s been nice, but I’m on to the better thing. Of course it’s not as black-and-white as all that. It’s up to us to stay aware, educated, and to give our input. It’s not a game of wait-evaluate-wait-evaluate, it’s a matter of contribution.
But Ayende@Rahien made a good point. It's not about choosing between the good and the bad. It's more likeA developer that seeks to find the best tools and practices, and judge them on merit.
Monday, February 12, 2007
The Tao of Programming
A novice asked the Master: ``Here is a programmer that never designs, documents or tests his programs. Yet all who know him consider him one of the best programmers in the world. Why is this?''The Master replies: ``That programmer has mastered the Tao. He has gone beyond the need for design; he does not become angry when the system crashes, but accepts the universe without concern. He has gone beyond the need for documentation; he no longer cares if anyone else sees his code. He has gone beyond the need for testing; each of his programs are perfect within themselves, serene and elegant, their purpose self-evident. Truly, he has entered the mystery of Tao.''