Home
MM .NET 2026 v10.0 Developer's Guide
Copyright Notice
What's New in MM .NET 10.0.0
Installing the MM .NET Framework 2026
Repairing an MM .NET Installation
Moving Projects to MM .NET 10.0.0
License Agreement
Jump Starts: Understanding and Using MM .NET
Jump Start: Analysis and Design
Maintain Customer Orders - Use Case Diagram (User Stories)
Maintain Customer Orders - Sequence Diagram
Maintain Customer Orders - Class Diagram
Jump Start: Creating Entity Framework Business Classes- C#
Step 1 - Order System Analysis and Design
Step 2 - Creating the Business Object Project
Step 3 - Specifying Database Connection Information
Step 4 - Creating Business Classes w/ the Business Generator
Step 5 - Examining the Generated Code
Step 6 - Updating the Database
Step 7 - Enhancing the Order Business Object
Step 8 - Testing the Order Business Object
Step 9 - Enhancing the OrderDetail Business Object
Step 10 - Testing the OrderDetail Business Object
Step 11 - Testing the Shipper and Employee Business Objects
Step 12- Enhancing and Testing the Customer Object
Conclusion - EF Code First Business Objects - C#
Jump Start: Creating Entity Framework Business Classes- VB
Step 1 : Order System Analysis and Design
Step 2 : Creating the Business Object Project
Step 3 : Specifying Database Connection Information
Step 4 : Creating Business Classes w/ the Business Generator
Step 5 : Examining the Generated Code
Step 6 : Updating the Database
Step 7 : Enhancing the Order Business Object
Step 8 : Testing the Order Business Object
Step 9 : Enhancing the OrderDetail Business Object
Step 10 : Testing the OrderDetail Business Object
Step 11 : Testing the Shipper and Employee Business Objects
Step 12 : Enhancing and Testing the Customer Object
Conclusion : EF Code First Business Objects - VB
Jump Start: WPF Application - C#
Step 1: Creating the WPF Application
Step 2: Adding the Business Layer Project
Step 3: Setting up Data Access for the WPF Project
Step 4: Creating a Customer Orders Window
Step 5: Adding UI Elements to the List Page
Step 6: Adding UI Elements to the Properties Tab
Step 7: Running the Window
Step 8: Registering Business Objects with the Window
Step 9: Binding User Interface Elements to Business Objects
Step 10: Running the Data Bound Window
Step 11: Setting up Window Navigation
Step 12: Enhancing the DataGrids
Step 13: Enabling Data Manipulation
Testing the Customer Orders Window - C#
Jump Start: WPF Application - VB .NET
Step 1. Creating the WPF Application
Step 2. Adding the Business Layer Project
Step 3. Setting up Data Access for the WPF Project
Step 4. Creating a Customer Orders Window
Step 5. Adding UI Elements to the List Page
Step 6. Adding UI Elements to the Properties Tab
Step 7. Running the Window
Step 8. Registering Business Objects with the Window
Step 9. Binding User Interface Elements to Business Objects
Step 10. Running the Data Bound Window
Step 11. Setting up Window Navigation
Step 12. Enhancing the DataGrids
Step 13. Enabling Data Manipulation
Testing the Customer Orders Window - VB .NET
Jump Start: ASP.NET Application - C#
Step 1: Creating the ASP.NET Application
Step 2: Adding the Business Object Project
Step 3: Setting up Data Access
Step 4: Setting up the Master Page
Step 5: Creating a Customer Orders Form
Step 6: Adding Controls to the Customer Orders Form
Step 7: Registering the Order Business Object with the Form
Step 8: Binding the GridView to the Orders Object
Step 9: Running the Customer Orders Form
Step 10: Enhancing the Orders DataGridView
Step 11: Creating the Order Edit Form
Step 12: Registering Business Objects on the Order Edit Form
Step 13: Binding the Order Edit Form Controls
Step 14: Running the Order Edit Form
Step 15: Enhancing Web Form Navigation
Step 16: Enhancing the Order Detail GridView
Step 17: Adding Items to the Order Detail GridView
Step 18: Testing Business Rules
Jump Start: ASP.NET Application - VB .NET
Step 1 - Creating the ASP.NET Application
Step 2 - Adding the Business Object Project
Step 3 - Setting Up Data Access
Step 4 - Setting Up the Master Page
Step 5 - Creating a Customer Orders Form
Step 6 - Adding Controls to the Customer Orders Form
Step 7 - Registering the Order Business Object with the Form
Step 8 - Binding the GridView to the Orders Object
Step 9 - Running the Customer Orders Form
Step 10 - Enhancing the Orders DataGridView
Step 11 - Creating the Order Edit Form
Step 12 - Registering Business Objects on the Order Edit Form
Step 13 - Binding the Order Edit Form
Step 14 - Running the Order Edit Form
Step 15 - Enhancing Web Form Navigation
Step 16 - Enhancing the Order Detail GridView
Step 17 - Adding Items to the Order Detail GridView
Step 18 - Testing Business Rules
Getting Started
Framework Documentation
Powered by C# -- Used from any .NET Language
Before Changing the Framework...
Printing this Guide
The Sample Applications
Adding MM .NET WPF Controls to the VS Toolbox
Adding MM .NET Windows Forms Controls to the VS Toolbox
Adding MM .NET Web Forms Controls to the VS Toolbox
Overview of MM .NET
Why a Framework for a Framework?
Types of MM .NET Applications
MM .NET in the Context of Software Development
Business Object Overview
Understanding MM .NET Services
Class Instantiation Services
The Factory Object
Dependency Injection
Application Settings Services
Database Services
User Services
Application Logging Services
Security Services
Localization Services
Design Guidelines
MM .NET Namespaces
MM .NET Source Code
MM .NET Business and Entity Objects
Business Object Architecture
Understanding Business Objects
Understanding Business Entities
Entity Framework Core vs. Entity Framework 6
Entity Framework Entity Objects
Entity Framework Entities w/ EDMX
Creating a New Entity Framework Business Object Project
Adding Entities to an Entity Data Model
Adding, Refreshing and Deleting Entities on an Entity Data Model
Creating Business Classes with the Business Layer Generator
Extending Entity Classes Generated by the Entity Data Model
Retrieving Entities and Entity Lists
Retrieving Entities and the MergeOption Setting
Saving Entities and Entity Lists
Canceling Changes to Entities and Entity Lists
Adding Stored Procedures that Retrieve Entities
Adding Stored Procedures for Insert, Update, Delete
Mapping Association Sets to Stored Procedures
Moving a Classic Entity Business Object to Entity Framework
Accessing EF Business Objects from a UI Project
Business Entity Members
Understanding Business Rule Objects
Understanding Data Access Objects
Business Object Class Hierarchy
Using the MM .NET Business Layer Generator
Step 1: Launch the Generator and Choose a Project
Step 2: Specify the Code Generation Settings
Step 3: Select Database Items
Step 4: Data Access Layer Options
Use Dynamic SQL Statements
Create New Stored Procedures
Use Existing Stored Procedures
Step 5: Generate Business Layer Classes
Retrieving Business Entities
Retrieving a Single Business Entity with GetEntity()
Retrieving a List of Business Entities with GetEntityList()
Saving Business Entities
Deleting Business Entities
Establishing Business Object Relationships
Understanding Primary Business Objects
Checking for Unique Values
Using Business Object Hook Methods
Setting Default Values in New Entities
Plugging into Business Object Events
Understanding Business Process Objects
Creating Business Process Objects
Data Access with MM .NET
Data Access Overview
Specifying Connection Strings and Database Settings
How Database Connections Work in MM .NET
Specifying Connection Strings for Different Types of Data
Specifying Database Sets in the Config File
If You Are Having Problems Connecting...
Working with Transactions
Handling Concurrency Errors
Setting the Command Timeout
Working with Multiple Data Access Objects
Converting Entity Lists to DataTables for Easy Viewing
Working with Classic ADO.NET
Retrieving Data into DataSets
Queries that Return a Single Value
Saving DataSets using Business Objects
Deleting Data using Business Objects
Calling Stored Procedures
Calling Stored Procedures that Return Business Entities
Calling Stored Procedures that Return a DataSet
Calling Stored Procedures that Return a DataReader
Calling Stored Procedures that Return a Scalar Value
Calling Stored Procedures that Return Output Parameters
Calling User-Defined Functions (UDFs)
Using Custom Auto-Increment Logic
Handling Classic ADO.NET Concurrency Errors
Connection Pooling
Generic Data Access
Using the DataRow Property to Access the Current Row
Working with Oracle Data
Oracle Data Providers and Connection Strings
Oracle Data Types
Oracle and Entity Framework
Oracle and Classic ADO.NET
Data Access FAQs
How can I create the Northwind DBC for SQL Server Express or SQL Server?
How do I control the timeout value of a SQL connection?
How do I set a column to null in Enterprise Manager?
How can I run a SQL script within Visual Studio?
How do I debug a stored procedure within Visual Studio?
How can I determine if a database record already exists?
How do I get XML from a variable into a DataSet?
Visual FoxPro
Does the VFP OLE DB Provider work with views?
Does the VFP OLE DB Provider work with free tables?
Does the VFP OLE DB Provider work with VS Tools?
Why are there trailing spaces in my VFP character data?
Why do I get *Cursor is read-only* with VFP Data in ASP.NET?
Creating WPF Applications
Windows Presentation Foundation Primer
MM .NET WPF Controls
Creating a New Windows Presentation Foundation Application
Step 1: Creating a New WPF Solution
Step 2: Adding an Existing Business Object Project
Step 3: Setting up Data Accesss for Your WPF Application
Step 4: Rebuilding the WPF Solution
Step 5: Running the WPF Solution
Step 6: Enhancing the WPF Application
Adding a New Window to Your Application
Launching a Window from the Main Menu
Using Business Objects with WPF
Registering Business Objects with WPF
Getting References to Registered Business Objects
Displaying Broken Rules and Warnings in WPF
Working with MM .NET Maintenance Windows
Data Binding WPF Controls
DataBinding Combo Boxes
DataBinding a WPF DataGrid
Working with the mmMoverControl
Saving and Restoring Window Sizes and Positions
Determining the Graphics Capabilites of End User Machines
Creating Single-Instance WPF Applications
Creating Single-Instance Windows
Showing a WPF Window
Using Specialized Buttons
Working with the Auto-Complete TextBox
Enabling MM .NET Security in a WPF Application
WPF Application Events
Specifying the Control to Receive Focus
Getting a reference to an element's parent Window
WPF FAQs
How do I create an MDI application in WPF?
What is the equivalent of IsMdiConatiner in WPF?
How do I set the ZOrder of UI Elements?
Where should custom Window initialization code be placed?
What is the firing order of WPF events?
How do I set the tab order of user interface elements?
How do I dynamically show/hide user interface elements?
How can I justify text in a TextBox?
How do I display a modal window?
How do I apply a style to all elements of a particular type?
How do I specify a form's default and cancel buttons?
How do I specify a shortcut key for a UI element?
How do I change the mouse cursor?
How can I execute code when a dependency property is set?
How can I get the current item in one of the Item controls?
How can I dynamically size a Window?
How do I programmatically run an animation?
How do I set an ImageControl Source from a file name?
Why do Mouse events for the TextBox not fire?
How can I determine which UI element has focus?
How do I programmatically change focus?
Why isn't the WPF DataGrid control in my Visual Studio Toolbox?
How Do You Set Height or Width to Auto in Code?
How to set focus to a tab after double-clicking a DataGrid?
How do I Set Focus in My Custom User Control?
Creating Windows Forms Applications
Using MM .NET Windows Forms Controls
Creating a New Windows Forms Application
Step 1: Creating a New Windows Forms Solution
Step 2: Adding an Existing Business Project (Optional)
Step 3: Setting Up Data Access for Your New Application
Step 4: Rebuilding the Solution
Step 5: Running the Solution
Step 6: Enhancing the Application
Adding a New Form to your Application
Launching a Form from the Main Menu
Using Business Objects in Windows Form
Registering Business Objects with a Windows Form
Getting References to Registered Business Objects
Displaying Broken Rules and Warnings in Windows Forms
Data Binding MM .NET Windows Forms Controls
Data Binding Simple Bound Windows Forms Controls
Data Binding Windows Forms List Controls
Data Binding Windows Forms Data Grids
Programmatically Data Binding User Interface Controls
Rebinding User Interface Controls
Manually Binding MM .NET Windows Forms Controls
Data Binding Windows Forms Sequence Diagram
Creating a Maintenance Form
Creating Single-Instance Forms
Synchronizing Data Bound User Interface Controls
Formatting Text Box Values
Automatically Disabling and Enabling Controls
Displaying a Record Description in the Form Title
Specifying the Control to Receive Focus
Setting Tooltip Text
Working with the mmDataGridView
Working with mmDataGrid
Working with mmTreeView
Working with the Picklist Controls
Working with the mmMoverControl
Working with the mmOpenFileDialog Control
Adding a Navigation ToolStrip to your Forms
Creating Your Own Custom Navigation ToolStrip (Walkthrough)
Using Specialized Buttons
Using Specialized ToolStrip Buttons
Adding an Image to the Main Application Window
Accessing the Main Application Window
Getting a Reference to a Control's Parent Form
Getting the Current Row
Application Startup Sequence
Windows Forms FAQs
Windows Forms
How do I work with MDI (multiple document interface) forms?
What is the firing order of Windows Forms events?
How do I display modeless and modal forms?
How can I retrieve a value from a modal dialog?
How can I stop a form from closing?
How do I specify that a form can't be resized?
How do I programmatically resize a Windows Form?
Why is my form a different size at runtime than design time?
How do I specify the default button on a dialog?
How do I close all open forms?
Why do child forms display behind controls on the main form?
How do I create a handler for a inherited control in VB.NET?
Can I create an MM .NET app with one form and no desktop?
How do I set the background color of an MDI parent form?
Windows Controls
How do I create my own custom Windows Forms controls?
How do I determine if a checkbox is selected?
How do I programmatically select items in a list box?
Where is the Windows Forms EditBox control?
Which ListBox event should I use?
Why does the combo box SelectedIndexChanged fire so often?
How do I create a shape to place on a form?
Why do I get "Invalid Object Name Classes" with the Picker
How do I make a control transparent?
How do I activate a page in a tab control?
How do I create a 3D line on a form?
How do I set focus to a control?
How do I programmatically determine which control has focus?
How do I programmatically fire a button's Click event?
How do I make a checkbox tri-state?
How do I programmatically add controls at run time?
How do I programmatically layer controls at run time?
How do I programmatically select a Combo or ListBox item?
How do I prevent a control from appearing in the Toolbox?
How do I programmatically show/hide a menu bar?
Why don't tool tips display for my tab pages?
How do I create a group of radio buttons?
How do I programmatically add items to a list control?
How do I programmatically set the value of Windows Controls?
How do I create a hot key for a Windows Forms button?
Windows Forms Miscellaneous
How do I capture the Escape key?
How do I make the computer beep?
How do I turn the cursor into an hourglass?
Creating ASP.NET Applications
Using MM .NET ASP.NET Controls
Creating a New ASP.NET Application
Step 1: Creating a New Web Forms Solution
Step 2: Adding an Existing Business Project (Optional)
Step 3: Setting Up Data Access for Your New Web Application
Step 4: Rebuilding the Web Forms Solution
Step 5: Running the Web Forms Solution
Step 6: Enhancing the Web Forms Application
Creating a Master Page
Creating a Content Page
Adding a New Web Form to your Application
Adding Web Controls to Your Web Form
Using Cascading Style Sheets
Working with User Controls
Using Business Objects in Web Forms
Integrating Business Objects with a Web Form
Data Binding MM .NET Web Forms Controls
Data Binding Simple Bound Web Forms Controls
Data Binding Web Forms List Controls
Data Binding Web Forms Data Grids
Using Themes and Skins
Data Binding Sequence Part 1: Web Form Instantiation
Data Binding Sequence Part 2: Web Form PostBack
Data Binding Web Controls to Alternate Data Sources
Persisting User State
Checking IsPostBack on MM .NET Web Controls
Setting Initial Control Focus on a Web Form
Manually Binding MM .NET Web Forms Controls
Working with mmAdRotator
Working with mmBulletedList
Working with mmCalendar
Working with mmDataList
Binding mmDataList to Strongly Typed Data
Binding mmDataList to Untyped Data
Working with mmGridView
Binding mmGridView to Strongly Typed Data
Binding mmGridView to Untyped Data
Enabling Editing in mmGridView
Adding a DropDownList to the GridView
How To Add Paging to a GridView
How to Add Sorting to a GridView
Working with mmImageMap
Working with mmLiteral
Working with mmTable
DataGrid In-place Editing Walkthrough
Formatting Display Values with the DisplayFormat Property
Web Forms Application Startup Sequence
Working with ASP.NET AJAX 1.0
Downloading and Installing ASP.NET AJAX 1.0
ASP.NET AJAX Controls in the Visual Studio Toolbox
Adding ASP.NET AJAX to an existing ASP.NET Application
Adding a ScriptManager to a Web Form
Using ASP.NET AJAX UpdatePanels
Web Forms FAQs
Why do I get 'Unable to start debugging on the web server'?
Fixing HTTP:1.1 500 Internal Server Error creating a project
How do I install Internet Information Server (IIS)?
What is the firing order of Web Forms Events?
How can I get the value of a selected item in a list?
How can users upload files using my Web Forms application?
How do I add a check box to a Web Forms DataGrid?
How do I add a custom button to a DataGrid?
How do I dynamically add controls to a Web Form?
How do I know which item is selected in a RadioButtonList
How do I get the location of special Internet directories?
Why is my Web application running slowly?
How do I display alert & confirmation dialogs in Web Forms?
Why do I get 'Could not load type <namespace>.Global'?
How do I get controls to size properly in all browsers?
How can I redirect from within a frame to a full web page?
Why do I get "Unrecognized attribute: 'xmlns' in web.config"
How can I close a browser window from a button?
How do I specify a Startup Page in my Web Forms App?
Why are some of my TextBox backgrounds yellow?
Why do controls reposition when I drop them on my form?
Why is Web Site Location disabled creating a web project?
Why do I have to click Edit twice on the DetailsView?
Why doesn't the UserAdmin Form work within a Master Page?
JavaScript FAQs
How can I debug JavaScript in Visual Studio?
How do I include JavaScript in an ASP.NET page?
How do I include JavaScript in a separate file?
How do I get label text in JavaScript?
Creating WCF Services
Creating a New WCF Service
Step 1 - Creating a New WCF Service
Step 2 - Adding an Existing Business Project
Step 3 - Setting Up Data Access for Your New WCF Service
Step 4 - Setting Up the WCF Service
Step 5 - Running the WCF Service
Web Services FAQs
Why does my Service not appear in the list of Services
Remote Data Access with WCF or Web Services
Remote Data Access with Windows Communication Foundation
Understanding the Concepts
WCF Primer
Setting up a WCF Data Service
Step 1: Creating a new WCF Data Service
Step 2: Setting up your Project to use the WCF Data Service
Step 3: Specifying Local or WCF Data Access
Step 4: Testing the WCF Data Service
Using Custom Data Access Classes
Remote Data Access with Web Services
Understanding the Concepts
Setting up a Data Access Web Service
Step 1: Creating a new Data Access Web Service
Step 2: Setting up your Project to Use the Data Web Service
Step 3: Specifying Local or Web Service Data Access
Step 4: Testing the Data Access Web Service
Using Custom Data Access Classes
Application Security
Overview of Security in .NET
The Basics: Authentication and Authorization
Authentication in ASP.NET Applications
Securing Web Services
Overview of Security in MM .NET
Determining a User's Access Level
Security Tables
Security Business Objects
Enabling User Security in WPF Applications
Step 1. Adding Security Tables to an Application Database
Step 2. Specifying the Security Database
Step 3. Creating Security Business Objects
Step 4. Specifying Default Security Settings
Step 5. Displaying a Login Window
Step 6. Displaying a Users Window
Step 7. Displaying a Roles Window
Step 8. Displaying a Security Setup Window
Step 9: Assigning Control ID GUIDs to Secure Controls
Enabling User Security in a Windows Forms Application
Step 1: Adding Security Tables to an Application Database
Step 2: Specifying the Security Database
Step 3: Specifying Default Security Settings
Step 4: Setting up Security for Menu Items
Step 5: Displaying a Login Form
Step 6: Displaying a Users Form
Step 7: Displaying a Roles Form
Step 8: Displaying a Security Setup Form
Step 9: Assigning Control IDs to Secure Controls
Enabling User Security in a Web Forms Application
Step 1 - Adding Security Tables to an Application Database
Step 2 - Specifying the Security Database
Step 3 - Specifying Default Security Settings
Step 4 - Displaying a Login Form
Step 5 - Displaying the Web Administration Form
Step 6 - Displaying the User and Role Administration Form
Step 7 - Displaying the Security Setup Form
Step 8 - Securing the Admin Folder
Step 9 - Assigning Control IDs to Secure Controls
Enabling User Security in the Sample Applications
Securing Web Forms
Securing User Interface Controls
Securing Windows Forms Menus
Securing Windows Forms DataGrid Columns
End-User Security Setup for Windows Forms Controls
End-User Security Setup for Windows Forms Menus
End-User Security Setup for Web Forms Controls
Displaying Security Setup Icons
Determining if Application Security is Enabled
Integrating with Windows Security
Creating Multi-Lingual Applications
Localization Tables
Localization Business Objects
Enabling Localization in MM .NET Applications
Step 1: Adding Localization Tables to a Database
Step 2: Changing the Localization Tables Default Data
Step 3: Adding a Language Field to the User Table
Step 4: Setting Localization Configuration Settings
Localizing WPF Applications
WPF: Creating the Language Business Object Classes
WPF: Setting up the Languages Window
WPF: Adding Localization Menu Items
WPF: Adding New Languages
WPF: Localizing Applications
WPF: Showing Localized WPF Windows
Turning Off Localization for Specific Controls
Localizing Windows Forms Applications
Windows Forms: Add a MenuStrip Extender to the Form
Windows Forms: Adding Localization Menu Bars
Windows Forms: Adding New Languages
Windows Forms: Localizing Applications
Showing Localized Windows Forms
Localizing Web Forms Applications
Web Forms: Adding New Languages
Web Forms: Localizing Applications
Web Forms: Localizing Page Captions
Enabling Localization in the Sample Applications
Specifying the Current Language
Displaying Localized Message Boxes with mmMessageBox
Windows Presentation Foundation and mmMessageBox
Windows Forms and mmMessageBox
Setting Text Programmatically
Localizing Business Rules
Miscellaneous Classes
mmArrayFileExtensionComparer
mmFile
mmMod10 Class
mmString Class
mmType Class
Third Party Components
WPF Third Party Controls
Telerik Web Controls
Installing MM .NET Telerik Web Controls
VistaDB Data Access Class
Installing the MM .NET VistaDB Data Access Class
Using the MM .NET VistaDB Data Access Class
Recompiling Third Party Product Assemblies
Deploying MM .NET on a Production Machine
Appendix A: MM .NET Miscellaneous FAQs
Why can't I see the MM .NET Project and Item Templates?
How do I programmatically get the MM .NET install directory?
How can I determine if the application config file exits?
Appendix B: Miscellanous .NET FAQs
What are the minimum system requirements for .NET?
How big is the .NET Runtime?
How do I include .NET when distributing my applications?
How do I display the Visual Studio Start page?
How can I determine the currently running assembly?
How can I get the name of the application config file?
How do I display trace and debug information?
How does an assembly's 'Copy Local' default value get set?
Why do I get 'Could not copy files to the output directory'?
Why do I get errors when I open a component in design mode?
Why do I see formatting text when pasting XML into a file?
Can I create a multi-dimensional ArrayList?
How can I create overloaded methods that handle most types?
How can I create a default registry value for deployment?
Is it more efficient to use variables or constants?
How can VS automatically add assemblies to the GAC?
How can a Send To shortcut add an assembly to the GAC?
Why can't I read from app.config using Enterprise Services?
How do I get the current user's special Windows directories?
How do I convert a string to a GUID?
How can I get the current directory?
Why do I get TypeLoadException when moving to .NET 4?
Appendix H: MM .NET Templates
Understanding MM .NET Item Templates
Understanding MM .NET Project Templates