. Net agile development and common tools

Source: Internet
Author: User
Tags sql server express sharpdevelop
To do this, you must first sharpen your tools. tools are the biggest difference between humans and animals. However, most commercial tools are expensive and have been in the WTO for several years. using pirated tools will bring great uncertainty to enterprises, and more pirated tools will be used, it often loses the pride of a programmer and a culture. After several months of exploration, in line with the following principles, I have chosen some tools suitable for the development of small and medium-sized enterprises as my toolbox:

(1) suitable for small and medium enterprises and small and medium projects (<5 million) with moderate functionality

(2) easy to use and necessary documents

(3) free or low price

Based on these tools, an agile development process is gradually formed.

I. Introduction to tools

The following is a brief introduction to these tools. Some of these tools have some experience, some are in use, and some are just selected. In addition to tools directly used for. net development, they also include development-related software design and project management tools. My major development experience is Web development, desktop development, and prototype development. I am not familiar with Mobile development, so I don't recommend this.

1. Operating Platform

The common ones are. net framework 1.1, 2.0, and mono, which are free of charge. In terms of functions, performance, and installation, the. net framework is superior to mono. Mono is open-source, and the. net framework class library can be decompiled. From a transparent perspective, both are similar. If you want to develop on a non-windows platform, or you want to study the runtime implementation, you can study mono. Otherwise, use. net framework.

2. Server

I have used IIS5.0, IIS6.0, Apache, and a mod, and mono xsp. This is not a good comparison. I naturally prefer IIS6.0. However, although IIS is free of charge, at least the windows server version is required to run well, and at least a few thousand yuan is required. IIS on XP is quite uncomfortable. It is said that the full version of IIS6.0 can also be installed, but it still has to be tossed. If it is used for development, it is quite useful to add a. net mod or mono xsp with Apache. The disadvantage of Apache is that the support for the new version of. net framework lags behind that of IIS6.0.

3, IDE

Tnnd. The selection space is small. The first choice is naturally VS 2003 or 2005. If VS 2005 is a quick version for free in the future, I will select this option, or choose VS 2005 Professional edition, which is not very expensive. No unit tests are available in the speed-up and professional editions. Here, BS is 10000 times for Microsoft. Resolutely resist the VSTS version!

Other options include SharpDevelop and mono develop. For beginners who do not develop Web programs, SharpDevelop is actually quite good. Integrated Nant, NDoc, and NUnit are very useful tools. SharpDevelop does not have the breakpoint debugging function, but NUnit can be used to make up for this deficiency. If you have a deep understanding of the class library, SharpDevelop is used, and the productivity is actually quite high-even for Web development. One of the disadvantages of SharpDevelop is that the refactoring function is not available for the moment and will be available in the next version. The second disadvantage is that the memory usage is large, and the performance is much lower than VS. large projects and large programs may be uncomfortable. I tested and used SharpDevelop to open a C # source file larger than 3 m (! Whether it is csgl or tao, forget it). It will take tens of seconds to open it with VS 2003.

Btw, I personally think it is very efficient to write small and medium-sized (<3000 rows) C # programs using notepad. At this time, I will pay more attention to the class design, the train of thought will be clearer. Of course, the speed will be slower.

4. Class Libraries and documents

A class library is an asset of the. net platform. At present, there are few mature class libraries in. net. This is the biggest disadvantage compared with java. Of course, the most common class libraries are. net framework, and other class libraries can be searched online. The key asset elements of the class library are dll and documentation. First-hand materials are source code or decompiled code, and then various types of original documents, usually in chm format. If you are familiar with the source code, the efficiency will be very high. We recommend that you use a decompilation tool to view the code, instead of directly viewing the source file. One reason is that the decompilation tool provides many useful additional functions, the second is that the decompiled code is more authentic than the source file. The common decompilation tool is Reflector.

. Net documentation is better than javadoc's pp. Therefore, when writing code, you should note that it is nice to write more // comments and then use Ndoc to automatically generate chm documents.

Many open-source projects provide source code and a small amount of documents, but their source code contains a large number of // annotations, and NDoc can automatically generate chm documents. Even if there is no // annotation, It is very valuable to use NDoc to generate the document.

5. Database

Ms SQL Server Express version should be free, but the standard and Enterprise version of the price is not low, or use open source good. If you have functional requirements, use PostgreSql. If you have no requirements, use MySql. I usually use PostgreSql for GIS projects and MySql for general projects. EMS MySQL Manager Lite and EMS PostgreSql Manager Lite are used for database management. They are free of charge and easy to use. The interface is luxurious and the performance is good.

6. Design and Modeling

The selected UML modeling tool is JUDE, which is 2 MB in size and is free but not open-source. It has many functions and is easy to use than ArgoUML. I don't know how many times more powerful than the UML function of Visio, and it is better than Together. The disadvantage is that it is only a modeling tool that is not synchronized with the code. Another disadvantage is that documents cannot be generated automatically. But I like such a tool, which is powerful, small, flexible, and convenient. I think it is enough to use it during design. The document of the specific class is generated using NDoc. JUDE is based on java and must be installed on the java Virtual Machine. It seems that it does not work well across platforms. I have never succeeded in running it in linux.

Open-source or free database modeling tools have tried a lot, and they don't feel mature and easy to use. Finally, I chose a commercial software-CASE Studio 2, which costs-USD. The function is very practical, many databases are supported, and the generated documents are pp.

7. Agile development tools

NUnit-unit test.

NAnt-build tool. As mentioned above.

NDoc-document generation. As mentioned above.

CruiseControl. Net-continuous integration, not used yet.

If NUnit, NAnt, and NDoc are used well, they will feel great. Writing programs will feel like artists.

8. team collaboration tools

Version Management: CVS and SVN. SVN is recommended. TortoiseSVN is recommended for the client-very cute little turtle.

Bug Management: I am using BugTracker. NET, which is simple and written in ASP. Net. It is enough for small projects.

Demand management, project management, calendar, fund calculation and management: Still using Word, Outlook, Excel. For free, you can use the yongzhong office trial version, which is equally useful.

Ii. Advantages

1. High cost effectiveness. For a team of 10 members, check the software cost:

Running platform:. net framework 1.1 or 2.0, free of charge

Server: 1 set of windows 2003 server, thousands of yuan

IDE: 1 VS Standard Edition or Professional Edition, thousands of yuan, others use express Edition

Class Libraries and documents: free of charge

Database: free of charge. Use commercial databases to save money for customers.

Design and Modeling: one set of CASE Studio 2 is enough, thousands of RMB

Agile development tools: free

Team collaboration tool: one MS Office (with Visio) is enough. It costs several thousand yuan and others use yongzhong.


Less than 20000 yuan.

2. Easy to use

Anyway, I feel like it is almost or slightly worse than commercial software.

3. Easy to expand

Most of the above tools are open-source, and many tools are more collaborative, so that they can be used to customize their own production lines. In addition to expensive production lines, such as RUP, MSF, and related tools, the customized production lines are not necessarily suitable for use by others. At this time, the advantages of the above tools come out.

3. Build a software production line

Process 1: Project Management Process

Use Office to manage requirements. Use SVN for source code management and document management, and BugTracker. NET for Bug Management and transaction management. Automate maintenance of programs, files, and documents as much as possible.

Process 2: Development Management Process

The fewer files maintained during development, the better. I think we should try to write less documents with UML diagrams and write only the most critical part. Class documentation should be directly generated by NDoc. UML tools are rarely used. The code writing process is the class design process. Compare the two processes: (1) use case analysis-> Design with UML tools-> Generate or write code by UML tools-> refactor the code and automatically update the UML documentation. (2) Case Analysis-> writing code-> refactoring code. The first process has only one advantage, that is, a person's understanding of graphics is more intuitive than the code, but it is too cumbersome to work. The second process involves a lot of steps, and you can reverse engineer the class diagram based on the code at any time,

I still like code-based processes. Code writing can also be divided into two processes. The first process is to write a code framework. All methods are UNDO, write attributes, interfaces, and write // documents. This should be the design process. In this process, only source files are generated and maintained. The class diagram can be reverse engineering through visio, and the class design document can be automatically generated through NDoc. It also provides a test basis for writing test code based on this test basis. It is best to write only one framework for the test code, but write the // annotation and generate the test document. This should be the design process. The second process is the implementation process. The Class documentation and code framework are submitted to relevant persons for implementation, testing, and restructuring ...... everything goes on automatically ...... there is only one thing in the whole process, that is, the source code. The deliverables during the development process should be automatically generated from the source code.

Use CASE Studio 2 to maintain database scripts and documents. Finally, it was easy to submit, launch, and accept. All the things biaji needed were launched. It is enough to file copyright directly from the source code and chm documentation.

The core of development is the source code. All documents should be reflected in the structure, relationship, and comments of the source code. Nant is the core tool that controls the entire development process. It would be nice to reflect the case analysis process in the source code!

Finally, recommended books: Open source. Net Development, Programming with NAnt, NUnit, NDoc and More

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.