Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

B.V. Electronic Østerbro 5 7800 Skive +45 97 52 50 22 www.bve.dk GuideOnLine Framework.

Liknende presentasjoner


Presentasjon om: "B.V. Electronic Østerbro 5 7800 Skive +45 97 52 50 22 www.bve.dk GuideOnLine Framework."— Utskrift av presentasjonen:

1 B.V. Electronic Østerbro Skive GuideOnLine Framework

2 System Requirements.Net Framework 4.0 Microsoft SQL Server 2008 R2* Microsoft Visual Studio 2010 GuideOnLine VB or C# Project Templates VB or C# Item Templates *GO Core and some plugins can run without a database

3 Project Templates Kopier mapperne: \Templates\ProjectTemplates\Visual C#\GOLF til \Documents\Visual Studio 2010\Templates\ProjectTemplates\Visual C#. Kopier mappen \Templates\ProjectTemplates\Visual Basic\GOLF til \Documents\Visual Studio 2010\Templates\ProjectTemplates\Visual Basic

4 Item Templates Kopier mapperne: \ItemTemplates\Visual C#\GOLF til \Documents\Visual Studio 2010\Templates\ItemTemplates\Visual C# \ItemTemplates\Visual Basic\GOLF til \Documents\Visual Studio 2010\Templates\ItemTemplates\Visual Basic

5 New C# Project

6 New Visual Basic Project

7 New Project Opretter nyt projekt Tilføjer.Plugin til assembly name Sætter Assembly Version til 4.0.* Tilføjer referencer til GO.Core.dll GO.Forms.dll GO.Shared.dll GO.Windows.dll Opretter Post-build event, der kopierer assembly til C:\Program Files\B.V. Electronic\GuideOnLine 4.0\

8 New Plugin Plugins er en erstatning for kodeforløbet: 1.Instantier typen ved at kalde vilkårlig constructor. 2.Typen specificeres i kode. 3.Instantieringsrækkefølgen af forskelllige typer bestemmes i kode. 4.Brug instansen. 5.Når ingen længere har reference til instansen -> GC. I stedet opnås følgende kodeforløb: 1.Instantier alle typer ved at kalde default constructor. 2.Typerne og instantieringsrækkefølgen specificeres i database. 3.Sæt InstanceID. 4.Kald Initalize() metoden. 5.Brug instansen. 6.Kald Terminate() metoden. 7.Når ingen længere har reference til instansen -> GC.

9 New Plugin Plugins er typer, der implementerer IPlugin: public interface IPlugin { string InstanceID { set; get; } void Initialize(PluginInitializeEventArgs e); void Terminate(PluginTerminateEventArgs e); }

10 New Plugin PluginControlBase System.Windows.Forms.UserControlForms PluginFormBase System.Windows.Forms.Form PluginNamedBase Class Class PluginUserControlBase (WPF) UserControl WPF System.Windows.UserControl PluginWindowBase (WPF) Window (WPF) System.Windows.Windows.Window

11 New Plugin

12 C#

13 VB

14 Debug Vælg Start external program og peg på C:\Program Files\B.V. Electronic\GuideOnLine 4.0\GO.Main.Windows.exe Tilføj –ignoreupdates under Command Line Arguments Vælg Start Debugging Tilføj plugin under Management

15 Debug

16 Opgave Opret en ny plugin og start den i GuideOnLine.

17 C# Plugin Properties

18 VB Plugin Properties

19 Plugin Properties

20 Opgave Opret en property og sæt værdien i GuideOnLine. Vis værdien, når pluginen starter op.

21 Services Services skal registrere sig selv i en singleton klasse, der implementerer IServiceManager: public interface IServiceManager { event EventHandler ServiceAdded; event EventHandler ServiceRemoved; void Add(string instanceID, string displayName, string descr, INamedObjectservice); void Remove(INamedObject service); object GetService(string instanceID); object GetService(Service service); INamedObject[] GetServices(); } Som det ses af IServiceManager, så er det eneste der kræves af en type for at være en service, at den implementerer INamedObject: public interface INamedObject { string InstanceID { get; set; } string Description { get; set; } string DisplayName { get; set; } } INamedObject er meget simpel at implementere. Man kan dog i stedet lade sin type arve fra NamedObjectBase, som i følgende eksempel: MyService : NamedObjectBase { void DoSomething() {} } // Create service var service = new MyService(); // Register service serviceManager.Add("Test.MyService", "Min Service", "Min danske beskrivelse", service); // Use service var use = (MyService)serviceManager.GetService("Test.MyService"); use.DoSomething();

22 Consumers Consumers kan vælge selv at hente deres services fra IServiceManager, som vist i forrige eksempel. Ofte vil man dog vælge, at lade consumer typen arve fra ServiceBase, der implementer de mest gængse services: IServiceManager ServiceManager; Database Database; IActivationOptions ActivationOptions; IEnvironment Environment; IDirectory Directory; ILog ErrorLog; ILog InfoLog; ILog EventLog; IDatabaseDictionary Dictionary; IAccessManager AccessManager; ILogOnManager LogonManager; Eksempel: MyConsumer : ServiceBase { void DoSomething() { // Use inherited service ErrorLog.WriteLine(“Hello world”); } Det er vigtigt, ikke at cache services i MyConsumer, da en eventuel ny service kan blive registreret.

23 Data binding i WPF DataItems kan bruges sammen med data binding i WPF. Mulighed for at læse og skrive data uden at have underliggende kode.

24 Services LogListener ILogListener (GO.Logging) DataServer IDataServer (GO) DataSubscription DataSubscription (GO.DataServices) MessageConnection IMessageConnection (GO.MessageHandler) Printer PrinterBase (GO.PrintHandler) Activity (Workflow) ServiceCodeActivity (GO)


Laste ned ppt "B.V. Electronic Østerbro 5 7800 Skive +45 97 52 50 22 www.bve.dk GuideOnLine Framework."

Liknende presentasjoner


Annonser fra Google