asp.net leave request management stephan müller, christian tinnefeld trends and concepts in the...
Post on 18-Jan-2016
213 Views
Preview:
TRANSCRIPT
ASP.NET Leave Request Management
Stephan Müller, Christian TinnefeldTrends 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
ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007
3
Architecture
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
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);
ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007
6
Live Demonstration
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
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")]
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)
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
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
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
ASP.NET Stephan Müller and Christian Tinnefeld | March 7, 2007
13
Questions?!
top related