Presentations for Software Developers
and Technical Associations
from The Tablet UML Company

Donwload a Demo!
Purchase Tablet UML
Tablet UML Fact Sheet
Tablet UML White Paper
Tablet UML News
Ink in 60 Seconds!
The 21st Century CocktailNapkin
Presentations
Free Stuff!
Contact Tablet UML
Tablet UML Samples
Tablet UML Support
The Tablet UML Company
UML Training
UML Consulting
Requirements Analysis
Tablet PC Consulting
Speech API Consulting
.NET Consulting
Process Consulting
Project Estimating
Other Tablet Tools
Other Links 

 

Index

General .NET Programming

.NET is an Elephant (Now version 2.0!)

An Introduction to .NET and the .NET Framework. Confused by all the .NET hype? Wondering how .NET will change the way you develop and work tomorrow? Or just wondering what an elephant has to do with it? We will explore a UML model of the .NET Framework, the core services in the new object-oriented .NET API. .NET provides a vast sweep of new reusable services, covering everything from window processing to Internet applications and beyond. In fact, the .NET Framework is so large that it's easy to miss the forest for the trees. Each .NET expert enthuses about the features that he or she finds most interesting; so as you listen to different experts, you may get a very disjoint, confusing, or even conflicting picture of what .NET is all about. We will take an exploratory journey through the .NET forest, showing you some of the more interesting sights you might otherwise have missed. Learn what .NET is all about from the inside, so you can better evaluate the hype and see how .NET can help you. And as for the elephant? Check out this poem. Just substitute ".NET" for "elephant"...

Audience: Beginning .NET developers.

Understanding MSIL and the .NET CLR

Are you curious what’s inside your compiled .NET application? Do you want to see the full range of power MSIL supports? Do you want to learn more about how the CLR works? In this session, we’ll go “under the hood” to see how a compiled .NET assembly is structured, how the CLR reads and processes your assembly, what you can do with MSIL, and ways common .NET idioms are represented in MSIL.

Audience: Beginning to intermediate .NET developers.

Refactor Your Way to .NET: Porting C++ and MFC Applications

Are you reluctant to move to .NET because you have too much legacy MFC code? Do you want to make the switch now, instead of when circumstances force it upon you? Then this tutorial session is for you. In this session, we’ll use refactoring and automated tools to port an existing MFC DocView application to .NET, learning valuable porting strategies in the process.

Audience: Beginning to intermediate C# developers.

Refactor Your Way to .NET: Porting VB.NET Applications

Are you reluctant to move to .NET because you have too much legacy VB6 code? Do you want to make the switch now, instead of when circumstances force it upon you? Then this tutorial session is for you. In this session, we’ll use refactoring and automated tools to port an existing VB6 forms and data application to .NET, learning valuable porting strategies in the process.

Audience: Beginning to intermediate VB.NET developers.

Power Programming Practices for C#

So you know your way around C# and VS.NET pretty well. You’re a wizard at the Wizards, and you’re a coding fiend. You can crank out WinForms, WebForms, and even WebServices at amazing speed. You’re getting more work done faster than you have ever done before. But is that enough?

Not necessarily. Hand-rolled code that is easy to write isn’t always easy to maintain. Wizard-generated code helps you to get the job done, but not always done efficiently for long-term code maintenance, nor for short-term collaborative development. Other programming aids are similarly double-edged swords. Yet VS.NET and C# actually support powerful coding best practices that will encourage reuse and ease of maintenance of your code. In this session, we will examine these best practices and related coding standards that will make your C# code more polished and robust.

Audience: Beginning to intermediate C# developers.

Theory and Application of .NET Attributes

Like many platforms, .NET supports application metadata, a mechanism for a module to describe itself to external tools. But .NET goes farther: its metadata system is fully extensible with .NET custom attributes, a way to define your own metadata. What does that mean? Well, in this session, we’ll look at 10 fun tricks you can do with custom attributes: 10 ways your assemblies can describe themselves for custom tools that will help you to maintain and manage your code.

Audience: Beginning to intermediate .NET developers.

The Serialization Trap

How to Stay Out of It, How to Escape From It. Microsoft is singing a siren song. “Use .NET serialization,” they say. “It’s easy!” And then they show some samples that show just how easy it is; and you listen to the siren, and soon you’re trapped between Scylla and Charybdis, facing unserializable data, exploding file sizes, and an inability to change your class and module layouts. In the first half of this session, we’ll look at ways to avoid the serialization trap by looking before you leap. In the second half, we’ll look at ways to get out of the trap, for those who have already leaped.

Audience: Beginning to intermediate .NET developers.

UML Applied (A .NET Perspective)

Interactive demonstration of UML modeling for requirements gathering, architecture, design, and coding. While the end product will be a small amount of functioning .NET code, the lessons from this presentation apply to non-.NET environments as well.

Audience: Beginning to intermediate developers. analysts, designers, and managers.

Also Listed Under: Analysis and Design and UML.

Building Add-In Tools for Visual Studio.NET

VS.NET has a rich set of macro tools to allow you to automate common tasks in your development processes; but sometimes, a simple macro is not enough. Sometimes you need to add in new tools with full user interfaces, including tool windows and full integration with VS.NET. In this session, we’ll examine the process of building Add-Ins and Wizards for VS.NET.

Audience: Intermediate to advanced .NET developers.

Applying Architecture and Design Patterns in C#

Architecture and design patterns are well-studied common problems and standard starting points for solutions. Using these starting points as a solid foundation, you can focus your attention on the unique features of your code, trusting that the architecture and major design decisions are covered. In this session, we’ll examine some common architecture and design patterns, see how they translate into C# code, see how you could modify and extend the pattern code, and see how you can use these patterns to analyze, architect, and design a complex C# system.

Audience: Intermediate to advanced C# developers; Intermediate to advanced analysts, designers, and managers.

Also Listed Under: Analysis and Design and UML.

Applying Architecture and Design Patterns in VB.NET

Architecture and design patterns are well-studied common problems and standard starting points for solutions. Using these starting points as a solid foundation, you can focus your attention on the unique features of your code, trusting that the architecture and major design decisions are covered. In this session, we’ll examine some common architecture and design patterns, see how they translate into VB.NET code, see how you could modify and extend the pattern code, and see how you can use these patterns to analyze, architect, and design a complex VB.NET system.

Audience: Intermediate to advanced VB.NET developers; Intermediate to advanced analysts, designers, and managers.

Also Listed Under: Analysis and Design and UML.

Applying Architecture and Design Patterns in .NET

Investigate how particular design patterns are represented in a mix of C# and VB.NET code.

Audience: Intermediate to advanced .NET developers; Intermediate to advanced analysts, designers, and managers.

Also Listed Under: Analysis and Design and UML.

Automated Project Management with Visual Studio Team System

Learn how to extend the VSTS environment to support automated project management.

Audience: All .NET developers, analysts, managers, and testers.

Also Listed Under: Development Processes and Practices.

Test the **** Out of It!

Is your code full of ****? Let’s be honest: most code goes through periods of ****, and a lot of code has areas that are full of ****. And of course, some code is nothing but ****. **** happens, and you just have to clean up the mess. But if you don’t, and you ship anyway, that’s when the **** hits the fan. If you don’t get your **** together, your product can end up in the toilet. VSTS has a lot of tools to help you flush the ****, but your team may need to be trained to learn to use them. This session will help you learn to housebreak them. We’ll cover the most talked-about new features, unit testing and test-driven development; but we’ll also look at other support for testing and metering and assessing. We’ll also go through some simple checklists your team can use to create better tests, and then we’ll see how code snippets and automation can help to implement those tests. And we’ll look at how testers can use VSTS to take a larger, earlier role in system development.

Audience: Beginning to intermediate .NET developers, analysts, managers, and testers.

I Can’t Live Without It!

Some projects use VB.NET, while others use C#, Managed C++, or may be a mix. Some projects are Web-based, while others ran on a desktop or in a console. But no matter how they may differ, all projects are the same in one regard: they all have requirements. And so requirements definition and management should be at the core of any good process. In this session. We’ll learn how VSTS helps you to define, store, track, and report requirements. And we’ll also learn some simple yet powerful requirements patterns that you can apply to most projects and processes.

Audience: Beginning to intermediate .NET developers, analysts, managers, and testers.

Are We There Yet?

Does your project use VB.NET or C#? Chances are, your customers don’t know and don’t care. Will your project be on time or late? Now that they care about! How much will it cost? When will it be done? These questions can be more trouble than the technology or languages you use; and they can also be the most important questions for your executives and your customers. This session will show team leads and team members how VSTS helps them in the three key resource management activities: estimating time and costs; planning and scheduling the effort; and tracking, reporting, and correcting as the project runs. Along the way, we’ll discuss some basic estimating, scheduling, and planning techniques.

Audience: Beginning to intermediate .NET developers, analysts, managers, and testers.

One Microsoft Way? No Way!

VSTS ships with the Microsoft Solutions Framework (MSF), a standard process for software development. This is a process that Microsoft recommends; but for many teams, this “One Microsoft Way” won’t be the right way. But fear not! VSTS is customizable, in ways both large and small. In this session, we’ll look at ways to adapt the MSF to your team and your project. Then we’ll go beyond that, and see how VSTS allows you to build your own process templates. With these, you can incorporate any of the popular development processes into VSTS, or even create your own.

Audience: Beginning to intermediate .NET developers, analysts, managers, and testers.

Everything You Never Wanted to Know About .NET Generics (But Were Afraid Someone Would Ask)

For details, slides, and code samples, click here.

Audience: Beginning to intermediate C# and VB.NET developers.

Do, Undo, Redo, Do Over: A Generics Command Pattern Implementation

For details, slides, and code samples, click here .

Audience: Intermediate to advanced C# and VB.NET developers.

Tablet PC Programming in .NET

Ink in 60 Seconds

So why aren't you writing Tablet PC applications with .NET yet?

Do you think it's too difficult? Do you think you're too busy to learn the Tablet PC API? Well, Martin L. Shoemaker (of The Tablet UML Company) says you're wrong.

Or do you just not see what sort of Tablet PC app you might build? Do you think that there's no great Tablet PC applications out there for you? Well, Martin says you're wrong again.

And Martin's so sure you're wrong, he's going to prove it to you by building some simple little Tablet PC samples -- samples you can easily adapt into your own applications -- each written in under 60 seconds.

Then after each sample is running, he'll explain to you what he did, how he did it, and how you might expand on it. Some of the samples he'll build include:

  •  60 Seconds to Ink: Capturing Ink in a window in your application.
  • 60 Seconds to Ink Anywhere: Capturing Ink in any window in your application.
  • 60 Seconds to Programmatic Ink: Adding Strokes programmatically to an Ink surface.
  • 60 Seconds to Selecting and Resizing: Manipulating the Ink that you draw.
  • 60 Seconds to Erasing: Erasing the Ink that you draw.
  • 60 Seconds to Color: Drawing Ink in multiple colors.
  • 60 Seconds to Transparency: Drawing with transparent Ink.
  • 60 Seconds to Pen Shapes: Drawing with different shapes and sizes of pens.
  • 60 Seconds to Inkons: Representing data as objects within an Ink drawing.
  • 60 Seconds to Simple Handwriting Recognition: Simple handwriting in a form.
  • 60 Seconds to Handwriting Recognition On Demand: Handwriting recognition mixed with typing.
  • 60 Seconds to Handwriting Recognition Anywhere: Handwriting recognition from any Ink surface.
  • 60 Seconds to Speaking: A simple talking application.

And just in case those samples don't inspire you to devise a great new Tablet PC application, Martin will finish the presentation by spending 60 seconds (probably more) describing each of ten different killer Tablet PC applications that he's just too busy to write himself, but which he thinks somebody should be writing.

Audience: Beginning Tablet PC developers with some .NET experience.

The 21st Century Cocktail Napkin

A lot of discussions about the Tablet PC focus on text recognition. While the text recognition performance is pretty impressive, there’s another recognition mode that may be more useful for your apps: gestures. The gesture recognizer will recognize over 40 different shapes, and tell you when the user draws them. This allows you to build “Smart Cocktail Napkin” applications, where the user draws a picture that has meaning to other users; and the software uses the simple shapes in the picture to recognize what the user drew. But for you to succeed with this technique, you’ll need to define a shape grammar: a set of drawing contexts, the set of shapes that have meaning in a given context, and the set of .NET code types that will correspond to those shapes.

But gesture recognition is only part of the power of the 21st Century Cocktail Napkin. In articles and books on Tablet PC development, there’s talk about Big Ink (an entire Ink image is one set of strokes and content) and Little Ink (an image made up of small sets of strokes within an image that represent objects within the code); but most programming samples only demonstrate Big Ink, which is the default mode for the Tablet PC API. We’ll explore the difference between Big Ink and Little Ink and why you might prefer Little Ink for your “Smart Cocktail Napkin” applications.

In this session, we’ll describe the gesture recognizer, review the set of recognized gestures, examine what goes into a shape grammar, and look at a generic shape grammar engine written for .NET. We’ll also look at a sample .NET application built on top of the shape grammar engine. Then we’ll discuss a wide range of implementation issues in building your own Little Ink implementation, and then look at a generic Little Ink engine for .NET. We’ll then integrate the Little Ink engine into our shape grammar engine, ending with a complete 21st Century Cocktail Napkin.

Audience: Intermediate Tablet PC developers with some .NET experience.

Ink, Gestures, Speech, and Mobility

An Introduction to Tablet PCs. The Tablet PC is here, and it'll change the way you work... and the way you program. Combining pen input, speech input, light-weight devices, WiFi, and a powerful superset of Windows XP Professional, the Tablet PC fills an important niche in mobile computing. You can control a Tablet PC by drawing and writing and filling in forms, by standard and custom gestures, and simply by speaking to it. For mobile workers who need the power of a laptop with the ease-of-use a Pocket PC, the Tablet PC allows them to work in a way that's natural to them, rather than being constrained by the keyboard and the mouse. This makes them popular in fields as diverse as insurance, medicine, animation, and yes, software design.

In this session, we'll examine the Tablet PC:

  1. What it is. The nature of the platform. Different configurations. Input with Ink and Gestures. Input with Speech.
  2. What it isn't. How the Tablet PC differs from prior pen-based efforts and from other mobile devices.
  3. What it does. Usage scenarios. How to recognize a good Tablet PC need. Tablet PC application design considerations.
  4. How it does it. Programming the Tablet PC under .NET, live on stage! Capturing Ink. Serialization. Text recognition. Recognizing gestures. Working with images.

We'll finish by looking at Tablet UML, an example of a full-fledged Tablet PC application. Investigates Tablet PC capabilities, including sample applications.

Audience: All .NET developers; Intermediate analysts and managers.

Look, Ma, No Keys

Tablet PC Programming. A more code-centered view of the Tablet PC, examining an app driven by pen and voice, without keys.

Audience: All .NET developers.

Tablet PCs: An Analyst's Perspective

Investigates what makes a good Tablet PC application, along with how to identify good Tablet PC functionality from a user's perspective.

Audience: Intermediate developers, designers, analysts, and managers.

Tablet PCs: A User's Perspective

Explores many powerful ways that the Tablet PC can make users more productive.

Audience: General users.

Speech Programming in .NET

Writing Speech Applications in .NET

.NET now supports the latest powerful speech APIs from Microsoft and other vendors, allowing new ways for users to interact with your applications. In this session, we’ll look at code samples for speech input and output in WinForms, WebForms, and telephony applications.

Audience: Intermediate to advanced .NET developers.

Designing a Speech Grammar for .NET

Explains and demonstrates using UML state diagrams and state modeling to define a speech grammar for controlling .NET applications.

Audience: Intermediate to advanced .NET developers; Intermediate to advanced analysts, designers, and managers.

Also Listed Under: Analysis and Design and UML.

Analysis and Design and UML

UML for Everyone

An introduction to UML and the role it can play in all aspects of software development.

Audience: Beginning to intermediate developers. analysts, designers, and managers.

UML Applied (A .NET Perspective)

Interactive demonstration of UML modeling for requirements gathering, architecture, design, and coding. While the end product will be a small amount of functioning .NET code, the lessons from this presentation apply to non-.NET environments as well.

Audience: Beginning to intermediate developers. analysts, designers, and managers.

Also Listed Under: General .NET Programming.

Actor-Driven Requirements Modeling

Analysis with an End User Focus. In this session, we shall demonstrate and practice requirements modeling and business modeling centered on Actors. We shall see how the focus on Actors allows a very rapid development of a picture of a business or a system; and we will examine useful ways to organize a UML model to reflect an Actor-driven model. Attendees should already understand the basics of Use Case Diagrams.

Audience: Beginning to intermediate developers. analysts, designers, and managers.

Applied Design Patterns

This session will introduce you to the world of Patterns in software development, from process patterns all the way to design patterns. We'll cover the concept of patterns: what they are and how they form an engineering framework for software best practices. We'll also discuss a number of classic patterns, as well as the concrete problems these patterns solve, their intent, the motivation for using them, the consequences of choosing a pattern, their applicability, and implementation issues. Each pattern will be presented first from the traditional object-oriented perspective, then as a live, interactive demo. (Be prepared for audience participation!)

Audience: Beginning to intermediate developers. analysts, designers, and managers.

'L' is for Language

Style Guidelines for UML Modeling. UML is a language, a tool for communication. And like any language, it has both syntax and style. In this session, we shall focus on some style guidelines which will make your diagrams more useful as communications tools. We will compare diagrams that break the rules with diagrams that follow them, and see how the rules help communicate the point of each diagram.

Audience: Intermediate developers, analysts, designers, and managers.

Function Point Estimating with UML

Function points are an industry standard software size estimation tool. Though they are in wide use, function points were developed for use in data-driven systems, not object and component systems. In this session, we will study how UML models can feed into a function point analysis to generate an estimate. We will also discuss some extensions to traditional function point methods to reflect two features common to UML design processes: component design and continuous requirements discovery.

Audience: Intermediate to advanced developers, analysts, designers, and managers.

Applying Architecture and Design Patterns in C#

Architecture and design patterns are well-studied common problems and standard starting points for solutions. Using these starting points as a solid foundation, you can focus your attention on the unique features of your code, trusting that the architecture and major design decisions are covered. In this session, we’ll examine some common architecture and design patterns, see how they translate into C# code, see how you could modify and extend the pattern code, and see how you can use these patterns to analyze, architect, and design a complex C# system.

Audience: Intermediate to advanced C# developers; Intermediate to advanced analysts, designers, and managers.

Also Listed Under: General .NET Programming.

Applying Architecture and Design Patterns in VB.NET

Architecture and design patterns are well-studied common problems and standard starting points for solutions. Using these starting points as a solid foundation, you can focus your attention on the unique features of your code, trusting that the architecture and major design decisions are covered. In this session, we’ll examine some common architecture and design patterns, see how they translate into VB.NET code, see how you could modify and extend the pattern code, and see how you can use these patterns to analyze, architect, and design a complex VB.NET system.

Audience: Intermediate to Advanced VB.NET developers; Intermediate to advanced analysts, designers, and managers.

Also Listed Under: General.NET Programming.

Applying Architecture and Design Patterns in .NET

Investigate how particular design patterns are represented in a mix of C# and VB.NET code.

Audience: Intermediate to Advanced .NET developers; Intermediate to advanced analysts, designers, and managers.

Also Listed Under: General.NET Programming.

Designing a Speech Grammar for .NET

Explains and demonstrates using UML state diagrams and state modeling to define a speech grammar for controlling .NET applications.

Audience: Intermediate to Advanced .NET developers; Intermediate to advanced designers, analysts, and managers.

Also Listed Under: Speech Programming in .NET.

Development Processes and Practices

Automated Project Management with Visual Studio Team System

Learn how to extend the VSTS environment to support automated project management.

Audience: All .NET developers, analysts, designers, managers, and testers.

Also Listed Under: General.NET Programming.

Introduction to Refactoring

Looks at strategies and techniques for refactoring as a development subprocess.

Audience: Intermediate to advanced developers, designers, and managers.

Requirements Patterns and Antipatterns

Based on an upcoming book: techniques customers can use to help developers to do their jobs better, so that they can help you do your job better.

Audience: Intermediate to advanced developers, analysts, designers, and managers.

Improving the Requirements Process

Explores common techniques for requirements gathering, management, and modeling.

Audience: Intermediate to advanced developers, analysts, designers, and managers.

Fundamentals of Project Estimation

Explores the basic practices and rationale for project estimation.

Audience: Intermediate to advanced developers, analysts, designers, and managers.

An Overview of Popular Development Processes

This session provides a comparison of many different popular development processes, with a focus on the strengths and weaknesses of each. The main lesson you should learn from this session is simple: no process is automatically good or automatically bad; but choosing a practice that doesn’t fit your environment or customer or team or organization is always a bad practice. So we’ll look at Waterfall, Spiral, Staged Delivery, Evolutionary Delivery, the Unified Process, and eXtreme Programming; and we won’t pass a judgment on any process (not even Waterfall), but we’ll try to present them on an even footing so that you can better understand what might be a better process for your project.

Audience: Intermediate to advanced developers, analysts, designers, and managers.

Introduction to the Unified Process

An examination of the Unified Process, concentrating on the roles people play and the work products that result.

Audience: Intermediate to advanced developers, analysts, designers, managers, and testers.

Introduction to Agile Development

An introduction to the values and principles of Agile Development, along with an investigation of some AD processes.

Audience: Intermediate to advanced developers, analysts, designers, and managers.

Introduction to eXtreme Programming

An examination of eXtreme Programming, concentrating on the roles people play, the XP practices, and the work products that result.

Audience: Intermediate to advanced developers, analysts, designers, and managers.

Agile Development Considered Harmful

AntiPatterns for Agile Development. Agile development processes like Scrum, XP, and Agile Modeling have some proven successes and a lot to offer. Misapplied, however, they can be every bit as destructive as the indiscriminate use of GOTOs; only instead of spaghetti code, you end up with spaghetti processes. In this session, we will examine many ways in which agile processes can be misapplied, as well as how to determine if agile development is even right for your situation. We will also discuss how to recognize and respond to the signs of spaghetti.

Audience: Intermediate to advanced developers, analysts, designers, and managers.

Under the Gun

Recovery Plans for a Project in Crisis. So you’ve studied, and you’ve decided you need to upgrade your software development processes. Maybe you want to try the Unified Process, or maybe you’re leaning toward an Agile Development approach. But in either case, you may fall prey to a common worry: “Wow! This looks really powerful! But how will we ever have time for it when we’re in the middle of a crisis right now?” (Some people add, “Maybe next project.” Then others just laugh cynically…) In this session, we will discuss Recovery Plans: approaches to implementing process improvement during the middle of a software crisis.

Audience: All developers, analysts, designers, and managers.

Aesop's Fables of Software Development

2300 years ago, a man named Aesop gathered the accumulated software development knowledge of the ancient Greeks, and presented the knowledge to history. However, since so few people in the intervening millennia knew anything about software, they misinterpreted Aesop’s lessons as simple morality fables, rather than as hard advice for software managers. Now you can learn what Aesop had to teach us about software development processes and management.

Audience: All developers, analysts, designers, and managers.

About Martin L. Shoemaker

Martin is a software developer with 21 years experience in the industry. He has worked in the fields of color science, on-line shopping, databases, material handling, medical imaging, and customer relations management. He has twice been recognized by Microsoft Corporation as an MVP for Visual Development with C#.[1]

Martin is also a frequent speaker, having presented to the Grand Rapids chapter of the Information Technology Managers Association, the Detroit Colour Council, the Ann Arbor IT Zone, the Ann Arbor Computer Society, the Great Lakes Area .NET User Group, the West Michigan .NET User Group, Software Development West, Software Development East, Software Development Best Practices, Visual Studio Live, Visual C++ Developers Conference, UML World, Rational Users Conference, Web Services Edge, Rubi-Con, and the Chattanooga .NET User Group. As a speaker for the International .NET Association (INETA), he has presented to the Omaha .NET User Group, the Oklahoma .NET Users Group, the Tulsa .NET User Group, the Greater Lansing .NET User Group, the Chicago .NET Users Group, the Little Rock .NET Users Group, BeanTown .NET, the Huntsville .NET Users Group, the Findlay Ohio Area .NET User Group, the Central Maryland ASP Professionals, the Cincinnati .NET User Group, the Dayton .NET Developers Group, the Michiana Area .NET Users Group, the Huntsville VS.NET Users Group, Wichita Developers .NET, the Chippewa Valley .NET User Group, the Falcon.NET Association, the Cleveland .NET Special Interest Group, .NET Users of Fort Wayne, and the Lubbock .NET Users Group. His most popular presentations are Richard Hale Shaw's UML BootCamp, which he wrote and presents. He has presented this course both in public settings and for individual clients including:

  • Microsoft
  • Intermec
  • Siemens Dematic (Rapistan Division)
  • University of Michigan
  • Target
  • EPOS Corp
  • Syngenta
  • LaBatts
  • NISC
  • SER Solutions
  • Silicon Energy
  • Sports Media
  • Tyco International
  • Hewlett-Packard
  • Best Software
  • CCH
  • Intuit
  • Shaw Industries, Inc.
  • Lanac
  • Afni
  • Fleet Lease Disposal, Inc.

Martin is the founder of the Tablet UML Company (http://www.TabletUML.com), a Hopkins MI company that makes software tools for the Tablet PC. He is also available as an instructor and as a consultant and mentor, offering his expertise to clients who need requirements analysis and software design services, as well as custom software in the Windows and .NET environments.

Martin has one primary philosophy when it comes to software: There is a better way to design software and systems, and we want to bring it to you.


[1] “The Microsoft MVP Program is a worldwide award and recognition program that strives to identify amazing individuals in technical communities around the world. Microsoft MVPs are recognized for both their demonstrated practical expertise and willingness to share their experience with peers in Microsoft technical communities.” From http://mvp.support.microsoft.com/communities/mvp.

Home    Contacts/Questions

UML® is a registered trademark of the Object Management Group.
Tablet PC®, Microsoft Office®, and Microsoft .NET® are registered trademarks of Microsoft Corporation.
PayPal® is a registered trademark of PayPal, Inc., an eBay Company.

Copyright © 2005 by Martin L. Shoemaker.
All rights reserved.

Tablet PC Development Tools are within reach