แสดงบทความที่มีป้ายกำกับ ซอฟ์แวร์ แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ ซอฟ์แวร์ แสดงบทความทั้งหมด

วันพุธที่ 16 กรกฎาคม พ.ศ. 2557

โอกาสฟื้นฟู ของ PC

ตอนนี้เราปฏิเสธกันไม่ได้เลยว่า ปัจจุบันได้เข้าสู่ ยุคหลัง PC เรียบร้อยแล้ว แต่ละคนเริ่มมีคอมพิวเตอร์พกพาส่วนตัวกันมากขึ้น ไม่ว่าจะเป็น Tablet, Smartphone และกำลังจะเข้าสู่ยุค Smart Wearable กันอีกด้วย เจ้า Smart Wearable  เดี๋ยววก็เริ่มกำลังมาแล้ว พร้อมกับได้แรงผลักดันจาก ค่าย IT ต่างๆโดย เฉพาะ google กับ Samsung แต่ว่าไม่ใช่แค่นั้น ปัจจุบันเนื่องด้วยเทคโนโลยีมันไปไกลขึ้น Smart Wearable เป็นแค่ส่วนหนึ่งเท่านั้นเอง มันยังไม่จบแค่นี้หรอก แต่วันนี้ไม่ได้มาพูดเรื่องนี้ครับ ผมจะพูดถึงโอกาสของ PC ที่มีแนวโน้มจะดีขึ้นเนื่องด้วยปัจจัยเสริมดังนี้
1) การเปลี่ยนผ่านของ Windows Xp ไป 7 ซึ่งแน่นอนว่า ไมโครซอฟท์เองก็เพิ่งประกาศไปไม่นานว่า อีกไม่ช้าก็จะเลิกสนับสนุน Windows 7 เช่นกัน (แต่คงนานกว่า XP แน่นอน) ทำให้หลายบริษัทเริ่มเปลี่ยนถ่ายจาก XP มา 7 หรือ 8 ซึ่ง การเปลี่ยนตรงนี้ ทำให้ยอดขายของ PC พวก NB กลับมามากขึ้น
2) Windows 9 ปัจจยันี้จะเป้นปัจจัยนึงที่คนจะกลับมาซื้อ NB หรือ PC มากขึ้นเพราะว่าหลายคนเองก็รอความสมบูรณ์ของ Windows ที่ออกมา ล่าสุดก็ได้มีหน้าจอออกมาบ้างแล้วแต่ว่ายังคงแค่หลุดเท่านั้น แต่หลายคนก็ให้ความสนใจกับมันมากทีเดียว
3) จุดอิ่มตัวของ Smart Device อุปกรณ์จำพวก BYOD นั้น มีความสะดวกในการพกพาและให้ความบันเทิงแต่จุดอ่อนของพวกนี้ยังแก้ไม่ได้นั่นคือ พวก Performance และความสามารถในการทำงาน หลายๆคนยังคงใช้ Linux หรือ Windows ควบคู่กันไปเสมอ ฉะนั้นเราจึงเห็น หลายๆเจ้าพยายามจะเกทับเอา Tablet จอใหญ่ๆออกมาเพื่อให้ทดแทนการทำงานอย่างสมบูรณ์แบบ แต่ก็ยังทำไม่ได้ด้วยข้อจำกัดทางเทคโนโลยีที่เกิดกับปัจจุบัน(ตรงนี้ผมคาดว่าเทคโนโลยีคงจะพร้อมในอีก 4 ปีข้างหน้า แ่ต่ Tablet จะอยู่รึเปล่าอีกเรื่องนะครับ) Smart Device จุดแข็งคือสะพวกพกพาและบันเทิง แต่คณะเดียวกันมันยากต่อการจัดการกับองค์กร โดยเฉพาะการทำงานบนองค์กรถ้า Device มันหลากหลายจนเกินไป องค์กรทั้งหลายก็กังวลว่ามันอาจจะทำให้เกิดข้อมูลรั่วไหลโดยง่ายไดด้  จึงยังคงไม่อยากเปลี่ยนจาก Windows,PC ไปเป้นอย่างอื่นมากนัก ประกอบกับ การทำงานหลายๆอย่าง เช่นการ ตัดต่อวีดีโอ การพัฒนา Software หรือ การทำกราฟฟิกดีไซน์ การทำงานที่แท้จริงที่อาศัย Performance หนักๆ ยังคงทำไมไ่ด้จึงจำเป็นจะต้องใ้ช PC ต่อไป
4) ด้วยปัจจัยข้างต้น 3 ทางประกอบกัน มันบรรจบกับการเปลี่ยนถ่ายเทคโนโลยีพอดี ซึ่งทางเลือกของผู้บริโภคจึงจำเป็นจะต้องซื้อคอมเครื่องใหม่

จากที่ได้กล่าวมาข้างต้นเป็นการวิเคราะห์จากสภาพแนวโน้มของตลาดที่เกิดขึ้นนะครับ แต่ว่า PC มีโอกาสฟื้นตัว แต่ครั้งนี้จะได้ไม้ตายเด็ดขาด ควรจะมีเกี่ยวกับ Smart Home เข้ามาจัดการด้วย ถ้าสามารถใช้ Smart Home Client-Server ที่เซ็ด Admin ให้ได้พร้อมกับมี Cortana ที่สื่อสารระหว่าง Client-server ด้วย จะดีมาก โดยสั่งการผ่าน Smart Phone ให้ Server Cortana จัดการละก็จะ Perfect ไปเลย
ทีนี้มาขอเสนอแนวทางที่ PC ควรจะมีเสริมเข้าไปในเส้นทางตรงนี้บ้าง
1) ควรจะมีการเพิ่ม Feature เกี่ยวกับ AI อย่าง Cortana ให้มีหลากหลายภาษาและบทบาทในการใช้ในชีวิตประจำวันมากขึ้น เช่น การสั่งงานทางด้านบันเทิง ที่เป็น Home Service เข้าไปด้วย
2) ขยาย API ให้ครอบคลุมมากยิ่งขึ้น โดย ครอบคลุมการ OCR และ ฟีเจอร์เสียงเข้าไปด้วย เพื่อล่อให้นักพัฒนาหันมาสนใจทำ Native อีกครั้ง
3) 3G-4G-5G ต้องให้ความสนใจมากขึ้นกว่านี้ อุปกรณ์หลายตัว ของ Windows, PC ไม่สามารถติตด่อกับ 3G ได้ มันทำให้ไม่เข้ากับยุคปปัจจุบันที่อินเตอร์เน็ตครอบคลุมทั่วโลกไปเรียบร้อยแล้ว
4) ใช้โอกาสนี้ ปิดสิ่งที่ไม่จำเป็นลง ยกตัวอย่างเช่น แฟลชหันไปสนับสนุน Native เต็มตัวซะพร้อมกับหนุน  ปล่อย Office ให้ฟรีเป็นฟีเจอร์หลักไ จะช่วยให้ดึงดูดผู้ลงทุนมากขึ้น เพราะนักพัฒนามา ผู้ลงทุนมาผู้ใช้ก็จะกลับมาด้วย
5) มีความเป็นตัวเองให้มากขึ้น นั่นคือ ขยาย Platform ได้แต่จงอย่า พยายามผลักดันให้ Platform อื่นมาเสียบของตัวเอง เพราะนั่นคือการทำให้ Developer ไม่ให้ความสำคัญของตัวเองทันที ควรทำ Service ขึ้นมาแทน นั่นคือการแปลง App อย่างสมบูรณ์ เพื่อให้ สามารถพัฒนาทีเดียวไปได้หลาย Platform แต่อาจจะมีพิเศษที่ถ้าเป็น C# อาจจะมีความสามารถในการเข้าถึงฐานข้อมูลที่เร็วกกว่า Platform อื่นเป็นต้น
6) ใส่ใจกับองค์กร ขยายตลาดองค์กรไม่เน้นที่การบริการองค์กรอย่างเดียวแต่ควรจะหันไปจับมือกับ Adobe เต็มตัวได้แล้ว หากสามารถทำได้ Photoshop & Office ราคาถูก จะทำให้ยอดขายกัลบัมาได้
7) Tools ราคาไม่แพงเกินไป ปัญหานี้สำคัญมากเพราะอย่าลืม Eclipse ถูกจนไร้ราคาแต่ VSD แพงมากจนไม่รู้จะพูดไง ควรทำ Tool Development VSD เวอร์ชั่น Basic ที่มีฟีเจอร์ให้ใกล้เคียงกับ Pro เพื่อให้นักพัฒนาทั้งถูกกฎหมายและผิดกฎหมายกลับมาใช้งานให้ได้ก่อน

นายไอที (IT)

วันพฤหัสบดีที่ 12 มิถุนายน พ.ศ. 2557

IT & Smart Service

ไม่มีใครปฏิเสธได้ว่า IT กับการบริการนั้นเป็นของคู่กัน โดยตลอด การบริการที่เมื่อก่อนใช้คนทำ เมื่อประยุกต์กับระบบ  IT เข้ามาก็ทำให้สะดวกขึ้น และเมื่อมี Smart Device เข้ามาก็กลายเป็น IT เข้าถึงคนมากขึ้น เมื่อ Smart Device รวมกับ Service ก็กลายเป็น Smart Service

Smart Service คือ App ที่เป็นบริการเข้าถึงคนทั่วไป โดยหัวคิดนั้นประยุกต์ ระหว่าง IT กับ Business อย่างแท้จริง ปัจจุบันที่เห็นได้ชัดคือ Uber App บริการแท๊กซี่ที่ ประยุกต์การธูรกิจกับ Service IT อย่างเห็นได้ชัด กลยุทธ์ที่น่าสนใจ ผมขอวิเคราะห์จุดแข็งของ Uber ให้ฟังดังนี้นะครับ
1) Taxi ที่หรูหรา ปัจจุบัน Taxi จะเป็นรถทั่วไปเท่านั้น น้อยนักที่จะมี Taxi หรูหราอย่าง Benz หรือ Camry ที่ขึ้นชื่อว่าหรูหรา ให้ใช้
2) App Uber ที่ครอบคลุมบริการ Uber ได้ประยุกต์ฺ Service เข้ากับ IT อย่างแท้จริง ทำให้เข้าถึงผู้คนได้มากขึ้น ความจริงสิ่งนี้ไม่ใช่สิ่งใหม่ที่เป็นไปไม่ได้ แต่ว่า คนมักมองไม่เห็น แต่ Uber มองเห็นทำให้เกิดธุรกิจขนาดใหญ่ขึ้นมาทันที เรียกว่าเข้าถึงกว่าได้เปรียบไป
3) Taxi  ขาดการพัฒนาอย่างรุนแรงเพราะ ไม่เคยเข้าถึง IT มาประยุกต์เลย เป็นระบบ manual ตลอด พอเจองานนี้ กลายเป็นสิ่งที่น่ากลัวกับ Taxi ทั่วไปเลยทีเดียว

เบื้องต้นคือสิ่งที่เห็นนะครับ แต่สิ่งสำคัญของการใช้ IT เข้ามาประยุกต์ครั้งอยากให้เล็งเห็นถึง "โอกาส" ครับ
ช่องว่าง IT กับ Service ยังมีอีกมาก เพราะบางอย่างเราทำกันมานานจน คิดว่ามันปกติและมองข้ามไป อย่างเรื่อง Taxi นี้เป็นต้น ลองคิดดูว่า ถ้าเกิดหลายๆอย่างนำ IT+Service เข้ามาละครับ ยกตัวอย่างเช่น สิ่งที่น่าจะทำคือการ ทำ Delivery + IT คิดว่าถ้า KFC หรือร้านอาหาร เกิดใหม่เกิดเปิดโอกาสให้มี Delivery แบบ Online เหมือน Taxi ผ่าน App ล่ะ บางที KFC หรือ พิซซ่าอาจจะพบคู่แข่งที่ไม่คาดคิดก็ได้ อย่าลืมว่าเมืองไทยเมืองร้อน หลายๆคน ไม่อยากจะออกจากบ้านเพราะร้อนมาก ข้อนีอาจจะทำให้เกิดธุรกิจ Delivery ขึ้นมาได้ครับ

IT & Business

วันศุกร์ที่ 6 มิถุนายน พ.ศ. 2557

Test ใครว่าไม่สำคัญ

คงไม่มีโปรแกรมเมอร์มืออาชีพคนไหน ไม่เคยเจอปัญหาบั๊คและ Error หน้างานแน่นอนและที่ตามมาจาก User เมื่อเห็นเราแก้หน้างานก็คือการเพิ่มสโครปงานให้เราสิ่งนี้ เป็นสิ่งที่โปรแกรมเมอร์ทุกคนต่างก็ปวดหัวมานักต่อนัก เรามาไล่กันว่าปัญหามันเกิดจากอะไร

ขั้นตอนการทำงานของการพัฒนาซอฟท์แวร์ทั่วไปคือ
1) การหาลูกค้าที่ต้องการ Software นี่คือขั้นตอนแรกของการพัฒนาซอฟท์แวร์ โดยการหาลูกค้าคือสิ่งสำคัญที่สุดเพื่อจะให้มีคนใช้โปรแกรมของเรา
2) การตกลงขอบเขตของงาน ให้ชัดเจน ข้อนี้คือขั้นตอนต่อมาหลังจากที่เราได้ลูกค้าแล้วเราก็ต้องมีการตกลงขอบเขตของงานให้ชัดเจน ขั้นตอนนี้สำคัญมาก เพราะการไม่ชัดเจนของขอบเขตไม่ว่าจะเป็นหน้าจอหรือ ฟังก์ชันการทำงาน ล้วนแล้วแต่ทำให้เกิดปัญหาตามมาทั้งสิ้น และทำให้งบประมาณบานปลายไม่ว่าจะเป็นเวลาหรือเงิน
3) ดำเนินการออกแบบหน้าจอและ UI ขั้นตอนนี้คือขั้นตอนที่เราจะต้องทำการออกแบบและตกลงหน้าจอกับลูกค้าว่าเราจะมีการทำหน้าจอขนาดนี้ ลักษณะอย่างนี้ให้ลูกค้ารับทราบเพื่อให้สนองต่อความต้องการของลูกค้าอย่างถูกต้อง ขั้นตอนนี้สำคัญที่สุดคือจำเป็นจะต้องมีการเซ็นสัญญาทุกครั้งไม่ใช่ตกลงปากปล่าวเด็ดขาด
4) ดำเนินการพัฒนา ขั้นตอนนี้คือการลงมือพัฒนาซอฟท์แวร์ การพัฒนาซอฟท์แวร์นั้น จะต้องพัฒนาสอ่งอย่างคือซอฟท์แวร์และเอกสารในการดำเนินการพัฒนาซึ่ง ถ้าในทางปฏิบัติจะมีตัว Code และ SDD,SRS เอกสารสามอย่างจะออกมาในขั้นตอนนี้
5)  Test ขั้นตอนที่สำคัญหลังพฒนา ขั้นตอนนี้สำคัญที่สุด หลังจากพัฒนาซอฟท์แวร์เพราะเมื่อทำเรียบร้อยแล้ว Test จะต้องพยายามหาจุดผิดพลาดและข้อบกพร่องออกมาให้ได้  เพื่อให้การไปพรีเซนกับลูกค้านั้นผ่านราบรื่น และสร้างความเชื่อมั่นกับลูกค้า โดยการเทสจะมีสองขั้นตอนคือ เทสภายใน(Internal Test) และลูกค้าเทส(UAT) การเทสที่ดีจะต้องมีทีมเทสและการกะระยะเวลาในการแก้บั๊คที่อย่างน้อย 1 เดือน เพื่อการันตีความชัวร์
5) Deploy ขั้นตอนในการสร้างตัว Setup ให้พร้อมใช้งาน ขั้นตอนนี้ต้องผ่านการเทสให้เรียบร้อยก่อน จึงจะสามารถทำได้ เพราะนี่คือขั้นตอนก่อนที่จะส่งมอบโปรแกรมให้กับลูกค้าแล้ว
6) Lunch คือการส่งมอบโปรแกรมให้กับลูกค้า ขั้นตอนนี้เราก็เก็บเงินครบเรียบร้อยที่เหลือก็จะเป็น MA

เป็นการสิ้นสุดการพัฒนาโปรแกรม สำหรับการพัฒนาโปรแกรม แต่ละขั้นตอนล้วนแต่สำคัญทั้งนั้น แต่ส่วนใหญ่จะมีปัญหาที่พบคือ
1) การขยายสโครปงาน ซึ่งข้อนี้จะพบเมื่อเข้าพบลูกค้าบ่อยๆกลายเป็นการขยายโสครปงานเองอัตโนมัติ
2) ทำงานไม่ถูกกับที่ความต้องการลูกค้า สืบเนื่องจากเมื่อเราทำงานแล้วพบลูกค้าเก็บความต้องการมาแต่ว่า ไม่การันตีก่อนว่าถูกต้องหรือไม่
3) บั๊คหน้างาน งานนี้ใหญ่มาก เพราะมันบั่นทอนความรู้สึกมาก การแก้ไขปัญหาหน้างานเป็นสิ่งที่ควรหลีกเลียงมากที่สุดเพราะมันแสดงถึงความเชื่อมั่นในระบบและประสิทธิภาพของบริษัทเลยทีเดียว สิ่งที่ควรมีคือเทสสคริป์ให้ชัดเจน ควรจะมีอย่างมาก เทสให้ดีจะได้ไม่เกิดขึ้นหรือเกิดให้น้อยที่สุด

วันพุธที่ 4 มิถุนายน พ.ศ. 2557

ราชาทวงบัลลังค์(แผ่นดิน Smartphone คือของข้า Apple)

ในงาน WWCD แอปเปิ้ลเปิดตัว IOS8 ไม้ตายเด็ดๆมายมาย โดยจะเห้นหนทางแห่งการเปิดนวัตกรรมใหม่ นั่นคือการเปิดภาษาใหม่ ที่เรียกว่า "Swift" การเอาใจคนใช้ Mac & IOS ด้วย ฟีเจอร์ Extesibility เพื่อให้การทำงานไม่ขาดช่วง ไร้รอยต่อระหว่าง Smartphone และ MAC มากยิ่งขึ้น  และยังมีหมัดเด็ด สองหมัดที่เห็นชัดคือ การบุกตลาด Home User ด้วยการเปิดตัว HomeKit ชุดควบคุมบ้านที่จริงๆ แล้วก็ไม่ใช่สิ่งหน้าตกใจอะไรเพราะ เทคโนโลยีมันก็มีแววมาถึงขนาดนี้ตั้งแต่แรกแล้ว แต่มันน่าสนใจตรงนี้อยู่แล้ว อีกอย่างคือการบุกตลาด สุขภาพ ที่การแข่งขันยังไม่รุนแรง แสดงให้เห็นถึงแนวทางการบุกเบิกยุคใหม่ของ Apple แน่นอนว่า การทำครั้งนี้ไม่มีนวัตกรรมอะไรน่าสนใจ แต่ว่า ที่น่าสนใจคือ การเขย่าและท้าทาย Android อย่างเห็นได้ชัด การเพิ่มฟีเจอร์มากมายใน iOS8 มันเริ่มทัน Android ที่เป็นราคาครองบัลลงค์สมาร์ทโฟนขึ้นมาแล้ว แต่ว่าการทำเช่นนี้ ก็มีผลเสียมากเลยสำหรั Apple เพราะอะไร?
1) ทุกสิ่งที่เปิดตัวมา จำเป็นจะต้องขอความร่วมมือจาก Developer และ Pathner จำนวนมาก แต่ Apple ค่อนข้างมีจุดแข็งด้านนี้พอสมควร
2) ทุกสิ่งที่ Apple เเปิดมา นอกจาก Swift ที่เป็นภาษาใหม่ ล้วนแต่มีคนทำแล้วทั้งสิ้น บน Android ฉะนั้น Apple ต้องทำการบ้านในการหา Pathner อีกมาก
3) Swift ยังหาความน่าเชื่อถือยาก เพราะต้องให้ระยะเวลาเป็นตัวทดสอบ
4) ทุกอย่างต้องใช้เงินทุนมหาศาล เพราะแนวทางมันเหมือนการบุกเบิกใหม่เลยทีเดียว


แค่นี้ก็พอเห็นบ้างแล้วใช่ไหมครับทีนี้มาดูหนทางที่ Apple พยายามบุกบ้าง
อย่างตามหัวข้อครับ ราชาทวงบัลลังค์ การเปิดตัว iOS8 คราวนี้ Apple ได้ทำการอัพเดตฟีเจอร์ต่างๆที่ยังขาด ให้ทันกับ Android ด้วย "ตนเอง" การทำแบบนี้ แสดงให้เห็นถึงความไม่ยอมลดละที่จะทวงบัลลังค์คืนของ Apple เลย พร้อมกับแนวทางในการกรุยทางเปิดตัวภาษาใหม่ และชุด HomeKit & Health แสดงให้เห็นว่า Apple กำลังพยายามทำตัว ให้เป็นพี่ใหญ่โดยการสร้างทุกอย่างด้วยตนเอง และให้คนเข้ามาใช้ และถ้าเห็นข่าวพักนี้ Apple จะไม่มีพันธมิตรแต่จะซื้อเอาเลย มันเป็นสัญญาณบอกเหตุว่า "กำลังสะสมกำลัง" เพื่อเอาคืน แต่ว่า Apple คงต้องระวังมากขึ้น เนื่องจากว่าคู่แข่งของทาง Android นั้นมีจุดแข็งที่พันธมิตรจำนวนมากทำให้งบประมาณด้านนี้ แทบจะไม่มีเลยมุ่งเน้น ทางด้านทางด้าน SDK อย่างเดียว และประชาสัมพันธ์จำนวนมากก็จะสามารถทำได้ระดับเดียวกับ apple เช่นกัน การได้เปรียบเสียเปรียบ Apple ยังคงเป็นรองอยู่อาจจะเป็นพราะระบบปิดของ Apple เองที่ทำให้จำเป็นจะต้องซื้อ และพัฒนาเอง ขณะที่ Android เป็น Open จึงไม่ต้องคำนึงด้านนี้ ขอเพียงเป็นประโยชน์ต่อ Android ไม่ว่าใครก็ยินดีทั้งนั้น
ศึกนี้ยังคงต้องจับตาดูต่อไป Apple จะทวงบัลลังค์ได้คงต้องหาวิธีไม้ตายฆ่าแม่ทัพฝั่งศัตรูให้ได้ หรือหาวิธีตัดแขนขา แย่ง Pathner เพื่อให้ความกดดันอยู่ในฝั่ง Google บ้างแต่ดูท่าที่แล้ว ถ้า Apple ยังไล่ซื้อเรื่อยไป บางทีอาจจะยากกว่าที่คิดเพราะการทำพวกนี้จำเป็นจะต้องทุ่มงบประมาณจำนวนมหาศาล ซึ่งถ้าทำไม่ได้ดีอาจจะถึงกาลอวสานได้เลยทีเดียว

วันศุกร์ที่ 30 พฤษภาคม พ.ศ. 2557

ASP.NET MVC ตอน 2 Entity Framework และเครื่องมือ

สำหรับการพัฒนาเว็บไซต์ด้วย Asp.net MVC ได้มีการพัฒนากันมาตัั้งแต่ VISUAL STUDIO 2008 Service Pack 1 ตอนนั้นเครื่องมือยังไม่พร้อมมากมาย แต่ ณ ปัจจุบัน MVC ได้เดินทางมาถึง Visual Studio 2013 เรียบร้อยแล้ว  แล้วมันมีข้อแตกต่างจาก MVC2,3และ4 ยังไงล่ะ? คำถามนี้น่าสนใจมาก ก่อนอื่นขอแนะนำเครื่องมือสำคัญในการพัฒนากันก่อน

1) Visual Studio แนะนำควรใช้ตั้งแต่ Version 2010 ขึ้นไป เพราะอะไร? สาเหตุเพราะการเปลี่ยน Visual Studio แต่ละ Version จะมีปัญหาเกี่ยวกับ Solution เล็กน้อย และเวอร์ชั่นต่ำมักประสบปัญหาในการเปิดเข้าไปเวอร์ชั่นสูงกว่า นอกจากนี้ เวอร์ชั่นใหม่ๆ ยังมมี Tool ให้เพียบพร้อมกับว่า ยกตัวอย่างเช่น Visual Studio 2012 Update ล่าสุด ที่มี ฟังก์ชัน ASP.NET WEP API2  ที่มีการจัดการโค้ดและรูปแบบที่ดีกว่า WEP API 1 ลดความยุ่งยากและซับซ้อนลง ซึ่งจากที่เคยลองทำใน 2 เวอรชั่นโดยส้รางใน Visual Studio 2010 และ Visual Studio 2012 พบว่า Visual Studio 2012 มีการทำงานง่ายและจัดการได้ง่ายกว่า รวมทั้ง ASP.NET MVC4 นั้น ยังมีการผนวก JQuery และ Tools Routing ที่เร็วขึ้นกว่าเดิม  (แต่หากใครใช้ MVC4 แนะนำข้ามไป 2013 เลยครับเพราะ 2012 ยังไม่พร้อมกับ MVC4 ครับ)

Visual Studio 2008
Credit : http://blogs.msdn.com/blogfiles/jasonlan/WindowsLiveWriter/VisualStudio2008Beta2nowavailable_2D47/image.png

Visual Studio 2010

Credit : http://www.christiano.ch/wordpress/wp-content/uploads/2010/04/Logo_Visual_Studio_2010.jpg

Visual Studio 2012 
Credit :http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-components-imagefileviewer/communityserver-blogs-components-weblogfiles-00-00-01-35-09/4784.VS2012-NEW-logo.PNG_2D00_550x0.png

Visual Studio 2013
Credit :http://agafonovslava.com/image.axd?picture=%2F2013%2F07%2FVisual+Studio+2013.png


2) Entity Framework  สำหรับ Entity Framework คือ Tools ในการจัดการ ORM(Oreited Relational Mapping) อธิบายง่ายๆว่ามันคือเครื่องมือในการจัดการ Query จากฐานข้อมูลให้อยู่ในรุปแบบของ Object ตามรูปแบบของภาษาต่างๆ เช่น C#, VB.net แทนเราโดยที่เรา ไม่จำเป็นต้องไปเรียนรู้คำสั่ง SQL ไม่ว่าจะเป็น Select, Insert, Update, Delete เลย แล้วทำไมต้องเป็น Entity Framework ทั้งที่มีตัวอื่นมากมาย?  คำตอบนี้ผมขอตอบดังนี้

  1. เพราะไมโครซอฟท์ซัพพอร์ตกับ Entity Framework ข้อนี้ชัดเจนครับ ผมเลือกเพราะว่าไมโครซอฟท์ซัพพอร์ต อาจจะเป็นคำตอบแบบกำปั้นทุบดิน แต่ขอบอกเลย เหตุผลคือมันไม่มีแพให้แน่นอน มันยังได้ไปต่อนั่นเอง
  2. Entity Framework เหมาะกับการทำงานแบบเป็นทีมในการพัฒนามากกว่า ทำให้การทำงานเป็นทีมในการ Maintenance Database เป็นเรื่องง่ายๆ สามารถจัดการได้ด้วยตัวคนเดียวและการเขียนโค้ดก็ลดน้อยลง จากประสบการณ์ผม ใช้แบบ Database -> Object และทำงานเป็นทีม หลายๆคน ผมพบว่า พอมี Tool เข้ามาช่วย ทำให้ Team Lead ทำงานได้ง่ายขึ้น น้องๆในทีมทักมา เราแก้ไขอย่างรวดเร็วในฐานข้อมูล จากนั้นบอกน้องๆ ให้ Update Entity Framework เพื่อแก้ไขปัญหาที่ การอัพเดตก็ง่ายนิดเดียวไม่ต้องพึ่งโค้ดแม้แต่น้อย ทำให้การทำงานเป็นหนึ่งเดียวได้ง่ายขึ้น จัดการปัญหาได้เร็ว กว่าการใช้ SQL ปกติ
  3. ลดปัญหา เกี่ยวกับ Syntax SQL Error ได้มากเช่น การจัดการกับ NullValue ที่เป็นปัญหาพื้นๆ แต่มักจะถูกละเลยได้ง่ายๆ
รูปภาพตัวอย่างการใช้ Entity Framework

แค่ 3 เหตุผลเบื้องต้นก็เพียงพอสำหรับการที่ผมจะเลือกมาใช้ในการทำงานแล้วครับ
ทีนี้ในการเขียน MVC จำเป็นจะต้องใช้แต่ Entity Framework หรือไม่? คำตอบคือไม่จำเป็นครับ Entity Framework เป็นแค่ Tool ตัวนึงครับ เราสามารถจัดการตัวอื่นได้ แต่ Solution ที่ผมใช้และง่ายจริงๆคือ การใช้ การพัฒนาด้วย ASP.NET + ENTITY FRAMEWORK + SVN (tortoise) ทำให้การพัฒนาซอฟท์แวร์ สำหรับ Develooper สะดวกขึ้น และแก้ปัญหาได้เร็วขึ้น ถึง 20% ครับ

วิธีการใช้ Entity Framework เบื้องต้น
1. เปิดโปรเจคที่ต้องการใช้
2. คลิ๊กขวาที่ Solution Explorer เลือก Add New Items เลือกที่เมนู Data จากนั้นเลือก ADO.NET Entity Framework Data Model  และทำการตั้งชื่อ จากนั้นกด Add
3. เมื่อเข้ามาแล้วจะเข้าสู่หน้าจอให้เลือก Content Model มีตัวเลือกสองแบบ (หากต้องการใช้ Database To Object) ให้เลือก Generate From DataBase และกด Next จะเข้าสู่ขั้นตอนต่อไป

4. ขั้นตอนต่อมาคือการเลือก Data Connection สำหรับขั้นตอนนี้คือการเลือกการติดต่อกับฐานข้อมูลว่าจะให้ Entity ติดต่อกับฐาน้ขอมูลอะไร ขั้นแรกถ้ายังไม่เคยมีให้เลือก New Connection และทำตามขั้นตอนไป แต่ถ้ามีแล้วให้เลือก Connection จาก ComboBox ครับ และจะมี Checkbox ให้ Save Connection เข้าสู่ Web.Config (App.config) ซึ่งตรงนี้ แล้วแต่จะกดนะครับ โดยส่วนตัวผมชอบแบบสร้างให้เพราะเราแก้ไขมันง่ายดี เมื่อเรียบร้อยกด Next จะเข้าสู่ขั้นตอนสุดท้ายสำหรับเลือก Table,View,Store Procedure
5. ขั้นตอนนี้คือขั้นตอสำหรับเลือกว่า จะติดต่อ Entity กับ Table หรือ View, Storeprocdure อะไรบ้าง

เมื่อทำครบทุกขั้นตอนแล้ว จะได้ไฟล์เข้ามาใหม่ ตามชื่อที่เราตั้งโดย จะนามสกุล edmx ทีนี้พอเราดับเบิ้ลคลิ๊กเข้าไปจะพบตารางเต็มไปหมด ขั้นตอนต่อจากนี้เราก็แค่หยิบมาใช้ซึ่งทุกอย่างจะอยู่ในรูปแบบของ Object หมดแล้วทั้งสิ้นเรามีหน้าที่ แค่หยิบไปใช้ สำหรับการ Insert,Update,Delete จะใช้ Syntax แบบ LINQ to sql ในการจัดการ CRUD หากใครไม่เเคยใช้ก็ข้อให้ไปศึกษาที่นี่ก่อนนะครับ

เพิ่มเติม : http://bithai.wordpress.com/2009/09/22/%E0%B8%97%E0%B8%B3%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81-linq-%E0%B8%95%E0%B8%AD%E0%B8%991/




วันพฤหัสบดีที่ 29 พฤษภาคม พ.ศ. 2557

ERP - ตอน 2 หัวใจสำคัญของ ERP

จากตอน 1 หลังจากที่มีการแนะนำ ERP กันไปแล้ว ต่อไปก็ถึงคราว เจาะลึกเข้าซะหน่อยเกี่ยวกับ หัวใจสำคัญของ ERP

สิ่งที่สำคัญของ ERP คืออะไร? หลายคนสงสัย ระบบบริหารทรัพยากรขององค์กร (ERP) นั้นตัวสำคัญคืออะไรกันแน่? หลายคนคงสงสัย ไม่ว่าจะเป็นระบบบุคคล บัญชี การผลิต การขาย หรือ ขนส่ง สิ่งเหล่านี้ก็สำคัญ แต่สิ่งที่สำคัญกว่านั้นคือ REAL-TIME  คำๆนี้คือหัวใจของ ERP อย่างแท้จริง จะเป็น ERP จะเป็นระบบที่เชื่อมโยงกันทุกระบบเข้าด้วยกันภายในองค์กร อย่างทันทีหรือทันท่วงที (REAL-TIME)  เพราะอะไร? นั่นเพราะผู้บริหาร จะต้องรู้ความเคลื่อนไหว โดยตลอดเพื่อให้แก้ไขสถานการณ์และปัญหาได้อย่างทันท่วงที  ระบบ ERP ที่ดีและมีประสิทธิภาพ วัดได้จากการตอบสนองต่อ ปัญหาและรับรู้ปัญหาได้อย่างเร็วขนาดไหน หากสิ่งนี้ขาดหายไป ERP จะเป็นแค่ระบบที่ไม่ได้ประสิทธิภาพอีกต่อไป ฉะนั้นการประมวลผลที่รวดเร็ว การเชื่อมโยงระบบต่างๆภายในเข้าด้วยกันและแสดงผลอย่างทันท่วงที จึงจะเรียกว่าระบบ ERP หากขาดสิ่งใดสิ่งหนึ่ง โดยเฉพาะอย่างยิ่ง REAL-Time จะทำให้ ERP ขาดประสิทธิภาพทันที

ทีนี้มีคำถาม แล้วระบบไหนสำคัญที่สุดที่จะทำให้รู้ว่าทันที คำตอบคือ ระบบบัญชีนั่นเอง ERP ที่ดีมีแกนกลางคือระบบบัญชีและการเงินเพราะการเงินจะเชื่อมโยงกับทุกอย่าง และบัญชีจะมีหัวใจสำคัญคือทันทีอยู่แล้ว ฉะนั้นผู้บริหารจะรับรู้ได้ทันที เมื่อมีการเคลื่อนไหวทางการเงิน หรือบัญชีที่เกิดขึ้น ฉะนั้นสิ่งแรกที่ต้องคำนึงถึงการทำระบบ ERP คือ ระบบบัญชีนั่นเอง หากปราศจาก ระบบบัญชี ย่อมไม่ใช่ ERP และระบบบัญชีนี้เองที่เป็นปัญหาของทุกองค์กร ที่จะใช้ระบบ ERP เลยและหลายบริษัทก็ไม่รับทำERP เพราะระบบบัญชีนี้เอง ทำไมเป็นงั้นล่ะ? เหตุผลง่ายๆเลยครับ บัญชีเนี่ยต้องอาศัยผู้เชียวชาญเฉพาะทางมาประสานงานด้วย การทำบัญชีก็ไม่ง่ายต้องมีขั้นตอนต่างๆมากมาย ซึ่งการจะให้ ERP จากระบบต่างๆมาปลั๊กเข้ากันเพื่อให้รายงานการเคลื่อนไหวอย่างทันทีก็ย่อมเป็นไปได้ยากมาก การทำระบบ ERP หลายๆที่จึงต้องติดต่อกับบริษัททำระบบบัญชีก่อนเลยเพื่อให้เป็นหัวใจในการเคลื่อนไหว แล้วจึงทำระบบอื่นๆตามมา แต่มันก็มีข้อดีครับเพราะระบบบัญชี หรือบัญชีงบต่างๆ ล้วนเป็นสิ่งที่ค้ลายๆกันในหลายบริษัท ต่างกันแค่ชื่องบ และประเภท แต่รายงานต่างๆ รูปแบบการลงบัญชีหรือ เดบิตเครดิต มันถูกจำกัดไว้ตั้งแต่แรกแล้ว จึงมีหนทางอยู่  แต่จะให้พนักงานบัญชีเก่งๆ มีประสบการณ์ให้ความร่วมมือนั้นก็ปัญหานึงแหละครับ

สรุป ERP ที่ดีจะต้องมีการรับรู้การเคลื่อนไหวอย่างทันที(REAL-TIME) เชื่อมต่อทุกระบบเข้าด้วยกัน และหัวใจสำคัญคือระบบบัญชี ที่คอยรายงานสภาพคล่องทางการเงินขององค์กรเพื่อให้แก้ปัญหาได้อย่างท่วงที

ระบบการทำงานแต่ละบริษัทไม่เหมือนกัน องค์กรแต่ละองค์กร ไม่จำเป็นจะต้องมีครบตั้งแต่การผลิตยันการขนส่ง แต่จะคงคอนเซ็บของ ระบบ ERP ไว้ได้ ควรจะต้องมีอย่างที่บอกครับคือรายงานอย่างทันีและการเชื่อมต่อระบบเข้าด้วยกัน ระบบบัญชีไม่จำเป็นต้องใหญ่ก็ได้ขึ้นอยู่กับขนาดขององค์กรแต่อย่างน้อยต้องรายงานสภาพคล่องและสถานะทางการเงินของอบริษัทเพื่อให้ผู้บริหารตัดสินใจได้

วันจันทร์ที่ 26 พฤษภาคม พ.ศ. 2557

ASP.NET MVC(C#) ตอน 1

ASP.NET MVC(C#)
ตอนที่ 1 รู้จัก MVC
MVC ย่อมาจาก Model – View – Controller 3 ตัวนี้ มีความหมายและหน้าที่ของมัน
Model คือ ส่วนสำหรับใช้ติดต่อฐานข้อมูล ส่วนใหญ่ Developer จะใช้เก็นคำสั่งพวกก Insert,Update,Delete, Select ลงใน Folder นี้โดยแยกเป็น Class สำหรับติดต่อฐานข้อมูลโดยเฉพาะและ Object ที่ใช้สำหรับ Insert สู่ ตารางต่างๆ โดยส่วนตัวตรงนี้ผมชอบผลักให้ไปกับ Entity Framework เพราะทำให้การ Manage ง่ายดี

View คือ ส่วนสำหรับหน้าจอแสดงผล ใน ASP.net MVC ที่ใช้ RAZOR จะเป็น .cshtml ใน Visual Studio จะไม่มีหน้า Design ให้เหมือนกับ Web Form

Controller คือส่วนของการเชื่อมเพื่อแสดงผลระหว่าง Model และ View โดยใน ASP.net MVC จะอยู่ใน Folder Controller และสามารถ Add Controller ได้เลย ภายใน Controller จะมี Action อยู่ภายใน แต่ละAction จะเชื่อมต่อกับ View 1 View
 อ่านเพิ่มเติมได้ ที่นี่

MVC คือ Pattern หนึ่งในการดีไซน์และพัฒนา Software โดยส่วนใหญ่จะเน้นการพัฒนาผ่านบนเว็บ MVC ไม่ได้ถูกจำกัดแค่อยู่บน .NET เท่านั้นแต่สามารถใช้ได้กับหลายภาษา เท่าที่ผมรู้ก็จะมี PHP ที่มี Framework MVC จำนวนมาก JAVA ก็ไม่น้อย และ.NET ที่มี .NET Framework คอย Provide ไว้ให้

ASP.net Web Form VS ASP.NET MVC
Topic
Web Form
MVC
โครงสร้าง Solution
มีแค่ Designer กับ C#
มี 3 แบบคือ Model, View, Controller
รูปแบบภาษา
ใช้ได้ทั้ง VB.net แล C#.net
ใช้ได้ทั้ง VB.net แล C#.net
การติดต่อฐานข้อมูล
ไม่จำกัด Tool ขึ้นอยู่กับ Tool ที่ใช้กับ .net ได้
ไม่จำกัด Tool ขึ้นอยู่กับ Tool ที่ใช้กับ .net ได้ แต่ว่าโดยส่วนใหญ่จะเก็บไว้ที่ Folder Model
Html Design
มีหน้า HTML Design ให้ใน Visual Studio
ไม่มีหน้า Designer สำหรับ HTMLให้
การ Include File
จะต้องสร้างเป็น user Control(.asmx) แล้วลากเข้ามาใส่ในดีไซน์
สามารถสร้างเป็น Shared หรือ Partial จากนั้น ใส่คำสั่งในการ Include เข้ามาได้ ตาม Syntax
ASP.NET CONTROL FORM
สามารถลากวางใช้ จากหน้า  Designer ได้เลย
สำหรับ MVC ไมโครซอฟฟท์ จัดให้หลายชุดคำสั่งมากและง่ายต่อการดึงมาใช้ แต่ต้องพิมพ์เอา
Javascript Ajax
เขียนปกติ
เขียนปกติ
Ajax Tookit
มีให้
ไม่มีให้
เวลาในการพัฒนาสำหรับเริ่มใหม่
Bad
Normal
เวลาในการพัฒนาสำหรับผู้เป็น .Net WebForm
Fast
Normal
หลาย Developer
Bad
Good
การวาง Pattern ในการพัฒนา
ยาก
ง่าย สาเหตุเพราะ มี Pattern พื้นฐานได้ส่วนนึง แค่ตั้งชื่อและติดต่อฐานข้อมูลให้พร้อม
RESTful Service
No
Yes
ViewState
Yes
No
ViewBag
No
Yes
Performance
Good
Normal
Server Support ในไทย
มีครบทั่วเพราะเป็นพื้นฐาน
ต้องสอบถามบางที่
Learning Curve
Normal
Good
Upgrade Version
Easy
Easy
นี่คือเปรียบเทียบเบื้องต้น จากประสบการณ์ในการพัฒนาโดยตรงและหาข้อมูลเพิ่มเติมครับ
สาเหตุที่ต้องพัฒนาด้วย MVC

  1.  ข้อได้เปรียบสำหรับเริ่มโปรเจคใหม่คือ Pattern ในการพัฒนาที่ชัดเจนกว่า Web Form กับการวาง Pattern แบบ Model, View, Controller เปรียบเสมือนการวาง ครบเป็น Module ที่ง่ายต่อการ จัดการพัฒนาหลายๆคนพร้อมกับ
  2.   ยืนหยุ่นกับ Developer มาก ทำให้การพัฒนาเร็ว และแม้จะไม่ชำนาญด้านการพัฒนาสำหรับ .Net ก็สามารถจัดการส่งต่อให้ผู้เชี่ยวชาญได้ง่าย
  3.  หากวาง Style ในการเขียนและตั้งชื่อตัวแปร แล้ว ผู้ต่อนั้นง่ายมาก
  4. เรียนรู้ง่ายและไว
  5. สามารถ Plug กับ Pattern อื่นได้ง่ายเช่น Repository, Invention of Control หรือ อื่นๆ
  6. เขียน RESTful Service ได้ดี ง่ายต่อการเขียนติดต่อกับ Cross Platform
สามารดูเพิ่มเติมได้ ที่นี่
ลิงค์เพิ่มเติมสำหรับ Asp.net MVC
http://sinosoi.wordpress.com/2011/07/14/asp-net-mvc-01-%E0%B8%A1%E0%B8%B1%E0%B8%99%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/

http://www.microsoft.com/thailand/msdn/ASPNET_MVC3_HTML5_Vol1.aspx

วันศุกร์ที่ 23 พฤษภาคม พ.ศ. 2557

ERP –Enterprise Resource Planning ตอน 1 เกริ่นนำ ERP



หลายคนเคยได้ยินศัพท์คำว่า ERP มามากมายหลายคนในวงการ Developer ก็มักจะได้ยินคำนี้เสมอว่า เคยทำระบบ ERP มาไหม? ระบบ ERP เคยได้ยินรึเปล่า? SAP เคยทำไหม? วันนี้ผมเลยจะมาขยายความคำว่า ERP จากประสบการณ์ของผมนะครับ
ERP ย่อมาจาก Enterprise Resource Planning  ถ้าแปลตรงตัวคือระบบวางแผนจัดการทรัพยากรองค์กรนั่นแหละ แต่โห พอแปลแล้วมันใหญ่จัง แล้วจะจัดการยังไงบ้าง(ในทีนี้ผมขออ้างเป็นระบบ ERP System Software นะครับ) สำหรับผม ERP นั้น ผู้จะทำควรจะรู้พื้นฐานเหล่านี้ก่อนคือ OGM – Organization Management การจัดการองค์กร โดยควรจะหาทฤษฏีมาอ่านซะก่อน เพราะการจัดการองค์กร พื้นฐานนั้นจะ เน้นที่ Human Behavior  แล้วมันเกี่ยวไรกับERP? เกี่ยวแน่นอน  เพราะระบบ ERP นั้นต้องบริหารองค์กรทั้งหมด แต่ถ้าผู้ทำผู้ให้ข้อมูล ไม่เคยรู้ว่าพฤติกรรมของแต่ละแผนก แต่ละบุคคล ที่ต้องการไปเก็บข้อมูลเพื่อ สร้างออกมาให้ผู้ใช้ๆ กลับไม่สอดคล้องกับสิ่งที่เขาทำอยู่ปัจจุบัน คำถามคือ ผู้ใช้จะใช้หรือไม่? คำถามนี้ตอบยากเรพาะบางบริษัทออกเป็นมาตรการต้องใช้ แต่บางบริษัทก็ทำอะไรไม่ได้เพราะหลังจากทำมานั้นก็ทำให้ บริษัททุ่มเทไปล้มเหลวได้ ฉะนั้นจึงควรจะทำการรู้เกี่ยวกับการจัดการองค์กรก่อนพื้นฐานจึงจะทำการ สร้างระบบ ERP ขึ้นมาใช้
ERP คือระบบจัดการองค์กรระบบนึง โดยมีพื้นฐานที่ทุกแผนกในองค์กรต้องทำงานและรายงานออกมาเป็น Real-time  การเชื่อมกันของแต่ละแผนกคืออะไร ในทฤษฏีของ ERP นั้นจะเชื่อมกันด้วยระหว่างแผนก พื้นฐาน คือ  ฝ่ายบุคคล,ฝ่ายผลิต,ฝ่ายขาย,ฝ่ายจัดซื้อ,ฝ่ายตรวจสอบคุณภาพสินค้า,ฝ่ายขนส่ง และฝ่ายที่สำคัญคือฝ่ายบัญชี ซึ่งการทำ ERP นั้นจะลดภาระฝ่ายบัญชีลงเพราะข้อมูลทุกอย่างจะต้อง เป็น Real time ทำให้ไม่ว่าจะฝ่ายไหนก็ต้องมีงบบัญชีหมด เพราะเมื่อทำการเรียบร้อยแล้วจะต้องมีการลงบัญชีของบริษัท จึงจะเรียกว่า ERP แต่ว่า สำหรับผม ERP นั้น สิ่งที่ผมคิดคือ ERP = ฝ่ายบริหาร + ฝ่ายปฏิบัติการ + ฝ่ายบัญชี + ฝ่ายลูกค้า + ฝ่ายขนส่ง คือ การสร้าง Software ที่ให้ผู้บริหารได้วางแผนและจัดการ พร้อมกับ Monitor สถานะการทำงานในแต่ละแผนกขณะเดียวกัน ก็โปรแกรมนี้ก็สามารถ รายงานสถานะได้อย่าง Real-time และสามารถโฟกัสถึงปัญหาที่เกิดขึ้นในแต่ล่ะฝ่าย ซึ่งฝ่ายแต่ละฝ่ายจะขาดกันไม่ได้ จำเป็นต้องเชื่อมหากันเสมอและรายงานกันอย่างทันที โดยผู้บริหารจำเป็นจะต้องรู้ข้อมูลถึงสถานะของบริษัทในปัจจุบันไม่ว่าจะเป็นการเงิน การขาย การขนส่ง ความพอใจของลุกค้า กลยุทธ์การตลาด เป็นต้น และฝ่ายปฏิบัติการ จำเป็นจะต้องรายงานผลการปฏิบัติการอย่าง Real-time และถูกต้อง โดยฝ่ายปฏิบัติการอาจจะประกอบด้วย ทีมจัดซื้อ,ทีมการตลาด,ทีมผลิตกับทีมตรวจสอบการผลิต ทีมบุคคลและทีม IT การทำทั้งหมดจึงจะเรียกว่าครบ สำหรับฝ่ายปฏิบัติการ ทีมที่ขาดไม่ได้เลยและไม่ควรขาดเลยคือ ทีม IT เพราะเทคโนโลยีการสื่อสารเป็นสิ่งสำคัญ ยิ่งทีม IT แกร่งและมีความรู้เท่าไร ย่อมหมายถึงว่าคุณสามารถสร้างสรรค์ คุณภาพระบบจัดการชั้นยอดได้ แต่ว่า อย่าให้ความสำคัญกับทีมใดทีมหนึ่งจนเกินไปเพราะทุกทีมมีความสำคัญเหมือนกันหมด
 
ERP ไม่ใช่ซอฟท์แวร์เทพพระเจ้าที่สามารถบรรดาลได้ทุกอย่าง ขึ้นอยู่กับการออกแบบ ผู้บริหารจะต้องมีการคิดและลงทุน บางคนอาจจะใช้ SAP ที่เป็นระบบ ERP ที่ใหญ่ที่สุดขณะนี้ บางคนก็ใช้เจ้าอื่นเช่น Oracle หรือ ของ Microsoft Sharepoint เป็นต้น  ไม่มีซอฟ์แวร์ไหนสมบูรณ์และสอดคล้องกับทุกบริษัท เพราะแต่ละบริษัทมีโครงสร้างต่างกันแผนกต่างกัน รูปแบบของอุตสาหกรรมต่างกัน แต่พื้นฐานนั้น ที่จะต้องมีใน ERP คือ ฝ่าบริหาร ,ฝ่ายปฏิบัติการ,ฝ่ายบัญชี ซึ่งเป็นหัวใจในการทำงานเลย แต่ว่าทั้งนี้จะขึ้นไม่ขึ้นกับ Organization Chart นั้น ขอให้เป็นประเด็นรองลงไปเพราะบางองค์กร จะใช้ Organization Chart แบบ Landscape คือ ทุกคนเท่ากันหมดแบ่งแยกตามหน้าที่ไม่มีใครใหญ่กว่าใคร แต่บางบริษัทก็จะใช้แบบ Pyramid Tree นั่นคือหัวสุดใหญ่ที่สุด แล้วแต่ละองค์กรไป การยึดติดกับ รูปแบบใดรูปแบบหนึ่งนั้นไม่ใช่ทางออกที่ดีเลย ควรจะพิจารณาตาม ความเหมาะสม ครับ



Html5 Develop - WebStorage



Storage คือ แหล่งเก็บข้อมูลพื้นฐานโดย ใน Html5 สามารถเก็บข้อมูลพื้นฐานได้สองแบบคือ LocalStorage และ sessionStorage

แล้วสองอย่างนี้ดีกว่า Cookie ยังไง?
-         คุ้กกี้มีข้อจำกัดที่เก็บข้อมูลได้ที่ 4KB เท่านั้นแต่ LocalStorage และ SessionStorage มีขนาดใหญ่กว่ามาก
-         LocalStorage และ SessionStorage เร็วกว่าข้อมูล Cookie
LocalStorage กับ Session Storage ควรใช้อันไหน?
-         อยู่ที่สถานการณ์ใช้งานโดย LocalStorage จะอยู่ตลอดไม่มีวันหายไปแต่ SessionStorage จะหมดไปเมื่อปิด Windows หรือ Tab

คำสั่งพื้นฐาน คำสั่งเหล่านี้สามารถใช้ได้ทั้ง sessionStorage และ LocalStorage
setItem(key,value) ใช้สำหรับเก็บข้อมูลและสร้างค่าเริ่มต้น ตัวอย่างการเซ็ตค่า
LocalStorage - localStorage.setItem('textSize', 'large');
SessionStorage- sessionStorage.setItem(‘textSize’,’large’);
-         getItem(key) ดึงข้อมูลโดยใช้คีย์ที่ระบุ
-         removeItem(key) ลบข้อมูลตามคีย์
-         key(n) แสดงชื่อของkey ตาม index ที่ระบุโดยเริ่มต้นที่ 0
-         clear() ลบข้อมูลที่เก็บไว้ทั้งหมด(เฉพาะโดเมินนั้นๆ)
-         length แสดงจำนวนข้อมูลที่เก็บไว้ทั้งหมด
                                 
SessionStorage มีวิธีเรียกใช้ได้ง่ายๆดังตัวอย่างต่อไปนี้
if (sessionStorage.clickcount)
    {
                sessionStorage.clickcount=Number(sessionStorage.clickcount)+1;
    }
  else
    {
          sessionStorage.clickcount=1;
    }
document.getElementById("result").innerHTML="You have clicked the button " + sessionStorage.clickcount + " time(s) in this session.";

สำหรับการใช้ Web Storage บาง Browser อาจจะยังไม่ Support จำเป็นต้องใช้ Code ทดสอบดังนี้
if(typeof(Storage)!=="undefined")
  {
  }
else
  {
                document.getElementById("result").innerHTML="Sorry, your browser does not support web storage...";
  }

ตัวอย่างการใช้ LocalStroage

localStorage.pageid = 5;//เซ็ตค่าใส่ LocalStorage ชื่อ Pageid


การประยุกต์ การเขียนโปรแกรม แบบ Web ใหใช้ Storage ในฝั่ง Client มากขึ้น ทำให้สามารถเปิดกว้างในการพัฒนาได้มากขึ้นสามารถชี้ให้เห็นถึงประโยชน์ได้ดังนี้

  •  LocalStorage จะอยู่จนกว่าจะมีการเคลียร์ข้อมูลของ Browser ทำให้ Developer ที่มีประสบการณ์สามารถ จัดการกับข้อกังวลในการพัฒนาข้ามแพลตฟอร์มไปยัง Mobile ได้
  •  SessionStorage จะอยู่จนกว่าจะปิด Browser แทน Session นั่นหมายความว่า Developer สามารถใช้ Session ที่อยู่ในฝั่ง Client ได้ง่ายขึ้น ทำให้ Server ลดการทำงานลง พร้อมกับ Developer สามารถเขียนโปรแกรมฝังลงในฝั่ง Client และทำการเรียกโดยผ่าน Ajax ทำให้ขั้นตอนในการพัฒนา ลดภาระ Server ลงอย่างเห็นได้ชัด
  • ข้อควรระวัง

-         WebStorage จะมีขนาดจำกัด ทั้ง SessionStorage และ LocalStorage ฉะนั้น การใช้ตัวแปรประเภทนี้ ควรจะมีการคิดว่า ขนาดไม่ควรจะเกิดกี่ KB
-         ข้อมูลของตัวแปร WebStorage จะอยู่ในรูปแบบของ String หากต้องการประยุกต์ใช้ ยกตัวอย่างเช่น int ควรจะทำการ Parse() ซะก่อน จึงจะนำมาใช้งานไม่งั้น อาจจะเกิดการไล่กันจนงงได้