Skip to main content

เว็บการศึกษาโดย SharePoint

Submitted by ezybzy on

นึกถึงโปรเจคเก่าตัวหนึ่งที่เคยทำ (แต่ตอนนี้ไม่รู้สลายไปเป็นอะไรไปแล้ว) เสียดายที่ไม่มีโอกาสทำให้มันดีไปกว่านี้ เมื่อมีความรู้มากขึ้นคิดว่าเป็นโอกาสที่ดีที่จะมองกลับไปหามันแล้วดูว่าจะสร้างอย่างไรจึงจะดีที่สุด

Requirement

  • มีหน้าเว็บแนะนำข้อมูลเว็บไซต์
  • มีหน้าแสดงรายละเอียดผู้ใช้งาน (Profile)
  • มีพอร์ทัลสำหรับแสดงเนื้อหาสื่อการสอนเป็นแคตาล็อค สามารถกำหนดเงื่อนไขการรับชมได้ (ปล่อยฟรี, เสียเงิน ตามแต่ระดับของสมาชิก)
  • มีพอร์ทัลแสดงรายการโรงเรียนที่เข้าร่วม รวมถึงสามารถส่งคำร้องขอสมัครสมาชิกได้
  • มีเว็บไซต์สำหรับโรงเรียน ซึ่งมีความต้องการ 1 2 3 (ไม่ลงรายละเอียดนะ แต่หนึ่งในนั้นคือ สามารถเก็บบันทึกเนื้อหาสื่อการสอนเป็นแคตาล็อคคล้าย ๆ กับของในพอร์ทัลหลัก แล้วโรงเรียนอาจจะแบ่งเนื้อหากันและกันได้)
  • สามารถ Single Sign On กับระบบของพาร์ทเนอร์ได้
  • ควบคุมได้ตามสมควร

การพัฒนา

ผมคิดว่า ถ้าจำเป็นต้อง code ก็ต้องพัฒนาครับ แต่คงไม่ลงรายละเอียดมากว่าต้องทำอย่างไรนะ มาดูว่าเราจะรีดฟีเจอร์อะไรใน SharePoint ออกมาทำได้บ้าง

คำว่า Single Sign On ลอยมาอีกแล้ว ก็คงต้องทำ Trusted Identity Provider ครับ แต่ปัญหาอยู่ที่พาร์ทเนอร์ที่ทำ SAML กันไม่เป็น อันนี้ถ้าเลือกได้คงต้องบังคับเขาทำครับ :)

ส่วน Portal หลัก เนื่องจากข้อมูลจำพวกสื่อการสอนน่าจะใช้พื้นที่พอสมควรเมื่อมันโตขึ้นเรื่อย ๆ ไหนจะมีเว็บไซต์สำหรับโรงเรียนอีก แปลว่าถ้ามีการพัฒนาอะไรเพิ่มเติมจำพวก Web Part อาจจะมีบาง Web Part ที่ไม่อยากให้ผู้ใช้ในงานในระดับโรงเรียนเอาไปใช้งานได้ การแตก Web Application ออกมาแล้วใช้ Host Header เพื่อหลอกให้เหมือนกับว่าเป็นไซต์ลูกกันและกันน่าจะเป็นทางออกที่ดี (สมมติไซต์หลักชื่อ xxx.in.th แล้วกัน) เราจะได้พอร์ทัลดังนี้

  • พอร์ทัลหลัก, ระบบสื่อการสอนกลาง เป็น www.xxx.in.th และ www.xxx.in.th/media (แตก Site Collection ออกมาเพื่อความเมามันส์ในการจัดการฐานข้อมูล)
  • พอร์ทัล My Site เป็น profile.xxx.in.th
  • เว็บไซต์โรงเรียน เป็น school.xxx.in.th สำหรับไซต์หลัก school.xxx.in.th/s/รหัสโรงเรียนหรือชื่อย่อโรงเรียนหรืออะไรก็ได้ที่คิดว่าจะไม่ซ้ำกันในแต่ละโรงเรียน แต่ละโรงเรียนอาจจะเป็นคนละ Site Collection กันเพื่ออิสระในการจัดการฐานข้อมูล
  • ระบบทะเบียน เป็น reg.xxx.in.th (อาจจะเป็นแค่ ASP.net ธรรมดาก็ได้)

ทำการผูก Managed Metadata Service Application ของ school.xxx.in.th กับ www.xxx.in.th โดยอาจจะสร้าง Content Type Hub ไว้ที่ Site Collection พิเศษที่หลบอยู่ใน www.xxx.in.th เพื่อที่จะได้สร้าง Content Type เกี่ยวกับสื่อการสอนและอื่น ๆ ให้มีการปรับปรุงข้อมูลจากส่วนกลางได้

ทำการผูก User Profile Service Application ของ www.xxx.in.th, school.xxx.in.th เข้าด้วยกันเพื่อให้ใช้ User Profile ตัวเดียวกัน (นั่นคือ profile.xxx.in.th)

ทำไซต์ต้นแบบโรงเรียน 1 ไซต์ พยายามเพิ่มฟีเจอร์ต่าง ๆ ด้วยการใช้ Feature ที่พัฒนาจาก Visual Studio เพื่อเมื่อติดตั้งไป ผู้ใช้งานจะสามารถ Activate ฟีเจอร์เพิ่มเติมในโรงเรียนได้ง่าย ส่วนการสร้างไซต์โรงเรียนเพิ่มเติม การทำ Backup-Restore Site Collection ดูจะเป็นทางออกที่ง่ายที่สุด หรือจะพยายามถอดออกมาเป็น Site Template ก็ได้ แต่เราคงถูกบังคับใช้ Publishing Feature กลาย ๆ อยู่แล้ว ดังนั้นทางเลือก Backup-Restore น่าจะง่ายกว่า

สำหรับไซต์รวมสื่อการสอนส่วนกลาง ใช้ Publishing Site สร้างหน้าแสดงผลสื่อแต่ละชิ้น แล้วใช้ Content Query Web Part ดึงสื่อออกมาแสดงใน Site Collection นั้น แต่หากต้องแสดงผลใน Site Collection หลักด้วย คงต้องใช้ Search Scope ที่ตั้งใน Central Administration ช่วยเหลือ ถ้าทำ Content Type ไว้จะสะดวกขึ้นมากเพราะเราสามารถตั้ง Search Scope ให้แสดงเฉพาะ Content Type ที่เราต้องการได้ ตกแต่งการแสดงผลสื่อให้สวยงาม ไซต์สื่อโรงเรียนทำคล้ายกันแต่ไม่จำเป็นต้องทำ Search Scope ก็ได้ เว้นแต่อยากจะล้วงสื่อจากโรงเรียนมาใช้ (แต่ทั้งนี้ทางโรงเรียนต้องให้สิทธิ์ในการเข้าถึงสื่อนั้น ๆ ด้วย)

การ Branding ดูจะเป็นงานหนักพอสมควรเพราะมีหลาย Portal หลาย Site Collection ดังนั้นจึงควรทำ Branding เป็นแพคเกตมากกว่าลุยดุ่ย ๆ ทำไปทีละเว็บแล้ว Reuse ไม่ได้ หรือต้องถึกทำ

คิดว่าข้อมูลเพียงเท่านี้น่าจะช่วยให้สามารถแก้ปัญหาทางเทคนิคของไซต์ระดับนี้ได้พอสมควร เรื่องการเมือง คงต้องไปแก้กันด้วยการเมืองอีกที (ฮา)

Tags