>  기사  >  백엔드 개발  >  인터넷 개발을 위한 .NET 사용에 대한 생각과 탐색

인터넷 개발을 위한 .NET 사용에 대한 생각과 탐색

Y2J
Y2J원래의
2017-04-17 14:38:411817검색

언제부터 창업이 아주 저렴해졌는지 모르겠어요. 우리가 얘기하는 모든 것이 인터넷이고 수천만 달러를 모으는 것도 쉽습니다. 이런 돌풍은 프로그래머들에게도 타격을 준 것 같습니다. 데이터 구조를 잘 연구하지 않고, 데이터베이스 원리를 제대로 이해하지 못한 개발자도 많습니다. 그들은 github에 여러 프로젝트를 게시하고, nodejs를 사용하여 일부 서비스를 만들고, 그런 다음 H5를 사용하여 APP를 작성하면 인터넷 프로젝트에 전략을 세울 수 있다고 생각합니다. 새로운 기술과 새로운 개념을 배우는 것이 급속한 성장을 의미합니까? 인터넷 웹사이트와 앱 겉으로 보기에는 아름다워 보이는 많은 앱들이 단순한 http인터페이스보안조차 감당할 수 없는 아름다운 반응형 웹사이트가 속속 등장하고 있습니다. > 디렉토리 구조가 무작위로 쌓여있는 것은 정말 나쁜 추세입니다. 프로그래머들은 더 많은 이론을 배우고, 더 많은 코드를 작성하고, 반복적으로 연습해야 한다고 생각합니다.

그러면 또 다른 질문이 생깁니다. 새로운 기술과 새로운 아이디어는 베테랑 .NET을 통해 반복적으로 재구성한 수많은 기술 전문가의 승리입니다. 드라이버님, 저는 Microsoft가 오픈 소스를 수용하고 수년에 걸쳐 커뮤니티가 가져온 변화와 발전을 수용하는 것을 보고 매우 기뻤습니다. 그래서 오늘은 저와 제 회사가 수년 동안 이를 어떻게 사용해왔는지 여러분과 공유하고 싶습니다. .NET 웹 개발 및 인터넷 애플리케이션 개발에 대한 기술 요약을 제공합니다.

HTML5, Bootstrap, EF6 MySql, Alibaba Cloud RDS, Alibaba Cloud CDN 및 기타 신기술 및 개념의 경우, 개발을 위한 .NET의 사용과 .NET의 사용과 분리되지 않습니다. 배포를 위한 환경(IIS, Windows Server)이 있지만 전체 개발 프로세스에서 WebForm이나 심지어 MVC도 완전히 제거되어 개발 효율성과 팀이 크게 향상되었습니다. 이를 통해 개발 시간도 대폭 단축되었으며, 웹사이트 전체의 프런트엔드, 백엔드 관리, 구상부터 디자인, 개발, 디버깅, 배포까지 모두 하나로 완료되었습니다. 3일 안에 사람. 다음은 개발 모델에 대한 자세한 설명입니다. 또한 여러분의 의견을 듣고 지속적으로 개선해 나가겠습니다.

ASP.NET

WebForm 평가에 관해서는 다음이 객관적이라고 생각합니다. ASP.NET WebForm 드래그 앤 드롭과 이벤트 드라이버 웹 개발 모델의 혁신은 수많은 .NET 초보자들의 학습과 이해를 용이하게 했지만, 궁극적으로 .NET의 대중화와 상업적 사용을 심각하게 저해했으며, 더욱이 오랫동안 .NET의 뛰어난 언어 기능이 주목을 받지 못했습니다. ASP.NET WebForm은 비효율적이고, 확장하기 어렵고, 상업적 개발에 적합하지 않다고 분류되었습니다. 이에 대한 책임은 회피할 수 없습니다. 2006년과 2007년을 돌이켜보면 여전히 Up

date

Panel의 강력함과 편리함에 놀랐습니다. 지금 돌이켜보면 이 개발 모델을 통해 개발자는 HTTP의 본질과 MVC에 대한 이해는 의심할 여지 없이 안개로 덮여 있으며 이는 장기적으로 장애가 됩니다. 나중에 ASP.NET MVC 시대에도 MVC는 오픈 소스이지만 Microsoft의 나쁜 습관은 개선되지 않았습니다. , 아직은 문제가 가득합니다. 주니어 개발자를 위해 미리 생각한 온갖 독선적인 기능, 바인딩, 단축키 등이 매우 편리하다고 생각할 수 있지만, 상업 프로젝트 아키텍처 및 개발에 참여했습니다. 기술 관리자는 안정성이 정말로 필요한 탄탄한 프로젝트에서 이러한 작은 트릭은 쓸모가 없을 뿐만 아니라 확장하기 어렵고 버그로 이어질 가능성이 높다는 것을 깊이 인식할 것입니다. 그리고 통제하기 어려운 허점. 개발 모델에 대해 이야기하기 전에 먼저 이야기하고 싶습니다.

 1. 현재 인터넷 프로젝트나 기존 웹 프로젝트의 새로운 트렌드와 특징

 1. WebService는 더 이상 사용되지 않지만, 데이터 통신 수단으로 HTTP가 널리 사용됩니다

2. 데이터 매체는 더 이상 XML을 사용하지 않고 대신 JSON

을 사용합니다. 3. 웹 프런트엔드는 다음과 같은 제3자를 사용합니다. Bootstrap, JQueryUI, EasyUI 등 HTML5 프레임워크

4. APP 요구사항이 있고, APP 우선순위 요구사항도 APP가 다양한 타사 플러그인에 연결되어야 합니다.

5. APP의 빠른 출시를 추구하기 위해 PhoneGap, AppCan, HBuilder 등과 같은 HTML5 APP 개발 모델이 채택되는 경우도 있습니다.

6. 필요한 경우 WeChat의 경우 WeChat 공용 계정을 연결하고 WeChat 브라우저에서 모바일 웹 개발을 수행해야 합니다

7. 짧은 개발 주기와 잦은 반복

8. 데이터 양이 증가하고 있습니다 보고서 표시 및 데이터 분석 수요가 많아지고 있습니다

9. 프로젝트 팀 인력 요구 사항은 웹 개발 엔지니어가 결정하고 세부적으로 HTML5 프론트엔드 엔지니어, JAVA(.NET) 엔지니어, 데이터베이스 엔지니어로 구분됩니다.

 10. 단위 테스트는 줄어들고, 기능 테스트는 점점 늘어나고, 심지어는 인터넷 도구(작업 타일 등)로 대체되기도 한다. 전문 테스트 도구

위의 상황을 바탕으로 시스템 개발에 여전히 .NET을 사용한다면 사용자 수가

2. 일부 전통적인 .NET 웹 개발 모델 및 방법은 폐기되어야 합니다

1. ASP.NET WebForm 및 MVC 모델은 모두 심각한 프런트엔드 및 백엔드 결합과 복잡하고 단순한 프로세스를 가지고 있으므로 더 이상 적합하지 않습니다. , 프런트 엔드는 .NET 아키텍처와 결코 분리될 수 없습니다.

2. SQL Server 데이터베이스는 더 이상 적합하지 않습니다. SQL Server 2014의 기능은 흥미롭지만, 동시에 다른 데이터베이스에 비해 퍼블릭 클라우드의 사용이 점점 더 일반화됨에 따라 크기, 가격, 가용성 확장성 및 심지어 성능 측면에서도 SQL Server는 불리한 위치에 있습니다.

3. 기존의 3계층 아키텍처는 더 이상 적합하지 않습니다. 많은 인터넷 프로젝트에서는 설계 초기부터 여러 서비스 노드를 지원해야 하며 다양한 애플리케이션 시나리오에 대해 서로 다른 데이터베이스를 사용해야 합니다. 또한 3계층 아키텍처는 성능을 희생하면서 코드를 늘리기 위해 리플렉션을 광범위하게 사용하므로 더 이상 민첩한 개발에 적합하지 않습니다.

4. IIS7의 HTTP 요청 처리 모델보다 뒤처지는 IIS6.0이든, Server 2008의 안정성과 확장성에 뒤처지는 Server 2003이든, Server 2003의 IT 아키텍처는 폐기되어야 합니다. 2012년부터는 더 이상 Server 2003 및 IIS6 기반의 .NET 배포를 고려해서는 안 됩니다.

버려진 것도 있지만 결국 마이크로소프트는 마이크로소프트다:

3. 일부 .NET 기능은 강화해야 한다

1. 인- Visual Studio 2015 개발 도구인 VS2015는 말할 필요도 없이 프런트 엔드 코딩(CSS, JS, HTML)에 적합한 사용자 정의 설정과 타사 플러그인을 갖추고 있습니다. 엔지니어에게는 더욱 강력해질 것입니다

 2. 내부적으로TFS Express 버전을 설치하든 tfs.visualstudio에서 여유 공간을 신청하든 TFS 소스 코드 관리를 사용합니다. com은 우리의 관행을 바탕으로 Git 모드에 현혹되지 마십시오. 실제로 .NET 개발에는 TFS 관리 모드가 가장 적합합니다

3 .NET 고급 언어 기능에 대한 이해를 바탕으로 Linq, LamdaExpression 등 .NET 고유의 고급 언어 기능을 능숙하게 사용할 수 있어야 합니다. , 반영, 작업 병렬성프로그래밍은 개발 효율성을 크게 향상시키고 개발 시간을 단축시킵니다.

4. IIS의 고급 기능과 동적 관리가 강화되어야 합니다. IIS7 이후 IIS 서버는 Server 2008의 Core 모드와 결합하여 고성능 웹 미들웨어 의 대명사입니다. 2012에서는 IIS의 향상된 동적 관리 및 구성을 통해 웹 처리 효율성을 크게 향상시킬 수 있습니다.

5. Server 2012 R2 운영 체제의 활용을 강화해야 합니다. 크로스 플랫폼이 .NET의 방향이고 모노에서도 잘 실행되고 있지만 PC 서버와 클라우드 서버가 점점 저렴해지는 요즘입니다. 저렴하고 여전히 최신 서버 운영 체제인 Windows를 사용합니다.

 위의 이해를 바탕으로 요약하면 현재 .NET 개발 모델은 다음과 같이 간단히 요약할 수 있습니다.

1. -엔드 및 백엔드 결합

가장 먼저 해야 할 일은 ASP.NET WebForm 및 MVC 모델을 완전히 버리는 것입니다. 프론트엔드와 백엔드는 고도로 분리되어 있습니다. 프론트엔드의 모든 로직 처리는 Dom 요소 레이아웃과 드로잉 및 데이터를 포함하여 JS를 사용하여 처리됩니다. 백엔드는 논리 처리 및 데이터 처리를 포함한 순전히 비즈니스 논리 처리입니다. 현재 우리 프로젝트는 ASP.NET의 라우팅 기능을 사용하기 때문에 이론상으로는 여전히 ASP.NET 모델과 IIS에서 호스팅되며 가까운 시일 내에 Linux에서 Core IIS 또는 Nginx로 대체될 예정입니다. HTML5뿐만 아니라 HTML5캐싱을 호스팅하는 것도 매우 쉽습니다.

  2. 프론트엔드는 순수 HTML5를 사용합니다.

프론트엔드는 전통적인 HTML을 버리고 HTML5 기술을 최대한 활용합니다. IE11이지만 오늘날의 인터넷 사고에서는 그러한 생각도 나쁘지 않습니다. HTML5 기술이 프런트엔드에서 완전히 사용되면 파일, 그래픽, 이미지, 오디오, 비디오, 지리적 위치 등 다양한 처리가 가능해집니다. 단순하고 단순하며 데이터 기반입니다.  3. 성숙한 프레임워크를 최대한 활용하는 프론트엔드

새로운 개발 모델을 사용한 후 분명한 변화는 회사의 아티스트가 더 이상 또는 거의 공연을 하지 않는다는 것입니다. 프론트엔드 컷팅 작업이 늘어나고 있으며, 테크니컬 아티스트(CSS, JS를 개발할 수 있고 디자인을 이해할 수 있는)에 대한 수요가 날로 증가하고 있습니다. 이러한 변화의 근본 원인은 고급스럽고 뛰어난 프론트엔드 프레임워크의 등장입니다. 현재 JQuery, Zepto, JQueryUI, JQueryMobile, Bootstrap, Amaze UI, inoic, Framework7, SUI, MUI 등은 물론 이러한 우수한 프레임워크와 함께 제공되는 타사 플러그인을 사용하고 있습니다. 객관적으로 말하면 우수한 프레임워크의 사용을 통해 프런트엔드의 시스템 위험이 증가하지 않을 뿐만 아니라, 오픈소스, 명확한 아키텍처, 안정성 및 기타 프레임워크의 특성으로 인해 더욱 안정적이고 확장 가능한 프런트엔드가 됩니다. 달성됩니다. 간단한 예를 들자면, 부트스트랩은 많은 웹 엔지니어들을 괴롭히는 완전 호환 레이아웃과 반응형 레이아웃 문제를 해결하는 데 중요한 역할을 했습니다.

 넷. 프론트엔드 개발객체지향

프론트엔드 개발은 JS의 객체지향 기능을 통해 간단히 캡슐화하고, DOM 요소 운영 및 비즈니스 논리적 데이터 요청의 처리는 백엔드 데이터 유형 , 엔터티 구조 및 처리 논리와 일치합니다. 이는 프런트엔드와 프런트엔드 간의 비즈니스 요구 사항을 더욱 긴밀하게 이해할 수 있게 해줍니다. 백엔드 개발자는 물론 기술 비용도 크게 절감되어

팀워크

의 효율성이 향상되었습니다.  5. CDN 서비스 이용하기

몇 년 전만 해도 CDN 서비스는 대기업이나 기업에만 국한됐지만 이제는 완전히 대중화되고, 민간화되었으며, 웹이 되었습니다. 데이터가 점점 더 많아지고 있다는 것은 부인할 수 없는 사실이지만, 실제 비즈니스 로직은 수십 K, 심지어는 몇 K에 불과한 경우가 많습니다. 수백 K의 페이지가 90%를 차지합니다. JQuery와 같은 타사 프레임워크인 CDN 가속을 합리적으로 사용하면 사용자 성능이 향상될 뿐만 아니라 HTTP 아키텍처 기반 웹 서비스의 로드 용량이 5~10배 이상 직접적으로 향상됩니다.  

6. HTTP 서비스 기반 비즈니스 로직

이 문장은 그다지 적절한 설명은 아니지만, 새로운 .NET 개발에 있어 가장 중요한 링크이기도 합니다. 모델, Alibaba Open Platform과 같은 고급 인터넷 아키텍처를 연구한 후 마침내 구조화되었지만 느슨한 비즈니스 로직 처리 모델을 형성했습니다. 즉, 각 비즈니스 로직 동작에는 고유한

경로

이름이 있습니다. , 비즈니스 로직은 라우팅 이름만 담당하고 라우팅 이름은 흐름 방향, 성능, 권한 및 보안과 같은 상위 계층 요구 사항을 담당합니다. 이것의 장점은 3~5년 정도의 경험을 가진 개발자(대부분의 회사의 주요 개발 인력이기도 함)를 최대한 활용할 수 있어 비즈니스 로직 작성에만 집중할 수 있고, 비즈니스 로직 이외의 일은 필요하지 않다는 것입니다. 레벨은 나머지 컨트롤러로 해결되며 대규모 .NET 프로젝트도 다양한 방식으로 하위 모듈로 유연하게 분할할 수 있습니다. HTTP 서비스 구현을 위해 ASP.NET ASHX 프로세서, Windows Service HOST WCF 서비스 및 ASP.NET Web API를 시도했습니다. 현재 더 안정적인 버전은 물론 수요를 충족하는 Web API입니다. HTTP 서비스의 경우 Wen API도 약간 무거우며 앞으로도 계속 개선될 예정입니다. 간단히 말해서, 이러한 변경 프로세스를 통해 개발 효율성과 테스트 효율성이 실제로 최소 3배 이상 향상되었습니다. 이에 대해서는 이후 장에서 자세히 설명하겠습니다.  7. 분산 및 핫 로딩 HTTP 서비스 구축

인터넷 애플리케이션에는 민첩한 개발과 반복적인 반복이 필요합니다. 동일한 논리적 아키텍처에서 서로 다른 요청이 서로 다른 서버와 데이터베이스를 사용하는 것이 일반적입니다. 따라서 프로젝트 설계 초기 단계에서는 분산형 HTTP 서비스를 구축하는 것이 중요합니다. 비즈니스 업데이트는 핫 로딩을 수행할 수 있어야 합니다. .NET 시스템에서는 DLL 관리 코드의 동적 로딩 및 사용이 아쉽게도 회사의 기존 프로젝트에는 대규모 분산 시나리오가 없습니다. 따라서 보다 안정적인 DLL 동적 로딩 아키텍처는 아직 개발되지 않았으며 이에 대해서는 다음 장에서 자세히 논의하겠습니다.

 8. Alibaba Cloud를 사용하여 빅데이터 문제 해결

Alibaba Cloud 및 기타 클라우드 서비스를 사용해 본 IT 설계자라면 누구나 이것을 깊이 느낄 것이라고 생각합니다. 클라우드는 이미 다른 클라우드보다 한 단계 이상 앞서 있습니다. 실제로 RDS, DRDS, KVStore 등과 같은 Alibaba Cloud의 데이터베이스 관련 기능은 실제로 기존 요구 사항의 복잡하고 어려운 많은 문제를 실제로 해결했습니다. 구체적인 세부 사항은 나중에 자세히 설명하겠지만 진심으로 말씀드립니다. 한마디, 서둘러 Alibaba Cloud를 사용해 보세요. 적어도 이 단계에서는 Alibaba Cloud가 당신을 납치하는 것이 아니라 도와주고 있습니다.

오늘은 글을 많이 썼습니다. .NET의 봄이 왔다는 점을 말씀드리고 싶습니다. .NET은 인터넷 기반의 애자일 개발뿐만 아니라 대규모 프로젝트, 대용량 데이터도 처리할 수 있습니다. 나는 이미 15년 넘게 파스칼 데이터 구조를 작성해 온 프로그래머로서 다양한 신기술에 관심을 갖고 직접 사용해 보기도 했습니다. 다른 사람들이 혼동할까봐 두려워하지 않습니다. 포괄적인 관점(언어, 개발 환경, 개발 효율성, 기술 커뮤니티, 팀 협업, 응용 프로그램 기능)에서 다른 언어는 .NET에 훨씬 뒤처져 있다고 감히 말할 수 있습니다. 응용 프로그램 수준 개발 분야는 많지만 .NET 프로그래머 자신은 아직 이를 인식하지 못했기 때문에 이러한 관점에서는 모두가 함께 일하고 계속해서 연구하고 탐색해야 합니다.

위 내용은 인터넷 개발을 위한 .NET 사용에 대한 생각과 탐색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.