This article is reproduced, hereby noted!
Before learning to program, it is necessary to have a general and comprehensive understanding of computer science through the introduction of computer science course. Before learning such languages as object-oriented c++/java/c#, it is advisable to have some process-oriented programming experience, such as C language. In addition, in Figure 1 also missing a more important technology-database technology, for the hope this summer and junior students with the 2004-Class internship, if you seriously read my published internship manual, you will find the knowledge of the database is very important, We can first read the database materials published on my website.
(The following article is reproduced in "CSDN Development Master")
Programmer's. NET Era
Technology is always evolving, Microsoft. NET platform has undergone three years of experience, has been accepted by the vast number of developers. With Visual Studio.NET, we can quickly and efficiently develop applications for Windows Form and Web Form. NET is a whole new concept. NET represents a collection, an environment, a programming basic structure, as a platform to support the next generation of the Internet, because we believe that the world will not regress to centralized computing in the host mode. As XML Web service Matures, software can be used as a service to support new devices, such as PCs, mobile phones, PDAs, car systems and set-top boxes, to work together on devices that bring new experiences to users, and Microsoft is interpreting a new internet revolution. As. NET developers, we should be confident about the future.
Programmers are the drivers of this internet revolution, and we are all constantly learning technology and enriching ourselves to adapt to future changes (I don't want to do that here.) NET and Java, because these two areas of technology have their own strengths, and the scope of coverage is quite wide, simple language comparison is meaningless. Microsoft use. NET for the next ten years to prepare, so the urgent need to master. NET development tools to build our applications. In fact. NET Getting started is also relatively easy, generally speaking, basic mastery. NET programming three months is enough, six months later, you will become a qualified. NET programmer. If you want to be. NET domain, you have to accumulate very rich experience in this field.
. NET is a more popular development tool in the decade. I use. NET development has been more than two years, now my learning experience and methods to share with you. To learn systematically. NET requires a gradual process, and we are divided into entry-level and lift-upgrades. If you are an entry-level person, each of the following learning stages is important. If you're right. NET comparison, you can choose the knowledge you need to learn.
Introductory article
1. Learning about object-oriented (OOP) programming ideas
Many high-level languages are object-oriented programming. NET is no exception. If you touch object-oriented programming for the first time, you must understand concepts such as classes, objects, fields, properties, methods and events, encapsulation, inheritance and polymorphism, overloading, rewriting, and so on. It should be explained that Microsoft's product Help documentation is very well done, and the query is quite convenient, the novice must not look. After you install Visual studio.net2003 (or Visual Studio.NET 2002), you have a visual Studio combined Help collection in the Programs group. Beginners get a lot of knowledge from help documents.
2. Choose a language and learn grammar and related basics
Choose the language standard: according to your own needs and personal technical background. Under the. NET Platform, C #, VB. NET is called the framework of the class library, the efficiency is basically the same, C # syntax rigorous, suitable for the previous C + +, VC programmers. Vb. NET case-insensitive, arbitrary, automatic indentation, suitable for the previous VB programmers, Microsoft has repeatedly advocated the use of vb.net for rapid development. Vc. NET is closer to the bottom, and can be programmed in both managed and unmanaged ways.
After choosing the language to use, we need to understand the grammar rules of the language, including statements, types, expressions, operators, functions, and so on, I suggest that the beginning of writing a program to develop a good programming style, the specification of the name of the variable, in the code to write good comments. This is very meaningful for future software development career.
3. Understanding. NET ideas and familiarity with Framework class libraries (Framework classes Library)
First, we want to understand the concepts of the common language runtime, assemblies, and common type systems. On this basis, learn. NET Framework class Library. The. NET Framework class library is a reusable collection of types that is tightly integrated with the common language runtime. The. NET Framework class library encapsulates most of the Win32 APIs, many of which were previously required to invoke the API, and are very easy to implement under. Net. In many cases it is enough to just a word. Therefore, we should try to avoid invoking the Win32 API when designing the program. Learn the shortcut to the. NET Framework Class Library: Mastering commonly used class libraries, other infrequently used class libraries only need to understand, when used to consult.
4. Writing programs with Visual Studio.NET
Write programs under the. NET platform we generally use Microsoft's development tools, Visual Studio.NET, because a good IDE can greatly improve the development efficiency. I suggest that beginners start with Windows Forms or Web Form (that is, ASP. Sun Yu Note), and then turn to the writing class library or the controls and components when there is a certain foundation. Microsoft's Help documentation comes with many examples (there are lots of source code on my teaching site, Sun Yu Note), and we can do a walkthrough while watching help. While learning the code, be sure to understand and think. Writing more code and exercising from a project is the path of growth for a master programmer. Remember: Be sure to read more about the source code, and discuss technical issues with the Microsoft newsgroups on more forums (such as CSDN and Dev-club).
We must use a good Visual Studio.NET this integrated development environment, in addition to writing code, we also understand the principles of. NET deployment, learning to package, deploy and manage applications. Multi-person projects can consider using Visual SourceSafe for source code management, a series of development tools that use a lot of practice.
Recommended Books:
"C # Advanced Programming" (Second Edition) (Tsinghua University Press) (on my Teaching website, Sun Yu Note)
The Insider of Microsoft.NET Program Design Technology (Tsinghua University Press)
Visual VB. NET Technology Insider "(Tsinghua University Press)
Visual C #. NET Technology Insider "(Tsinghua University Press)
. NET Getting Started tutorials (including Windows Form and Web Form): Http://chs.gotdotnet.com/quickstart
5. It's best to master large database programming
Generally speaking, most software development involves a database. Most of the software's backend databases are used such as access, SQL SERVER, Oracle, and so on. Ado. NET provides access to relational data, XML, and application data. We must master the use of connection, command, DataReader and DataAdapter objects, and correctly use DataSet Datasets and DataView for data manipulation. Of course, there must be a database base, including the use of tables, views, stored procedures, and so on. Must be the background database and the front office of ADO to Master, in order to really proficient in database programming.
In the development of a project, it is recommended to use the data Access Application Block (Application Block) to simplify SQL queries. Microsoft MSDN website has downloads, we can use SqlHelper class for data access, it is very simple and easy to build our data access layer. Refer to the Microsoft MSDN Documentation:
Http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daab-rm.asp
Recommended Books:
The ADO. NET Technology Insider "(Tsinghua University Press)
The ADO. NET Advanced Programming (China Power Press)
"VB." NET and SQL Server 2000 Advanced Programming-creating efficient data layers (Tsinghua University Press)
6. Learning XML WEB Service
XML Web Services is creating a new era of distributed application development. XML Web Services is a manifestation of software as a service that enables data exchange and remote invocation of application logic by using XML message processing. XML enables data to move data between heterogeneous systems through firewalls. Although the public Web services are not very popular, in some enterprises, Web services has been involved in the development. It's easy to create a Web service with Visual Studio.NET, and it's fairly simple to invoke a Web service, just add a Web reference and call it. To learn this, you need to understand the Web Services Description Language (WSDL), the SOAP protocol, and so on.
Recommended Books:
"Building XML Web Service: Based on Microsoft.NET platform" (Tsinghua University Press)
"Building XML WEB Services for the Microsoft. NET Platform" (photocopy version)
. NET Technology Online resources:
China Software Network (China's largest technology community) http://www.csdn.net
Computer World Developer Club Http://www.dev-club.com
China Dot Net Club http://www.aspx.cn
Microsoft Official MSDN Authoritative site: http://msdn.microsoft.com
Microsoft Official ASP. NET site: http://www.asp.net
Microsoft official Windows Form site: http://www.windowsforms.net
Microsoft Official dot net site: http://www.gotdotnet.com
English site code project:http://www.codeproject.com
Promotion Chapter
1. Learn. NET Framework development platform underlying principles and architecture
. The core of the NET Framework is the common language runtime (Common Language runtime,clr). Typically, we use a high-level language (such as C # or vb.net) to write programs that produce a managed module (the intermediate Language IL Code) for the compilers of these high-level languages. A managed module is a standard Windows PE file that requires the CLR to execute. When executing the intermediate language code, the instant compiler (Just-in-time, or JIT) in the CLR translates it into CPU instructions. There are many details, including how to initialize the CLR, the Microsoft Component Runtime Execution engine MSCorEE.dll (Microsoft Component Object Runtime execution engine, in the System32 directory) how to work, and so on. If you want to be proficient. NET technology, you must be right. NET Framework principles, assemblies, metadata, value type/reference types, type design, exception handling, automatic garbage collection and other core technologies have a clear understanding.
Recommended Books:
《. NET Framework Program Design (revised edition) (Tsinghua University Press)
"Applied. NET Framework Programming" (photocopy) Jeffrey Richter
《. Microsoft. NET IL assembly language programming
". NET essence" (China Electric Power Press)
2. Proficiency in running the underlying tools to debug and solve various problems
Know. NET platform, we need to learn some tools and the use of the CLR Debugger (DbgCLR.exe). The importance of the C # command-line compiler (Csc.exe) and the vb.net compiler (Vbc.exe) does not have to be said.
Several of the more important tools provided by the. NET Framework SDK are the MSIL Assembler (Ilasm.exe), the MSIL Disassembler (Ildasm.exe), and the Assembly Linker (Al.exe). It is strongly recommended that you use the MSIL Disassembler (Ildasm.exe) in your development to enhance understanding of the CLR and the underlying. The MSIL Assembler (Ilasm.exe) generates a portable executable PE file from MSIL assembly language. The Disassembler (Ildasm.exe) can parse any. NET framework. exe or. dll assemblies and display the information in a readable format. The Assembly Linker (Al.exe) generates a file with an assembly manifest from one or more files: The NET Framework SDK also provides many other tools, such as the PEVerify tool (Peverify.exe), the Strong Name tool (Sn.exe), and so on, and we strive to use them in a command-line manner.
It is important to note that Visual Studio.NET is not able to do all the command-line work, and some tasks must be done by the command line. For example, to create a multi-file assembly, you must resort to Csc.exe's addmodule option. These tools will be used flexibly only on the basis of a deep understanding of the. NET Framework.
3. Design of large-scale software system architecture
The architecture design of software system needs to accumulate considerable experience, which requires us to grasp the overall structure of the software from the global concept. The first point is that we have to refer to the software Requirements specification. The requirement specification is the user and the development both sides to the development software function, the performance, the user interface and the operating environment and so on to make the detailed explanation, therefore our design software must use this as the basis. Next, we want to do the overall design of the software, that is, the outline design. Generally need to according to the software business requirements and Business Process Module Division, the overall structure of the planning program, input and output and interface design, operation design, data structure design and error processing design, for detailed design lay the foundation. In the detailed design, we need to point out how each module is implemented, including implementation algorithm, logic flow, data flow chart and so on. The future work, is the realization of the program. The test is in sync with the code, must be strictly to the good quality.
In use. NET when developing large systems, it is generally done in the form of a three-layer (or n-tier) structure. The application is logically divided into 3 basic tiers: Data access and storage, business logic layer, presentation layer. The advantages of the three-tier structure are: scalability, scalability, and flexibility. When doing Web applications, consider using the MVC (model-View-controller Model-view-controller) pattern to modularize the user interface functionality of the Web application.
By the way, large software sometimes needs to integrate multiple products to meet enterprise-class application needs. Microsoft offers a number of Server products, such as SQL Server, Exchange Server, Share Point server, BizTalk server, and so on. Remember: We must know more about Microsoft's product line, Microsoft A lot of technology are consistent with each other, combined to play a role! We can integrate software systems on the basis of Microsoft's server-level products, achieve data-sharing access, e-mail on end devices, and message collaboration. In short, through the Internet, let everyone work together, is the future development of software trends. If we take these directions, we will harness the future.
Recommended Books:
Enterprise Solution Model using Microsoft. NET, Microsoft Press
"Enterprise solution Patterns Using Microsoft. NET" MS Press
Online resources:
Software engineering expert Network http://www.51cmm.com
UML Software Engineering Organization http://www.uml.org.cn/,http://www.umlchina.com
4. Lead the team for software development
A good team to develop a successful product. Software development is mainly composed of project management team, software development team and software Test team. Project management personnel mainly control the project, coordinate the work of the developers and testers. The developer's work is mainly responsible for the implementation of the software. Testers are the quality assurance of software products. Other personnel, such as product planning, software technical support and documentation, logistics are indispensable.
Large-scale software is the crystallization of the collective wisdom of many people, requiring project leader to have strong management and technical background, as well as good communication skills. If you make the technology for a long time, accumulated a wealth of experience, the project leader and other management work, through continuous learning and promotion, it is very likely to grow into project Leader. If you are already project Leader, to be responsible for the success or failure of the software, you can decide the task allocation in the development according to the existing resources, reasonable employing, decide whether the function module is worth developing, the project schedule control and so on many problems. In short, the people who lead the team must be visionary and take the right approach to lead the team to success.
Recommended Books:
"Human Moon Myth" Tsinghua University Press
"People's Pieces" Tsinghua University Press
Technology Outlook
1. Seamless computing (Seamless Computing)
Currently, most applications are also limited to desktop systems. Over the past 20 years, software has defined the information age, but is constrained by hardware. Today, software determines the digital age. "Seamless Computing" is a software innovation framework designed to eliminate the boundaries that exist between different software systems, and the concept of seamless computing is to make full use of the hardware in a seamless manner. The fundamental innovation of software should be embodied in the fields of networked system, information-driven software and multimedia user interface. In the future, software will no longer be subject to hardware functionality. The software will help people to work together better, and gradually achieve seamless computing that provides the ideal working environment for people. Microsoft launches Windows Server 2003, Office System 2003, Visual Studio.NET, Web Service, and future releases of SQL Server "Yukon", windows Longhorn is the basis for seamless computing. Bill Gates, at the COMDEX 2003 meeting, pledged to provide a full range of frameworks and services for seamless computing. Seamless computing – It's really worth the wait!
2. Wireless communication
In the area of wireless communications, mobile development with. NET enables all device terminals to work together. Microsoft introduced the compact version of the. NET Development Framework (. NET Compact Framework) in 2003. Together with Smart Device Extensions (SDE) for Visual Studio. NET, it brings stronger development capabilities and a powerful programming platform to mobile devices such as PDAs, mobile phones, set-top boxes, and various running window CE. NET operating system embedded devices) in the development work. The future of the wireless communications market is even greater, Microsoft and the major manufacturers of cooperation, will be used. NET is more beneficial to people who are mobile developers.
Summarize:
. NET is an epoch-making concept, it can be said that in the next 10 years, more software developers will use. Net. As we can see, now the Vs.net function is already very powerful. and Microsoft's development tools will be more complete, each new version of the Vs.net than the previous version has a lot of promotion. There will be more programmers stepping in. NET Camp, Programmer's. NET era, it will greatly increase productivity. Imagine if every server in the world runs a web Service, provides a Web API, each API can do a powerful function, this is a very powerful environment Ah! We look forward to all of this. Now, what we have to do is: Master today's. NET to meet tomorrow's glory.
. NET Learning Strategy (i)