Let me briefly describe the design scheme for this CRM system.

Source: Internet
Author: User

Let me briefly describe the design scheme for this CRM system.

I. Selection of development Basics
Development basics include data access, monitoring and tracking, exception handling, logging, and common functions. Every system generally does not start from scratch and has an infrastructure, some may have fewer functions, but data access is required. I will list the alternative methods for your discussion.
1. Listening Hall SPL
Http://tintown.cnblogs.com/archive/2005/04/11/135582.html
Rating: it is easy to use and has no weak functions, which can effectively improve development efficiency. However, there is still a lack of automation in processing stored procedures, in addition, I feel a bit controversial that it does not return the idatareader interface is not a defect, of course, the author has his own considerations.
2. kanas. Net in Pisces
Http://www.cnblogs.com/Barton131420/articles/192277.html
Comments: I saw this in my post on csdn several years ago. It has comprehensive functions and I don't know whether it can be used. It is estimated that the learning cost will increase if it is adopted. The post address of csdn is as follows, which involves several discussions on Orm.
Http://search.csdn.net/Expert/topic/2519/2519108.xml? Temp =. 491192.
3... Net CMP framework written by Kevin Hoffman in ASP. NET advanced e-commerce Programming
Http://www.china-pub.com/computers/common/info.asp? Id = 14273
Http://support.apress.com/books.asp? Bid = 1861008031 & s = 0
Rating: can be effectively reduced Code The quantity, error handling, and detection and tracking are also integrated. It is a flexible framework that makes processing of stored procedures very convenient and uses the concept of hosted containers, so that the Business Layer Code does not care about the data access layer code.
4. WEO architecture and object builder code generation tools in ASP. NET Enterprise Application Advanced Programming
Http://www.china-pub.com/computers/common/info.asp? Id = 7385
Http://support.apress.com/books.asp? Bid = 1861005911 & s = 0
Rating: There is a supporting code generator with powerful functions. It can generate a lot of code and be updated after synchronization in the project, the automatically generated crud operations and stored procedure operations are well considered. By default, data access supports concurrent processing and multi-layer processing to facilitate remoting calls. Built-in performance counters.
5. Microsoft's El
Daab is familiar to everyone, but I have never used it. This set of Microsoft applications Program The block uses the policy mode, which is convenient to use and has little coupling. However, the development efficiency is not as high as that of the above frameworks.

Ii. Architecture Selection
To ensure the ultimate scalability of the software, we plan to use a multi-layer architecture for development. The Business Layer Code, presentation layer, and database layer can run on different machines respectively. The presentation layer can use Smart Clients, webforms, and mobile tools. The business layer is released in the form of remoting and Web Services, and the database uses Ms sqlserver.
Specifically, I think that the functions of reports, charts, and management are all implemented on a smart client, because it takes a lot of effort to implement these functions using browsers, I mean to deploy a guided applet, that is, application browser, for customers who use these features, and then the application browser obtains available features through a web service, and the location of the Assembly that executes these functions, download the Assembly Cache from a separate web server to the local to execute the client logic. In this way, the Web service can be changed when new features are released to these clients, and the new features are released, automatically downloaded, and executed through the Web service like smart clients. When these desktop programs are executed, they create remoting objects remotely and call the methods of these objects. The remoting object can reside in another independent application.
Then most functions are implemented through Asp.net. The Asp.net web server also calls the objects on the remoting server to run the business logic, and then generates a webform to interact with the customer.
A mobile application is also required. Each customer can view their own customers, as well as their mobile phones, addresses, and other information through their PDAs or other devices, so that they can communicate with each other using mobile tools, increase sales opportunities.
Basically, this is what I think about the architecture. Of course, all services can run on one machine, but it also provides scalability for future expansion.

Iii. authentication and authorization
Because the program itself supports multiple interfaces, I plan to use a Web Service for identity authentication. In this way, in the desktop program, Asp.net, mobile controls can call web services to authenticate identities and obtain tokens. tokens can also be serialized and transmitted between layers. XML Signature and XML encryption are required in this case, security measures such as verifying the Client IP address.

Iv. Management
Management tools are divided into two types: Business Management, such as modifying permissions, adding products, and adding customers. These management functions are best managed on the intranet using Windows authentication, or webform remote management requires enhanced security, such as HTTPS. Another kind of management is to track and manage the remoting server, such as stopping the Windows Service and viewing the number of Object Instantiation. These management actions Want To Be A desktop program to manage service processes. What singleg mode is used, like singleg mode? This allows you to remotely stop, start, and view remoting running packages and Windows Services. It is best to integrate it into the MMC of Microsoft.

5. Rational Use of code generators, third-party controls, modules, and tools
For example, nunit and Nant are the best things to take advantage of. Laziness is the virtue of programmers, saving us time and effort. Of course, it is to ensure security and quality. In terms of controls, try to use available controls instead of self-developed ones. Modules, such as identity verification, are all common. You can copy some code and test it before using it. Most code generators are not flexible enough. You can use my wawacodepro or some other code generators that support templates to reduce manual input of repetitive code.

Vi. Automatic Processing, asynchronous processing, and distributed transaction management
Because the multi-layer architecture is used, we have to consider network congestion, so we have to use some asynchronous processing methods and automated processing programs, for example, to serialize the data generated by the added customers into XML, then, it is stored in a directory, and then monitored through a Windows service to process XML data in the directory and put it into the database. Some retry queues are used to handle unexpected situations, if you join the retry queue more than two times, it will be placed in the Stop queue. This method is often used in order processing. If necessary, we can use this method to process some logic. If the architecture is complex at that time, some distributed transaction management needs to be used to ensure the integrity of business data. This should be taken into consideration first.

VII. Automatic deployment and code access security
This is a. NET feature. When using the Smart Client, you must consider this. You cannot use the Smart Client to increase deployment complexity and reduce the security level.

VIII. counters
These things should be integrated into management tools, which are generally used. net, mainly using performance (Resource) counters, consumption counters, frequency counters, these are built. the net remoting object needs to be added. The management tool can check the number of calls of a remoting method in one minute, the number of instances of a remtoing object, and the resources occupied by CLR operations.

9. Exception reporting, Event Logs, debugging tracking, and load balancing
If an exception occurs on the Smart Client, you must send the exception to the exception Administrator through web service or email, if an exception occurs on the server, you must use the Web service to report the exception to the integration. I think it is good for the Web service to report the exception, the Smart Client can add some online crash analysis functions. When reporting exceptions, it also needs to report additional information, such as the current Windows login user name, remaining disk controls, and process ID, it is easy for analysts to analyze the reasons for applause.

Using Event Logs is an out-of-date technique, and you also need to manually view error records. However, we can take a two-pronged approach, so that the log can help the system administrator.

In the development phase, debug is very useful. It helps developers analyze why a program error occurs. Trace is a problem that occurs after the program is officially run. You can enable tracing to view the output of variables, this is used to analyze the running status of the program.

Finally, load balancing, I want to support the loop method, because only a few lines of code are required. The single point of failure method does not need to be considered for the moment, because application server or hardware support is required.

10. Usability issues

In order to improve user experience, we should consider the color, layout, convenience, daily prompts, help, status bar prompts, habitual surveys, and user preferences for the user interface design.

This is basically the case. I will go back to my hometown tomorrow. My friends who participate in the project will first look at my solution and give me some comments.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.