วันศุกร์ที่ ๒๒ มิถุนายน พ.ศ. ๒๕๕๐

เนื้อหาของรหัสวิชา 70-536

ก่อนจะเข้าสู่รายละเอียดก็ต้อง พูดให้ฟังก่อนว่า เนื้อหาคร่าวๆ มีอะไรบ้าง จะได้เตรียมตัวเตรียมใจ รวมทั้งเตรียมแผนที่ได้ถูก ซึ่งเท่าที่ผมได้อ่านมาระยะนึงแล้วพบว่า เนื้อหาค่อนข้างกว้างมากๆ ผิดจาก cert รุ่นก่อนๆ ที่จะแยกลงลึกในแต่ละส่วนเลย ทำให้ผู้ศึกษาต้องเหนื่อยกว่าปกติ (อารมณ์คล้ายการสอบ Ent เพราะเนื้อหากว้าง แต่ถามอย่างล่ะนิด) ไม่เหมาะกับผู้เริ่มต้นหรือไม่มีประสบการณ์จริงๆ เนื้อหาที่ว่าจะครอบคลุมตั้งแต่ Type, Collection, Interface, Thread, Cryptography, I/O, Confuguration, Security, Interoperation, Reflection ฯลฯ ซึ่งจะต้องได้รู้จัก Library ต่างๆ มากมาย รายละเอียดดังนี้

1. Developing application that use system types and collections (ออกสอบ 15%)
รู้จัก Value types, Reference types, Generic types, Attribute, Exception Classes, Boxing, Unboxing, TypeForwardTo Attribute Class, Events, Delegates และสามารถประยุกต์ใช้ Collection และ Generic collections ได้ เช่น อาเรย์, คิว, แฮช, สแตก ฯลฯ ในวัตถุประสงค์ที่ 1 นี้ ค่อนข้างจะต้องใช้ความรู้เรื่อง data structures และองค์ประกอบของ framework พอสมควร

class ที่เกี่ยวข้อง เช่น ArrayList, Hashtable, Dictionary, Queue, SortedList, Stack เป็นต้น
Interface เช่น IComparable, IConvertable, IFormattable, IDisposable เป็นต้น

2. Implement services processes, threading, and application domains in a .NET Framework application (ออกสอบ 11%)
สามารถพัฒนา ติดตั้ง และควบคุม application แบบ service ได้, สามารถสร้าง application แบบ MultiThread ได้, สามารถสร้าง ปิด ปรับแต่ง Application Domain ได้ วัตถุประสงค์ที่ 2 นี้ ในสมัยเรียน OS ถ้าใครจำเรื่อง multiprogramming พวก Semaphore, Dining Philosopher problem ก็คงจะเข้าใจเรื่อง Thread ได้ดี ส่วนเรื่อง service application กับ application domain นั้น ถ้าได้ลองทำแล้ว น่าจะเข้าใจได้ดีกว่าอ่านหนังสืออย่างเดียว เพราะไม่เห็นภาพ

class ที่เกี่ยวข้อง เช่น ServiceBase , ServiceController, ServiceInstaller, Thread, ThreadPool, ThreadExceptionEventArgs, ReaderWriterLock, EventWaitHandle, Interlocked, ExecutionContext, Monitor, Mutex และ Semaphore เป็นต้น

3. Embedding configuration, diagnostic, management, and installation features into a .NET Framework application (ออกสอบ 14%)
มีความรู้เกี่ยวกับการทำ Configuration management, .NET framework installer ได้ สามารถใช้เครื่องมือและจัดการ Event log, System processes, Performance monitoring, Debugging and tracing ได้

class ที่เกี่ยวข้อง เช่น Configuration, ConfigurationManagement, Installer, AssemblyInstaller, ComponentInstaller, ManageInstallerClass, InstallContext, PerformanceCounter, StackTrace, Debug, Debugger, Trace, CorrelationManager, TraceListener, TraceSource, EventLogTraceListener เป็นต้น

4. Implementing serialization and input/output functionality in a .NET Framework application (ออกสอบ 18%)
สามารถทำการแปลง (serialize) object ให้เป็น steam ในรูปแบบ xml หรือ binary และแปลงกลับได้ สามารถเข้าถึงและจัดการ file และ directory รวมทั้งการบีบอัด (compress) หรือคลาย (decompress) และภายใต้ระบบ Isolated Storage ได้ วัตถุประสงค์ที่ 4 นี้ ควรเรียนรู้ไว้มากๆ เพราะได้มีโอกาสใช้ในหลายสถานการณ์ โดยเฉพาะเรื่องไฟล์ ส่วนการทำ serailyze นั้น อาจจะได้ใช้ในกรณีที่มีการรับส่ง object ทั้งตัวข้ามเครือข่าย โดยมากในการใช้งาน web services

class ที่เกี่ยวข้อง เช่น SerializationInfo, ObjectManager, Formatter, XmlSerializer, SoapFormatter, BinaryFormatter, File, Directory, Drive, FileSystemInfo, Path, ErrorEventArgs, ErrorEventHandler, FileStream, Stream, MemoryStream, BufferedStream, StringReader, StringWriter, TextReader, TextWriter, StreamReader, StreamWriter , BinaryReader , BinaryWriter, IsolatedStorageFile, IsolatedStorageFileStream, DeflateStream, GZipStream เป็นต้น

5. Improving the security of the .NET Framework applications by using the .NET Framework 2.0 security features (ออกสอบ 20%)
รู้จัก Code Access Security ที่ใช้ในการควบคุมสิทธิ์ในการจัดการแอพพลิเคชั่น สามารถใช้เครื่องมือ Code Access Security Policy (Caspol.exe) ได้ สามารถเ้ข้ารหัส ถอดรหัส ด้วย cryptography algorithms แบบต่างๆ ได้ วัตถุประสงค์ที่ 5 เกี่ยวกับเรื่อง secuirity ล้วนๆ และต้องยอมรับว่าบทนี้ คงจะเข้าใจลึกซึ่งลำบาก เพราะอย่างเรื่อง encrypt/decrypt นั้น ตอนเรียนวิชา computer security เรียนแค่ไม่กี่ algorithm ยังรู้สึกว่าเยอะแล้ว แต่นี่บางตัวไม่เคยได้ยินเลยด้วยซ้ำ (ฮ่วย!) ส่วนเรื่องเกี่ยวกับสิทธินั้น ก็จำเป็นต้องรู้เรื่องด้าน network management มาหน่อย เช่น directory, zone, Access Control List (ACL) เป็นต้น

class ที่เกี่ยวข้อง เช่น SecurityManager, CodeAccessPermission, PermissionSet, DirectorySecurity, FileSecurity, FileSystemSecurity, RegistrySecurity, AccessRule, AuthorizationRule, CommonAce, CommonAcl, AuditRule, MutexSecurity, ObjectSecurity, SemaphoreSecurity, DES, HashAlgorithm, DSA, SHA1, MD5, RSA, RandomNumberGenerator, CryptoStream , RC2, RijndaelManaged, HMACMD5, SecurityPermission, PrincipalPermission, FileIOPermission, RegistryPermission, ApplicationSecurityInfo, ApplicationTrust, Evidence, AllMembershipCondition, ApplicationDirectory, Url, Zone, GenericIdentity, WindowsIdentity เป็นต้น

6. Implementing interoperability, reflection, and mailing functionality in a .NET Framework application (ออกสอบ 11%)
สามารถสร้าง COM Component และ compile, deploy interop บน applicationได้ สามารถเรียกใช้ DLL แบบ unmanaged (คือ DLL ที่ไม่ได้สร้างบน .NET Framework) ได้ สามารถใช้ความสามารถ Reflection สร้าง metadata กับไฟล์ Portable Executable (PE) ได้ สามรถส่ง e-mail ผ่าน SMTP ได้

class ที่เกี่ยวข้อง เช่น DllImportAttribute, Assembly, ConstructorInfo, MethodInfo MemberInfo class, LocalVariableInfo, AssemblyBuilder, EnumBuilder, EventBuilder, ParameterBuilder, MailMessage, MailAddress, SmtpClient, SmtpPermission, Attachment, SmtpException, LinkedResource, AlternateView เป็นต้น

7. Implementing globalization, drawing, and text manipulation functionality in a .NET Framework application (ออกสอบ 11%)
สามารถสร้างภาพ 2 มิติ ตัวอักษร จัดการชนิดรูปภาพได้ สามารถสร้าง ควบคุม แปลงและค้นหาข้อความ รวมทั้ง encode และ decode ข้อความในรหัสภาษาต่างๆ ได้

class ที่เกี่ยวข้อง เช่น CultureInfo, RegionInfo, DateTimeFormatInfo, NumberFormatInfo, CompareInfo, CultureAndRegionInfoBuilder, Brush, Pen , Color structure, ColorConverter, StringFormat, Font, Graphics, Image, Bitmap, Icon, Point Structure, Rectangle Structure, Size Structure, StringBuilder, Encoding, ASCIIEncoding, UnicodeEncoding, UTF8Encoding, Decoder เป็นต้น

สรุป
เป็นไงบ้างครับ รู้สึกไหมครับว่าเนื้อหากว้างจริงๆ ส่วนใหญ่ก็เน้นที่ใช้ class ต่างๆ เป็น ซึ่งเท่าที่ศึกษาพบว่า ถ้าเคยใช้มาก่อนจะทำให้เข้าใจเนื้อหาได้ดีและเร็วกว่า แบบอ่านสอบอย่างเดียว เพราะจำยากครับ ถ้าเป็น Cert รุ่นก่อนหน้านี้ก็ยังไม่พอจำไหว แต่นี้เยอะไปครับ อ๋อ ลืมแนะนำหนังสือเตรียมสอบด้วยตัวเองไปครับ ปกหนังสือก็คือรูปข้างบนที่ผมเอามาให้ดูครับเล่มละ 2,xxx บาท ผมซื้อที่ร้าน IT Book House ครับ (่ร้านนี้มีตามห้าง IT ครับ เช่น ฟอร์จูน, เซียร์, ไอทีสแควร์, ฟิวเจอร์ ฯลฯ) ถ้ามีบัตรสมาชิก MSDN ก็ลดราคาได้อีกนะครับ หนังสือหนาและหนักดีครับ มีประมาณ 1,000 หน้า ขนาดว่าพันหน้า ผมยังว่าไม่ละเอียดเท่าไหร่ครับ ต้องค้นคว้าเพิ่มเติมอีกจึงจะเข้าใจดี (ไม่อยากให้คนอื่นมาว่า อ่านข้อสอบไปสอบอย่างเดียว หรือประมาณว่าได้ cert มาเก่งไม่สมใบรับรอง) เอาเป็นว่ามันก็ไม่ยากไป และไม่ง่ายไปครับ อาศัยความขยันครับ (คนส่วนใหญ่บอกว่าที่ไม่ได้สอบ cert เพราะไม่มีเวลา - ก็ดีครับ มีเวลาให้บริษัท ไม่มีเวลาพัฒนาตัวเอง - (ประชดซะงั้น)) เอาเป็นว่ามาร่วมเดินทางไปพร้อมกับผมดีกว่านะครับ เป็นกำลังใจให้กันและกันเองครับ

แหล่งข้อมูล :
Preparation Guide for Exam 70-536

Related Post