There is no amazing place in the documentation user program user program. Usually, they just describe how users interact with the application. The key value of the user program is to record the idea of how everyone wants how the user wants to run and how the application should respond. By completing this process, you will fully understand the data points and functions required to process various users and systems interact. In other words, writing a perfect user program will help you determine the database, middleware, and user interface elements that complete the solution needs to be implemented. Note: Visual Studio .Net Enterprise Architect has a very nice function that allows you to use Microsoft Visio? Create a user program via UML (Unified Modeling Language) and then generate basic code of these scenarios. Here, I don't plan to discuss these details, but you can find a good article on this topic for this topic for the MSDN? Academic Alliance Site Generating .Net Code UML, the author is SREEDHAR KOGANTI. After the target statement on the previous section, the following is several example user solutions for the DotNetkb project. Search Knowledge Base Anonymous User You can enter one or more keywords and perform a search, and the search will return a question and / or answer list containing these keywords. Users can lock keyword search only in searching, only searching or both search. The returned list will display the number of questions and its reply and the number of times accessible by other users. Click the link to return a reply (plain text) list in reverse order in advance. Enter new issues into the knowledge base Anonymous users can browse the new issues to enter the database for license experts to review and reply. The user can enter the title and content of the problem, and you can choose to record the problem under a topic in a series of topics. Users can also enter their names and related URLs (emails, web addresses, etc.). The input will be verified to ensure that the required data is included and ensures that all input data will not be subject to script attacks. Once the data is verified and saved to the database, the user will see a response screen, thank the user's support and connect the user directly to the home page. In addition, users can also choose to "remember" their name and URL use it after you have access to this site. You have already understood its working principle, right? Each program tries to refine the important aspect of the user interaction. For example, the two scenarios listed above indicate that the user is "anonymous" (anonymous), which means that such users do not need to log in or otherwise authorized. The second example also identifies several input values, verification steps, and optional operations. Of course, this is just two examples; the complete system requires more options. In addition, special attention is that "user" is not only a person, or it can be other applications that you need to communicate with it, or even other parts of your application. For example, a scenario description home page lists the most recently added to the knowledge base for anyone to view. The "user" in this example will be the home page itself. There are also some solution description experts to find and respond to new issues and how administrators update the topic list and manage the other parts of the system. I have identified more than 20 programs for discussing this simple application. You can find current lists (all other information related to this item) in DotNetkb. EXAMPLES So we have a goal statement and some user programs. Now, it's time to learn some technology. We need to define an application architecture, which can help us actually implement a "fresh and effective code". Defining the application architecture has basic purpose and to the list of users developed by the solution, you need to start planning the entire architecture.