Please Note - Your Browser is not a recent Version of Microsoft's Internet Explorer
This site may not display correctly in your Browser.
To download a free copy of Internet Explorer please visit
http://www.microsoft.com/windows/ie/downloads/critical/ie6sp1/default.asp

Click your Browser's Refresh/Reload button to eliminate this message.

 

RAFAEL E

   Software Structures, Inc.
            A Texas, USA Corporation
            Member of the Houston, Texas Better Business Bureau.

Home
Up
CurrentNetResume
current_resume
current_long_resume
current_skills
CoverLetters
academic_resume

RAFAEL E. PENA, Ph.D.

MICROSOFT .NET SENIOR PROGRAMMER

3200 South Gessner, Houston, Texas 77063

rpenaphd@SoftwareStructures.com

www.SoftwareStructures.com

(713) 781-6633

 

(Last Updated: February 3, 2003)

 

 

I am a Senior Microsoft COM, ATL, MFC, VB, SQL Server developer with more than 1.5 years of full-time work using Microsoft's .NET Framework and Visual Studio .NET.

 

The .NET areas in which I have worked include:

 

·         Internet Communication.
Some .NET Framework Classes: Socket, TcpListener, TcpClient, Stream.

 

·         Interoperability with COM and COM+.  COM+ Event Subscriptions to .NET Components.
Tools: RegAsm.exe, GacUtil.exe, TlbExp.exe, TlbImp.exe, Sn.exe.

 

·         ADO.NET, SQLServer 2000 driven XML Schemas and Generation of Corresponding .NET Classes.
Some .NET Framework Classes: SqlConnection, SqlDataAdapter, SqlCommand, OdbcConnection, OdbcDataAdapter, OdbcCommandBuilder, DataSet, DataTable, DataColumn, DataRow, Type, StreamWriter, XmlWriter, Stack, DataGrid.
Tools: Xsd.exe.

 

·         XML Serialization / Deserialization.
Some .NET Framework Classes: XmlRootAttribute, XmlSerializer, TextReader, StreamReader, FileStream.

 

·         ASP.NET, .NET Web Forms and Code-behind Class.
Some .NET Framework Classes: Page, HttpContext, HttpRequest, HtmlGenericControl, HtmlInputButton, DataGrid, DataView, TextBox.
HTML & Client-side: Frameset, Cookie, userData Behavior, window.createPopup(), window.setTimeout().
Tools: Ildasm.exe.

 

·         XML Web Services, their Asynchronous Remote Invocation and Techniques to develop them as .NET Class Libraries.
Some .NET Framework Classes: AsyncCallback, IAsyncResult, MetaData.
Tools: soapsuds.exe, Wsdl.exe.

 

·         Multithreading and Thread Synchronization.
Some .NET
Framework Classes: Thread, Queue, ManualResetEvent.

·         CE.NET and Platform Builder 4.0.
Small Device Extensions for Visual Studio .NET.

 

·         Windowing and .NET Window procedures.
Some .NET Framework Classes: Application, Control.

 

·         .NET Error Handling.
Some .NET Framework Classes: Exception.

 

·         .NET Class and Interface Inheritance.

 

·         .NET Pointers.
Keywords: unsafe, fixed.

·         Techniques for Full Debugger Support when COM and .NET Components are Simultaneously Executing.

 

·         I wrote a Series of .NET Beta 1 "How To ...." Tutorials.
Please visit http://www.softwarestructures.com/technical_excursions.asp

 

 

 

SOFTWARE DEVELOPMENT AND PROJECTS

     

 

A FACILITY THAT USES INTERNET SOCKETS TO MONITOR AND CONTROL SOFTWARE PIRACY.

Programmer, for Software Structures, Inc. Houston, Texas.  January 2003.

Keywords: ASP.NET, ADO.NET, CSharp (C#), C++, Microsoft Visual Studio .NET, Visual C++ 6.0, MFC (Microsoft Foundation Classes), Windows Sockets (Winsock), .NET Socket classes: Socket, TcpListener, TcpClient.

Summary:

- Client software retailed from the server web site is packaged with a unique identifier (GUID).

- At timer controlled intervals the client attempts to establish a socket connection to the server.

- When the server is listening for client connections, client-identifying information is received to verify License Agreement compliance.

 

 

MSN-CHAT WHISPER ADVERTISEMENTS BLOCKER: AN ONLINE PRODUCT OF WWW.FEWDOLLARSOFTWARE.COM.

Programmer, for Software Structures, Inc. Houston, Texas.

September, December 2002.

Keywords: C++, Visual C++ 6.0, COM (Component Object Model), ATL (ActiveX Template Library), MFC (Microsoft Foundation Classes), ASP.NET, ADO.NET, CSharp (C#), Paypal Instant Payment Notification (IPN), Visual SourceSafe, Windows XP / 2000 / NT.

 

 

PIANO PLAYER TEACHER: A MIDI DRIVEN PIANO INSTRUCTION SOFTWARE FACILITY.

Programmer, for Info-Tek Associates, Inc. Costa Mesa, California.

October - November 2002.

Keywords: C++, Visual C++ 6.0, MIDI (Musical Instrument Digital Interface) Sequencing and MIDI File I/O, COM (Component Object Model), ATL (ActiveX Template Library), MFC (Microsoft Foundation Classes), MFC Document-View Architecture, Visual SourceSafe, Windows 2000 Professional.

 

 

TABLETOUCH: A HTTP-BASED DATA TABLE VIEWER AND EDITOR.  AN ONLINE PRODUCT OF WWW.FEWDOLLARSOFTWARE.COM.

Programmer, for Software Structures, Inc. Houston, Texas.  June - July 2002.

Keywords: ASP.NET, ADO.NET, CSharp (C#), JavaScript, Microsoft Visual Studio .NET, ODBC .NET Data Provider.

Summary:

- A .NET Web Service on the remote data server accesses tables using classes in .NET's ODBC Data Provider add-on component.

- The user interface on the client browser is provided by an ASP.NET Web Form.


 

SOFTWARE DEVELOPMENT AND PROJECTS  (continued)

 

 

-  TableTouch supports:

  -  Arbitrary connection strings and WHERE clauses in SELECT statements.

  -  Viewing, Editing and Updating remote table records.

  - Local View Sorting on any column while preserving the SelectedItem record
marker.

  -  Multiple persistent control settings for each value of the remote data server URL.

  -  Persistent Web Form scroll position across post-backs to the GUI server.

  -  Tooltip based help strings with lag time and timeout.

-  Deployed for sale from www.FewDollarSoftware.com.

 

 

AN E-COMMERCE WEB SITE (WWW.FEWDOLLARSOFTWARE.COM) THAT USES WWW.PAYPAL.COM FOR INTERNET ONLINE PAYMENTS

Programmer, for Software Structures, Inc. Houston, Texas.  April - May 2002.

Keywords: ASP, ASP.NET, CSharp (C#), VBScript, JScript, ADO, Microsoft Visual InterDev 6.0, Microsoft Visual Studio .NET, Microsoft Access 2000, ODBC, Paypal Instant Payment Notification (IPN).

 

 

A SERIAL COMMUNICATION API AND TROUBLESHOOTING A CE.NET EMULATED DEVICE INTERACTING WITH A SECOND COMPUTER CONNECTED TO THE CE DEVICE HOST

Programmer, for Heron Solutions Ltd. United Kingdom.  February - March 2002.

Keywords: CE.NET (CE .NET), Platform Builder 4.0, Visual Studio .NET, .NET Smart Device Extensions.

Summary:

- From CE.NET, CreateFile() caused an uninformative exception to be thrown. I solved the problem.

-  Developed a simple serial communication API.

 

 

TRANSDBG. A MTS / COM+, MSDTC TRANSACTIONS TRACE VIEWER-DEBUGGER.  AN ONLINE PRODUCT DOWNLOADABLE FROM WWW.FEWDOLLARSOFTWARE.COM.

Programmer, for Software Structures, Inc. Houston, Texas.  February 2002.

Keywords: C++, Visual Basic 6.0 (VB), Visual C++ 6.0, COM/COM+ (Component Object Model), ATL (ActiveX Template Library), MFC (Microsoft Foundation Classes), MTS (Microsoft Transaction Server), MSDTC (Microsoft Distributed Transaction Coordinator), Windows Installer SDK, ORCA *.msi Editor.

 

 

TONAL MUSIC WRITER - THE TONAL GRID. A MIDI SEQUENCER AND SOFTWARE TOOLS FOR THE ANALYSIS OF MUSIC BY THE RULES OF TONAL MUSIC COMPOSITION. 

Programmer, for Software Structures, Inc. Houston, Texas.  October 2001 - February 2002 (in progress), September 2000 - August 2001, December 1998 - February 1999, February - March 1997.

Keywords: C++, CSharp (C#), Visual Basic 6.0 (VB), Visual Studio .NET, Visual C++ 6.0, .NET XML Web Services, SQL Server 2000, ADO.NET, MIDI (Musical Instrument Digital Interface) Sequencing and MIDI File I/O, COM/COM+ (Component Object Model), COM+ LCE (Loosely Coupled Events), ATL (ActiveX Template Library), MFC (Microsoft Foundation Classes), SAX2 (Simple API for XML), Visual C++ 1.52 (16 bit), ActiveX Automation into 16 bit Windows under NTVDM (NT Virtual Dos Machine), PowerTracks Pro Audio DLL API, Cakewalk MIDI FX (MIDI Effects Filters, Mfx Sdk), Shared Memory Mapped Files, Visual SourceSafe, Windows 2000 Server.


 

SOFTWARE DEVELOPMENT AND PROJECTS  (continued)

 

 

Summary:

- The music analysis component is proxied by .NET classes that execute in event synchronized dedicated threads for independence and improved performance.

- SQL Server 2000 music-rule tables drive the music analysis.  Each table record specifies which run-time analysis function to call and parameters to be used for the call.

- For improved run-time execution speed, the music-rules tables are actually read at compile time.  ADO.NET classes are used to read from the tables generating source code that is compiled into a rules DLL.

- The analysis component is structured for remote execution: it is implemented by a .NET XML Web Service.  For development and/or improved performance the Analysis Web Service DLL may also be linked as a local in-process server to the GUI VB6 client.

- The music analysis component generates a XML analysis report file using .NET XML and ADO.NET classes.  This file is returned to the .NET proxy executing on the GUI VB6 client machine.  The .NET proxy fires COM+ LCE events to inform the GUI VB6 client analysis results for feedback to the user.

 

 

A FACILITY THAT GENERATES POCKET PC DATA ENTRY SCREENS FOR ANY SQL SERVER 2000 TABLE. SQL SERVER CE - SQL SERVER 2000 MERGE REPLICATION. 

  Programmer, for Software Structures, Inc. Houston, Texas.  September 2001.

Keywords: SQL Server CE, ADOCE 3.1, Pocket PC, Handheld PC, Windows CE, SQL Server 2000 Replication, Embedded Visual Basic 3.0, Embedded Visual C++ 3.0, Microsoft Embedded Visual Tools, Windows CE Platform SDK, Platform SDK for Pocket PC, Visual Studio .NET, CSharp (C#), ADO.NET.

Summary:

- From a Visual Studio .NET project (Code Generator) ADO.NET classes SqlDataReader and DataTable are used to extract the schema of a given SQL Server 2000 table, published for merge-replication.

- .NET's StreamWriter class is used to generate an Embedded Visual Basic 3.0 Pocket PC project file (.ebp) and form file (.ebf).

- The Embedded Visual Basic 3.0 Pocket PC form file (.ebf) supports a dialog consisting of a TabStrip, a Frame window per Tab, and a MenuBar.

-  Parameters specified to the .NET Code Generator, determine the number of Tabs on the TabStrip and the number of labeled data-entry TextBox controls per Frame.  One TextBox control per SQL Server 2000 table column.

- The MenuBar has buttons to manage the SQL Server CE subscription to the SQL Server 2000 merge-replication publication, including synchronization, and also buttons to access the local Pocket PC copy of the replicated data using ADOCE 3.1.

- All the required Pocket PC code is automatically written by the .NET Code Generator.

 

 

A GENERIC COM SERVER OBJECT HIERARCHY AND C++ CLASSES FOR PROCESS-SHARED ACCESS TO MEMORY MAPPED FILES (SMMF) WITH COM+ EVENT NOTIFICATIONS TO TRANSIENT AND PERSISTENT SUBSCRIBERS. XML SHARED MEMORY MAPPED FILES AND VISUAL BASIC CLIENTS ARE ALSO SUPPORTED.

Programmer, for Software Structures, Inc.  Houston, Texas.  September 2000, December 2000.

Keywords: File Mapping, ::CreateFileMapping(), COM/COM+ (Component Object Model), Visual Studio .NET, SQL Server 2000, ADO.NET, .NET XML Web Service, VB (Visual Basic 6.0), ATL (ActiveX Template Library), MFC (Microsoft Foundation Classes), C++, Visual C++ 6.0, Visual SourceSafe, Windows 2000 Server.


 

SOFTWARE DEVELOPMENT AND PROJECTS  (continued)

 

 

Summary:

- For XML shared memory mapped files, SQL Server 2000 tables are used to define the SMMF base object and derived object data structures.  Using ADO.NET classes the corresponding XML Schema Definition (XSD) files are generated from the table definitions.  For the interface to COM, "C" header files are generated from the XSD Schema definitions using Microsoft's XML 3.0 implementation of SAX2 (Simple API for XML).  The type information is also available to .NET components via CSharp (C#) classes created with the Xsd.exe utility also reading from the XSD files.  Finally, at run-time the information in the XML shared memory mapped file is processed using a technique based on .NET XML Serialization classes.

 

 

SYSTEM SOFTWARE FOR A WIRELESS NETWORK OF PALM-SIZE WINDOWS 2000 AND WINDOWS CE COMPUTERS. LAND WARRIOR.

Senior Programmer And Architect, for Pacific Consultants, LLC. Mountain View, California.  January 2000 through July 2000.

Keywords: COM/COM+, ATL, MFC (Microsoft Foundation Classes), OLE DB, SQL Server 7, Oracle8 Lite, SQL (Structured Query Language), COM Aggregation, Pipes, MultiThreading, Error Logging, Memory Leaks, Windows Hooks, C, C++, Templates, Visual C++ 6.0, Windows 2000 DDK (Device Driver Kit), NuMega SoftIce Debugger for Windows 2000, Windows CE Toolkit for Visual C++ 6.0, USB (Universal Serial Bus), CAN (COTS Controller Area Network), Windows Sockets, Visual SourceSafe, Windows 2000 Professional, Windows CE.

 

 

A VISUAL BASIC ACTIVEX CONTROL AND SUPPORTING OUT-OF-PROCESS ATL OBJECTS WHICH SERVE ADO RECORDSETS ASYNCHRONOUSLY USING MSMQ UNDER MTS TRANSACTIONS

Programmer, for Software Structures, Inc.  June 1999 through December 1999.

Keywords: VB, ActiveX Template Library, ATL Service, NT Service, ActiveX Data Objects, OLE DB, MFC (Microsoft Foundation Classes), STL (C++ Standard Template Library), Microsoft Message Queue, Microsoft Transaction Server, DCOM+ (Distributed Component Object Model), C++, Visual C++ 6.0, Visual Basic 6.0, Visual SourceSafe, IIS 4.0 (Internet Information Server 4.0), Windows NT Server 4.0.

 

 

A OS/2 WARP 4 EMULATOR (PARTIAL SUBSET) FOR WINDOWS NT / WIN32 (STARTRAX, EWAVE)

Senior Software Architect and Programmer, for ADC Labs, Inc.  July 1997 - April 1999.

Keywords: MFC (Microsoft Foundation Classes), WIN32 SDK, MultiThreading, Drag-Drop, DirectSound, MMSystem, Btrieve DBMS, C++ / C Language, Visual C++ 6.0, Visual SourceSafe, Windows NT Workstation 4.0.

 

 

A C++ CLASS LIBRARY FOR DEVELOPMENT OF WINDOWS NT 4.0/3.51 KERNEL-MODE DEVICE DRIVERS AND A KERNEL-MODE TRACING DEBUGGER

Programmer, for Software Structures, Inc.  June - October 1996 and intermittent through June 1997.

Keywords: Windows NT 4.0 DDK (Device Driver Kit), MFC (Microsoft Foundation Classes), OLE Automation, Visual C++.

 

 

A FACILITY TO DYNAMICALLY (FORCE AT RUN-TIME) MFC-SUBCLASS ANY WINDOW ACROSS WINDOWS NT PROCESS BOUNDARIES

Programmer, for Software Structures, Inc.  December 1996.

Keywords: MFC (Microsoft Foundation Classes), Microsoft Visual C++.


 

SOFTWARE DEVELOPMENT AND PROJECTS  (continued)

 

 

PORTED A UNIX SYSTEM TO WINDOWS NT 3.51, WIN32 SUBSYSTEM

Programmer, for Bailey Network Management Systems, Inc.  October - November 1996.

Keywords: Microsoft Visual C++, Sockets, Pipes, Shared Memory, X-Windows events.

 

 

AN EXTENSION CLASS LIBRARY TO THE MICROSOFT FOUNDATION CLASSES (MFC).

MORE THAN 70 NEW OR MFC DERIVED CLASSES

Programmer, for Software Structures, Inc.  January 1996 - June 1996 and intermittent through June 1997.

Keywords: Microsoft Visual C++ for Win32, MFC.

 

 

AN OIL FIELD ACCOUNTING SYSTEM (TOW) UNDER COBOL AND VISUAL BASIC GUIs FOR

WINDOWS 3.1, WINDOWS NT 3.51 AND OS/2 WARP 3

Lead Programmer and Designer, for VertiComp, Inc.  June 1994 - October 1994, March 1995 - January 1996.

Keywords: C++ / C Language, Visual Basic, MKS Kornshell, VBX (Visual Basic Control), Oracle 7 OCI (Oracle C Interface), ODBC 2.1 SDK, Watcom Embedded SQL 4.0, Microsoft Visual C++, PWB, Watcom C/C++ 10.5.

 

 

EDUCATION

 

 

DOCTOR OF PHILOSOPHY. SOLID STATE PHYSICS

Yeshiva University, New York, New York, June 1976.

Dissertation Topic: "Many-Body Theory of a Localized Phonon in an Electron Gas."

 

 

 

Please Note:

 

I have been writing software for Microsoft operating systems since 1985.

My complete resume information may be viewed at

http://www.SoftwareStructures.com/Resumes.asp

 

 

 

 

Last Updated: February 3, 2003