Valion Consulting AG Implementing Better Solutions Monbijoustrasse 20 CH-3011 Bern +41 (0)31 328 10 10 www.valionconsulting.ch



Ähnliche Dokumente
ELIS 2.6 WCF Schnittstellenbeschreibung

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Konfigurationsanleitung Fax over IP (T.38) und CAPI Fax Server (T.30) Graphical User Interface (GUI) Seite - 1 -

Neuerungen in ReviPS Version 12g

Klausur GUI-Entwicklung WS10/11 1.Termin

Konfigurationsanleitung Astimax (SIP) an RT1202 (ISDN) Graphical User Interface (GUI) Seite - 1 -

Konfigurationsanleitung Standortkopplung mit T444 (ISDN) und RT1202 (SIP) Graphical User Interface (GUI) Seite - 1 -

am Beispiel von JUnit

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

OP-LOG

[Bedienungsanleitung] InfoSys App

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

Konfigurationsanleitung SIP Trunking und ISDN Anlagenanschluss Graphical User Interface (GUI) Seite - 1 -

Benutzerhandbuch. bintec elmeg GmbH. Benutzerhandbuch. be.ip. Workshops. Copyright Version 1.0, 2015 bintec elmeg GmbH

NTT DATA Helpdesk Benutzerhandbuch

WPF Steuerelemente Listbox, ComboBox, ListView,

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

MSXFORUM - Exchange Server 2003 > Konfiguration Sender ID (Absendererkennu...

Masterplan Link. Technische Dokumentation. ASEKO GmbH. Version 1.0

Projekt SBI Benutzeranleitung Remotezugriff. Teilprojekt Standard-Arbeitsplatz Arbeitspaket Basis Applikationen. Kantonsspital St.

Nathan Burgener. Design by Contract. Modul SWE

Dokumentieren mit Eclipse und Doxygen

Übung - Konfigurieren einer Windows-XP-Firewall

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

Probeklausur Softwareengineering SS 15

Java: Vererbung. Teil 3: super()

ESB - Elektronischer Service Bericht

Konfigurationsanleitung Tobit David Fax Server mit Remote CAPI Graphical User Interface (GUI) Seite - 1 -

SEP 114. Design by Contract

Programmieren in Java

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Testen mit JUnit. Motivation

SharePoint Demonstration

Dokumentation Typo3. tt - news - Nachrichtenmodul

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Extending tl_member. Andreas Fieger

Dokumentation für das Spiel Pong

ISA Einrichtung einer DFUE VErbindung - von Marc Grote

Mobile-Szenario in der Integrationskomponente einrichten

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

1. Allgemeines zum tevitel.wq-monitor Seite WQ-Monitor konfigurieren Seite 4

Typumwandlungen bei Referenztypen

datenfabrik. Validieren von -Adressen 1

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Ausgangsrechnungen. an den Bund

Konfigurationsanleitung Standortkopplung mit SIP Trunking (Client / Server) Graphical User Interface (GUI) Seite - 1 -

Große Übung Praktische Informatik 1

Java Einführung Collections

How to do? Projekte - Zeiterfassung

twentyone die wichtigsten Funktionen Modul Tätigkeiten: Termine und Aufgaben des aktiven Benutzers

Client-Server-Beziehungen

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Themen. Web Service - Clients. Kommunikation zw. Web Services

Support-Tipp Mai Release Management in Altium Designer

Verwendung der PayJoe -API zum externen Upload von Belegen und Zahlungen

WCF Services in InfoPath 2010 nutzen

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

ID VisitControl. Dokumentation Equitania Software GmbH cmc Gruppe Seite 1

Microsoft Office 365 Kalenderfreigabe

LabTech RMM. Integration von Teamviewer. Vertraulich nur für den internen Gebrauch

WPF Bindung. Dr. Beatrice Amrhein

Der inobroker Kfz-Versicherungsvergleich. ino24 ist eine Beteiligung der Hubert Burda Media

Einführung in die Programmierung für Wirtschaftsinformatik

UserManual. Handbuch zur Konfiguration einer FRITZ!Box. Autor: Version: Hansruedi Steiner 2.0, November 2014

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Horstbox VoIP. Stefan Dahler. 1. HorstBox Konfiguration. 1.1 Einleitung

SAP Installationsanleitung

HowTo: Einrichtung & Management von APs mittels des DWC-1000

Agentur für Werbung & Internet. Schritt für Schritt: -Konfiguration mit Apple Mail

U08 Entwurfsmuster (II)

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Konzept Projekt Lisa

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

POP -Konto auf iphone mit ios 6 einrichten

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

How-to: Mailrelay und Spam Filter. Securepoint Security System Version 2007nx

Verbinden von IBM Informix mit Openoffice mittels JDBC

Tagesprogramm

Anleitung öffentlicher Zugang einrichten

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung

Quickreferenz V1.1. Frank Naumann

Objektorientierte Programmierung

Praktische Übung 'JUnit-Test'

Kapsch Carrier Solutions GmbH Service & Support Helpdesk

Clients in einer Windows Domäne für WSUS konfigurieren

Massenversand Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

-Einrichtung mit Thunderbird POP und IMAP meist SSL

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Neue Funktionen im GUI für PC-DMIS V3.x 4.x Seite 1 von 8

WebService in Java SE und EE

Prüfung Software Engineering I (IB)

Anleitung. Update/Aktualisierung EBV Einzelplatz Homepage. und Mängelkatalog

Transkript:

Valion Consulting AG Implementing Better Solutions Monbijoustrasse 20 CH-3011 Bern +41 (0)31 328 10 10 www.valionconsulting.ch

i

ii

iii

1

2

3

4

5

6

7

8

Presentation Reporting Business 9

Presentation Business Reporting DataAccess Reporting Business Presentation 10

Presentation Business Presentation Business Core Presentation Dispatcher 11

12

13

14

15

16

17

IDo /// <summary> /// Schnittstelle um die bearbeitbaren Objekte /// dynamisch zu verändern. /// </summary> public interface IDo { decimal Id { get; set; } /// <summary> /// Erstellt ein neues Objekt in der Datenbank. /// </summary> /// <param name="dataaccess">dal-anbindung</param> /// <returns>die Unique-Id des Objekts.</returns> decimal Create(IDataAccess dataaccess); /// <summary> /// Aktualisiert das Objekt in der Datenbank. /// </summary> /// <param name="dataaccess">dal-anbindung</param> void Update(IDataAccess dataaccess); } /// <summary> /// Löscht das Objekt aus der Datenbank. /// </summary> /// <param name="dataaccess">dal-anbindung</param> void Delete(IDataAccess dataaccess); 18

/// <summary> /// Speichert die Daten in der Datenbank. /// Übergibt das geänderte Objekt anhand der entsprechenden /// Operation an den Proxy zur Ausführung. /// </summary> /// <param name="proxy">kommunikationsschnittstellenobjekt</param> /// <param name="loginname">login-name des Mitarbeiters</param> public void Save(IPresentation proxy, string loginname) { // Für jedes Objekt die Aktion auf der WCF-Schnittstelle auslösen foreach (KeyValuePair<IDo, SaveCommand> kvp in _objectlist) { // kvp.value = Command switch (kvp.value) { case SaveCommand.Add: // kvp.key = Objekt welches IDo implementiert kvp.key.id = proxy.createobject(kvp.key, loginname); break; 19

IDo 20

[OperationContract] [FaultContract(typeof(WrongInputDataException))] AbsenceCalendar GetAbsenceCalendar(decimal employeeid); OperationContract: FaultContract: [DataContract] public class ProjectPlanEntry : PlanEntry, IDisposable, IDo DataContract [ServiceKnownType(typeof(WeekPlanEntry))] decimal CreateObject(IDo obj, string loginname); ServiceKnownType: OperationContract ServiceKnownType 21

try { // Alle Feiertage des aktuellen Jahres anzeigen HolidayCalendar holidays = _proxy.getholidaycalendarfromyear(_year); ShowAllHolidaysDialog showallholidays = new ShowAllHolidaysDialog(holidays, _year); showallholidays.showdialog(); } catch (FaultException<WrongInputDataException> ex) { Trace.TraceError(ex.Message); MessageBox.Show(ex.Message, "NewMandatis", MessageBoxButton.OK, MessageBoxImage.Error); } <!-- WCF Konfiguration --> <system.servicemodel> <bindings> <basichttpbinding> <!-- Über die Binding-Parameter stellt man die zulässige Menge der Daten bei einem Call ein --> <binding name="mywcfbinding" maxbuffersize="512000" maxreceivedmessagesize="512000"> <readerquotas maxdepth="32" maxstringcontentlength="512000" maxarraylength="16384" maxbytesperread="4096" maxnametablecharcount="16384"/> </binding> </basichttpbinding> </bindings> 22

<services> <service name="ch.vc.newmandatis.backend.businesslayer.dispatcher.dispatcher"> <!-- Service Endpunkt - wo und wie der Service erreichbar ist --> <endpoint address="http://localhost:1550" binding="basichttpbinding" bindingconfiguration="mywcfbinding" contract="ch.vc.newmandatis.contract.servicecontract.ipresentation"> </endpoint> </service> </services> </system.servicemodel> UserControls 23

UserControl UserControl UserControl UserControl IPlugin UserControl IPlugin /// <summary> /// Initialisiert das UserControl /// </summary> /// <param name="proxy">proxy für die Kommunikation</param> /// <param name="user">der aktuell eingeloggte Benutzer</param> void Init(IPresentation proxy, InternalEmployee user); /// <summary> /// Gibt das Panel-Item für den Navigationsbereich zurück. /// </summary> /// <returns>das PanelItem.</returns> PaneItem GetPaneItem(); /// <summary> /// Gibt den RibbonTab für das Ribbon-Menü zurück. /// </summary> /// <returns>das Ribbon-Tab.</returns> RibbonTab GetRibbonTab(); IPresentation IPresentation _proxy = ChannelFactory<IPresentation>.CreateChannel(baseHttpBind,_endpointAddress); _proxy.checkconnection(); CheckConnection(): IPresentation 24

25

/// <summary> /// Löscht das übergebene Objekt aus der Datenbank. /// </summary> /// <param name="obj">ein Objekt, welches die IDo-Schnittstelle /// implementiert</param> /// <param name="loginname">login-name des Benuttzers</param> /// <exception cref="exceptions.wronginputdataexception">falsche /// Eingabedaten</exception> public void DeleteObject(IDo obj, string loginname) { _core.deleteobject(obj, loginname); } /// <summary> /// Gibt alle offenen resp. in Bearbeitung stehenden Projekte zurück. /// </summary> /// <returns>liste von Projekten</returns> public IList<Project> GetOpenProjects() { /// Holt alle offenen Projekte vom DAL IList<Project> projects = _dataaccess.getopenprojects(); // und dem Kern hinzufügen PutProjectsInList(projects); // Projekte zurückgeben return projects; } IPresentation 26

IDataAccess /// <summary> /// Schnittstelle für den Zugriff auf den Data Access Layer /// </summary> public interface IDataAccess { /// <summary> /// Gibt für das entsprechende Projekt alle zugeordneten /// Projektmitglieder zurück. /// </summary> /// <param name="projectid">die ProjektID</param> /// <returns>liste von Employee</returns> IList<Employee> GetProjectMember(decimal projectid); 27

28

/// <summary> /// Gibt den Eintrag für den entsprechenden Mitarbeiter zurück. /// </summary> /// <param name="employeeid"></param> /// <returns>employee Tabelle</returns> /// <exception cref="argumentexception">wenn ein Datenbankfehler auftritt.</exception> public DSNewMandatis.EmployeeDataTable GetEmployee(decimal employeeid) { try { return Adapter.GetDataByEmployeeId(employeeId); } catch (InvalidOperationException ex) { Trace.TraceError(string.Format("{0} - Error: {1}", "GetEmployee", ex.message)); throw new ArgumentException(ex.Message, ex); } } /// <summary> /// Mappe die Daten der übergebenen Employee Tabellen-Row in ein /// Emplyoee Business-Model Objekt. /// </summary> /// <param name="employeerow">der Record aus der Employee Tabelle</param> /// <returns>den Mitarbeiter</returns> public Employee GetEmployeeData(DSNewMandatis.EmployeeRow employeerow) { EmployeeCapacityMapping employeecapacitymapping = new EmployeeCapacityMapping(); // Überprüfe, ob es sich um einen externen Mitarbeiter handelt. if (employeerow.isexternpartnerflag == 1) // 1 == true { ExternalEmployee employee = new ExternalEmployee(employeeRow.Employee_ID); try { employee.employeesince = employeerow.datefrom; 29

30

31

32

[TestFixture] public class UtilTest { [Test] public void GetCalendarWeekTest() { //Letztes Datum in der KW int cw = Util.GetCalendarWeek(new DateTime(2009, 8, 2)); Assert.AreEqual(31, cw); [TextFixture]: [Test]: Assert: [SetUp]: [TestFixtureSetUp]: [TearDown]: [TestFixtureTearDown]: 33

34

35

36

37

38

39

40

41

A

Order # Test Name Status 1 UnitTest.Backend.DataAdapterTest.CreatePlannedAbsenceTest SUCCESS 2 UnitTest.Backend.DataAdapterTest.CreateProjectPlanEntry SUCCESS 3 UnitTest.Backend.DataAdapterTest.CreatePublicHolidayTest SUCCESS 4 UnitTest.Backend.DataAdapterTest.CreateShortTimePlanEntry SUCCESS 5 UnitTest.Backend.DataAdapterTest.CreateWeekPlanEntryTest SUCCESS 6 UnitTest.Backend.DataAdapterTest.DeletePlannedAbsenceTest SUCCESS 7 UnitTest.Backend.DataAdapterTest.DeleteProjectPlanEntryTest SUCCESS 8 UnitTest.Backend.DataAdapterTest.DeletePublicHolidayTest SUCCESS 9 UnitTest.Backend.DataAdapterTest.DeleteShortTimePlanEntry SUCCESS 10 UnitTest.Backend.DataAdapterTest.DeleteWeekPlanEntryTest SUCCESS 11 UnitTest.Backend.DataAdapterTest.GetAbsenceCalendarTest SUCCESS 12 UnitTest.Backend.DataAdapterTest.GetAbsenceCategoriesTest SUCCESS 13 UnitTest.Backend.DataAdapterTest.GetBusinessRulesTest SUCCESS 14 UnitTest.Backend.DataAdapterTest.GetCategoryCapacitiesForEmployeeTest SUCCESS 15 UnitTest.Backend.DataAdapterTest.GetDepartmentNames SUCCESS 16 UnitTest.Backend.DataAdapterTest.GetEmployeesTest SUCCESS 17 UnitTest.Backend.DataAdapterTest.GetExternalEmployeeTest SUCCESS 18 UnitTest.Backend.DataAdapterTest.GetFunctionTest SUCCESS 19 UnitTest.Backend.DataAdapterTest.GetHolidayCalendarTest SUCCESS 20 UnitTest.Backend.DataAdapterTest.GetInternalEmployeeTest SUCCESS 21 UnitTest.Backend.DataAdapterTest.GetOpenProjectsTest SUCCESS 22 UnitTest.Backend.DataAdapterTest.GetOvertimePaymentsTest SUCCESS 23 UnitTest.Backend.DataAdapterTest.GetProjectMemberCostTest SUCCESS 24 UnitTest.Backend.DataAdapterTest.GetProjectMemberTest SUCCESS 25 UnitTest.Backend.DataAdapterTest.GetProjectPlanTest SUCCESS 26 UnitTest.Backend.DataAdapterTest.GetProjectsForEmployeeTest SUCCESS 27 UnitTest.Backend.DataAdapterTest.GetProjectsForProjectCategoryTest SUCCESS 28 UnitTest.Backend.DataAdapterTest.GetProjectsForProjectManagerTest SUCCESS 29 UnitTest.Backend.DataAdapterTest.GetProjectTest SUCCESS 30 UnitTest.Backend.DataAdapterTest.GetShortTimePlanTest SUCCESS 31 UnitTest.Backend.DataAdapterTest.GetWeekPlanTest SUCCESS 32 UnitTest.Backend.DataAdapterTest.GetWorkTimeCaptureTest SUCCESS 33 UnitTest.Backend.DataAdapterTest.UpdatePlannedAbsenceTest SUCCESS 34 UnitTest.Backend.DataAdapterTest.UpdateProjectPlanEntryTest SUCCESS 35 UnitTest.Backend.DataAdapterTest.UpdatePublicHolidayTest SUCCESS 36 UnitTest.Backend.DataAdapterTest.UpdateShortTimePlanEntry SUCCESS 37 UnitTest.Backend.DataAdapterTest.UpdateWeekPlanEntryTest SUCCESS 38 UnitTest.CommunicationContract.DispatcherTest.CommitTest SUCCESS 39 UnitTest.CommunicationContract.DispatcherTest.CreateObjectTest SUCCESS B

40 UnitTest.CommunicationContract.DispatcherTest.DeleteObjectTest SUCCESS 41 UnitTest.CommunicationContract.DispatcherTest.ExistsHolidaysForNextYearTest SUCCESS 42 UnitTest.CommunicationContract.DispatcherTest.GetAbsenceCalendarTest SUCCESS 43 UnitTest.CommunicationContract.DispatcherTest.GetAbsenceCategoriesTest SUCCESS 44 UnitTest.CommunicationContract.DispatcherTest.GetApplicationInfoTest SUCCESS 45 UnitTest.CommunicationContract.DispatcherTest.GetBusinessRulesTest SUCCESS 46 UnitTest.CommunicationContract.DispatcherTest.GetCategoryCapacitiesForEmployeeTes t SUCCESS 47 UnitTest.CommunicationContract.DispatcherTest.GetDepartmentNames SUCCESS 48 UnitTest.CommunicationContract.DispatcherTest.GetEmployeesTest SUCCESS 49 UnitTest.CommunicationContract.DispatcherTest.GetExternalEmployeeTest SUCCESS 50 UnitTest.CommunicationContract.DispatcherTest.GetFunctionTest SUCCESS 51 UnitTest.CommunicationContract.DispatcherTest.GetHolidayBudgetTest SUCCESS 52 UnitTest.CommunicationContract.DispatcherTest.GetHolidayCalendarFromYearTest SUCCESS 53 UnitTest.CommunicationContract.DispatcherTest.GetHolidayCalendarTest SUCCESS 54 UnitTest.CommunicationContract.DispatcherTest.GetInternalEmployeeTest SUCCESS 55 UnitTest.CommunicationContract.DispatcherTest.GetOpenProjectsTest SUCCESS 56 UnitTest.CommunicationContract.DispatcherTest.GetOvertimePaymentsTest SUCCESS 57 UnitTest.CommunicationContract.DispatcherTest.GetProjectMemberCostTest SUCCESS 58 UnitTest.CommunicationContract.DispatcherTest.GetProjectMemberTest SUCCESS 59 UnitTest.CommunicationContract.DispatcherTest.GetProjectPlanTest SUCCESS 60 UnitTest.CommunicationContract.DispatcherTest.GetProjectsForEmployeeTest SUCCESS 61 UnitTest.CommunicationContract.DispatcherTest.GetProjectsForProjectCategoryTest SUCCESS 62 UnitTest.CommunicationContract.DispatcherTest.GetProjectsForProjectManagerTest SUCCESS 63 UnitTest.CommunicationContract.DispatcherTest.GetProjectTest SUCCESS 64 UnitTest.CommunicationContract.DispatcherTest.GetShortTimePlanTest SUCCESS 65 UnitTest.CommunicationContract.DispatcherTest.GetSumOfUsedHolidaysTest SUCCESS 66 UnitTest.CommunicationContract.DispatcherTest.GetWeekAbsencesTest SUCCESS 67 UnitTest.CommunicationContract.DispatcherTest.GetWeekPlanTest SUCCESS 68 UnitTest.CommunicationContract.DispatcherTest.GetWeekWorkTimeCaptureTest SUCCESS 69 UnitTest.CommunicationContract.DispatcherTest.GetWorkTimeCaptureTest SUCCESS 70 UnitTest.CommunicationContract.DispatcherTest.RegisterTest SUCCESS 71 UnitTest.CommunicationContract.DispatcherTest.UnRegsisterTest SUCCESS 72 UnitTest.CommunicationContract.DispatcherTest.UpdateObjectTest SUCCESS 73 UnitTest.CommunicationContract.UtilTest.GetCalendarWeekTest SUCCESS 74 UnitTest.CommunicationContract.UtilTest.IsInCalendarWeekTest SUCCESS 75 UnitTest.GUIFrontend.ControllerTest.CanUndoRedoTest SUCCESS 76 UnitTest.GUIFrontend.ControllerTest.CanUndoRedoTextsTest SUCCESS 77 UnitTest.GUIFrontend.ControllerTest.ClearUndoRedoStackTest SUCCESS 78 UnitTest.GUIFrontend.ControllerTest.ExecuteTest SUCCESS 79 UnitTest.GUIFrontend.ControllerTest.RedoTest SUCCESS 80 UnitTest.GUIFrontend.ControllerTest.UndoTest SUCCESS C

D

E

F

G

P-Nummer Pendenz Verantwortung Termin Status Bemerkung P30 Review der technischen Spez. -> Termin mit André abmachen Stefan 01.05.09 erledigt 18.5. 17.00-19.00 P31 PH Review Oliver & Stefan 14.04.09 erledigt P32 PH Review Protokoll versenden Stefan 14.04.09 erledigt P33 PH Protokoll Bemerkungen ins PH einpflegen Oliver & Stefan 20.04.09 erledigt P34 Abklären: Wochenplanung online? Stefan 17.04.09 erledigt Wird intern @vc gemacht P35 Abstract ändern oder nicht? Oli 23.04.09 erledigt Nein P36 Reporting Container -> Ein Modul Gesamtprojekt Stefan 01.06.09 erledigt P37 Statusbericht #3 Stefan 08.05.09 erledigt P38 Inhaltsverzeichnis / Struktur für Dokumentation erstellen Stefan 05.05.09 erledigt P39 Technische Detailspez. Oliver & Stefan 08.05.09 erledigt P40 Gui Prototypen zeichnen Oliver & Stefan 15.05.09 erledigt P41 GUI Control (Framework) auswählen Oliver & Stefan 15.05.09 erledigt DevComponents? => 2 Entw. 560.- $ P42 Interface Beschreibung IDataAccess Stefan 05.05.09 erledigt P43 Interface Beschreibung ICommunication Oliver 05.05.09 erledigt P44 Datenbankschema anpassen Stefan 05.05.09 erledigt P45 OOSD Oliver & Stefan 01.06.09 erledigt P46 Statusmeeting Präsi vorbereiten Stefan 27.05.09 erledigt P47 Statusbericht #4 Stefan 20.05.09 erledigt Am 20.5. erstellen, am 22.5. verschicken P48 Statusmeeting mit Marco Oliver & Stefan 29.05.09 erledigt Einladen. P49 Statusbericht #5 Stefan 19.06.09 erledigt P50 Corinne Usability Walkthrough einladen Stefan 05.06.09 erledigt 05.06.2009 P51 OOSD mit André besprechen Stefan 05.06.09 erledigt 05.06.2009 H