문제

저는 ASP.NET C#을 아주 잘 알고 있습니다.저는 설문조사나 사용자 정의 웹 애플리케이션과 같은 많은 것들을 만듭니다.

나는 Drupal에 대해 머리를 싸매고 클라이언트 목록 검색이나 웹 애플리케이션 생성과 같은 '특별한' 프로그래밍 작업을 수행하는 방법을 알아내는 데 많은 어려움을 겪고 있습니다.

1 - 나는 책과 drupal API를 읽어왔지만 여전히 무엇이든 시작하는 데 많은 어려움을 겪고 있습니다.페이지, 모듈, 스니펫과 관련하여 사용자 정의 코드는 어디로 이동합니까?ASP.NET에서 수행한 X 형식을 drupal의 새 페이지에 어떻게 복제합니까?등.Drupal을 둘러보는 것은 매우 어렵습니다. 너무 크고 쉽고 확장 가능해 보이지만 코딩하기가 어려운 것 같습니다. ASP.NET 응용 프로그램 프로그래머가 Drupal을 사용하거나 Drupal에서 작업하는 방법을 배우기 위해 무엇을 추천할 수 있습니까?

2 - 때때로 우리는 클라이언트를 위해 완전한 ASP.NET 응용 프로그램을 작성하지만 이러한 응용 프로그램은 클라이언트가 편집할 수 있도록 설계되지 않았습니다.예를 들어, 우리는 전체 웹사이트를 drupal로 만들 것이지만, 그 웹사이트 내부에는 사용자들이 데이터베이스 정보에 대한 특별한 검색을 사용할 수 있는 장소가 있을 것입니다.우리는 특수하게 코딩된 페이지를 편집하려는 단순한 웹사이트 편집자와 콘텐츠 제공자를 원하지 않습니다. Drupal 애플리케이션에서 클라이언트가 아무것도 편집하지 못하도록 하려면 어떻게 해야 합니까? 페이지/사용자 권한을 통해 처리됩니까?drupal 외부에서 완전히 애플리케이션을 개발하고 호스팅하는 것이 가장 좋은 방법입니까?drupal 애플리케이션은 drupal 웹사이트 내부의 자체 drupal 인스턴스입니까(중첩된 drupals?)?

3 - 마지막으로 데이터베이스를 어떻게 처리합니까?저는 Drupal과 PHP가 MySQL에서 가장 잘 작동하도록 설정되어 있다는 것을 알고 있습니다.우리는 여러 애플리케이션에서 사용하는 MS SQL 데이터베이스를 보유하고 있으며 Drupal을 사용하기 시작하면서 이를 새로운 애플리케이션에 사용하고 싶습니다.예를 들어, ASP.NET 보고 응용 프로그램, ASP.NET Staff Listing 응용 프로그램을 제공하는 Staff 디렉터리가 있고 해당 데이터베이스를 사용하는(그리고 추가 정보를 추가/업데이트하는) 새로운 Drupal PHP 응용 프로그램을 만들고 싶습니다. 여러 Drupal 및 ASP.NET 애플리케이션에서 사용 및 업데이트되는 MS SQL 데이터베이스 및/또는 MySQL 데이터베이스를 처리하는 가장 좋고 쉬운 방법은 무엇입니까? 모든 애플리케이션이 MS SQL 데이터베이스를 사용하도록 하는 것이 더 쉬울까요, 아니면 Drupal/PHP 앱용으로 MySQL에 데이터베이스를 복제하고 어떻게든 두 데이터베이스를 동기화하는 것이 더 쉬울까요?

한 포스팅에 여러 관련 질문을 해도 괜찮았으면 좋겠습니다.

도움이 되었습니까?

해결책

우선, Drupal의 한계를 이해하는 데 중요한 것은 실제로 만들어지지 않은 것들이 있다고 생각합니다. 그것은 일종의 웹 애플리케이션 프레임 워크이지만 자신의 사용자 정의 데이터 모드 및 물건으로 많은 사용자 정의 작업을 수행하는 경우 Drupal이 귀하의 문제에 가장 유연하거나 쉽게 구현 가능한 솔루션이 아닐 수도 있습니다. 예를 들어 Zend 프레임 워크와 같은보다 일반적인 프레임 워크가 더 적합 할 수 있습니다.

Drupal 학습의 중요한 교훈은 다음과 같습니다. 코어 나 다른 모듈을 해킹하지 마십시오. 이것은 업그레이드 코어 또는 모듈을 매우 시간이 많이 걸립니다. 대신 "Drupal을 좋아하고"후크를 사용하여 무시하십시오. 주제에서는 후크뿐만 아니라 다른 방법으로도 무시할 수 있습니다. 재정의는 강력하므로 그 개념을 잘 이해하십시오.

  1. 나는 당신의 스타일, 스크린 캐스트, IRC, 해킹, 사용자 모임 IRL, 서적, 기사 또는 조합의 학습 방법을 선택하고 Drupal에서 자료를 찾으십시오. 그냥 멍청이를 시작하고 Drupal이 어떻게 작동하는지에 대한 느낌과 이해를 얻으십시오. 전문 용어를 이해하는 것은 중요한 부분이므로 노드, 블록, 지역, 후크, 모듈, 테마와 같은 것입니다.
  2. Drupal은 매우 유연한 권한 시스템을 가지고 있으며, 아마도 자신을 만드는 대신 사용하는 것이 가장 좋은 선택 일 것입니다. Drupal의 동작을 추가하거나 변경하는 자체 모듈을 작성할 수 있습니다. 따라서 Drupal과 함께 작동하는 새로운 애플리케이션을 작성하려면 응용 프로그램이 가지고있는 기능을 수행하는 모듈을 작성하고 사용자, 권한 시스템 등을 포함하여 Drupal이 제공하는 모든 시설을 사용할 수 있습니다. 두 번째 질문의 마지막 부분을 정말로 이해하고 있습니다. "Drupal 응용 프로그램은 Drupal 웹 사이트 (중첩 Drupals?) 내부의 Drupal 인스턴스입니다." Drupal은 서버의 PHP 파일 모음으로, 데이터베이스의 수많은 테이블과 함께 요청을 제공합니다. 여러 Drupal 웹 사이트 (따라서 다른 PHP 파일)는 동일한 데이터베이스 또는 IT의 일부 (예 : 사용자 테이블)를 참조 할 수 있습니다. 실제로 "응용 프로그램"이 없기 때문에 Drupal 사이트에는 실제로 "인스턴스"가 없습니다. 물론이 용어에 너무 익숙하지 않지만 PHP가 "응용 프로그램"의 "인스턴스"와 함께 작동한다고 생각하지 않습니다.

  3. 어려운 문제입니다. Afaik Drupal은 MS SQL과 작동하지 않으므로 해당 방향으로 연결되어야합니다. 나는 또한 Drupal 포럼이나 IRC에 대해 물어 보았습니다.

행운을 빕니다!

다른 팁

저는 Drupal에 대한 경험이 없어서 첫 번째 또는 두 번째 질문에 대한 통찰력을 제공할 수 없지만 세 번째 질문에 대해서는 다음과 같습니다.

MS SQL 데이터베이스 및/또는 MySQL 데이터베이스를 다중 Drupal 및 ASP.NET 애플리케이션에서 업데이트하는 가장 좋은/가장 쉬운 방법은 무엇입니까?

ASP.NET 응용 프로그램과 PHP/Drupal 응용 프로그램 모두에서 CRUD 작업을 수행하려는 경우 MySQL과 MSSQL 간에 데이터를 앞뒤로 동기화하지 않는 것이 좋습니다. 이로 인해 대기 시간 문제가 발생하고 다음과 같은 문제가 발생할 수 있습니다. 두 데이터베이스 관리 시스템 간의 차이점을 처리합니다.

대신 저장 프로시저를 사용하여 모든 데이터베이스 액세스를 제어하는 ​​방법을 살펴보는 것이 좋습니다.이렇게 하면 모든 데이터베이스 CRUD 작업이 동일한 규칙과 논리를 따르도록 할 수 있습니다.

ASP.NET과 PHP 모두에서 MSSQL을 사용하는 것은 문제가 되지 않습니다. 특히 널리 사용되는 여러 데이터베이스 관리 시스템에 액세스하기 위한 표준 인터페이스를 제공하는 매우 뛰어난 PDO 라이브러리의 경우에는 더욱 그렇습니다.이를 통해 PHP 애플리케이션 내에서 MSSQL 데이터베이스에 빠르고 쉽게 연결하고 사용할 수 있습니다.

당신이 묻는 좋은 질문입니다. 나는 내 능력의 최선을 다해 대답하려고 노력할 것이다. 나는 c# of aps.net에 대한 경험이 없으므로 어디에서 왔는지 정확히 모른다. 나는 나 자신이 경험이없는 Python/Django 개발자로서 Drupal을 배웠다. 그래서 어떤면에서 나는 당신이 Drupal을 배우려고 노력하는 몇 가지 문제를 이해할 수 있습니다. 이러한 것들 중 일부는 단순히 시간/경험/실험이 사라지기 전에 필요합니다.

  1. Drupal과 Drupal API를 실제로 이해하려면 먼저 PHP를 잘 이해해야합니다. 때때로 Drupal은 복잡한 PHP 작업을 수행하므로 구문이나 PHP 기능 등을 이해하지 못하면 쉽게 잃을 수 있습니다.

    • 코드는 어디에 살고 있습니까?
      Drupal은 모듈러 시스템으로 제작되었습니다. Drupal 자체는 일련의 모듈이며, 그 중 일부는 Drupal이 제대로 작동하는 데 필요합니다. 사용자 정의 코드를 만들고 싶다면 모듈을 사용할 수없는 무언가를하고 싶다. Drupal을 위해 약 5000 개의 모듈이 개발되었습니다. 숙련 된 프로그래머가 되더라도 종종 최선의 선택은 필요한 작업을 수행하거나 가까운 곳에서 얻을 수있는 모듈을 찾는 것입니다. 그래서 당신이하는 일, 그것은 당신 자신의 모듈을 만드는 것입니다.

      1. 모듈 이름이있는 폴더를 만듭니다

      2. 특별한 방식으로 형식으로 형식화 된 모듈에 대한 정보를 보유하는 ModulEname.info 내부를 작성하십시오. Drupal은 모듈을 활성화하는 모듈 목록 페이지의 모듈을 FX로 표시해야합니다.

      3. 마지막으로 모듈의 코드의 핵심이있는 modulename.module 파일을 만듭니다.

      Drupal을 이해하는 데 중요한 또 다른 것은 후크 기반 시스템을 사용한다는 것입니다. 후크는 일단 일단 일단 일이 발생하면 흐름을 연결하고 바꾸거나 자신의 일을하기를 원하는 일단 발생하는 이벤트와 같습니다. FX 특정 양식이 표시 될 때마다 기록하거나 필드를 추가/제거 할 수 있습니다.

    • 형태
      Drupal에는 FAIP 또는 Form API가 있으며, 이는 양식을 생성하는 데 사용됩니다. 이것은 문서에 자체 페이지가있는 것입니다. 아이디어는 양식의 각 요소에 대한 정보를 보유하는 연관 PHP 배열을 작성하고 Drupal은이를 사용하여 양식을 작성합니다.

    • 서적Drupal을위한 좋은 책이 많이 있습니다. 내가 나 자신이 가장 많이 배운 책은 IS 프로 드루 팔 개발

  2. 우선, Drupal은 매우 훌륭한 입자 기반 권한 시스템을 보유하고있어 고객이 허용하는 일을 정확하게 설정할 수 있습니다. 중재자, 콘텐츠 제작자, 관리자, Sysadmin ECT와 같은 다른 역할을 만들 수 있으며 각 역할에 다른 권한을 부여 할 수 있습니다. 이것은 매우 쉽고 Drupal AI 내에서 설정됩니다. 그러나 일부는 권한을 알아야합니다. 수퍼 권한 그것은 많은 것들에 접근 할 것입니다. 이제 응용 프로그램을 통합하기 위해서는 사용자 정의 모듈을 작성하려는 것입니다. 나는 당신이 이것을 어떻게하고 싶은지 정확히 모른다. 그러나 Drupal이 응용 프로그램에서 페이지, 양식 등을 만들고 데이터를 앞뒤로 보내도록함으로써 최상의 결과를 얻을 수 있다고 생각합니다. 이렇게하면 테마 = 사이트의 레이아웃이 일관되게됩니다. 그렇게하면 사용자는 사이트를 떠난 느낌을 얻지 못했지만 이것은 단순히 사이트가 제공 한 또 다른 기능이었습니다.

  3. Drupal은 MySQL을 가장 잘 처리하도록 설정된 것이 아니라 실제로 Drupal 데이터베이스 백엔드로 MySQL 또는 PSQL이 필요합니다. 그 이유는 Drupal이 쿼리를 처리하는 방법으로 인해 두 가지 유형 중 어느 것이 사용하든 테이블에 접두사가 있는지에 관계없이 작동하지 않는 비 특정 쿼리를 작성할 수 있습니다. 따라서 모든 Drupal Internals에는 두 가지 중 하나가 필요합니다. PHP는 MSSQL에 연결하고 해당 데이터베이스에 대해 쿼리를 실행할 수 있으므로 많은 문제없이 다른 응용 프로그램의 데이터베이스에 쿼리를 실행하고 데이터를 가져 오거나 업데이트하는 사용자 정의 코드를 작성할 수 있습니다. 데이터에 따라 데이터베이스에서 읽고 쓸 수있는 테이블을 만들고 필요할 때 데이터베이스를 동기화 할 수 있습니다. 사용 사례에 약간 의존합니다. 데이터베이스에 쓸 필요가없는 경우 후자를 수행했지만 일부 제품 정보를 다른 시스템에서 사용하고있는 레거시 데이터베이스를 가져와야합니다.

RLB,

나는 꽤 많은 Drupal을했고 강력한 ASP.NET 경험을 가지고 있습니다. 당신은 당신의 사고 방식을 똑바로 얻으려면 정말로 읽어야합니다. 그들은 WebForms & Asp.net MVC 개발자와 매우 외국인 MVC와 같은 방식으로 레이어를 사용합니다. 처음에는 솔직히 이상하게 보입니다.

다음은 내가 정말로 빨리 얻기 위해 한 일의 목록입니다.

  1. Drupal을 설치할 수있는 8 달러에 Hostgator와 같은 호스트를 받으십시오.
  2. 초보자를위한 Pro Drupal Development 책을 얻으십시오 ... 우수하고 실제로 많은 영역을 다루고 있습니다. http://www.amazon.com/pro-drupal-development-second-beginning/1430209895/ref=sr_1_2?ie=Utf8&s=Books&qid=1257545528&sr=8-2
  3. Drupal 포럼에 참석하십시오
  4. 기여할 준비가되어 있습니다. Drupal은 많은 기능을 가지고 있지만 결국 가장 좋은 방법은 코드를 돌려주는 사람이되는 것입니다.

고려해야 할 많은 IDE가 있지만 텍스트 편집기를 시작하려면 괜찮습니다.

행운을 빕니다.

여기에 몇 가지 좋은 답변이 있으므로 간단한 항목을 작성하겠습니다.

1- 학습 Drupal : Pro Drupal Development가이를위한 최고의 책입니다. 문제 대기열에 들어가고 개발자와 상호 작용하는 것은 세부 사항에 익숙해지는 방법입니다. 양식에 대한 귀하의 질문은 Drupal이 양식을 처리하는 방법과 관련이 있습니다. FAPI는 Drupal에서 매우 강력하며 보안기구로부터 당신을 보호합니다. 또한 API DOT DRUPAL DOT org는 코드가 문서화되는 곳이지만 다른 곳에 문서가 있습니다. 구글은 당신의 친구입니다. (Drupal 사이트 자체에서 기본 검색을 사용하여 결과를 얻습니다.)

2- 이것은 사용자 권한 문제입니다. 컨텐츠 유형에 따라 생성 및 편집 권한을 제한 할 수 있습니다. 액세스 제어 (읽기)의 경우 액세스 제어를 위해 많은 모듈 중 하나를 사용하려고합니다. 실제로 사용 사례에 따라 다릅니다.

3 -Drupal은 MySQL에 대한 커뮤니티 지원이 가장 많지만 사람들은 MS SQL에서 Drupal을 운영합니다. Drupal 7에서는이 릴리스에서 데이터베이스 추상화를 소개하므로 MYSQL이 아닌 사람들이 훨씬 더 많은 지원을 볼 수 있습니다.

아마도 최악의 일은 여백을 해킹하는 것입니다. Drupal 기본 사항 (관리 및 코딩)의 INS를 배우는 것은 실제로 Drupal이 테이블에 가져 오는 Power를 진정으로 활용할 수 있습니다.

그리고 모듈을 사냥하고 있다면 http://drupalmodules.com 당신의 친구입니다. ;)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top