Linux에서 ASP.NET MVC 구축: 모범 사례, 툴 및 놀라움
Linux에 배포할 수 있는 옵션이 있는 ASP.NET MVC 앱을 개발하기 위한 모범 사례가 궁금합니다.만약 당신이 이러한 종류의 MVC 앱을 만들고 있다면,
- 어떤 Linux/Mono 플랫폼을 대상으로 합니까?
- Windows 및 Linux에서 개발을 얼마나 진행하고 있습니까?
- 데이터베이스를 추상화하기 위해 ORM을 사용하고 있습니까?어느 것이요?
- 리눅스에서 빌드 엔진을 실행하고 있습니까?시험은?
- 다른 어떤 도구를 사용하고 있습니까?
- 윈도우 외에 리눅스를 대상으로 하는 데 얼마나 많은 추가 작업이 있었습니까?
- 당신은 어떤 추악하거나 유쾌한 놀라움을 경험했습니까?
제가 근무하는 회사는 모노 온 리눅스를 주요 배포 환경으로 목표로 삼고 있습니다.따라서 "추가" 작업이 없습니다. 하드웨어에서 운영 체제(맞춤형 및 다듬기), 애플리케이션에 이르기까지 전체 스택을 제공합니다.오픈 소스를 사용하면 당사와 고객에게 상당한 비용 절감 효과를 제공합니다(예, 당사는 의존하는 OS 프로젝트에 다시 기여합니다)
중요한 것은 실제 대상을 사용하여 지속적으로 테스트하는 것입니다(죄송합니다. Windows의 Mono는 계산에 포함되지 않습니다).물론, 개발자들은 Visual Studio를 사용하지만 지속적인 통합(Cruise Control 사용)을 사용합니다.Linux에서 실행하려면 Mono 2.4.2가 필요합니다.)는 Windows와 Linux에서 모두 수행되며, 작동할 것으로 예상되는 모든 Mono 버전을 테스트합니다(최근에 훨씬 안정적으로 작동하지만 여전히 릴리스 간에 회귀가 발생합니다).하나의 *nix 시스템에서 Mono 버전을 병렬로 실행하는 것은 매우 쉽습니다. 업스트림 회귀 분석을 조기에 파악하려면 svn 스냅샷 빌드를 포함할 수도 있습니다.자체 배포를 롤아웃하지 않는 경우 대부분의 Linux 공급업체는 Mono를 사용자 지정 패치와 함께 제공합니다. 이는 이전에도 당사에 문제를 일으켰습니다.또한, 많은 배포판은 Mono 업데이트에 많은 지연이 있으며, 이는 빠르게 발전하고 있는 프로젝트입니다.
데이터베이스 계층의 경우 대부분 "일반" ADO.NET - Oracle(Oracle용 dotConnect 포함, Mono 지원) 및 SQLite(Mono는 작동 커넥터와 함께 제공됨)를 사용합니다.공식적인 ADO.NET Driver for MySQL(Connector/NET)도 사용해 보았는데, 작동도 잘 됩니다.ORM 매핑이 더 까다롭지만 NHibernate를 사용할 수 있습니다(Mono를 공식적으로 지원하지 않음을 명심하십시오).
빌드 엔진 및 테스트에 대해서는 NANt 및 NUnit가 잘 알려져 있고 테스트도 잘 되어 있습니다.대부분의 최신 버전의 Monox Build(MSBuild 복제)를 실제로 사용할 수 있게 되었지만, 더 복잡한 시나리오에 사용하기로 결정한 경우에는 패치를 상당히 많이 제공할 수 있도록 준비하십시오.
쓰기 테스트.많은 그들.패치 및 버그 보고서를 제공할 준비를 하고 상용 구성 요소를 사용하는 경우 공급업체가 Mono를 공식적으로 지원하는지 확인하십시오.
Nathan Bridgewater의 블로그에는 다음과 같은 멋진 기사가 있습니다.
- 모노에 면도기를 사용하여 MVC3 실행
- 윈도우즈/SQL 서버에서 리눅스/My로 ASP.NET MVC 마이그레이션SQL
- MonoDevelop 설치 및 실행
- 원본에서 모노 설치
http://iws.io/get-mvc3-razor-running-on-mono/
모노 프로젝트를 살펴보십시오.그것이 당신이 찾고 있는 것처럼 들립니다.제 기억이 맞다면, 그들은 ASP.NET MVC를 지금 통합하고 있습니다.
저는 Mono와 함께 일한 적이 없지만, 제가 알기로는 큰 차이가 없습니다.
언급URL : https://stackoverflow.com/questions/1172429/deploy-asp-net-mvc-on-linux-best-practices-tools-surprises
'programing' 카테고리의 다른 글
데이터베이스에 계정에 대한 항목을 만들기 전에 이미지 업로드를 처리하는 방법은 무엇입니까? (0) | 2023.07.04 |
---|---|
mongodump에 대한 디렉토리/폴더를 지정할 수 있습니까? (0) | 2023.07.04 |
예외 java.lang을 가져오는 중입니다.ClassDefFoundError가 없습니다. com.google.화력 기지새 Firebase로 업데이트한 후의 Firebase 옵션 (0) | 2023.07.04 |
ssh 터널 체인(이중 터널, 회사 네트워크의 서버)을 통해 Oracle Database 11g 서버에 연결하려면 어떻게 해야 합니까? (0) | 2023.07.04 |
고유한 레코드 값 가져오기 (0) | 2023.07.04 |