|
Software Structures, Inc. |
|||||||||
|
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. ·
Interoperability with COM and COM+. COM+ Event Subscriptions to .NET Components. ·
ADO.NET, SQLServer 2000 driven XML Schemas and Generation of
Corresponding .NET Classes. ·
XML Serialization / Deserialization. ·
ASP.NET,
.NET Web Forms and Code-behind Class. ·
XML Web
Services, their Asynchronous Remote Invocation and Techniques to develop them
as .NET Class Libraries. ·
Multithreading
and Thread Synchronization. ·
CE.NET and
Platform Builder 4.0. ·
Windowing
and .NET Window procedures. ·
.NET Error
Handling. ·
.NET Class
and Interface Inheritance. ·
.NET
Pointers. ·
Techniques
for Full Debugger Support when COM and .NET Components are Simultaneously
Executing. ·
I wrote a
Series of .NET Beta 1 "How To ...." Tutorials. 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 - 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 |
||||||||