PiB Anwendung für cardo
Es existiert in der cardo API eine Basisklasse, die die Erstellung von auf PiB basierten Anwendungen vereinfacht.
Die vorliegende Beschreibung geht dabei nicht weiter auf die Erstellung einer cardo Anwendung ein.
Weiterführende Links:
Beispielimplementierung
Client (TypeScript)
export class MyApp extends IduIT.Cardo4.Apps.ApplicationBase
{
/**
* Erstellt eine Instanz der Anwendung.
* @internal
*/
public constructor()
{
MyApp.__appContext = cardo.Core.Api.Applications.PiBBased.getPiBAppContext('IduIT.App.Application.MyApp');
MyApp.__appContext.prepareApplication(toDispose => this._disposeWithThis(toDispose));
super();
}
/**
* Der Anwendungs-Kontext für PiB spezifische Funktionen, als anwendungsweites Singleton
*/
public static get appContext(): IduIT.cardo.Core.Api.Applications.PiBBased.IPiBApplicationContext
{
return MyApp.__appContext;
}
private static __appContext: IduIT.cardo.Core.Api.Applications.PiBBased.IPiBApplicationContext;
}
Server (c#)
Ableiten von der Klasse
cardo.Core.Api.Applications.PiBBased.PiBApplicationBase<MyApp>
Implementierung der abstrakten Methoden
RegisterBaseApplicationScripts
in RegisterApplicationScripts aufrufenInkludieren des PIB-Sql-Update-Dokuments
/// <summary>
/// Anwendungsvorlage
/// </summary>
[IduIT.Core.Web.Ajax.AjaxClass("IduIT.App.Application.MyAppRemote")]
internal sealed partial class MyApp : cardo.Core.Api.Applications.PiBBased.PiBApplicationBase<MyApp>,
IduIT.cardo.Core.Api.Applications.ICardoManagedApplicationWithSystemSettings<MyAppConfiguration>,
IduIT.cardo.Core.Applications.IStandaloneClientApplicationDefinition,
IduIT.cardo.Core.Api.Applications.ICardoManagedApplicationWithSQLUpdateSupport
{
/// <summary>
/// Registriert Scripte in der Seite, die für die Anwendungsinstanz benötigt werden.
/// </summary>
public void RegisterApplicationScripts(ResourceCollector resourceCollector)
{
IduIT.Core.PropertyModel.Registrator.RegisterTypeAsModel(resourceCollector,
typeof(Objects.MyObjects)
);
//Aufruf zu PiBApplicationBase
RegisterBaseApplicationScripts(resourceCollector);
//weiter Js und CSS dieser Anwendung ...
}
/////////////////////////////////////////////////////////
#region PiBApplicationBase
/////////////////////////////////////////////////////////
protected override IDataBaseHandler OpenDatabaseConnection()
{
return this.Settings.OpenDatabase();
}
protected override void InternalDispose()
{
//Nix zu tun hier
}
protected override int? DataEpsgCode()
{
return Settings.DataEpsg?.Code;
}
protected override string WebDAVVirtualRootFolderName => null;
protected override string WebSocketRawMessageAndTagName => "Sample.Tag";
protected override IMemberProvider TryCreatePiBMemberProvider()
{
return null;
}
/////////////////////////////////////////////////////////
#endregion
/////////////////////////////////////////////////////////
public IEnumerable<ApplicationSqlUpdateDescription> GetSqlUpdateDescriptionInstances()
{
//einfach die Datei aus der Resource rausgeben
System.Xml.XmlDocument sqlFile = new System.Xml.XmlDocument();
#if DEBUG
sqlFile.Load(AssemblySourceInfo.SourceCodeBaseFolder + @"\Application\SqlUpdate.xml");
#else
sqlFile.LoadXml(Properties.Resources.SqlUpdate);
#endif
yield return new ApplicationSqlUpdateDescription(
Settings.OpenDatabase(),
IduIT.PiB.PibHandler.GetPIBSqlUpdateDocument(), "IDUITPIB_");
yield return new ApplicationSqlUpdateDescription(
Settings.OpenDatabase(),
sqlFile);
}
}
Zuletzt geändert: 22.04.2024 18:22:09 (erstmals erstellt 12.11.2020)