Merge branch 'dev'
Gets firebird metadata
Actualizado a Versión online
Added some helpful info to the Preferences Tab.
Added code to remove unnecesary double new line from generated Fluent Mapping and Domain Code.
NMG.Core\Generator\AbstractCodeGenerator.cs
NMG.Core\Generator\CodeGenerator.cs
Improved code that removes repeated FK property names.
NMG.Core\Generator\CodeGenerator.cs
Fix bug when "NameFkAsForeignTable" app preference present.
NMG.Core\Generator\CodeGenerator.cs
TODO: add to app preference a feature/checkbox to enable/disable include Views as Tables.
Fix/Improvment: when converting tables were already PascalCased to PascalCase, not preserve uppercased. Just the "space cased" "underscore_cased" result on PascalCased.
Hope you liked
Fix: When creating the domain Primary Key's that are also Foreing Key (at the same time in the same column) are added as value properties and then again as references in the Domain.
This behaviour occurs when "Name as Foreing Key" is disabled.
(Previously an "Id" was try to added but this is not recommeded because redundant field could lead to confusion and also requires to rename the mapping field too.)
Let's see the following example:

public partial class CustomerAdditionalData {
    public string codIDCustomer { get; set; }   //Duplicate, not necessary.
    public Customer codIDCustomer { get; set; }
    public Customer codIDRecommendedCustomer { get; set; }

"Name as Foreing Key" Exist because a field can have two Foreing Keys to two different tables, this Results in (instead of the above example):

public partial class CustomerAdditionalData {
    public string codIDCustomer { get; set;
    public Customer Customer { get; set; }
    public Customer Customer { get; set; } //Duplicate, because actually both column name are different, but now is named as the Foreing Table.

I hope you find it useful!
I forget remove the + "Id" from:
NMG.Core\Generator\CodeGenerator.cs
NMG.Core\Generator\FluentGenerator.cs
Now when Composite ID (a Primary Key made from more than one column) that also references (have a foreign key) another table, we add all columns in the same "References()" call.

References(x => x.AcaartCodGen).Columns("acaart_CodGen, acaart_CodEle1, acaart_CodEle2, acaart_CodEle3");

Bing for "reference composite fluentnhibernate"
or read
http://devlicio.us/blogs/derik_whittaker/archive/2009/01/30/mapping-a-one-to-many-relationship-with-fluent-nhibernate-w-composite-id-s.aspx

as it says: "The use of WithColumns() on the References (many-to-one) mapping when trying to map back to the parent.  This will tell NHibernate to use the composite-id as the mapping key."

This is buggy yet, but so far it works.
To be more seamless
This:
Id(x => x.SsnID).Column("SsnID").GeneratedBy.Assigned();
instead of:
Id(x => x.SsnID).GeneratedBy.Assigned().Column("SsnID");
seamless with:
Map(x => x.Name).Column("name").Not.Nullable().Length(25);
(second fluent call is Column now.)
Oops, I forget the quotes.
Merge branch 'master' of https://git01.codeplex.com/forks/braian87b/nmg

Conflicts:
	NMG.App/ConnectionDialog.cs
	NMG.Core/DataTypeMapper.cs
	NMG.Core/Domain/ServerType.cs
	NMG.Core/MetadataFactory.cs
	NMG.Core/NMG.Core.csproj
	NMG.Core/Util/StringConstants.cs
Merge branch 'master'. Add https://git01.codeplex.com/forks/braian87b/nmg changes.