Sedan tidigare har Dynamix objektmotor gjort det möjligt att arbeta med objektmodellering helt utan att behöva skriva databaskod. All modellering sker på .Net-nivån i t ex c#. Detta har visat sig enormt tidsbesparande i alla delar av projektet: prototyper, utveckling och efterjusteringar eller vidareutveckling. Modelleringsarbetet döljs inte under lager av databastabeller, stored procedures eller datacommands.
Tillsammans med Dynamix CMS 5 släpps nu Dynamix Developer Tools som gör utvecklarens arbete ännu effektivare. Kodfilerna för Dynamix-objekt såg tidigare ut enligt:
- C#
namespace MySite
{
[Serializable]
[Dynamix.Descriptors.UI.Name( "Nyhet" )]
[Dynamix.Descriptors.UI.EditObjectDialogDescriptor( typeof( EditNewsItem.UIEditObjectDialogDescriptor ) )]
public class NewsItem : Dynamix.Object
{
public static readonly TextProperty p_Headline =
new TextProperty( "Headline" );
public static readonly ObjectProperty p_Link =
new ObjectProperty( "Link", typeof( Link ), ObjectPropertyFlags.Cascaded );
...
#region Dynamix required constructors
protected NewsItem( SerializationInfo info, StreamingContext context ) : base( info, context ) {}
protected NewsItem( Dynamix.ObjectID id ) : base( id ) {}
#endregion
public NewsItem() {}
[Dynamix.Descriptors.UI.Label( "Datum:" )]
public DateTime Date
{
get { return GetPropertyValue( p_Date ); }
set { SetPropertyValue( p_Date, value ); }
}
...
}
Koden är ganska rättfram, men med många egenskaper och funktioner kan det bli mycket ”infrastrukturkod” för deklaration av egenskaper och attribut för UI-styrning. Det finns viss risk att kopplingsfel uppstår vid t ex kopiering och inklistring av egenskaper (även om risken hade varit mångdubbelt större om vi hade haft ett databaslager att ta hänsyn till också).
Med Dynamix Developer Tools kan vi nu modellera objektet på ett mer intuitivt sätt. Vi börjar med att lägga till ett objekt från Visual studios ”Add new item”-meny:

(Fler mallar än de två i exmplet kommer att finnas tillgängliga i den slutgiltiga releasen)
Verktyget lägger till ett antal filer som tillsammans modellerar objektklassen:
Newsitem.dx.cs och NewsItem.dx.designer.cs innehåller kod och attribut, verktyget kan också skapa och knyta lokaliserad information till exempelvis typnamn och egenskapsetiketter.
Genom att öppna .dx-filen i Visual Studio kan man nu arbeta med en visuell bild av egenskaper och inställningar:

Egenskaper och deras typer hanteras direkt i designern. Dynamix föreslår och förenklar val av giltiga typer som i exemplet ovan.
Det är enkelt att lägga till och hantera objektegenskaper. Dynamix genererar all kod som krävs för att kommunicera med systemet. Alla inställningar som ställs in från verktyget skapas i .dx.designer.cs-filen, vilket håller rent i den del av koden som man som utvecklare vill jobba med:
- C#
namespace MySite
{
//This class must be the first class in the file, otherwise renaming the class using the editor may cause unexpected results
public partial class NewsItem : Dynamix.Object
{
//This constructor must exist
public NewsItem()
{
}
}
}
Användargränssnitt och redigering
I de allra flesta fall kan Dynamix generera användargränssnitt för objekten. I vårt fall ovan kan en sådan genererad redigeringsdialog se ut enligt:
Det mesta av användargränssnittets utseende och funktion kan styras via inställningar. All sådan konfiguration kan göras inifrån modelleringsverktyget. I exemplet ovan har vi lagt till texter för egenskapsnamnen, en hjälptext för datum-fältet och ändrat utseende för text-fälttet. Som utvecklare kan man påverka alla delar, t ex validering, dela upp egenskaperna på flera flikar och grupper, byta redigeringskontroller mm. Man är absolut inte begränsad till att använda Dynamix inbyggda kontroller utan kan byta ut hela dialogen eller delar av den som man vill.
Mycket mer information om dessa möjligheter att skapa gränssnitt kommer i senare postningar och artiklar.