نكاتي پيرامون برنامه نويسي درgis
1- زبان های مورد استفاده در توسعه Arc GIS
- DotNet FrameWork شامل VC++ -VB.Net - C#.Net که سی پلاس برای ایجاد native - Managed کد مورد استفاده قرار میگیرد
- Python برای اسکرپپت نویسی و اتوماتیک کردن بعضی فرآیندها که بیشتر در ابزارهایGeoProcessing مورد استفاده قرار میگیرد
- Java در محیط Eclipse یا NetBeans
- C++ بر پایه qt نوکیا برای ساخت برنامه های کراس پلتفورم (به دلیل مشکل بودن این یکی رو بیخیال شین
- ماکرو نویسی VBA دوستان عزیز که از این زبان برای توسعه دسکتاپ استفاده میکنیدبهتر است به فکر مهاجرت به سمت VB.Net باشین چون به نظر من در نسخه بعدی Arc GIS این زبان ساپورت نمیشه حتی در صورتیکه از نسخه 9و 10 استفاده میکنید باید به این نکته واقف باشید که حتی خود سازنده این نرم افزار توصیه کرده برای کارهای ساده از این زبان استفاده بشه و برای توسعه بیشتر از زبان دیگه استفاده بشه
- VB6 تا نسخه 9.3.1 قابل استفاده بوده ولی در نسخه 10 دیگر SDK برای آن ارائه نشده است
2- تغییرات عمده در نسخه 10.1 Arc GIS بنا بر نظر شخصی این تغییرات در نسخه بعدی 10.1 رخ خواهد داد
- حذف Arc IMS سرویس نمایش نقشه های اینترنتی
- حذف Arc Info Workstation
- حذف Arc GIS Desktop - Arc Editor
- پشتیبانی از دات نت فریمورک 4 - 4.5
- قدرت یافتن بیشتر Python برای اتوماتیک کردن فرآیندهای کارتوگرافی و زمین پردازشی
- حذف VBA از Arc GIS Desktop
3- قابلیت ارائه شده در نسخه 10
- جداشدن Runtime Manager محیط دسکتاپ - انجین - سرور شاید این یکی از بزرگترین مزیت ها باشد قبلا اگر میخواستید یکی از نرم افزار Arc Map - Arc GIS Server - Arc GIS Engine خود را ارتقاء دهید مثلا نسخه 9.3.1 را در سیستمی نصب کنید که نسخه 9.2 دارد مجبور بودید تمام نسخه های قبلی را حذف کنید که این بزرگترین معضل به شما ر می آید در نسخه جدید با جدا شدن ران تایم ها به هنگام نصب هر کدام دایرکتوری مخصوص خود را دارند و فایل های سیستمی جدا از یکدیگر دارند.
- اضافه شدن قابلیت Add in برای سفارشی کردن محیط دسکتاپ و به اشتراک گذاری فایل مربوطه با دیگران
- حذف Survey Analyst
- قابلیت اجرای عملیات GeoProcessing بدون اختلال در برنامه و اجرا در پس زمینه
- استفاده از نقشه های موجود در Arc GIS Online
- مدیریت کننده پارسل شهری
- تعامل و همگرایی بیشتر با فایل های کد
4- توضیح در مورد ارک آبجکت
- ارک آبجکت کتابخانه غنی از توابع و کلاس های GIS که به زبان ++C نوشته شده
- تکنولوژی ارک آبجکت (Component Object Model (COM است
- به رغم انکه COM یک متدلوژی قدیمی است اما به نظر نمیاد ESRI بخواد آنرا کنار بذاره حتی مایکروسافت در ویندوز 8 که امسال ارائه خواهد کرد از این تکنولوژی قدیمی استفاده کرده و با بازنویسی توابع API ویندوز رابط لمسی خود (سبک مترو) را با نام WinRT ارائه خواهد کرد
- آرک آبجکت را می توانید در تمام زبان هایی که COM را ساپورت میکننند استفاده کرد
- چون Arc Object کدهای Native است CLR برای استفاده از این کدها از COM interop و Platform Invoke استفاده میکند
- کامپوننت ها قبل از استفاده باید رجیستر شوند (Menu- Toolbar -Controls....) این عمل تا Arc GIS 9.3 با دو برنامه RegSvr32 - برای کدهای محلی و RegAsm.exe برای کدهای مدیریت شده انجام میشد اما در نسخه 10 این عمل توسط ESRIRegAsm انجام میشود
- محیط رانتایم Arc GIS به تدریج بهینه شده تا برنامه های آرک آبجکت قابل نصب روی دستگاههای پورتابل مانند تبلت و اسمارت فون نیز باشد
۵- زبان پیشنهادی برای برنامه نویسی
جواب این سوال بسیار مشکل است زیرا هر زبان قابلیتهای مخصوص خود را داراست دات نت مایکروسافت به روزه و توسعه برنامه با سرعت بیشتری انجام میشه کتابخانه دات نت بیش از ۱۳۰۰۰ کلاس داره که کدنویسی را به شدت کاهش داده و از طرفی با جدبدترین متدلوژی مهندسی نرم افزار هماهنگی کامل دارد اما به خاطر اینکه کدهای شما باید ابتدا به MSIL تبدیل بشه و در مرحله دوم به بایت کد این عمل روی سرعت برنامه تاثیر گذار است در برنامه های کوچکی که مینویسید این مسئله زیاد مهم نیست و اصلا کاربر نهایی متوجه این مسئله نمیشه اما اگر برنامه شما بخواهد پردازش های سنگین انجام دهد و از توابع تحیلی GIS زیاد استفاده میکنید سرعت در برنامه شما حرف اول را میزند
شرایط مشابه برای جاوا هم برقرار است و ماشین مجازی جاوا مشابه CLR است
با این تفاسیر به نظر من زبان ++C برای دسکتاپ گزینه مناسب تر است(MFC یا qt) که qt کراس پلتفورم است
6- عدم اجرای Arc GIS SDK در Visual Studio 2010
برای توسعه برنامه های سرور و دسکتاپ و انجین شما باید از کیت توسعه دهنده SDK دات نت استفاده کنید چون نسخه دات نت 4 پیش فرض در ویژوال استودیو 2010 است باید از نسخه 3.5 استفاده کنید در Arc GIS 10.1 دات نت فریمورک 4 و 4.5 پشتیبانی خواهد شد