Project
Design, document,
program and maintain distributed applications that translate Electronic Data
Interchange (EDI) into a format useable by back-end accounting or business applications
(SAP 2005, MAS 90/200/500, PeachTree and QuickBooks) in order to minimize or
eliminate the need for manual data entry
All projects were
developed using core .NET Framework 3.5 technologies. These project were all designed to be ASP.NET
Web Applications that leverage back-end Web Services.
All front-end user
interfaces were designed using Visual Studio 2008 in combination with
Infragistics NetAdvantage 2008 and AJAX Control Toolkit components.
The Data Access Layer
used Microsoft’s
Visual Studio 2008, SQL Server 2005, SQL Server Management
Studio, C# .NET 3.5, ASP.NET 3.5, ASP.NET Web Services, Window Services, ASP.NET
AJAX Control Toolkit, Infragistics NetAdvantage 2008, IE Developer Toolbar,
Firebug, XML, XPath, XQuery, IIS, SOAP, WSDL, Distributed Transaction
Coordinator (DTC), Web Service Enhancements (WSE 3.0), ADO.NET, SQL, T-SQL, SQL
CLR.
In order to appeal to a larger customer base and to make an enterprise application easier to install management has decided we need to convert our existing application to an ASP.NET hosted application.
Working with a team of Software Engineers to convert a large enterprise application into a fully hosted ASP.NET web application that has to work in a multiple server web farm configuration (IIS/SQL).
Primary responsibilities were to architect the front-end user interface framework. The front-end requirements dictate that the UI keep the same look and feel as the desktop application while leveraging the back-end web services to maximize reusability under an extremely aggressive timeline. Implemented an Application Controller design pattern that could plug into the applications back-end web services.
All projects were
developed using core .NET Framework 2.0 technologies. These project were all designed to be ASP.NET
Web Services that adhere to a strict Service-Oriented Architecture (SOA).
All user interface
projects were designed to use the Model View Presenter (MVP) design
pattern. Each project required not only
the user interface, but also all layers of the n-tier distributed
architecture. Programming responsibilities
included UI (WinForm), Web Service, SDK, Domain and Data Access layers as well
as all SQL DDL and DML.
The Data Access Layer
used Microsoft’s
Visual Studio 2005, SQL Server Express 2005, SQL Server Management Studio Express, C# .NET 2.0, SQL Server Management Objects (SMO), Infragistics NetAdvantage 2006, XML, XPath, XQuery, IIS, ASP.NET Web Services, SOAP, WSDL, Distributed Transaction Coordinator (DTC), Web Service Enhancements (WSE 3.0), ADO.NET, SQL, T-SQL, SQL CLR
Our existing business system integration suite of applications had become outdated and needed to be redesigned and integrated into an already existing enterprise application. QuickBooks 2007/2008 integration was required for the initial release but the design has to be flexible enough to support future integrations such as MAS500 and SAP.
Worked with a team of Software Engineers to redesign our existing business system integration from the ground up. The new application was built into an already existing EDI application and was designed to maximize scalability and extensibility by adhering to a plugin assembly architecture. This architecture provides an easy plugin framework that can be extended for future business system integrations.
Higher end customers with large amounts of transactions were experiencing severe performance problems when running our application in a n-tier environment.
Identified performance issues by using ANTS Profiler to track down bottlenecks across all tiers of an enterprise application. Once problem areas were identified they were quickly resolved by applying vast .NET Framework experience and knowledge. Several SQL Server 2005 issues were also identified by analyzing query execution plans. These issues were also fixed by modifying the database schema and queries. This project improved application performance by over 600%.
Customers who own legacy versions of our software will need to be able to migrate their existing customer data and application settings into the new version of the application. The new version uses SQL Server 2005 for all back-end persistence. The legacy application stored back-end data in Paradox tables and text files and would need validated and converted before being migrated into the SQL Server 2005 database.
Worked with a team of Software Engineers to design and program an easy to use wizard style application that migrates all legacy data into the new application’s database schema. Legacy data is validated and converted into XML before being passed to either SQL Server 2005 T-SQL Stored Procedures or SQL Server 2005 CLR Stored Procedures.
Professional services need an application that will automate some of their daily tasks. These tasks can be time consuming and repetive in nature and involve testing and customer setup issues.
Designed and programmed an application that provided an easy to use front-end user interface that automates some of the more time consuming and redundant professional services duties. This application accomplished all back-end data manipulation by leveraging already written .NET 2.0 SDK assemblies. This simplified future enhancements and saved a considerable amount of time.
In order to reduce or eliminate the need for manual interaction users need the ability to schedule common tasks to occur at specific time intervals.
Architected and developed a multi-threaded Window Service scheduling application. This application consisted of a front-end user interface that lets the user define how often/when a given action should be performed and a back-end Window Service that constantly checks to see if any actions are due for process.
To maximize application and database performance clients needed the ability to archive transactions within the system to a separate database with the ability to also restore these transactions back to the main system at any time.
Designed and developed a user interface that lets the user archive and restore transactions from and to a separate SQL Server 2005 database.
In order to prevent data loss and corruption clients needed the ability to backup and restore all data related to the SQL Server 2005 back-end database via an administrator only user interface or via scheduler automation.
Utilized core .NET 2.0 technologies to design and develop a
simplified database backup and restore application. This application leveraged .NET 2.0 SQL
Server Management
Users need the ability to quickly search and find specific transactions using an advanced search control that lets the user select dynamic search criteria and save these custom searches for easy retrieval at a later time.
Designed and developed a custom control that provides dynamic criteria users can select to perform complex searches. This criteria is passed to the back-end SQL Server 2005 stored procedure which dynamically builds the query and returns any matching results. Search criteria also gets persisted to this back-end database for easy retrieval and modification.
Since each customer requires specific customizations depending on their Accounting Package and EDI Trading Partner requirements several setup screens will need to be designed to enable customer specific customization from within the application.
Designed and programmed several key setup screens including but not limited to Addresses, Labels, Lookups and Company Setup screens. These user-interfaces used .NET 2.0 common controls and Infragistics NetAdvantage 2006 controls and persisted data to a back-end SQL Server 2005 database.
When users perform and action from the client-side user interface the application appears to hang while processing the request. Users need a more responsive user interface that will display some means of progress to the user.
In theory, this should be an extremely easy project. Unfortunately, do the the User Interfaces Model View Presenter architecture and the applications distributed nature, there was no easy way to handle this dilemma. I ended up refactoring the Event Layer to process the event on a separate thread. This freed up the user interface process to display a progress bar while it waits for the Web Service request to process. Using the Template Method Design Pattern I was able to refactor 20-25 Event Layer classes down to two concrete classes. One for threaded events and one for non-threaded events.
All legacy projects involved making modifications and enhancements to complex enterprise applications with Microsoft Visual Basic 6 and SQL Server 2000.
All user interfaces were designed with VB6 as ActiveX components that interfaced directly with third-party accounting packages using vendor specific COM/DCOM SDK components.
All back-end persistence and logic was encapsulated in SQL Server 2000 Transact-SQL (T-SQL) Stored Procedures that are accessed via Microsoft ADO technologies.
Visual Basic 6, SQL Server 2000, SQL Server Enterprise
Manager, SQL Query Analyzer, SQL Profiler,
Sage Software released a major version upgrade of their MAS 500 accounting software. Much of the back-end SQL Server 2000 database and MAS 500 user interface was changed. This broke our custom Business System EDI enhancement applications.
Utilized SQL/T-SQL/VB6 programming and debugging skills to identify and fix all areas of an enterprise application that were affected by the version upgrade. Modifications had to be made to the front-end ActiveX components using Microsoft Visual Basic 6. All back-end database modifications were made in SQL Server 2000 stored procedures using T-SQL.
Clients needed a more flexible alternative to printing
Redesigned application to interface with NiceLabel label
printing utility. All front-end
modifications were made to ActiveX components using Visual Basic 6 in
combination with vendor specific accounting package