Just sharing some of my inconsequential lunch conversations with you... RSS  

Saturday, June 30, 2007

NHibernate assessment

Now that my my first NHibernate implementation is entering the QA stage, it's probably time to share some thoughts with you.

What went ok:

  • there was practically no impact on the team due to the paradigm change;
  • on the beginning, the artifact the team missed the most was the database diagram, that was deliberately substituted by the static class diagram; that database diagram lack was soon forgotten by whole of the team;
  • the domain model was expressed with great ease;
  • search forms were just easy and natural to develop;
  • the lazyload mechanisms to transverse the domain model was used and abused whenever performance issues were not applicable;
What didn't:
  • we lost the capability to override CRUD operations (ex: we can't just rewrite some class Add method, filling some data and calling base.Add);
  • the OR/M performance overhead just can't be missed on bulk operations;
  • we couldn't find the right software factory for this project, so we decided to develop some CodeSmith templates from scratch to facilitate the data dictionary to HBM, domain model and basic CRUD presentation code;
It's a sure bet for this type of projects. We're now ready for the next leap LINQ offers us. LINQ is such a compelling technology that we daily miss it before even using it :)

SilverLight / VirtualEarth Sample: Destroy All Invaders

Here's a great SilverLight / VirtualEarth integration sample (Virtual Earth as the backdrop for the game, Silverlight for the rest). Play the game here, and get the source there.

PS: and no, you can't report the time playing this game on your daily tasks. No, not even as R&D.

Friday, June 29, 2007

Gartner: Businesses should be wary of iPhone

in: cnet news

Analyst Gartner claims the iPhone could "punch a hole" through corporate security systems if workers are allowed to use the phone for work purposes.

Thursday, June 28, 2007

Advice to bloggers

When starting a blog, don't delay your logging strategy, or you'll probably end up loosing a lot of valuable information. In particular, don't start without ClustrMaps. A must.

What's New in Microsoft® SQL Server™ 2008

Clinic 7045 : What's New in Microsoft® SQL Server™ 2008

Course Type: Self-paced Course

Available Offline: Yes

Estimated Time of Completion: 2 Hours

Language: English

Description:
In this clinic, you will learn about the new and enhanced features included in SQL Server 2008. You will explore the new data types and the data management features. Additionally, you will learn about the enhanced Integration Services, Analysis Services, and Reporting Services included in SQL Server 2008. This online clinic is composed of a rich multimedia experience.

It's here : https://www.microsoftelearning.com/eLearning/cours...

Wednesday, June 27, 2007

Wouldn't life be simpler...

"Wouldn't life be simpler if we had the source code?"

A funny statement I heard on some podcast. If we stop to think of it, it a great way to stand for the open source way.

On a SOA perpective, we could re-write it as:

"Wouldn't life be simpler if we had the contracts?" Hey, here we're getting somewhere, life is really getting simpler :)

Tuesday, June 26, 2007

Native SQL on NHibernate

I've been working on a project where NHibernate was choosen as the OR/M. The usage policy defined for the adoption of OR/M was:

  1. Isolate business rules on a separate business layer (separate from the domain model provided by NHibernate); this decision was partially based on the way tiers are design on our company;
  2. Use insert, update and delete directly from the NHibernate domain model;
  3. Map directly as relationships whenever possible (ex: Invoice.InvoiceLine will interact transparently with INVOICE_LINES, People.Hobbies will interact transparently with PEOPLE_HOBBIES);
  4. Bypass business tier on customized searches - ex: the form that search for Invoices, which will search directly over ICriteria over the OR/M Domain Model;
  5. Use as little HQL as possible;
  6. When none of the previous could be fulfilled, use Native SQL.
Yesterday we finally had to write our first Native SQL code. Ok, we really didn't have to, but we felt this was the time to do it.

Why? We had to reorder a result from a query with a computed criteria, and we didn't want to use views, nor in memory ordering. So here's what we did:


using (TransactionContext transactionContext = new TransactionContext())

{

IList result = transactionContext.Session.CreateSQLQuery(

"Select MyEntity.ID as {MyEntity.Id}," +

“MyEntity.TYPE as {MyEntity.Type}," +

“MyEntity.VALUE as {MyEntity.Value}," +

“MyEntity.PERCENTAGE as {MyEntity.Percentage}," +

“MyEntity.DATA as {MyEntity.Data},

“MyEntity.ID_CONDITION as {MyEntity.Condition}, “

"decode(MyEntity.Tipo, 'E', 0, 'A', 1, 'F', 2, 3) as ordercriterium " +

“FROM T_MY_ENTITY MyEntity inner join T_CONDITION Condition on MyEntity.ID_CONDITION = Condition.ID " +

"order by ordercriterium ",

.AddEntity("MyEntity", typeof(Link.SIGDA.Model.GrandesDireitos.MyEntity))

.List();



// ...

// ...

// ...


}


The integration capability between Native SQL and the Domain Model surpassed my early expectations. Cool!

Sunday, June 24, 2007

OutSystems strengthens worldwide position

Venture investment has just been injected on OutSystems to strengthen their position on the global market.

OutSystems is an enterprise platform designed uppon agility concepts. OutSystems proposes the creation of applications that are faster to create, change and manage, built with scalability assurance.

Applications built with OutSystems are mostly graphical - except for some data relational code, users express their application using workflows, fluxograms and other graphical components, facilitation the communication between the functional and technical worlds, thus lowering the impedance mismatch between them.

In my first impressions, the great strength of OutSystems are:

  • A development platform closer to the functional users – I believe this is the model most of information systems will depend on some years from now, probably on a self-sufficient model;
  • The agility of the platform – fast prototyping is one of the greatest assets of a successful project;
  • “Closed in developing, open in usage” – I find the runtime free model just awesome on an investment protection perspective;
  • Betting on a community and certification - yeap, I'm now OutSystems certified (Level 2), and haven't spoken with anyone from OutSystems; just downloaded and installed the designer (and optionally the runtime), read ther PDF and video documentation and aplied for online tests;
  • Betting on quality and reliability, not on a broad set of functionalities;
  • (from the later) the confidence to open the product to the world “by itself” – the simple fact that we can use OutSystems without someone from OutSystems installing it is just a great achievement for an enterprise platform. For the first 10 years of my career I've worked on a software house on enterprise products, and that was a goal our product division didn’t achieve.

Good luck for them.

Friday, June 22, 2007

HTC Touch

Human-Machine Interfaces are getting smarter. Here's a great sample: HTC Touch.

Now my HTC 3300 just seems like ancient history...

Tuesday, June 19, 2007

New Microsoft Learning Site

One of the best things on my profession is that everything comes automatically with a time limit :) Ok, not everything, the basis may work forever.... But everything else we build upon those basis just suffer from a continuous education syndrome.

Tank god for the net to keep us updated: Microsoft Learning Site.

Monday, June 18, 2007

I'm in love with Acropolis!

Yeap, it's true, the world as we know it is pendular. Remember MFC's DocView? Here it is again, on a beautiful declarative form: Acropolis!

Here's a great little sample.

Thursday, June 14, 2007

Project Server 2007 VSTS Connector

PSOs, start your engines:

The Visual Studio Team System Project Server 2007 Connector is designed to integrate the project management capabilities of VSTS with Project Server 2007. It's been developed by the Visual Studio Team System Rangers in response to significant customer demand for a connector solution. Future versions of Team System will have native integration with Project Server, in the meantime this Connector solution is the best way to integrate the two Microsoft products.

Development Catharsis :: Copyright 2006 Mário Romano