Читаем Дефрагментация мозга. Софтостроение изнутри полностью

name ="Period">

name ="Id" type ="TEntityId" primaryid ="true" autoincrement ="true" />

name ="FiscalYearId" type ="TEntityId">

name ="FromDate" type ="date">

name ="FiscalYearId"/>

name ="PeriodNumber" type ="smallint">

name ="ToDate" type ="date">

entity ="Period" name ="FiscalYear"

entity2 ="FiscalYear" name2 ="Periods"

cardinality ="M:1">

attribute ="FiscalYearId" attribute2 ="Id" />

Теперь необходимо задать конфигурацию в описании проекта. Предположим, что мы хотим создать 3-звенное приложение со следующими логическими слоями:

• слои хранения будут развёрнуты на SQL Server или Oracle;

• слой домена под управлением NHibernate;

• слой веб-служб на базе ServiceStack (вместо WCF, имеющего под Mono/Linux ограничения).

Пример конфигурации проекта в Genie Lamp

fileName ="MyModel.xml" />

name ="SqlServer"

type ="GenieLamp.Genies.SqlServer.SqlServerGenie"

assembly ="GenieLamp.Genies.SqlServer"

active ="false"

outDir

="%PROJECT_DIR%/../SQL/SqlServer-%TARGET_VERSION%"

outFileName ="%PROJECT_NAME%.sql"

updateDatabase ="true"

targetVersion ="2008">

name ="Database.Create" value ="false" />

… Другие параметры "заклинания"

name ="OracleDb"

type ="GenieLamp.Genies.Oracle.OracleGenie"

assembly ="GenieLamp.Genies.Oracle"

active ="true"

outDir ="%PROJECT_DIR%/../SQL/Oracle-%TARGET_VERSION%"

outFileName ="%PROJECT_NAME%.sql"

outFileEncoding ="iso-8859-1"

updateDatabase ="false"

targetVersion ="10g">

name ="UniqueIndexConstraint" value ="true" />

name ="NHibernate"

type ="GenieLamp.Genies.NHibernate.NHibernateGenie"

assembly ="GenieLamp.Genies.NHibernate"

active ="true"

outDir ="%PROJECT_DIR%/../Domain"

outFileName ="%PROJECT_NAME%.Domain.cs"

targetVersion ="*">

name ="TargetAssemblyName" value ="Company.Business.%PROJECT_NAME%.

Domain" />

для генерации интерфейсов к веб-службам – >

name ="ServiceStack Services Interfaces"

type ="GenieLamp.Genies.ServicesLayer.ServiceStack.ServicesInterfacesGenie"

assembly ="GenieLamp.Genies.ServicesLayer"

active ="true"

outDir ="%PROJECT_DIR%/../Services.Interfaces"

targetVersion

="*">

для генерации собственно веб-служб – >

name ="ServiceStack Services"

type ="GenieLamp.Genies.ServicesLayer.ServiceStack.ServicesGenie"

assembly

="GenieLamp.Genies.ServicesLayer"

active ="true"

outDir ="%PROJECT_DIR%/../Services"

targetVersion ="*">

name ="Persistence">

style ="uppercase" maxLength ="30">

name ="PrimaryKey.ColumnTemplate" value ="NI%TABLE%" />

name ="PrimaryKey.ConstraintTemplate" value ="PK_%TABLE%" />

… Другие шаблоны именований

name ="ForeignKey.CreateIndex" value ="true" />

name ="BooleanValues" value ="YesNo"/>

name ="Domain">

name ="BaseNamespace" value ="Company.Business.%PROJECT_NAME%" />

name ="Services">

name ="BaseNamespace" value ="Company.Business.%PROJECT_NAME%" />

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже