להיכנס לעולם התיכנות לפוקט

kikoj

New member
להיכנס לעולם התיכנות לפוקט

שלום הייתי שמח לקבל הכוונה מהם השלבים אותם עליי לעבור (שפה וכלים ייעודיים) בכדי להתחיל לתכנת ברמה בסיסית לפוקט (נראה לאן יתפתח) איני עוסק במחשבים-פשוט חובב של מחשבי כף יד .. הרבה תודה משה
 
הנה מידע התחלתי

ישנן שתי מערכות הפעלה רלוונטיות לפוקט פיסי. האחת נקראת symbian השנייה נקראת Windows Mobile של מיקרוסופט כל אחת מהן היא עולם ומלואו בשני המקרים שפת התכנות הרלוונטית היא C++ לגבי Windows Mobile אתה יכול לכתוב גם בC# או בכל שפת דוטנט אחרת ולהשתמש בתוכנה שמגיע עם הפוקט פיסי שנקראת Active sync לצורך פיתוח והעברת הקבצים למכשיר. סביבת הפיתוח למיקרוסופט שהייתה עד כי היא Visual Studio 2005 (זה עתה יצאה גרסת 2008) ישנם עוד אפשרויות רבו, תחפש בגוגל לפי המילים הללו ותוכל להתקדם משם.
 

BravoMan

Active member
צר לי אבי, אבל התשובה שלך לא לגמרי מדוייקת.

ראשית, Pocket PC היא פלטפורמה של Microsoft שמריצה מערכת Windows Mobile על גרסאותיה. במכשירים אלא מערכת ההפעלה אינה ניתנת להחלפה. Symbian היא מערכת הפעלה לטלפונים חכמים שכעת נמצאת בבעלותה הבלעדית של נוקיה וכנראה תשוחרר כקוד פתוח בשנה הבאה. מערכת זו אינה רלוונטית למוסג "פוקט PC" לאומרות שמכשירים שמבוססים עליה נמצאים באותה קטגוריה כמו PPC משולבי טלפון ומכשירי Smartphone. לגבי שפות: איני מכיר את תחום הSymbian אבל במקרה של Windows Mobile יש מספר פתרונות (ולא רק C++ רלוונטית): C \ C++ - שפות 'native' בשבילן יש כלי פיתוח מבית MS הן חינם והן בתשלום. VB .NET - שפת DOT NET עבורם יש כלים מבית MS בתשלום. C# - די דומה ל VB .NET PPL - Pocket Programming Language פיתוח ייחודי של חברה צד 3 המאפשר יצירת תוכנות הן על המחשב והן על המכשיר עצמו. כמוכן יש כלי פיתוח שונים לBASIC רגיל (לא .NET) של חברות צד שלישי. בנוסף ברוב המכשירים יש יישום זה או אחר לסביבת JAVA. לגבי ActiveSync - לא משתמשים בה לפיתוח. מדובר בתוכנה שמאפשר תקשורת בין המחשב לפוקט בעזרתה ניתן לסנכרן את כל הPIM (פגישות אנשי קשר וכו') ולהעביר קבצים. כלי פיתוח העיקריים הם: Embedded Visual C - סביבת פיתוח חינמית מבית MS לC \ C++ Visual Studio 2005 / 2008 - כלי פיתוח יקר וכבד מבית MS שיתרונו היחיד הוא אפשרות פיתוח בכל שלושת השפות C++ VB .NET C# שני הכלים רצים על מחשב הPC ורק התוכנה המקומפלת (המוצר הסופי) מועבר לפוקט. אם אין לך ידע בתכנות אליך להתחיל מלימוד שפה. תבחר שפת תכנות שנראית לך ותלמד את השפה עצמה ללא קשר לפוקט. השלב השני הוא ללמוד תכנות לסביבת windows וכיצד השפה שבחרתה מתקשרת עם המערכת. לאחר שתכיר את שני התחומים הגדולים האלה ברמה מספקת תוכל להתחיל לתכנת לPPC כאשר את ההבדלים של המערכת שלו לזאת של הwindows השולחני תוכל ללמוד על הדרך (לא מדובר כאן בהרבה חומר).
 
נכון, אבל הנה עוד כמה מילים

כלי הפיתוח העדכני, המשוכלל והחינמי של מיקרוסופט היום הוא הVisual Studio Express (ניתן להורידו חינם מאתר מיקרוסופט) אפשר להשתמש בו הן לC++ והן לכל שפות הדוט נט. יש באתר של מיקרוסופט גם מצגות הדרכה למתחילים (בוידאו) בactive sync בשילוב עם הVisual Studio ניתן להשתמש למטרת Deployment של היישום אל הPPC. נכון להיום הMobile PC בגירסה 6, מבוסס על מערכת הפעלה Windows CE 5.0. מה שאומר שעבור פיתוח ברמה מתקדמת, צריך להכיר את מערכת הפעלה זו ואת כלי הפיתוח וגם לקבל מייצרן הPPC את הדרייוורים (BSP) ו/או דברים נוספים. למטרת פיתוח יישומים, הכי קל יהיה ללכת על שפת דוטנט היות וניתן יהיה לפתח ולהריץ את היישום במחשב שלך ורק בשלבים הסופיים להעבירו לPPC לצורך התאמה סופית. ובהקשר לעלות היקרה שציינה, היום מיקרוסופט מציע סביבת פיתוח שלמה לאמבדד במחיר מצחיק (שמיועד רק לחובבים) הכוללת מחשב מיני, ויזואל סטודיו 2005 וכלי פיתוח למערכת הפעלה Windows CE 6 בפחות מ2000 שקלים (גילוי נאות: אני המשווק בארץ) (הם קוראים להצעה זו Spark Program) אפשר לחפש על זה באתר של מיקרוסופט. אבל שוב, גם את זה אין צורך לקנות, כי הגרסה החינמית היא מעל ומעבר לצרכים של רוב המפתחים החובבים.
 

BravoMan

Active member
צר לי אבל עדיין יש כאן כמה דברים לא נכונים

אני לא מחפש ויכוחים או משהו, אני פשוט לא רוצה שמישהו חדש בתחום יקבל רעיונות לא נכונים. נתחיל מכך שפיתוח אפליקציות בשום רמה אינו מצריך קבלת דברים מהיצרן ובטח שבטח לא את הBSP. הBSP או בשמו המלא Board Support Package הוא הדבר הדרוש ליצירת ROM, כלומר התאמת מערכת CE \ Mobile לחומרה מסוימת. למיטב ידיעתי יצרנים לעולם אינם משחררים אותו לחברות צד ג'. המקרה היחיד בו יהיה דרוש שיתוף פעולה של היצרן הוא ניסיון להשתמש בחומרה בצורה לא סטנדרטית אבל אני חושב שמצב נדיר זה חורג לחלוטין מתחום השרשור שלנו. דבר שני, לאומרות שתוכנה שנכתבה לPPC ב.NET אכן תרוץ על PC זו לא הדרך הנכונה לבחון תוכנות. ה.NET המלא אינו זהה לCOMPACT (הגרסה לפוקט) וזה אומר שהממשק לא יראה אותו דבר, הפונקציות לא תמיד יעבדו בצורה זהה ובכלל התנהגות המערכת עשויה להיות שונה מכדי לאפשר מבחן אמתי אפילו לתוכנה פשוטה וחינמית. לשם בדיקת תוכנות ללא מכשיר MS הוציא אמולטור שבא עם הSDK (ערכת פיתוח תוכנה) לפוקט. נכון להיום יש גם גרסת stand-alone שלו שמדמה את המכשיר לחלוטין כולל המעבד (כלומר לא צריך להדר תוכנה במיוחד לאמולטור וניתן להריץ גם תוכנות שקוד המקור שלהן אינו זמין). האמולטור יכול להסתנכרן דרך הActiveSync וגם לדמות מכשירים שונים: Smartphone ללא מסך מגע, PPC, PPC משולב טלפון ומכשיר עם מסך מרובע. היתרון של שפות .NET הוא שהן מאפשרות פיתוח קל ומהיר יותר של אפליקציות עתירות GUI (ממשק גרפי) מאשר שפות native כגון C אבל יש להן גם חסרונות: בגלל שהן מסתמכות על .NET CF הן דורשות התקנה של חומר רב במכשיר (אלא אם מסתמכים על גרסת .NET CF הקיימת בROM על המשתמש להתקין כ5MB) והן גם אטיות יותר בביצוע. בנוסף לא ניתן ליצור בעזרתן רכיבי מערכת כגון מקלדות או תוספים למסך "היום". ונקודה אחרונה: בגרסת EXPRESS של Visual Studio 2005 לא הייתה אופציה לפתח למכשירי Windows Mobile (פרויקטים מסוג Smart Device). אופציה זו הייתה זמינה רק בגרסה המלאה שמחירה אם אני לא טועה עבר את סף ה1000 ש"ח. אני לא מכיר את המצב לגבי גרסת 2008, אך אם הדבר השתנה אשמח לשמוע על כך.
 
להפך, אין ויכוח, אני שמח להרחבות שאתה מוסיף

VS Express נועד לחשוף את הבא לעולם הזה מבלי צורך להוציא כסף. כנ"ל החומר הלימודי הנלווה אליו. כמו שתיאר הבחור, הוא ללא כל ניסיון ולכן שימוש בכלי זה כדי להתנסות ביצירת Form, הוספת Controls וכתיבת לוגיקה מסביב, יכול לשמש ככלי מעולה לצעדיו הראשונים. אחרי צבירת שעות טיסה רבות על כלי זה, יש טעם לשקול לעבור הלאה וגם אז אפשר להוריד את הגרסת הניסיון של הגרסא המלאה ועבוד איתה עוד מספר חודשים. רק לאחר מכן (אם אתה עדיין לא החלטת לעבור לתחום אחר) יש טעם לשקול לקנות הגרסא המלאה וגם כאן, כמו שאמרתי (מיקרוסופט מעודדת חובבים להשתמש בגרסא המלאה והיא מציעה את המוצר בתוכניות שיווק מאוד מתאימות לחובבים מבחינה כלכלית כאשר הדרישה היחידה שלהם זה שאם תעבור לעבוד על הכלי באופן מקצועי שתקנה רשיון שימוש במחיר מלא) בכל מקרה, הנה המלצה פרקטית. יש ספר שנקרא Programming Embedded CE 6.0 מאת Douglas Boling. ספר זה מתחיל בתיאור ההיסטוריה של Windows CE ושל Mobile ושל Pocket PC ההבדל והקשר בינהם, לרבות הגרסאות השונות. הספר ממשיך בהדרכה מאוד בסיסית של תכנות החל המצעדים הראשונים וכלה בחומרים מתקדמים. הספר הזה חדש (הוצאה בשנת 2008) אני קניתי את הספר הזה כשיצא לאור, באמזון, כ50$ + משלוח.
 

BravoMan

Active member
נקודה טובה...

שכחתי את זה מקודם אבל יש עוד ספר שלדעתי יהיה מצוין על אף שהוא די מיושן: http://www.microsoft.com/mspress/books/sampchap/5461b.aspx אני מודה שלא קראתי את כולו אבל אם לשפוט לפי שני פרקים לדוגמה שמפורסמים בMSDN (הקישור מוביל לאחד מהם) מדובר בספר טוב. לפי מה שקראתי בפרסומים השונים מכשירים מבוססי Windows Mobile 7 (שבנוי על ליבת CE 6) יצאו לשוק רק בסוף השנה הנוכחית או אפילו בשנה הבאה (לא קראתי על שום תאריך השקה וודאי עדיין). למי שרוצה להתעסק עכשיו עם המכשיר שברשותו ייתכן שספר זה יהיה יותר רלוונטי. כעת כמה שאלות ברשותך: 1. האם התנסית בגרסת EXPRESS 2008 ואם כן אז האם יש בה אפשרות לפיתוח למכשירי WM? 2. בזמנו קראתי אי שם באתר מיקרוסופט שהם הולכים להכניס שינויים מבניים רבים בגרסה 6 של CE. אם הספקתה כבר לקרוא את הספר, האם תוכל לספר בכמה מילים עד כמה המערכת באמת שונה מקודמותיה והאם באמת יש הבדל רציני מבחינת התנהלות, API וכו' אני חייב לציין שנחמד לראות קצת חיים בפורום הזה. לאומרות שמספר משתמשים של מחשבי כף יד למיניהם (ומבוססי WM בעיקר) גדל, עדיין מדובר בתחום נישה ולכן אין כנראה יותר מידי אנשים שמתעסקים בו בתור תחביב במדינתנו הקטנה.
 
הספר שהצעת הוא גרסה מוקדמת של הספר שציינתי

הספר שהבאת את הלינק שלו הוא מהדורה שניה. הספר שהצעתי הוא המהדורה הרביעית והעדכנית של ספר זה ומעודכנת לCE 6. הספר מתחיל בתיאור רקע והיסטוריה. בין השאר הוא מספר על כך שבשלב כל שהוא השם Pocket PC הוחלף לשם Windows Mobile. הוא גם מספר שWindows Mobile מבוסס על Windows CE. לאחר מכן הוא מציג באופן הולך ונבנה כיצד מפתחים אפליקציית חלונות באוריינטציה של CE. ומשם הוא הולך ומתקדם לעומק. אגב, הספר מניח שיש לקורא ידע בשפת C, כך שבמחשבה שניה הוא אולי לא מתאים ליוזם השרשור הזה. לשאלותיך, אני עוסק לפרנסתי בWindows CE ולא בגרסת הMobile והיות וWindows CE 6.0 עדיין לא עובד על VS2008, לא ניסיתי לעבור אליו. יודעי דבר טוענים שמיקרוסופט עומדת להכריז בחצי שנה הקרובה על גרסת בCE חדשה וזו תעבוד על VS2008. אינני יודע אם היא תעבוד על גרסת Express, אני מניח שזה תלוי בגישה השיווקית שלהם. ההימור שלי שמתי שהוא פיתוח WM יהיה זמין גם בגרסאות EXPRESS וזה מן הטעם שאני מתרשם שמיקרוסופט מעוניינים לדחוף את הנושא הזה בקרב חובבים. כבר עכשיו ניתן לראות באתר שלהם את מה שהם קוראים תוכנית שיווקית בשם Spark program שפונה באופן ברור לחובבים. לעניין ההבדלים בין Windows CE 5.0 (שעליו מבוססת Windows Mobile 6) לבין CE לא ממש דרמטיים בכל הקשור לGUI(יש מספר חידושים, בעיקר עדכונים לטכנולוגיות ויישומים עדכניים יותר, כגון הIExplorer, Media player ועוד. אבל אחד הדברים הדומיננטיים זה נושא ניהול הזיכרון. בעוד שב CE 5.0 אפשר היה להפעיל 32 הליכים בו זמנית הרי שבCE 6.0 ניתן להריץ (תיאורתית) 32,000 הליכים בו זמנית. ומבינת הזיכרון = בCE 5.0 כל ההליכים חלקו יחדיו מרחב זכרון של 2gb הרי שבCE 6.0 הKernel מקבל מרחב עצמאי של 2gb זיכרון ויטואלי וכל הליך מקבל 1gb וירטואלי משלו ועוד 1gb שמשותף לכל ההליכים יחדיו. דבר מעניין נוסף זהשהתווסף זה Web Services בגרסה קומפקטית. יש עוד עניינים רבים אבל, זה מהשיצא לי כרגע במשיכת קולמוס אחת ולעניין הערכת העתיד - אני מאמין שרק שכשנראה יותר טלפונים חכמים בשוק, כך יגבר העניין בפיתוח בתחום והערכה שלי שהעניין יהיה בעיקר בפיתוח אתרי אינטרנט לגרסת Mobile. בברכה אבי
 

kikoj

New member
אני מודה לשניכם ובמיוחד לbravoman על הסדר

שעשיתם לי בראש. מצאתי לפחות להתחלה אתר שמלמד שפת c מאוחר יותר נראה מהי סביבת פיתוח וניכנס גם לזה. שוב תודה משה
 

halperin

New member
מנהל
פיתוח אתרי אינטרנט מותאמים לא ממש קשור לWM

כלומר, אין כל קשר בין פתוח תוכנה ל-PDA, דבר הדורש כפי שנכתב כאן כלים וידע הקשור גם ל-PDA, ולעומתו פיתוח אתרים מותאמים לגודל הממשק בPDA ומגבלות הדפדפנים שבו, הנו תחום נפרד לחלוטין שקרוב בהרבה לעולם פיתוח דפי אינטרנט מאשר אפליקציות לPDA.
 
למעלה