2010-12-01 7 views
1

서버 측 프레임 워크 (Django 및 RoR)와 클라이언트 측 프레임 워크 (SproutCore 및 ExtJS 등)에 대한 커뮤니티 의견에 대해서는 매우 궁금합니다.서버 측 대 클라이언트 측 웹 프레임 워크에 대한 의견

서버 측과 클라이언트 측 프레임 워크를 둘 다 사용할 수없는 이유가 없으므로이 두 가지의 잘못된 이분법을 알고 있습니다. 그러나 실용적인 측면에서 이것은 거대한 골치 거리 일 수 있습니다.

예를 들어 하나의 목표를 달성하기 위해 2 가지 언어, 2 가지 API 및 2 가지 프레임 워크 구문으로 전문 지식을 배양하는 것은 대단히 비효율적입니다.

나에게 맞는 전략은 기본 클라이언트로 하나의 클라이언트 또는 서버 측 프레임 워크를 선택하고 필요한 경우 다른 측면에서 매우 가벼운 것으로 보완하는 것입니다. 예를 들어 서버에서 RoR을 jQuery로 클라이언트에서 보충 된 기본 서버로 사용하십시오. 또는 클라이언트에서 ExtJS를 서버의 PHP가 보완하는 기본 서버로 사용하십시오.

지금 나는 울타리의 어느 쪽이 넘어져야할지 모르며 지역 사회의 의견과 경험에 관심이 있습니다.

답변

0

완전히 잘못된 이분법입니다. 그들은 목표의 다른 하위 문제를 해결합니다. 분명히,하지만 Microsoft ASP.NET 물건 꽤 잘 클라이언트 측면 서버 쪽 (나는 결코 그것을 사용하지 못했지만, 그래서 내가 틀렸다면 수정하십시오).

클라이언트 측 라이브러리는 데이터를 사용자에게 표시하는 데 중점을 둡니다.

서버 측 라이브러리는 CRUD 기능 (작성, 읽기, 업데이트, 삭제)에 초점을 맞추고 사용자를 인증해야합니다. 데이터를 중앙 집중화해야 할 경우 서버에서 처리해야합니다.

서버 측 라이브러리에는 끌어서 놓기 또는 내게 필요한 옵션 기능이 없습니다. 클라이언트 측 라이브러리에는 MySQL 및 액세스 제어 목록 구현이 없습니다.

+0

전혀 그렇지 않습니다. 이론적으로, 내 응용 프로그램이 다양한 클라우드 기반 데이터 서비스를 단순히 통합하는 경우 ExtJS의 클라이언트 쪽에서 JSON을 RESTful으로 전달할 수 있습니다. 서버 측 개발자가 필요 없습니다. 반면 RoR에서는 모든 것을 할 수 있었기 때문에 Rails가 클라이언트 측 프레임 워크 스크립트를 작성하는 것을 처리 할 수있었습니다. 직접 자바 스크립트 나 JavaScript 프레임 워크를 사용할 필요가 없었습니다. 따라서 우리가 과거의 단일 소프트웨어를 옮겨 가면서 클라이언트와 서버 프레임 워크 간의 오버랩이 증가하고 클라이언트 대 서버 측 프레임 워크의 문제가 매우 합리적인 것이됩니다. – niblettes

+0

@niblettes : 이론상 네, 첫 번째 경우는 사실입니다. 물론 모든 클라이언트 프레임 워크 (C++/QT, Java, .NET/C#, GTK +)를 사용할 수 있습니다. "웹 프로그램"이 되겠지만 데이터를 단일 서버에 집중시키지는 않지만 사용자/인증 등이 없거나 webby로 느껴질 수 있습니다. 두 번째 경우 (RoR이 클라이언트 측 스크립트를 만드는 경우)가 더 가능할 수 있지만 자바 스크립트를 직접 터치하면 항상 더 풍부한 경험을 할 수 있습니다. – Dragontamer5788

+0

결국, 순수한 클라이언트 프로그램이 항상 가능합니다. (결국 컴퓨터 프로그램과 응용 프로그램은 웹과 RESTful 호출 전에 존재했다). 순수한 서버 프로그램도 가능합니다 (Javascript와 JS Framework 이전에 웹 어플리케이션이 존재했습니다). 그러나 직접 서버를 구축하지 않는 한 중앙 집중화 된 데이터 허브를 얻지는 않을 것이며 클라이언트를 직접 만들지 않고도 "풍부한 사용자 경험"을 얻지 못할 것입니다. – Dragontamer5788

0

Dragontamer와 동의하십시오. 서버 측 프레임 워크와 클라이언트 측 프레임 워크는 서로 다른 문제를 해결합니다.

예, jQuery 또는 EXT와 같은 클라이언트 측 프레임 워크를 사용하여 서버에 액세스 할 수 있지만 여전히 서버의 응용 프로그램 서버와 통신해야합니다.

응용 프로그램 서버 (ASP, PHP, ColdFusion 등)는 MVC 응용 프로그램의 M 및 C이며 "V"를 제공합니다. 클라이언트 측 프레임 워크는 V를 예쁘게 만들고 클라이언트 측 기능을 추가합니다 (예 : 페이지를 새로 고치지 않고 테이블 데이터 정렬과 같이 응용 프로그램 서버에서 제공하는 데이터 조작).

완전히 다른 두 가지 목적을 위해 완전히 다른 두 동물.

+0

물론 앱이 서버 측의 서비스와 통신해야 할 필요가 있지만 유효한 JSON을 수락하고 응답하는 게시 된 API로 클라우드 기반 데이터 서비스에 액세스하는 경우이 서비스는 나에게 블랙 박스 (나도 마찬가지입니다) 이론적으로는 클라이언트 측 또는 서버 측 프레임 워크를 통해 동등하게 통신 할 수 있습니다. 또한 SproutCore와 같은 클라이언트 측 프레임 워크를 사용하는 경우 위의 예에서 "V"자체에 MVC가 있습니다. 나는 결코 MVC를 중첩하지 못했지만, 내가 다루기를 원하지 않는 것을 의심한다. – niblettes

0

IMHO는 하나의 질문 이상입니다. 문제입니다. 어느 쪽이든, 한쪽에서 다른쪽으로 코드를 다시 작성하게 될 것입니다. 왜냐하면 갑자기 서버의 기능에 무언가를 추가하려면 클라이언트에서 무언가가 필요하고 그 반대의 경우도 있습니다. 약간의 변경 후에는 기능 클라이언트에서 더 나은 서버 또는 다른 방법으로 주위에 실행되므로 코드를 앞뒤로 서버에서 클라이언트 및 viceversa로 다시 작성합니다.

근본적인 문제는 서버와 브라우저에서 실행할 수있는 웹과 클라우드 모두에 대한 고급 언어가 부족하여 로컬 또는 원격 통신에 코드 재 작성이 필요하지 않으므로 각 부분 의 기능은 기능 및로드 조건에 따라 런타임마다 각 노드의 기능에 따라 설치 위치에서 다른 위치로 마이그레이션 할 수 있습니다.

할 수 있습니다.

관련 문제