search
HomeBackend DevelopmentC#.Net TutorialThoughts and exploration on using .NET for efficient Internet agile development

I don’t know since when, starting a business has become very cheap. Everything we talk about is the Internet, and it is easy to raise tens of millions of dollars. This gust of wind seems to have also hit programmers. There are a large number of developers who do not study data structures well and do not have a solid grasp of database principles. They publish several projects on github, use nodejs to create some services, and then use H5 to write APPs. , I think I have entered the ranks of senior programmers and can strategize Internet projects. Does learning new technologies and new concepts mean rapid growth? Obviously it is not entirely true. In this impetuous atmosphere, various shoddy Internet websites and APPs One after another, many seemingly beautiful APPs do not even have measures to deal with the security of simple http interfaces. Many beautiful responsive websites have directory structures stacked randomly. This is really an evil trend. I think programmers should still keep their feet on the ground. To be practical, learn more theories, write more codes, and practice repeatedly.

Then another question arises. Are new technologies and new concepts useless? Obviously not. New technologies and new concepts are what countless technical experts have repeatedly repeated in long-term practice. The fruits of victory of the construction, and as a .NET veteran, I am deeply gratified to see Microsoft embracing open source and embracing the changes and progress brought by the community over the years. So today, I want to share with you about me and my experience over the years. The company summarizes some experiences and technologies in using .NET for Web development and even Internet application development.

Let’s first look at a typical case that was recently launched, http://www.php.cn/, which uses tools such as HTML5, Bootstrap, EF6 For MySql, and Alibaba Cloud RDS. , Alibaba Cloud CDN and other new technologies and concepts, however, they have not departed from the basis of using .NET for development and the .NET ecological environment (IIS, Windows Server) for deployment. However, the entire development process has completely got rid of WebForm or even MVC, we have implemented a new .NET development model, which has greatly improved development efficiency and team collaboration, and greatly shortened development time. In this case, the front-end and back-end management of the entire website, from conception to design , development, debugging and deployment, one person can complete it in 3 days. The following is a detailed description of the development model. We will also listen to everyone’s opinions and continue to improve and improve.

Regarding the evaluation of ASP.NET WebForm, I think the following is objective: The innovation of ASP.NET WebForm drag and event-driven Web development model has facilitated the learning of a large number of .NET beginners. and understanding, but in the end it seriously hindered the popularization and commercial use of .NET. Moreover, for a long time, the excellent language features of .NET were not taken seriously. Instead, it has been regarded as low efficiency, difficult to expand, and unsuitable. As a business development hat, ASP.NET WebForm has an unshirkable responsibility in this.

Thinking back to 2006 and 2007, I was still marveling at the power and convenience of UpdatePanel. Looking back now, this development model has undoubtedly obscured developers’ understanding of the nature of HTTP and the Web. This layer of fog is a setback in the long run. Later, in the ASP.NET MVC era, the bad habits of Microsoft's high-level programmers have not improved. Although MVC is open source, it is still full of all kinds of self-righteous attempts to provide developers with advance information. Junior developers may find these well-thought-out features, bindings, shortcuts, etc. very convenient, but I think any technical manager who has been engaged in commercial project architecture and development will have a deep feeling that when they really need stable and solid In the project, these little tricks are not only useless, but also difficult to expand, and more likely to lead to bugs and loopholes that are difficult to control.

Fortunately, under the leadership of Nadella, and under the guidance of Bill Gates returning as technical advisor, .NET has continued to correct its direction, not only making great strides forward in language, but also in ecological construction. increasingly visible. I have been doubting whether the .NET agile development model created by the company is a manifestation of advancement. Until the emergence of vNext (MVC6.0), it suddenly dawned on me that different paths lead to the same goal, and Microsoft has finally taken the right path.

Before talking about the development model, I would like to talk about it first:

 1. Some new trends and characteristics of current Internet projects or traditional Web projects

 1. No longer use WebService, but heavily use HTTP as a method of data communication

 2. The data carrier no longer uses XML, but instead uses JSON

 3. Web front-end Will use third-party HTML5 frameworks such as Bootstrap, JQueryUI, EasyUI

 4. If there are APP needs, or even APP-first needs, the APP needs to connect to various third-party plug-ins

 5. In order to pursue APP Quick launch, sometimes using HTML5 APP development model, such as PhoneGap, AppCan, HBuilder, etc.

6. If there is a need for WeChat, it is required to connect the WeChat public account and carry out mobile Web development in the WeChat browser

7. Short development cycle and frequent iterations

8. The amount of data is growing rapidly, and there are more demands for report display and data analysis

9. Project team personnel needs are determined by Web Development engineers are subdivided into HTML5 front-end engineers, JAVA (.NET) engineers, database engineers, etc.

 10. Unit tests are decreasing, functional tests are increasing, and Internet tools (worktile, etc.) are even used to replace professional testing tools

Based on the above situation, we consider that if we still use .NET for system development, So in an agile project with users

 2. Some traditional .NET Web development models and methods should be abandoned

 1. ASP.NET WebForm and MVC models are no longer suitable. They both suffer from serious front-end and back-end coupling, complicating simple processes, and the front-end can never be separated from the .NET architecture.

 2. The SQL Server database is no longer suitable. Although the features of SQL Server 2014 are exciting, as the use of public clouds becomes more and more common, at the same time, compared with other databases, the size, price, availability In terms of scalability and even performance, SQL Server is at a disadvantage.

 3. The traditional three-tier architecture is no longer suitable. Many Internet projects are required to support multiple service nodes from the beginning of their design, and use different databases for different application scenarios. In addition, the three-tier architecture uses reflection extensively to increase code at the expense of performance, and is no longer suitable for agile development.

 4. The IT architecture of Server 2003 should be abandoned. Whether it is the HTTP request processing model of IIS6.0 that lags behind IIS7, or the stability and expansion of Server 2003 that lags behind Server 2008 and 2012, it should not be considered again. .NET deployment based on Server 2003 and IIS6.

Although some things have been abandoned, Microsoft is Microsoft after all:

3. Some .NET features should be strengthened

1. In-depth use Visual Studio 2015 development tool, VS2015 is a world-class development tool. Needless to say, it is even more proficient in front-end coding (CSS, JS, HTML). With custom settings and third-party plug-ins suitable for engineers, it will be even more powerful.

 2. The use of TFS source code management, whether installing the TFS Express version internally or applying for free space on tfs.visualstudio.com, can facilitate team collaboration. From our practice, do not be The Git model goes to your head. In fact, the TFS management model is the most suitable for .NET development

3. .NET high-level language features should be used more intensively. On the basis of understanding, if you can use Linq and Lamda proficiently High-quality language features and methods unique to .NET such as expressions, reflection, and task parallel programming will greatly improve development efficiency and shorten development time.

4. The advanced functions and dynamic management of IIS should be strengthened. After IIS7, the IIS server is synonymous with high-performance Web middleware. With the addition of the Core mode of Server 2008 and 2012, the dynamic management and dynamic management of IIS should be strengthened. Configuration can greatly improve Web processing efficiency.

5. The use of Server 2012 R2 operating system should be strengthened. Although cross-platform is the direction of .NET and is also practiced well on mono, today when PC servers and cloud servers are getting cheaper and cheaper, it is still Use the latest server operating system Windows.

 With the above understanding, after summary, our current .NET development model can be simply summarized as follows:

 1. High-level solution of front-end and back-end Coupling

The first thing to do is to completely abandon the ASP.NET WebForm and MVC models. The front and back ends are highly decoupled. All logic processing on the front end is processed using JS, including Dom element layout and drawing and data. requests, while the backend is pure business logic processing, including logic processing and data processing. At present, our project uses the Routing feature in ASP.NET and still hosts the ASP.NET model and IIS. In theory and in the near future, it will be replaced by Core IIS or Nginx under Linux to host pure HTML5 and HTMl5 cache. It will also be very easy.

 2. The front-end uses pure HTML5

The front-end abandons traditional HTML and uses HTML5 technology as much as possible. The sacrifices made include abandoning browsers below IE11, but In today's Internet thinking, such an idea is not a bad idea. When HTML5 technology is fully used on the front end, various processing of files, graphics, images, audio and video, geographical location, etc. will become very simple, flat, and data-based.

 3. The front-end makes full use of mature frameworks

After using the new development model, an obvious change is that the company’s artists no longer or rarely perform front-end cutting pictures, and the demand for technical artists (who can develop CSS and JS, and understand design) is increasing day by day. The root cause of this change is the emergence of advanced and excellent front-end frameworks. We are currently using JQuery , Zepto, JQueryUI, JQueryMobile, Bootstrap, Amaze UI, inoic, Framework7, SUI, MUI, etc., as well as third-party plug-ins accompanying these excellent frameworks. Objectively speaking, through the use of excellent frameworks, not only does the system risk of the front end not increase, but due to the open source, clear architecture, stability and other characteristics of the framework, a more stable and scalable front end is achieved. To give a simple example, Bootstrap has played an important role in solving the fully compatible layout and responsive layout issues that trouble many web engineers.

 4. Object-oriented front-end development

The front-end development is simply encapsulated through the object-oriented features of JS. The operation of Dom elements and the processing of business logic data requests are consistent with the back-end data type, entity structure and processing logic, which not only brings the front-end and the back-end closer The understanding of business needs among developers also greatly lowers the threshold for technical training and improves the efficiency of teamwork.

 5. Use CDN services

CDN services were exclusive to large enterprises and companies a few years ago. Now they have become completely popular and civilian, and the Web front-end is becoming more and more popular. It is an indisputable fact that the data is getting heavier and heavier, but the real business logic is often only tens of K or even several K. A page of several hundred K, 90% of which is third-party frameworks such as JQuery, therefore, reasonable use of CDN acceleration will not only improve user It directly improves the load capacity of web services based on HTTP architecture by more than 5-10 times.

 6. HTTP service-based business logic

This sentence may not be an appropriate description, but it is also the most important link in our new .NET development model. , after studying advanced Internet architectures such as Alibaba Open Platform, we finally formed a structured but loose business logic processing model, that is, each business logic behavior has a unique routing name, and the business logic is only responsible for the routing name. The routing name is responsible for upper-layer requirements such as flow direction, performance, permissions, and security. The advantage of this is that it can make full use of developers with about 3-5 years of experience (which is also the main development force of most companies), allowing them to focus on writing business logic, while things other than business logic need to be considered in the architecture. The level is solved by other controllers, and a large .NET project can also be flexibly split into sub-modules in different ways. For the implementation of HTTP services, we have tried ASP.NET ASHX processor, Windows Service HOST WCF service, and ASP.NET Web API. The current more stable version is Web API. Of course, in response to the demand for HTTP service, Wen API is also obvious. Seriously, we will continue to improve in the future. In short, this change process has improved development efficiency and testing efficiency by at least 3 times in practice. In a later chapter, this will be explained in detail.

 7. Distributed and hot-loading HTTP service construction

Internet applications require agile development and repeated iterations. Different requests under the same logical architecture will use different Servers and databases are commonplace. Therefore, in the early stage of project design, the construction of distributed HTTP services is crucial, and business updates require hot loading. In the .NET system, it is the dynamic loading of DLL managed code. Unfortunately, since the company's existing projects do not have large-scale distributed scenarios, a more stable DLL dynamic loading architecture has not yet been developed. This will be discussed in detail in the next chapter.

 8. Use Alibaba Cloud to solve big data problems

I think any IT architect who has used Alibaba Cloud and other cloud services can deeply feel that By the way, Alibaba Cloud is already more than one position ahead of other clouds. In fact, especially Alibaba Cloud's database-related functions, such as RDS, DRDS, KVStore, etc., have actually solved many complex and difficult points in traditional requirements in practice. The specific details will be discussed in detail later, but sincerely speaking In a word, hurry up and use Alibaba Cloud. At least at this stage, Alibaba Cloud is not kidnapping you, but helping you.

I wrote a lot today. In general, I want to tell you that the spring of .NET has come. .NET can not only carry out Internet-based agile development, but also handle large-scale projects, large-scale data and large-scale logic. This I have already tasted the benefits in practice. As a programmer who has been writing Pascal data structures for more than fifteen years now, I am also very interested in various new technologies. I have dabbled in them and even tried them. I am not afraid of being confused by others. I can even boldly say that other languages, from a comprehensive perspective (language, development environment, development efficiency, technical community, team collaboration, application capabilities), have lagged far behind .NET in the field of application-level development. There are many, but .NET programmers themselves have not noticed it yet, so from this point of view, everyone needs to work together and continue to study and explore.

The above is the thinking and exploration of using .NET for efficient Internet agile development. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何在任务栏上显示互联网速度[简单步骤]如何在任务栏上显示互联网速度[简单步骤]Aug 01, 2023 pm 05:22 PM

互联网速度是决定在线体验结果的重要参数。无论是文件下载或上传,还是只是浏览网页,我们都需要一个体面的互联网连接。这就是为什么用户寻找在任务栏上显示互联网速度的方法。将网络速度显示在任务栏中允许用户快速监控事物,无论手头的任务是什么。任务栏始终可见,除非您处于全屏模式。但是Windows不提供在任务栏中显示互联网速度的本机选项。这就是为什么您需要第三方工具的原因。继续阅读以了解有关最佳选择的所有信息!如何在Windows命令行中运行速度测试?按+打开“运行”,键入电源外壳,然后按++。Window

修复问题:在 Windows 11 安全模式下无法访问互联网的网络连接问题修复问题:在 Windows 11 安全模式下无法访问互联网的网络连接问题Sep 23, 2023 pm 01:13 PM

在具有网络连接的安全模式下,Windows11计算机上没有互联网连接可能会令人沮丧,尤其是在诊断和排除系统问题时。在本指南中,我们将讨论问题的潜在原因,并列出有效的解决方案,以确保您在安全模式下可以访问互联网。为什么在带网络连接的安全模式下没有互联网?网络适配器不兼容或未正确加载。第三方防火墙、安全软件或防病毒软件可能会干扰安全模式下的网络连接。网络服务未运行。恶意软件感染如果互联网无法在Windows11的安全模式下使用网络,我该怎么办?在执行高级故障排除步骤之前,应考虑执行以下检查:请确保使

在因特网上的每一台主机都有唯一的地址标识称为什么在因特网上的每一台主机都有唯一的地址标识称为什么Aug 22, 2022 pm 03:24 PM

每一台主机都有唯一的地址标识称为“IP地址”。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个唯一的逻辑地址,以此来屏蔽物理地址的差异。由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。

C#的就业前景如何C#的就业前景如何Oct 19, 2023 am 11:02 AM

无论您是初学者还是有经验的专业人士,掌握C#将为您的职业发展铺平道路。

分享几个.NET开源的AI和LLM相关项目框架分享几个.NET开源的AI和LLM相关项目框架May 06, 2024 pm 04:43 PM

当今人工智能(AI)技术的发展如火如荼,它们在各个领域都展现出了巨大的潜力和影响力。今天大姚给大家分享4个.NET开源的AI模型LLM相关的项目框架,希望能为大家提供一些参考。https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一种开源的软件开发工具包(SDK),旨在将大型语言模型(LLM)如OpenAI、Azure

Roblox不起作用:如何修复它Roblox不起作用:如何修复它Jul 28, 2023 pm 06:23 PM

Roblox不起作用:原因是什么?凭借其广泛的游戏选择和活跃的社区,著名的在线游戏平台Roblox赢得了全球数百万粉丝。但是,Roblox可能偶尔会遇到技术问题,就像任何复杂的数字平台一样。下面,我们将研究一些可能修复您的Roblox无法正常工作错误的修复程序。让我们切入正题,从第一件事开始!检查Roblox服务器状态由于Roblox是一款在线游戏,如果服务中断,您可能会遇到启动它时遇到的困难。使Roblox的当前服务器状态和操作正常运行。如果服务器脱机进行维护,请等待服务器端的问题得到解决。有

微软新出热乎论文:Transformer扩展到10亿token微软新出热乎论文:Transformer扩展到10亿tokenJul 22, 2023 pm 03:34 PM

当大家不断升级迭代自家大模型的时候,LLM(大语言模型)对上下文窗口的处理能力,也成为一个重要评估指标。比如明星大模型GPT-4支持32ktoken,相当于50页的文字;OpenAI前成员创立的Anthropic更是将Claude处理token能力提升到100k,约75000个单词,大概相当于一键总结《哈利波特》第一部。在微软最新的一项研究中,他们这次直接将Transformer扩展到10亿token。这为建模非常长的序列开辟了新的可能性,例如将整个语料库甚至整个互联网视为一个序列。作为比较,普

互联网思维的核心是什么互联网思维的核心是什么Sep 14, 2022 pm 05:31 PM

互联网思维的核心是“用户思维”。人是互联网时代的核心,用户思维自然也成为互联网思维的核心,而其他思维,都是围绕这个思维展开的;用户思维是互联网思维的基石,没有用户思维就不会有其他的互联网思维。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.