اشتراک‌ها
کتاب رایگان Unity Game Development Succinctly

Unity has become one of the top choices in tools for game development, holding 45% of the game engine market. In Unity Game Development Succinctly, Jim Perry covers the major features of Unity and those used to create a small 2-D game, from installation to adding features popular in some of today’s successful PC and console games. Set up a UI, sprites, background music, basic animation, and game logic to make your own simple game.

Table of Contents

  1. Getting Started
  2. Scenes and Scene Management
  3. User Interface
  4. 2-D Graphics and Sprites
  5. Input
  6. Animation
  7. Audio
  8. Implementing Gameplay 
کتاب رایگان Unity Game Development Succinctly
اشتراک‌ها
ارتقاء JavaScript Editor در Visual Studio 2015
JavaScript is an important technology for development on many different platforms, including web, mobile app, and server programming. In Visual Studio 2013 we already support IntelliSense, Go to Definition, colorization, and formatting of JavaScript source, along with several other features. We’ve carried these forward into Visual Studio 2015 and we’ve improved the experience for JavaScript developers by focusing on three key areas:
  1. Improving the development experience when using popular JavaScript libraries
  2. Adding support for new JavaScript ECMAScript 2015 (also known as ES2015 and formerly ES6) language and web browser APIs
  3. Increasing your productivity in complex JavaScript code bases
ارتقاء JavaScript Editor در Visual Studio 2015
نظرات اشتراک‌ها
پیش نمایش Rider 2019.1
من این ide رو نصب کردم و از آن هرازگاهی استفاده میکنم، چندتا از ویزگیهاش(هم مثبت و هم منفی) که الان به ذهنم می‌رسه رو عرض می‌کنم:
1- توی لود پروژه هایی که تعداد فایل زیادی دارند خیلی کند هست. الان مدتی هست که روی یک پروژه روی asp.net mvc core 2 کار می‌کنم، تعداد فایلهای آن ذاتاً زیاد است، و چندتا پروژه اوپن سورس هم که بهش اضافه کردم تعداد فایل بیشتر هم شده و rider واقعاً در بحث لود کردن و ایندکسینگ بسیار کند عمل میکنه.(البته اگر هارد ssd داشته باشید فکر نکنم مشکلی باشه)
2- برای کسی که سالها با visual studio کار کرده برقراری ارتباط با آن کمی مشکل هست، مخصوصاً در بحث go to definition و ...
3-حتماً باید ram سیستم در حد مطلوب باشد، درسته حجم خود نرم افزار نسبت به vs بسیار کمه اما در زمان اجرا واقعاً رم بسیار زیادی می‌گیره.
4- گاهی خطاهایی در زمان debug میگیره که در visual studio اتفاق نمیافته
5- چون resharper رو ذاتاً در خودش داره توی refactoring و بهینه کردن کدها بسیار کمک میکنه.
6- بنده توی خطایابی و رفع خطاهای موجود در کدها در visual studio راحت‌تر هستم، مخصوصاً بعد از نصب ابزارهای roslyn به نظرم visual studio راحت‌تر عمل میکنه.
7- واقعاً find در visual studio نسبت به find این ide حرفی برای گفتن نداره، البته بنده گاهی که نیاز به جستجوی سریع و پیچیده دارم از هیچکدوم استفاده نمیکنم در این مواقع از sublime text استفاده میکنم
8- در زمینه کار با سیستمهای version control به نظرم هردو امکانات خوب و کاملی دارند، منتها به سبب عادت من با visual studio راحت ترم.
9- با همه اینها فکر میکنم اگر عادت کنیم rider یک ide قابل تحسینیه، و با بهبودهایی که خواهد داشت مطمئنا برای dotnet core یک ide پرطرفداری خواهد بود
نظرات اشتراک‌ها
چرا از آنگولار به ری اکت + ری داکس سوئیچ کردم!
فلسفه صحیح ری اکت : ساده گی، ماژولاریتی (استفاده مجدد) و کامپوزیشن (ترکیب بندی) --- این فلسفه برای یونیکسی ها آشناست.

ری اکت CSS و HTML رو در قالب کامپوننت‌ها کپسوله میکند و یک تضمین بوجود می‌آورد که همه جا معتبر رفتار کند. (اصول طراحی )

میتوان ری اکت رو بدون استفاده از JSX   هم استفاده کرد.! مطمئن هستید که JSX رو درک میکنید ؟

میتوان ری اکت رو با TypeScript هم استفاده کرد ! ولی فک نکنم کار عاقلانه ای باشه که انگولار را بدون تایپ اسکریپت استفاده کرد.!

ری اکت یک کتابخانه است  که فقط لایه ویو شما را شامل میشود. پس سرور چه میشود؟ کسی هست که RESTful API رو نشناسه؟ تجربه کاری با نود جی رو داشته اید؟ (-- نگید که این لذت رو تجربه نکرده اید --) (استک‌های فروان)

ابزارهای همراه ری اکت بهتر بشناسید ! Redux موضوعی نیست که منحصر به ری اکت باشه. این یک مدل طراحی ارائه می‌دهد.! روتر‌های ری اکت رو از نسخه 4 به بعد امتحان کنید.-- ابزارهای متن باز رو دست کم نگیرید!

جریان داده یک طرفه! اوج سادگی، زیبایی و تست پذیری رو همراه داره. اجزای یک صفحه در قالب یک درخت واره هستند که جریان داده از ریشه به سمت برگ‌ها حرکت میکنه و جریان جدید اطلاعات از برگ‌ها توسط کال بک‌ها به پدر‌ها منتقل میشود . ---‌تر و تمیز و مرتب ---

کدهایی که مایکروسافت و گوگل آزاد گذاشته اند یک جنبه تأمین مالی رو حتما همراه دارند.... معنی آزادی نرم افزار جور دیگری بیاندیشید! کسانی که این پروژه‌ها بروز میکنند و پیش میبرند چه چیزی عایدشان میشود؟
نظرات مطالب
بخش اول - آشنایی و شروع کار با Svelte
حجم زیاد برنامه‌های بزرگ که به طور مثال با angular نوشته شده اند همیشه دردسر ساز بوده و کاربرانی که از اینترنت‌های ضعیف‌تر استفاده میکنند را با مشکل مواجه کرده. بخصوص داخل ایران کاربر کم نداریم که این مشکل رو دارند در نتیجه به نظر من معیار بدی نیست برای مقایسه. 
در مورد کم کردن حجم و زمان کدنویسی هم به مراتب به نظر من svelte آمار بسیار مناسبی نسبت به سایر فریم ورک‌های معتبر داره همینطور یادگیری و کارکردن با آن ساده است که به فرایند تولید نرم افزار بسیار کمک میکنه. حداقل برای من این نکته خیلی مهم هستش. 
مورد آخری که میمونه در مورد performance هست که اتفاقا من از دیشب مجددا پس از نوشتن این مقاله در موردش تحقیق کردم ولی هنگام نوشتن این مقاله نخواستم بهش اشاره کنم چرا که شاید به نظر میومد قصد دارم حقیقت رو به شکل دیگه ای نشون بدم.
در واقع  از نظر performance به طور کلی این کامپالر عملکرد به مراتب بهتری داره نسبت به سایر فریم ورک هایی که تا امروز استفاده کرده ایم. چه در استفاده از مموری و چه در اجرای کد تنها به دلیل اینکه از virtual-DOM استفاده نمیکند. در آمار بالا خیلی از پارامتر‌های مهم لحاظ نشده بودند به همین جهت رتبه بندی به این شکل است, چرا که تنها svelte در این لیست یک کامپایلر است و الباقی فریم ورک هستند که وضعیت حدودا برابری با هم دارند. 
پیشنهاد میکنم اگر در مورد مزیت‌های این کامپایلر نیاز به اطلاعات بیشتر داشتید این چند ویدئو رو مشاهده کنید. با جزئیات به این موارد بخصوص در بحث Performance پرداخته اند.
جواب سوال شما در ویدئو اول داده شده و در مورد performance دو ویدئو بعدی دلایل بهتر بودن آن را بیان میکند.
در آخر منظور من به طور قطعی بهتر یا بدتر بودن این کامپایلر نیست ولی با توجه به امکانات و تفاوت هایی که داره ارزش امتحان کردن رو قطعا داره. درمورد تعداد سوال و مشارکتی که گذاشتید حق با شماست این پروژه کاملا یک کار یک نفره است و هنوز جا نیفتاده, شاید هم نیفته به همین جهت من بزرگترین ایراد اون رو نداشتن پشتوانه قوی بیان کردم در قسمت معایب.
نظرات مطالب
انجام کارهای زمانبندی شده در برنامه‌های ASP.NET توسط DNT Scheduler
سلام؛ در نسخه قبلی که بر روی ASP .NET MVC بود برای پروژه ای که روی سرور هاست کرده بودم و سرور "فقط" از TLS1.2 استفاده می‌کرد (سرور از طریق نرم افزار NARTAC کانفیگ شده و همه نسخه‌های SSL و Tls1.0 و Tls1.1 بر روی آن غیر فعال شده است به دلیل موارد امنیتی) مجبور بودم دو خط کد زیر را در متد WakeUp قبل از کد دانلود صفحه اضافه کنم
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

تا خطایی برای دانلود صفحه دریافت نکنم و کد به درستی کار کند
برای نسخه جدید که بر روی dot NET Core زحمت آن را کشیده اید کد آن کمی تغییر کرده و به جای استفاده از شئ WebClient و دانلود صفحه از شئ HttpClient استفاده شده.
ممنون میشم راهنمایی بفرمایید در اینجا برای فعال سازی Tls1.2 به چه نحوی باید عمل کنم تا خطا نده؟ آیا باید دوباره همین دو خط کد بالا را قبل از خط کد
await _client.GetStringAsync(SiteRootUrl);
که در کلاس ThisApplication نوشته شده صدا بزنم؟


ضمنا به چه نحوی باید متد LogError که در قطعه کد زیر در کلاس Startup نوشته شده رو شخصی سازی کنم تا همه لاگهای خطا در جدولی در بانک اطلاعاتی ذخیره شود؟ (چون از بانک اطلاعاتی مونگو استفاده کردم می‌خواستم این بخش رو برای مونگو پیاده سازی کنم)
var logger = loggerFactory.CreateLogger(typeof(Startup));
app.UseDNTScheduler(onUnexpectedException: (ex, name) =>
{
      logger.LogError(0, ex, $"Failed running {name}");
});
نظرات مطالب
نحوه تعریف Linked Server و دریافت اطلاعات از سروری دیگر
ممنون.
تراکنش‌های توزیع شده فعال هستند.
در حال حاضر وقتی یک SP رو از داخل نرم افزار یا کوئری اجرا میکنم درست اجرا میشه، اما به وقتی فراخوانی رو به داخل تریگر جدول انتقال میدم خطا میده، نکته جالب اینه که دستور SELECT از MySql درست کار میکنه تو تریگر اما دستوراتی که اقدام به تغییر اطلاعات میکنن خطا میده.
نکته :
1- ویندوز 10
2- SQL Server 2016
3- Mysql 5.1

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

-- Insert --
INSERT  INTO OPENQUERY(MyLinkServer, 'SELECT * FROM unit')
VALUES  ( 1, 5, 'fa', '0', GETDATE(), '1', GETDATE(), '1' );
----------------------------------------------------------------------------------------
-- Update --
--1
UPDATE  OPENQUERY(MyLinkServer , 'SELECT * FROM unit WHERE id=4')
SET   [is_deleted] = '0';
--2
EXEC('UPDATE unit set is_deleted=''1'' where id=4;') AT MyLinkServer ;
-- 3
UPDATE  OPENQUERY(MyLinkServer , 'SELECT * FROM unit')
SET   [is_deleted] = '0'
WHERE id = 4;
----------------------------------------------------------------------------------------
-- Delete --
DELETE  OPENQUERY(MyLinkServer, 'select * from unit where id=4;');

 

نظرات مطالب
معماری میکروسرویس‌ها
من در مورد همه مشکلات میکرو سرویس زیاد با شما موافق نیستم 
  • از آنجایی که ارتباط بین سرویس‌ها در بستر شبکه انجام می‌شود، انتظار کندی عملکرد سرویس‌ها دور از ذهن نیست. (اتفاقا بخاطر توزیع برنامه بر روی چند سیستم در زمانی که بار زیادی بر روی سیستم هست پاسخ گویی به کاربر می‌تونه خیلی بسرعت انجام بپذیره و اتفاقا یکی از مزایای اون هست)
  • به دلیل ارتباطات شبکه‌ای، احتمال آسیب پذیری‌های امنیتی در این نوع برنامه‌ها بیشتر است. (البته بیشتر این توزیع در server farm  انجام می‌شه ،یعنی پشت فایروال و کسی جز سرورها در این شبکه خصوصی وجود ندارد، نمی‌گم نیست ولی خیلی نیست)
  • نوشتن سرویس‌هایی که در بستر شبکه با سایر سرویس‌ها در ارتباط هستند سختی و مشکلات خود را دارد. برنامه‌نویس در این شرایط، درگیر برقراری ارتباط، رمزگذاری داده‌ها در صورت نیاز و تبدیل آنها می‌شود.(همان موارد بالا)
  • به دلیل مجزا بودن بخش‌های مختلف برنامه، مانیتور کردن و ردیابی عملکرد سرویس‌ها، یکی از کارهای اصلی توسعه دهنده یا استفاده کننده از برنامه است. (اینم خودش یک فایده است و طبق اصل SRP  و تفاوت MicroServic با SOA  بیشتر بر همین نکته تاکید داره که یک میکرو سرویس کاملا مستقل می‌باشد و راحت‌تر قابل مانیتور کردن و ردیابی عملکرد سرویس می‌باشد
  • در مجموع سرعت برنامه‌های نوشته شده با معماری Microservices کندتر از برنامه‌های نوشته شده با معماری Monolithic است. دلیل آن محیط اجرایی برنامه‌ها است. برنامه‌هایی با معماری Monolithic بر روی حافظه سرور پردازش می‌شوند. (باز تاکید که اصل استفاده از میکرو سرویس برای سیستم هایی با تراکنش بالا می‌باشد ،هدف توسعه راحتر و بدون تاثیر بر بقیه سرویس‌ها و حتی بدون توقف آنها می‌باشد، همچنین امکان  horizontal Scalability   نرم افزار و بالا بردن تعداد سرور‌های ارائه دهنده سرویس براحتی بوجود خواهد امد ، پس می‌تونه سرعت رو خیلی بالا ببره و مشکل توقف سرویس که در خیلی از سامانه‌های ایرانی می‌بینیم رو از بین میبره )
نظرات مطالب
PHP سریعتر از ASP.NET! افسانه یا واقعیت؟
فناوری-زبان PHP بسیار محترم است و بسیار قابل توصیه اما برای آن زمانی که در رقابت با ASP کلاسیک بود و پدیده ای به نام دات نت ظهور نکرده بود حال آنکه پدیده یاد شده در زمان حال به پختگی و پیشرفت چشمگیری دست یافته است.
دنیای دات نت و مباحث مربوط به آن گسترده‌تر و پیچیده‌تر از آن است که برای توجیه استفاده از دات نت سرعت مقایسه شود. ده‌ها ویژگی منحصر به دات نت وجود دارد که برای انتخاب فناوری سمت سرور مجالی برای تفکر درباره سرعت باقی نمی‌گذارد و آنان که اهل تفکر باشند را جذب خود می‌کند و نه گمراهان (کسانی که یا تعصب دارند یا خسته‌تر از آن هستند که دنیای جدیدی را تجربه نمایند.)
در مورد سرعت کافی است نکات ساده ای که چند دقیقه بیشتر زمان نمی‌برند رعایت شود تا وب سایت‌های دات نتی چندین برابر سریعتر عمل کنند.
فراموش نکنید دنیای دات نت تا حد بیشتری با اصول مهندسی نرم افزار گره خورده است و باب میل همگان نیست.
عموماً سرویس دهنده بر حسب فناوری انتخاب می‌شود و نه برعکس! در مقالاتی که مقایسه انجام می‌دهند صحبت از رایگان بودن لینوکس و آپاچی و ... چندان ضرورتی ندارد.
بسیاری از آن‌ها که Open Source بودن PHP را با آب و تاب و به عنوان برتری مطرح می‌کردند هرگز در عمر خود به کدهای سورس آن نگاهی نکرده اند. البته اگر بداند از کجا باید دانلود کنند. توصیه می‌کنم در مورد رویکرد و سیاست‌های چند سال اخیر مایکروسافت در رابطه با Open Source تحقیق بیشتری صورت گیرد.
مثال هایی از سایت‌های موفق و یا تعداد سایت‌ها در یک فناوری هرگز دلیلی برای انتخاب فناوری نیست. ضمناً زمان ظهور این دو فناوری یکسان نبوده است که تعداد وب سایت‌ها معیار مقایسه باشد.
فناوری-زبان PHP هنوز وجود دارد. هنوز قدرت خود را دارد. و هنوز هر کجا به هر دلیلی امکان استفاده از دات نت نبود، با کمال افتخار و خوشحالی از این که چند سال عمری که برای آن گذاشته ام هدر نرفته است به آن باز می‌گردم و آن را مورد استفاده قرار می‌دهم.
نظرات مطالب
مفاهیم برنامه نویسی ـ مروری بر پروپرتی‌ها
سلام،
خیلی برام لذت بخشه دانسته هام رو به شیوه ای زیباتر مرور کنم و در ضمن با نکاتی ظریفتر آشنا بشم.
  چند تا پیشنهاد:
1- خیلی خوب میشه اگه تا حد امکان معادل انگلیسی کلمات تخصصی مربوطه رو هم بزارید، مثلا از اکسسور استفاده میکنید خوبه ولی داخل پرانتز هم اشاره ای به معادل انگلیسی Accessor بکنید تا بدونیم در سینتکسش چه جوریه، و تا حد امکان هم معادل تخصصی واژه مربوطه ذکر بشه مثلا فیلد‌های خصوصی داخل کلاس معمولا با عنوان backing field یا فیدلهای پشتی خطاب میشه که اگه به این موارد هم اشاره ای بشه خوبه.
2- جاهایی که به استاندارد‌ها و کلا هر چیزی در حوزه مهندسی نرم افزار اشاره می‌کنید لطفا تا حد امکان اشاره ای هم به آن بکنید مثلا فرمودید اصول نامگذاری استاندارد فیلد خصوصی، اینجا به نظر من بهتره که اشاره ای هم بکنید مصلا در استاندارد مایکروسافت فیلدهای خصوصی از قاعده نامگذاری Camel Case استفاده میکنند و یا مثلا در متد‌ها و کلاس‌های از روش Pascal Case استفاده میشه.
3- در مورد اینکه چه مواقعی باید از فلان موضوع، قاعده و مبحث و ... استفاده بشه هم در صورت امکان و تا حد توان اشاره بکنید مثلا فرمودید فیلدهای فقط خواندنی Readonly، مناسبه که اشاره ای هم بکنید معمولا چه زمانی و در چه شرایطی بهتره از این نوع فیلد استفاده کنیم و چرا؟ (البته هنوز که توضیحی ندادید ولی پیشتر اشاره کردم تا انشاء الله در مقاله بعدی تان در صورت صلاحدید لحاظ بفرمایید).
پیشنهاداتی که شد صرفا برای هر چه بهتر شدن مقالات بعدی شماست و اینکه باعث بشه، خواننده وقتی با موضوعاتی در این زمینه در متون تخصصی برخورد داشت احساس بیگانگی نکنه و سریعتر در جریان کار قرار بگیره.
سلسله مباحثی که ارائه کرده اید تا کنون زیبا بود و خواندنی و بنده هم مخاطب همیشگی این سلسله مباحث و البته امیدوارم به کمتر شدن فاصله بین پست‌های ارسالی :).
متشکرم/.