1395/03/02 1:52 نرم افزار VSCode و اولین و آخرین تجربه شخصی ام در PHP !
حاجی شریفی
مؤسس سایت
 
سلام
اخیرا مایکروسافت نرم افزار رایگانی به نام VSCode منتشر کرده است.
شاید بتوان گفت این نرم افزار یک چیزی کمتر از VisualStudio و بیشتر ++Notepad است!
حجم بسیار کمی دارد و برروی ویندوز و لینوکس و مک قابل نصب است و از زبان های برنامه نویسی مختلف هم پشتیبانی میکند.
https://code.visualstudio.com/Download
بعنوان نمونه برای نصب PHP روی VSCode کافی است برنامه را اجرا کرده و پس از Ctrl+P عبارت ext install php-debug را تایپ و اینتر کنید.



سورس وتوضیحات این افزونه از طریق لینک های زیر دردسترس است:
https://github.com/felixfbecker/vscode-php-debug
https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug
وبلاگ مایکروسافت

البته من در نهایت مجبور شدم PHP را هم از سایت اصلی دانلود کنم...
برای این پیکربندی کافیست از منوی File > Preferences > User Settings اقدام کرده و مقدار "php.validate.executablePath" را برابر با مسیر کامل فایل php.exe قرار دهید...

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



این کد ...
- از اعتبار سنجی ورودی ها به کمک jquery استفاده میکند
- بطور مختصر مفاهیم لایه بندی وامنیت و AAA را دارد
- کاربران فقط به چهار گروه امنیتی STUDENT, TEACHER, EMPLOYEE, ADMIN تقسیم شده اند...
- دقت کنید که آپلود تصویر و کد Captcha برنامه واقعاً کار نمیکند وفقط بصورت نمادین بین چند تصویر ثابت به کمک javascript عوض میشود.
(دیگر فرصت نشد روی نحوه کدنویسی صحیح این دومورد در PHP وقت بگذارم ضمن اینکه خیلی هم برایم دقدقه ای نبود که حتما بدانم چطور انجام میشود)

برای امتحان برنامه باید دیتابیس را به کمک فایل mysql.sql ساخته و مقادیر ارتباطی به دیتابیس را در فایل webconfig.php اصلاح کنید.
جهت ورود میتوان از نام کاربری های Admin1, Employee1, Teacher1, Student1, test1 و گذرواژه "123" استفاده کنید.

نمودار UML-Class:


نمودار UML-Use:


-کلاس DbContext یک کلاس انتزاعی است که زیرساخت تبادل اطلاعات با دیتابیس را مهیا میکند.
-کلاس DbContextEnums مسئول خواندن اطلاعات از جدول Enums دیتابیس است.
-کلاس DbContextUsers مسئول هرگونه خواندن ونوشتن و تغییر اطلاعات جدول Users در دیتابیس است.
-کلاس DbUserRow معادل نگاشت یک سطر جدول Users در دیتابیس است، از نمونه سازی این کلاس جهت خواندن و درج و ویرایش سطرهای Users استفاده میشود.
-کلاس WebPage امکانات مشترک جهت همه صفحات را در یکجا پیاده سازی میکند، این امکانات شامل اهراز هویت و اختیارات و بخش های مشترک واسط کاربری میشود.
-فایل WebConfig هم تنظیمات مشترک را نگه داری میکند، دقت کنید که برای کارکردن پروژه باید پس از ساخت دیتابیس، نام دیتابیس و نام کاربری وگذرواژه را در این فایل ویرایش کنید وگرنه برنامه به درستی کار نخواهد کرد.

دانلود سورس:
Simorgh.PhpSample.zip [220KB]

در کل از جهت آشنایی وتجربه PHP خیلی خوب بود ولی زبان PHP خیلی به مزاج ام خوش نیامد ...
دیدن strlen(STR) یا basename(URL) یا count(ARR) و... و isset و unset و... و... فقط آدم یاد یکسری توابع پراکنده نامنظم می اندازد که بظاهر هیچ خبری از شی گرایی به گوش آنها نرسیده...
از سوی دیگر فقدان نوع در تعریف متغییر، پس از چند فراخوانی متعدد IDE های کمکی را هم ، ناتوان از تشخیص نوع میکند و این برنامه نویس است که در تمام مراحل باید جنس متغییر های برنامه را حفظ کرده وبه یاد داشته باشد وخطاهای کوچک را هم تا زمان اجرای برنامه وعبور از if های گوناگون واجرای نهایی خط مخفی خواهد گذاشت ومانند آتشی زیر خاکستر خواهد شد ...
Generic ضعیف ، Reflection ضعیف تر و فقدان MetaData ها [ من چیزی پیدا نکردم ] امکان استفاده از معماری های پیشرفته ای مانند DI و یا هر معماری که بخواهد با تحلیل اشیای جاری کمکی به سادگی کد برنامه نویس کند را سخت و طاقت فرسا میکند.
هیچ امیدی به پیاده سازی ساده ، سریع وکارآمدی از Expression Trees ها نمیتوان داشت، مگر با تحلیل رجکسی عبارات متنی که ...
و... و...
شاید هم من بلد نیستم
شاید هم هیجان و عشق به تکنولوژی و سازه اصیل معماری ASP.Net Core 1 کورمان کرده!


شب خوش
1395/03/02 23:10
h-e-r-o-e-s

 
سلام

این نرم افزار برای برنامه نویسی زبان  php هست یا این که برای برنامه نویسی اکثر زبان
یعنی یک محیط برنامه نویسی هست ؟
1395/03/03 10:41
حاجی شریفی
مؤسس سایت
 
سلام
این برنامه در واقع با توجه به رویکرد های جدید مایکروسافت در ASP.Net Core 1 توسعه پیدا کرده ...
ASP.Net Core 1 بجز ویندوز امکان اجرا روی لینوکس و مک را دارد و Visual Studio Code وظیفه دارد که اولین گام ها را جهت development در سایر سیستم عامل ها بردارد، یعنی بجز امکان اجرا، بتوان در سیستم عامل لینوکس و مک هم کدنویسی ASP.Net Core 1 و Javascript و NodeJS را انجام داد.

ابزاری در نهایت سادگی است که قابلیت پشتیبانی ساده از افزونه های اضافه هم را فراهم میکند.
ابتدا فقط از Javascript و NodeJS پشتیبانی میکرد که این پشتیبانی در حال گسترش است.
طبیعتاً نمیتوانید از آن انتظار IDE هایی مانند VS و XamarinStudio و NetBeans و Eclipse و SharpDevelop و WebMatrix و... را داشته باشید.
ولی در نوع خود بیان کننده آغاز یک رویکرد جدید در مایکروسافت است.

درنتیجه بستری ساده و سبک را برای توسعه تحت هر زبان برنامه نویسی فراهم در سیستم عامل های مختلف فراهم میکند.
خلاصه آنکه، مختص PHP نیست ولی امکان کمک به برنامه نویسان PHP و همچنین سایر زبانهای برنامه نویسی را هم دارد.
1395/03/11 11:3
h-e-r-o-e-s

 
سلام

ببخشید با vscode باید چجوری کار کنم ؟

کار کردن باهاش مثل این که خیلی سخته ...
1395/03/12 2:13
حاجی شریفی
مؤسس سایت
 
سلام
نقل قول نوشته شده توسط: h-e-r-o-e-s
کار کردن باهاش مثل این که خیلی سخته

چرا برادر؟! پوشه ای را باز میکنید، فایل ها را در سمت چپ نشان میدهد ، شبیه SolutionExplorer ... کلیک میکنید وفایل ها را ویرایش میکنید... گمانم کمی کار کنید دست تان بیاید، خیلی ساده است.
1395/03/14 10:18
h-e-r-o-e-s

 
سلام
خوبید؟
ببخشید چند تا سوال داشتم

با چه زبانی با vscode باید برنامه بنویسم؟
چجوری باید ازش خروجی بگیرم؟
خروجی که با vscode از اون میگیرم مخصوص مک و سیستم عامل های دیگر هست یا مخصوص ویندوز؟
اولین قدم برای راه اندازی vscode چیه ؟
چجوری باید vscode رو راه بندازم؟
1395/03/15 11:39
حاجی شریفی
مؤسس سایت
 
سلام
نقل قول نوشته شده توسط: h-e-r-o-e-s
با چه زبانی با vscode باید برنامه بنویسم؟

همانطورکه اشاره شد، این محیط خیلی سبک است ولی از ++Notepad بیشتر است، پس امکانات کم دارد درعوض گستره ای از زبان ها را پشتیبانی میکند که با فرمان تایپی ext install xxx قابل نصب است.
بعنوان نمونه برای نصب سی شارپ باید افزونه omnisharp را با فرمان ext install csharp نصب کنید...
زبان های مورد پشتیبانی: (برای مشاهده صفحات بعدی باید see more را کلیک کنید)
https://marketplace.visualstudio.com/vscode/Languages


نقل قول نوشته شده توسط: h-e-r-o-e-s
چجوری باید ازش خروجی بگیرم؟
گمان نکنم خروجی بدهد ولی خوب زبان هایی که پشتیبانی میکند نیاز به خروجی خاضی هم ندارند، مثلا javascript, nodejs, php, dotNet Core 1 ... البته منوی برای باز کردن خط فرمان در محل مورد نظر دارد که کمک میکند.
بعنوان نمونه در پلتفرم جدید dotNet Core 1 RC2 کافی است به محل بروید و فرمان "dotnet pack" را بدهید.


نقل قول نوشته شده توسط: h-e-r-o-e-s
خروجی که با vscode از اون میگیرم مخصوص مک و سیستم عامل های دیگر هست یا مخصوص ویندوز؟

ارتباطی با vscode ندارد،آن فقط یک ویرایشگر است، این مورد به زبان های برنامه نویسی که کار میکنید مرتبط است.
همانطور که اشاره شد، javascript, Nodejs, php, dotNetCore ذاتا قابلیت اجرا در سیستم عامل های مختلف را دارند.

الآن شما با نسخه اصلی Visual Studio 2015 هم میتوانید تحت ASP.Net Core 1 RC2 کدی بنویسید که در سیستم عامل های مختلف کار کند...
کافی است بسته زیر را دانلود و با اینترنت متصل، نصب کنید.
dotNET Core Tooling Preview 1 for Visual Studio 2015
سایت dotNet Core
http://dot.net


نقل قول نوشته شده توسط: h-e-r-o-e-s
اولین قدم برای راه اندازی vscode چیه ؟ چجوری باید vscode رو راه بندازم؟

از سایت https://code.visualstudio.com/Download دانلود و نصبش میکنید و پلاگین های مرتبط را با Ctrl+P فرمان ext install xxx نصب میکنید.
1395/03/15 12:5 اجرا تحت سیستم عامل های دیگر
حاجی شریفی
مؤسس سایت
 
سلام مجدد
اجازه دهید در خصوص اجرا کد csharp در سیستم عامل های دیگر کمی توضیح دهم...

اول آنکه این اجرا ارتباطی به VS یا VSCode ندارد وبدیهی است Visual Studio کاملترین ابزار است.

دوم آنکه پلتفرم جدید ومتن باز dotNetCore کامپایلر و محیط زمان اجرا دات نت را به سیستم عامل های دیگر منتقل کرده وکاری برای UI انجام نداده، یعنی تحت dotNetCore کد شما بصورت Console Application یا میزبانی ASP.Net (مشابه زمانی که php را روی linux راه اندازی میکنید) میتواند اجرا شود ولی میتوان برنامه exe مانند ساخت که با ظاهر html و css در یک مرورگر و بدون شبکه کار کند!
درکل اگر خیلی کنجکاو هستید پیشنهاد میکنم حداقل NewProject خالی ASP.Net Core 1 را یکبار ساخته و نگاهی به ساختار کلی پروژه بیاندازید.
صد البته باید آمادگی اش را داشته باشید که بطور طبیعی در روزها و هفته های اول شاید گیچ کننده باشد، و این اگر پیش از این MVC کار نکرده باشید شاید کمی بیشتر هم شود ولی بعد مدتی متوجه خواهید شد و اگر الگوی معماری را درک کنید، خواهید دید بسیار قدرتمند ومنعطف است.

سوم برای داشتن واسط کاربری عادی مانند button, textbox, combobox و... در برنامه های دسکتاپی سیستم عامل های دیگر، باید از xamarin استفاده کنید.
https://xamarin.com/download