+ All Categories
Home > Documents > ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the...

ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the...

Date post: 18-Jan-2016
Category:
Upload: ernest-curtis
View: 213 times
Download: 0 times
Share this document with a friend
13
ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007
Transcript
Page 1: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Leave Request Management

Stephan Müller, Christian TinnefeldTrends and Concepts in the Software Industry II -

Exercise

March 7th 2007

Page 2: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

2

Motivation

■ What

□ Create, edit and cancel leave requests

□ Approve and reject leave requests

■ How

□ Back-end: SAP Web Services

□ Front-end: Microsoft ASP.Net Web application

■ Why

□ Lower burden for SAP service utilization

□ Proof Interoperability

□ Reusability of services

Page 3: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

3

Architecture

Page 4: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

4

Creating a new Leave Request

■ Input fields

□ Type / Reason

□ Start and end dates

□ Start and end times

□ Notes

Page 5: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

5

Creating a new Leave Request

Reply.Text = facade.CreateLeaveRequest("1", empId, "3", Reason.SelectedValue, "PT0S", fromDate, toDate, Notes.Text);

Page 6: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

6

Live Demonstration

Page 7: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

7

Using Web Services in .NET

■ The Good:

□ Including web services as web references

□ Automatic proxy class generation

□ Automatic generation of helper classes

□ Seamless integration of remote methods

■ The Bad:

□ No parameterization of proxy generation

□ Individual changes of proxy classes will be discarded

■ The Ugly:

□ Proxy classes are completely hidden in ASP.NET

□ Absolutely no influence on web service usage methodology

Page 8: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

8

Reflection Error (1/2)

• Occurs if…

■ Using a non Microsoft Application Server (e.g. IBM Websphere)

■ Parameters containing arrays or vectors

■ WSDL file in Document-Style (not verified)

[return: System.Xml.Serialization.XmlElementAttribute ("EmployeeTimeAccount",Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Namespace="http://sap.com/xi/EA-HR/SE/Global")]

Page 9: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

9

Reflection Error (2/2)

• Solution Approaches

■ IBM: “Avoid using Vector parameters in WebSphere Application Server Web service methods to interoperate with .NET client as well as any Java Collection type.“

■ RPC was not available

■ Usage of open source generation tools (Mono Rotor)

• Our Solution

■ Separate proxy generation from Visual Studio

■ Revising the namespace declaration of .NET proxy class

■ Compile proxy classes as library for referencing (optional)

Page 10: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

10

dotNetWebServiceReviser

• Reading WSDL file

• Identify XML Namespace

• Generate Proxy Class

• Revise Namespace Declaration

• Build Dynamic Link Library

Page 11: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

11

Deployment

■ MS Visual Studio generates MSI Installer File

■ IIS v.6.0 as deployment server

■ Wizard-guided installation

Page 12: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

12

Conclusion

■ Unexpected SOA interoperability issues

■ Much effort needed for building workaround tool

■Weak standards

■ BUT: In the end everything works great

Page 13: ASP.NET Leave Request Management Stephan Müller, Christian Tinnefeld Trends and Concepts in the Software Industry II - Exercise March 7th 2007.

ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007

13

Questions?!


Recommended