PDA

مشاهده نسخه کامل : مباحث برنامه نویسی موبایل تحت چارچوب دات نت



ravegoat
06-09-09, 14:06
در این موضوع مطالبی درباره ی برنامه نویسی دات نت برای موبایل به شما دوستان ارائه می شود.

ابتدا به این نکات توجه کنید:

1-برنامه نویسی موبایل تحت دات نت در سه بخش طبقه بندی می شود:
Pocket PC یا رایانه ی جیبی
SmartPhone یا تلفن هوشمند
و Windows CE

سایر سیستم عامل ها و پلت فرم به علاوه ی برنامه ی Appforge Crossfire مشمول این بحث نمی شوند.

2-زبان برنامه نویسی پروژه ها VB.Net و C# است.

3-برای ایجاد پروژه های خود باید از زیر مجموعه ی Smart Device استفاده کنید. نوع پروژه ها نیز عموما" Device Application است.

4-برنامه نویسی در سه بخش مذکور به دلیل محدودیت های سخت افزاری با یکدیگر متفاوت است. البته کد نویسی رایانه ی جیبی و Windows CE بسیار شبیه یکدیگر اند و اندک فرق آن ها در کنترل ها و کامپوننت ها است. دقت داشته باشیم Smartphone محدود ترین بخش محسوب می شود.

5-برای اجرای برنامه های دات نتی روی دستگاه های هوشمند باید dotNet Compact Framework روی آن ها نصب شود. نسخه ی فریم ورک برای هر سورس ذکر می گردد.

آخرین نکته مربوط به شبیه ساز ها می شود:
بدیهی است برنامه های Smart Device روی رایانه های دسکتاپ یا لپ تاپ، با ظاهر دلخواه ما قابل اجرا نمی شوند. درنتیجه برای شبیه سازی محیط دستگاه های هوشمند از نرم افزار Emulator استفاده می شود. در زمان کامپایل برنامه باید نوع Emulator را مشخص کنید.
بهتر برای برنامه های Pocket PC و Windows CE از Pocket PC SE Emulator و
برای برنامه های Smartphone از Smartphone SE Emulator استفاده کنید.
در اولین اجرای برنامه برای اشکال زدایی فرآیند Deploy اندکی طول می کشد.

مجموعه ی Visual Studio Remote Tools ، ابزاری برای مدیریت شبیه ساز ها است. به عنوان مثال می تواند رجیستری مجازی شبیه ساز را ویرایش کند و یا پروسه های مجازی شبیه ساز را نمایش دهد. برای استفاده از این ابزار ها باید شبیه ساز خود را اجرا کرده باشید.


تمامی سوالات و پیشنهاد های خود درباره ی کد ها را می توانید در این تاپیک مطرح کنید.:give_rose:

ravegoat
08-09-09, 12:17
در ابتدا نحوه ی کار با پرونده های سیستم فایل را فرا می گیریم:

در پاکت پی سی بخش My.Computer در نظر نمی گیریم و از System.IO استفاده می کنیم.
FileStream نحوه ی دسترسی به فایل را تعیین می کند.
برای خواندن و نوشتن به ترتیب می توانیم از StreamReader و StreamWriter استفاده کینم.
با نسبت دادن فایل استریم به استریم خواندن یا نوشتن می توانیم فرمان ها را اجرا نماییم.
توجه داشته باشید این گونه ی استریم برای داده های باینری نمی باشد.

یکی از مهم ترین فرمان ها به هنگام خواندن ReadToEnd است که کلیه ی محتویات فایل را بر می گرداند.

نوشتن اطلاعات در یک فایل اندکی دردسر دارد: شما با دستور Write داده ها را وارد بافر می کنید و تا زمانی که دستور Close برای استریم نوشتن صادر نشود، مقادیر بافر در فایل تخلیه نمی گردد.


برای شروع و سورس یک دفترچه یادداشت ساده را قرار می دهم. در این برنامه علاوه بر موارد بالا، خطوطی برای کنترل خاصیت گرافیکی برنامه وجود دارد:


دانلود
TPocketPad (Only the registered members can see the link)


17 کیلوبایت - سورس VB.Net 2005
Windows CE 5 یا نسخه ی بالا تر
همراه با نسخه ی dotNet Comapct Framework 2 یا جدیدتر

MoBiN.R
08-09-09, 12:45
کاربران و دوستان گرامی رو در شرکت در این تاپیک دعوت میکنم .. ایشالا بحث برنامه نویسی موبایل با پلاتفرم جاوا هم شروع خواهد شد . با تشکر

™Ali
08-09-09, 12:46
ممنون از اطلاعاتی که قرار دادی آرمین عزیز :11():

چند تا سوال:

برنامه نویسی SmartPhone ها شامل چه OS هایی میشه ؟!
نحوه ی کد نویسی یک نرم افزار PC با Mobile فرق داره ؟!
آموزش ها رو قراره چجوری شروع کنید ؟
حتما برای شروع کار نصب Visual Studio کافی است ؟!


در کل اگر متوجه موضوع بشم در زمینه کدنویسی #C می تونم کمک کنم ! :give_rose:

MoBiN.R
08-09-09, 13:10
علی جان برای برنامه نویسی موبایل دات نت نیاز به برنامه اضافی نیست .. توی Visual Studio پروژه Smart Device رو انتخاب میکنی و خودش براتون اسکرین گوشی رو میزاره تا روش طراحی کنین .. مثل برنامه های معمولی فرمی .. برای اجرا هم خودش Emulatorداره .. Smart Phone ها شامل سیستم عامل های Windows Mobile - Windows CE برای دستگاه های PDA هستند ... برای سیستم عامل Symbian هم میشه توی دات نت برنامه نوشت اما SDK ی مخصوص خودشو میخواد که فعلا پولیه ..

ravegoat
08-09-09, 14:56
ممنون از اطلاعاتی که قرار دادی آرمین عزیز :11():

چند تا سوال:

برنامه نویسی SmartPhone ها شامل چه OS هایی میشه ؟!
نحوه ی کد نویسی یک نرم افزار PC با Mobile فرق داره ؟!
آموزش ها رو قراره چجوری شروع کنید ؟
حتما برای شروع کار نصب Visual Studio کافی است ؟!


در کل اگر متوجه موضوع بشم در زمینه کدنویسی #C می تونم کمک کنم ! :give_rose:

سلام علی جان!

مبین جان پاسخ کاملی دادند.

-در مورد Smartphone ما فقط با Windows Mobile Smartphone OS
(Only the registered members can see the link) کار می کنیم (از نسخه ی 2003 به بعد با فریم ورک 1.0 یا جدیدتر). برای WinCE هم جدا برنامه می نویسیم.

-به طور کلی کلاس ها و کتابخانه ها تغییر می کنند چون سخت افزار ها متفاوت اند. دستورات همونه. مهم ترین تغییر هم مربوط به کنترل ها و کامپوننت هاست. به مرور به همه چیز میشه آشنا شد. زیاد زمان بر نیست.

-در اول کار آموزش های معادل سازی کد ها، کد های پایه، برنامه های کاربردی و آشنایی با کنترل هاست. بعدا" به امید خدا، سطوح کد نویسی پایین تر + کار با مرجع ها و ساخت کنترل کاربر هستش.:1. (26):
من خودم بیش تر روی WinCE مانور می دم چون سیستم عامل منعطفیه.

هر کدوم از دوستان هر سورسی بذارند ما هم استقبال می کنیم. من یه کد سی شارپ برای PocketPC می ذارم تا با شرایط هماهنگ بشی. دیگه با استعدادی که داری خودت می تونه این جا پروژه بذاری.:1. (10):

موفق باشی
آرمین:11():

ravegoat
08-09-09, 15:17
برای نمایش صفحات وب از کنترل WebBroswer استفاده می کنیم. کد نویسی برای این بخش بسیار ساده است.
ما در ابتدا آدرس را با یک TextBox از کاربر می گیریم. سپس رشته ی دریافتی را به یک متغیر Uri نسبت می دهیم. این نوع متغیر برای تعریف آدرس های اینترنتی است. در نهایت مقدار متغیر را به خاصیت URI کنترل WebBrowser.Uri می دهیم. بقیه کار ها را وب-بروزر انجام می دهد.
اگر رایانه ی جیبی به اینترنت وصل باشد صفحه ی وب نمایش داده می شود در غیر این صورت تنها با یک هشدار مواجه می شوید.
توجه کنید برای یک متغیر Uri رشته ی Only the registered members can see the link بی معنی است و رشته باید بدین صورت تعریف شود:

Only the registered members can see the link
برای بلوکه کردن خطا ها به هنگام مقدار دهی می توانید از Try...Catch بهره گیرید.

WebBrowser امکانات جالبی را در خود جای داده است. شما می توانید با توجه به سایر ویژگی های این کنترل، گزینه های مفیدی را به مرورگر خود بیافزایید.:1. (26):


دانلود برنامه ی PocketBroswer (Only the registered members can see the link)

سورس سی شارپ 2005 - 13 کیلوبایت
قابل استفاده در Pocket PC 2003 و یا جدیدتر
همراه با نسخه ی dotNet Comapct Framework 2 یا بالاتر

MoBiN.R
08-09-09, 16:20
در عکس زیر مشاهده می کنید که تمامی IDE کار مثل برنامه های معمولی هستند که توی Form Application نوشته می شه :

Only the registered members can see the link

ravegoat
13-09-09, 23:17
در این پست به تحلیل برنامه ی TPortTerminal و جنبه های آموزشی آن می پردازیم.
این برنامه می تواند با پورت های COM تعریف شده روی رایانه ی جیبی ارتباط برقرار کند. کاربر می تواند به درگاه تعیین شده فرمان ارسال کند و جواب را دریافت کند.

نکات آموزشی:
برای کار با پورت ها از کنترل SerialPort استفاده می کنیم. دستور های SerialPort برای هر سخت افزاری یکسان است.
زیر مجموعه System.IO.Ports نیز سایر امکانات را در اختیار ما قرار می دهد.

توجه داشته باشید به دلیل پایین بودن منابع سخت افزاری PocketPC، ارتباط های پورت کام به سختی پیش می رود.

برنامه TerminalPort دارای بخش تنظیمات پورت هست. این قابلیت در یک فرم جدید به کاربر عرضه می شود.
مدیریت برنامه های چند فرمه در دستگاه های هوشمند اندکی مشکل است. به عنوان مثال ممکن با بسته شدن فرم اصلی، هنوز پروسه ی برنامه در حافظه لنگر انداخته باشد.
در این موارد از دستور Application.Exit برای آزادسازی منابع استفاده می شود.
لازم به ذکر است بخش تنظیمات با بهره گیری از روش فهرست بندی صحیح موجب شده است کدنویسی پروژه به کم ترین حد ممکن برسد.

به طور کلی سعی کنید به هنگام برنامه نویسی تحت Smart Devices ، عناصر موقت یا غیر ضروری را با دستور Dispose از حافظه آزاد کنید تا فرآیند روان تر به کار خود ادامه دهد.




Only the registered members can see the link
تصویر محیط برنامه قبل و بعد از اتصال

دانلود TPortTermianl - نسخه ی یک ناپایدار (Only the registered members can see the link)

25 کیلویات - سورس کامل VB.Net 2005
قابل اجرا در WinCE 5.0 یا جدیدتر به همراه dotNetComapct Framework 2

MoBiN.R
14-09-09, 11:13
بهتره این برنامه هارو روی دستگاه PDA هم تست بشه که به عینه ببینیم برنامه رو ( متاسفانه ما که PDA یا موبایلی که Windows رو پشتیبانی کنه نداریم :دی )

ravegoat
28-09-09, 16:31
با سلام!


بهتره این برنامه هارو روی دستگاه PDA هم تست بشه که به عینه ببینیم برنامه رو ( متاسفانه ما که PDA یا موبایلی که Windows رو پشتیبانی کنه نداریم :دی )

بنده هم با این عمل موافقم. اکثر سورس هایی که این جا می ذارم به طور واقعی روی پاکت پی سی اجرا شده به جز اونایی که نسخه ی ناپایدارند.:1. (26):

ـــــــــــــــــــــــــ ــــــــــ
در این جا چند نکته ای از کلاس گرافیک می گم...!چون این تاپیک با استقبال مواجه نشده، من به شخصه سورس پایه نمی ذارم و سورس ها رو همه رو کاربردی قرار می دم.:1. (28):

کلاس گرافیک در WinCE:
در این کلاس با محدودیت های زیادی مواجه هستیم. بخش Render از خاصیت High Quality پشتیبانی نمی کنه و ترسیم به حالت عادی صورت می گیره.
برای استفاده از برس ها باید به سراغ SolidBrush برید.
خوشبختانه متد های Drawing به طور کامل در دسترس هستند.
موارد مربوط به عمق رنگ هم هیچ تفاوت چندانی نداره.

در پست های آینده یه کامپوننت قرار نی دم که موارد بالا رو واضح نشون بده.:wink:

شاد باشید
آرمین:11():

ravegoat
05-10-09, 17:47
با سلام!

در این جا پروژه ای از نوع کنترل کاربر قرار می دم که توانایی کلاس گرافیک رو تو WinCE نمایش می ده. این کنترل مقدار بر اساس بایت رو دریافت می کنه و با توجه به ماتریس دوران و انتقال، مقدار بایت رو روی یه نشانگر نمایش میده.



ByteMeter.Gauge = Value As Byte
مثال:

ByeMeter1.Gauge = 128
دانلود کامپوننت همراه سورس (Only the registered members can see the link)

موفق باشید
آرمین:11():

SajjadKhati
22-06-18, 12:06
سلام
ممنون استاد آرمین از آموزش هاتون
ولی به آموزش xamarin اشاره ای میشد ، خیلی خوب بود (هر چند در زمان شروع تاپیک ، زامارین وجود نداشت)

من یه سئوال درباره ی زامارین هم داشتم . اینکه خیلی ها و خود گوگل میگه از جاوا و android studio برای برنامه نویسی اندروید استفاده کنید
ولی چه فرقی دارن؟ مهمترین چیزش که sdk شه که اگه اشتباه نکنم ، دقیق همون sdk ای که در android studio برای اندروید هست ، همون هم برای زامارین هم تعبیه شده .
زبان سی شارپ هم که کم از زبان جاوا نداره . پس تفاوت شون چیه؟!

ravegoat
22-06-18, 21:09
...
من یه سئوال درباره ی زامارین هم داشتم . اینکه خیلی ها و خود گوگل میگه از جاوا و android studio برای برنامه نویسی اندروید استفاده کنید
ولی چه فرقی دارن؟ مهمترین چیزش که sdk شه که اگه اشتباه نکنم ، دقیق همون sdk ای که در android studio برای اندروید هست ، همون هم برای زامارین هم تعبیه شده .
زبان سی شارپ هم که کم از زبان جاوا نداره . پس تفاوت شون چیه؟!

سلام،

سجاد جان منظورت رو از SDK متوجه نمیشم!

اندروید شامل دسته ای از Native API ها هستش که در Android Studio به شکل مستقیم بهشون دسترسی داریم. ولی در Xamarin به واسه ی Mono میشه از Native API ها بهره برد. در نتیجه برنامه ی ساخته شده با Xamarin کند تر از Android Studio عمل میکنه. اما در مقابل Cross-platform هستش و میشه همون برنامه رو برای iOS یا ویندوز هم کامپایل کرد بدون اینکه نیازی به تغییر سورس کد باشه.
تفاوت بالا یک فرق بنیادی بین این دو محسوب میشه. ولی استفاده از هر کدوم بیش تر سلیقه ای...

اطلاعات بیش تر:
Only the registered members can see the link
Only the registered members can see the link

SajjadKhati
22-06-18, 22:00
سلام،

سجاد جان منظورت رو از SDK متوجه نمیشم!

اندروید شامل دسته ای از Native API ها هستش که در Android Studio به شکل مستقیم بهشون دسترسی داریم. ولی در Xamarin به واسه ی Mono میشه از Native API ها بهره برد. در نتیجه برنامه ی ساخته شده با Xamarin کند تر از Android Studio عمل میکنه. اما در مقابل Cross-platform هستش و میشه همون برنامه رو برای iOS یا ویندوز هم کامپایل کرد بدون اینکه نیازی به تغییر سورس کد باشه.
تفاوت بالا یک فرق بنیادی بین این دو محسوب میشه. ولی استفاده از هر کدوم بیش تر سلیقه ای...

اطلاعات بیش تر:
Only the registered members can see the link
Only the registered members can see the link

سلام
آها ممنون استاد آرمین
یعنی در قدرت برنامه نویسی ، بین پروژه های زامارین و اندروید استودیو فرقی وجود نداره؟
یعنی هر برنامه ای که توی اندروید استودیو بشه نوشت را توی زامارین هم میشه نوشت؟

ravegoat
22-06-18, 22:33
سلام
آها ممنون استاد آرمین
یعنی در قدرت برنامه نویسی ، بین پروژه های زامارین و اندروید استودیو فرقی وجود نداره؟
یعنی هر برنامه ای که توی اندروید استودیو بشه نوشت را توی زامارین هم میشه نوشت؟

بی شک تو سطح Native دست ما باز تره. اما در Xamarin اکثر قریب به اتفاق توابع Native پوشش داده شده.
با این حال چون بنده تجربه ی چندانی در مورد این دو ندارم، نمی تونم با صراحت بگم که هر برنامه ای که توی اندروید استودیو بشه نوشت را توی زامارین هم میشه نوشت!