Microsoft Dynamics Ax 2009 Repairs Module in Silverlight 4

Business Problem

Microsoft Dynamics Ax 2009 has a gap in functionality with regard to order management for repair orders.  MDSi has several equipment repair and configuration labs on site.  Customer equipment can be staged and configured or physically repaired and reconditioned.  While Microsoft Dynamics Ax 2009 does provide some of the functionality required to perform in-house repairs, it falls short in supporting the expanded workflow of a repair lab.  Repair orders needed to be tracked, labor costs tracked, and part/item inventory locations need to be updated in Ax to reflect where the parts are located based on workflow transactions.  For example, if a repair technician brings a part to his/her workstation and marks the repair line as in process, Ax needs to be updated to reflect the inventory has been transferred to the repair technicians ‘bin location’.

Solution

The solution was to fill the gap with a Silverlight 4.0 line of business application that will provide a simple user interface that allows warehouse workers and technicians to simply change the status of a repair line.  The application will perform the necessary inventory movement journal transactions to move the part from staging bins to in process and finally to complete warehouse bins.  If a part is successfully repaired a sales order is generated to allow for the invoicing of the repair.  If the repair cannot be completed, a disposal order is created.

http://buildsucceeded.com/oldpics/AllRepairs

All repair orders show in the main view.  Users can filter or group using the data grid.  From this view the user can also view the repair lines of a repair order and edit the details of a repair order.

http://buildsucceeded.com/oldpics/RepairOrderDetails

Creating or editing a repair order is accomplished through the screen above.

http://buildsucceeded.com/oldpics/RepairOrderDetailEdit

Editing the details of a repair line displays a modal view.

http://buildsucceeded.com/oldpics/PostPickingList

Warehouse personnel can pick the repair lines that are awaiting staging.  The above view shows all the repair lines that were picked by user dsandor.  From here, the user can print repair labels for the items and post the items.  When the user posts the items it indicates to the repair technicians that there are parts in the ‘inbound’ repair staging bin location.  Technicians will retrieve the items from the staging location and indicate the part is now ‘in repair’ which transfers the part in Ax to the tech’s bin location.

This project was developed in Silverlight 4.0 and C#.  It leverages WCF Services and SQL Server 2008 R2 T-SQL Stored Procedures to query data from Microsoft Dynamics Ax 2009.  Create, Update, and Delete operations are performed by interfacing with the .NET Business Connector for Dynamics Ax.  The application uses the MVVM design pattern and was developed in little over one week.

Resume: David Sandor, MCSD, MCSE, MCTS, MCP (Atlanta, GA)

Summary

  • Over 15 years of programming and enterprise-level application development experience.
  • 10 years of experience with the Microsoft .NET Framework and C#.
  • Extensive involvement and management of all stages of the application development lifecycle including requirements gathering, architecture and modeling,  design, development and implementation.
  • Advocate for Agile development and usage of 37 signals Getting Real development concepts.
  • Completed all projects worked in the last 10 years.

Certifications

  • MCPD: [Charter Member] Web Developer 4 (ASP.NET 4.0, Visual Studio 2010, .NET 4.0)
  • MCPD: [Charter Member] Windows Developer 4 (WPF .NET 4.0, Winforms 4.0, .NET 4.0)
  • MCTS: [Charter Member] .NET Framework 4.0 Web Applications
  • MCTS: [Charter Member] .NET Framework 4.0 Windows Communication Foundation
  • MCTS: [Charter Member] .NET Framework 4.0 Data Access with ADO.NET
  • MCTS: [Charter Member] .NET Framework 4.0 Windows Applications (WPF / Winforms)
  • MCTS: [Charter Member] SQL Server 2008 Implementation and Maintenance
  • MCTS: .NET Framework 2.0 Distributed Applications
  • MCSE ( TCP/IP, Internet Information Server, Networking, Server 4.0, Workstation 4.0 )
  • MCSD ( Windows Operating Systems Architecture I & II, Visual Basic 5.0, Visual Basic 6.0, Microsoft
    Access, Visual Interdev 1.0, Front Page 2000 )
  • MCTS: Distributed (Microsoft Certified Technical Specialist: Distributed Applications)
  • MCT (Microsoft Certified Trainer)
  • C# Certification, Java 1, JavaScript
  • Linux Administration, Internet Security, Network Security

Publications

Microsoft: Unable to disclose title.
12/2005 – Windows Forms .NET 2.0, ASP.NET, Enterprise Development
07/2006 – Windows Mobile 6 .NET Developer
10/2007 – Workflow Foundation (.NET 3.0)
11/2007 – ADO.NET 3.0 / 3.5 (LINQ/MARS/XML)
07/2008 – ASP.NET 3.5
07/2008 – Windows Forms .NET 3.5
07/2008 – ADO.NET 3.5 (Entity Framework, LINQ)
03/2010 – .NET 4.0 Windows Presentation Foundation (WPF)

Generics and Predicates: Real World Examples
The .NET Framework 2.0 has introduced the concept of Generics and the use of predicates. This article should shed some light on the concept of predicates and give you some examples of using predicates in the real world.

Publication: Microsoft Developer Network Academic Alliance 10/2007

Dynamically setting properties of a class from a Database
In this short example I will demonstrate a powerful feature of Reflection that will allow you to dynamically set the values of a class. By setting the properties of a class dynamically, you can create a simple method that allows your class to be constructed and pre-populated from a database.

Publication: Microsoft Developer Network Academic Alliance, C-SharpCorner 05/2003

Writing an ActiveX Control with .NET
Software developers have used ActiveX controls on their web pages to add advanced functionality to the web experience. In this example, I will walk you through creating an ActiveX control that will show a simple user interface and accept input from a web page.

Publication: Microsoft Developer Network Academic Alliance, C-SharpCorner 03/2003

Events Made Easy: Lesson 1
The ability to fire an event is core to most Windows development projects. Events are useful for updating a user interface with changed data, or causing a piece of code to run after another piece of code has completed. .NET has brought us a powerful model for programming events. In this lesson we will write a small application that will show an example of an event.

Publication: Microsoft Developer Network Academic Alliance, C-SharpCorner 01/2003

Events Made Easy: Lesson 2 – A Little Advanced
In the previous lesson we created an event and consumed it. In doing so you probably noticed that our code would have been a little better if we could have determined whether or not the file actually existed. We could then provide more information to the user and make our code a bit more useful.

Publication: Microsoft Developer Network Academic Alliance, C-SharpCorner 01/2003

Open Source Contributions

Mono Project
http://mono-project.com/
Mono is an Open Source implementation of the .NET CLR. Mono is a free multi platform version of the .NET runtime and compilers written by .NET enthusiasts. I contributed to some of the Data Entity portions of the System.Data namespace. My contribution to mono was key to the success of an application I was involved in which required a .NET application to work on non-Microsoft operating systems such as Linux, Solaris, and a few non-traditional flavors.

.NetTiers
http://nettiers.com/
.NetTiers is a set of code generation templates that implement data layer and business entities while conforming to best practices and patters from well known and well respected subject matter experts like Martin Fowler. I began using .NetTiers in 2004 and really liked the conformance to patterns and practices. After using the product for some time I began contributing out of necessity and practicality.

FileHelpers
http://filehelpers.com/
FileHelpers is a high speed .NET Library that can be used to import/export/transform flat files from one format to another. This library is incredibly fast and can handle any input format and convert a file into any other format easily. I used this library at RBS Lynk to assist in transforming ISAM and COBOL formatted flat files that were well over 1GB in size into a MS SQL Server bulk import file in less than 90 seconds.

Work History

Microsoft Corporation – Contractor (via Studio B), Redmond, WA
March 2010
Author / Subject Matter Expert

  • .NET 4.0
  • Windows Presentation Foundation (WPF)

Microsoft Corporation – Contractor (via Studio B), Redmond, WA
July 2008 – August 2008
Author / Subject Matter Expert

  • .NET 3.5 ASP.NET
  • .NET 3.5 Windows Forms
  • ADO.NET 3.5 / Entity Framework
  • LINQ

Microsoft Corporation – Contractor (via Studio B), Redmond, WA
October 2007
Subject Matter Expert

  • .NET 3.5 Windows Workflow Foundation (C# / WF)

Management Data Systems International, Cumming, GA
October 2007 – Present
Software Architect / Lead Software Developer

  • Microsoft Axapta 2009 (Dynamics AX)
  • Integration with Business Connector & X++ Customizations
  • SharePoint Portal Server Development
  • WPF, WCF, WF development
  • MS SQL Server 2008 & 2005 Automation, Data Warehousing, BI (SSAS & SSRS)
  • Built a Windows Mobile application for Barcode Scanners*
    Windows Mobile,  and iOS iTouch code bases
  • Customized and Integrated with Microsoft Solomon IV and Microsoft Dynamics AX (Axapta) for inventory automation.
  • Provided integration points via SOA based WCF / Web Services.
  • Provided an Enterprise Disaster Recovery plan and architecture for Global Availability
  • Silverlight 3.0 and 4.0 based Line of Business Applications that provided Sales Forecasting, heads-up data visualization for salespeople.
  • WPF based RFID Inventory Management* and asset automation software deployed to remote logistics facilities around the US.  Global map with GIS features to visualize facility status and drill into outages.

* See project portfolio for more details on these projects.

Royal Bank of Scotland, Atlanta, GA
July 2007 – October 2007 (Contract)
Software Engineer

  • SharePoint Portal Server Development
  • WPF development and WF development
  • MS SQL Server 2005 Automation, Data Warehousing, BI
  • Enterprise IT Automation: Built network inventory and monitoring solution with .NET 3.0. Using WMI, ADSI, SNMP and other network management tools for display in a SharePoint portal server using ASP.NET and a SQL 2005 backend.
  • Automated data loading processes into data warehouses with trillions of records.
  • Trimmed data load times from 7+ hours to less than 10 minutes.
  • Advised senior management on Enterprise Application Integration Architecture

The Software Factory, Alpharetta, GA
Feb 2007 – July 2007 (Consultant)
Principal Consultant

  • SharePoint Portal Server development in .NET
  • WPF Development in C# 3.0
  • Windows Workflow Foundation (WF) development for a complex decision matrix
  • Grid based distributed Software Architecture in .NET (Provisional Patent)
  • MS SQL Server 2005 Data Architecture, Data Modeling, Stored Procedure Design
  • Continuous Integration, MS Build Automation, Unit Testing, Code Generation

Microsoft Corporation – Contractor (Direct), Redmond, WA
July 2006
Subject Matter Expert (SME) / Contributing Author

  • Contributing author for a .NET 2.0 related project
  • Microsoft Learning
  • Windows Mobile 6 Application Development

Microsoft Corporation – Contractor (Direct), Redmond, WA
December 2005 – January 2006
Lead Author

  • Lead Author for a .NET 2.0 related project
  • Windows Forms & ASP.NET 2.0
  • Distributed Application / Enterprise Application Development

RealTime Gaming, Atlanta, GA
2005 – 2007
Software Engineer

  • Converted legacy systems from ASP 3.0 to .NET 2.0
  • Architected and Coded a web portal with 43 unique pluggable web part displaying real time financials.
  • Assisted conversion from SQL Server 2000 to SQL Server 2005.
  • Pioneering advanced caching techniques for high traffic transaction systems.

Digital Evolution (SOA), Alpharetta, GA
2004 – 2005
Senior Software Architect

  • Assisted optimizations of SQL Server 2000 database that handles over 11 million rows per day.
  • Polished and bug fixed a .NET 1.1 application that runs on a headless web service proxy appliance.

Shop ‘n Check (Chek) International, Norcross, GA
2005
Senior Software Architect

  • Developed modules with .NET 2.0 to integrate into archaic application.
  • Re-Architected a componentized survey application.
  • Coded an online web-based image upload and manipulation application.  Provided advanced cropping and rotation functionality to novice web users.

Scientific Games International, Alpharetta, GA
2003 – 2004
Senior Software Architect

  • Author and Architect of a Lottery transaction, inventory and financials management system.
  • Authored code generation scripts that produced > 750,000 lines of code that represented 98% of the data layer. If schema changes were made during the project we simply regenerated our data layer to account for the schema changes without breaking object code.
  • First of its kind technology leap in the Lottery industry. Technology touted as the latest and greatest software achievement for our customer, reported by our customer.
    Six-Nines uptime hardware architecture featuring a Web Application Farm, a Web service Farm, and redundant SQL Server Cluster’s using MSCS.
  • Architected a ground up object based application development interface for rapid redeployment and redesign. Fully documented object model using MSDN style API documentation.

MCI WorldCom, Atlanta, GA
1998 – 2003
Enterprise Architect

  • Designed and single-handedly built a software deployment application using pre-web services technology and ASP 3.0 (SQL Server, Active Directory, ADO, ASP 3.0, VB5&6). System replaced Microsoft SMS server in the enterprise and deploys software to 230,000+ machines and mission critical servers globally.
  • Built web based software license enforcement application that managed all software licensing across 230,000+ computers world-wide.
  • Maintained and managed employee database of active and terminated employees for all of domestic WorldCom ~ 500,000 records. Database automatically recalculated employee lineage and organizational hierarchy using DTS jobs that ran at night.

Previous employment history is available upon request.

Mastered Development Technologies

Languages
C# 1.0 – 4.0, VB 4 – 6, VB.NET 1.0 – 3.0, C, C++, JAVA, X++ (Dynamics Ax 2009), Javascript, VB Script, T-SQL, Objective-C

Technologies
XAML, XML, HTML, Silverlight 1.0 – 4.0, WPF, WCF, WebServices, SOAP, WinForms, ASP.NET, XCode / iOS (iPhone, iTouch, iPad), Dynamics AX 2009

Development Tools
Visual Studio (All – 2010), Team Foundation Server (2005, 2008, 2010), Subversion, CVS, SQL Server Management Studio, SoapUI, Microsoft Expression Blend (3.0 – 4.0), Adobe PhotoShop, Adobe Illustrator

SDLC and Patterns
Agile, Waterfall, Model View Controller (MVC), Model View ViewModel (MVVM)

Upgraded certification: MCPD – Windows 4 & Web 4

So I took all my .NET 4.0 exams:

70-515 TS: Microsoft .NET Framework 4, Web Applications Development

70-519 Pro: Designing and Developing Web Applications Using Microsoft .NET Framework 4.0

70-518 Pro: Designing and Developing Windows Applications Using Microsoft .NET Framework 4.0

70-516 TS: Microsoft .NET Framework 4, Accessing Data with ADO.NET

70-513 TS: Microsoft .NET Framework 4, Windows Communication Foundation Development

70-511 TS: Microsoft .NET Framework 4, Windows Applications Development

This added the following certifications to my transcript:

http://buildsucceeded.com/oldpics/MCPD(rgb)_1371_1372

http://buildsucceeded.com/oldpics/MCTS(rgb)_1269_1374_1369_1373_514