1395/03/22 1:3 dotNet Core
حاجی شریفی
مؤسس سایت
 
dotNet Core 1 RC2

سلام
اخیرا نسخه جدید RC2 برای dotNet Core 1 منتشر شد.
در حال حاظر امکان تولید پروژه های Library و Console وصدالبته ASP.Net تحت dotNetCore وهمچنین سیستم عامل های ویندوز ومک و لینوکس وجود دارد.
درحال حاضر بیشتر ظهور بروز dotNetCore را میتوان در ASP.Net Core 1 دید.
تحولی بسیار شگرف است.
ASP.Net جدید دیگر مختص ویندوز نیست و حتی امکان اجرای selfhost به کمک یک exe کوچک را هم دارد، تمام سورس کدها هم باز و قابل رویت ودانلود است، در واقع تنها نقطه ظعف ASP.Net قبلی هم بطور کامل برطرف شد.
معماری تزریق وابستگی در پوست و گوشت ASP.Net جدید تزریق شده، امکان استفاده از پروژه های Bower و Grunt و Gulp و NPM و... فراهم شده، حالا با انعطاف وبازدهی بسیار بالاتری میتوان از فایلهای less و sass و ts و coffee و... استفاده کرد.
در یک پروژه میتوان خروجی برای کامپایل سکوهای مختلف مانند net20~net462 را داشت، کاری که پیش از این نیاز به وجود csproj های مختلف داشت.
رابط اصلی برنامه نویسان برای کامپایل و انتشار و بازیابی بسته هاو... فرمان dotnet است.
و...

با وجود آنکه هنوز نسخه نهایی منتشر نشده، پیشنهاد میکنم دوستان فعال در دات نت وسی شارپ حتما خودشان نگاهی بیاندازند.
Website:
http://dot.net

.Net Core 1 RC2 for VS2015:
https://go.microsoft.com/fwlink/?LinkId=798481

Sources:
https://github.com/dotnet
https://github.com/aspnet

ASP.Net Core 1 Documents:
https://docs.asp.net

پیشنهاد میکنم دوستان یک پروژه ساده برای خودشان تعریف کنند (داشتن یک هدف) و وقت بگذارند تا آن را با پلتفرم جدید بسازند.
این پروژه میتواند یک وبلاگ شخصی باشد، یا یک فروشگاه کوچک و...

درواقع پروژه شخصی خودم برای تحقیق ASP.Net جدید ، نرم افزار همین سایت است که با گرفتاری های عجیب و غریب شخصی ام، لاک پشت وار در حال توسعه است!
1395/03/22 1:4
حاجی شریفی
مؤسس سایت
 
تحولات جدید سکوی دات نت از جنبه های مختلف قابل بررسی است
اول میتوان به کامپایلر جدید CSharp6 با نام Roslyn اشاره کرد که با خود CSharp نوشته شده و متن باز است و در سیستم عامل های مختلف قابل اجرا است و امکان پاره ای تحلیل های آماری را هم میدهد ...
در محدوده سینتکس، خوشبختانه کامپایلر Roslyn هیچ سینتکس قبلی را باطل نکرده و همه کلمات کلیدی و سینتکس های قبلی معتبر هستند فقط قابلیت های جدیدی را اضافه کرده.
قابلیت های جدیدی مانند Null-Conditional Operator یا Nameof Expressions یا Interpolated Strings و...

//CSharp 1~6
int x = 123;
string s = string.Format("the value is {0}", x);

//CSharp 6
int x = 123;
string s = $"the value is {x}";

یعنی همه سینتکس ها و کلمات کلیدی از if و for و lock گرفته تا async و volatile و... هرچه را شما بلد باشید (قدیم یا جدید) یا وقت بگذارید و این ساختارها را یاد بگیرید ضرر نخواهید کرد و چیزی را از دست نمیدهید.

==============

مورد بعدی فریم ورک جدید dotNetCore است که در واقع معادل/مشابه/نظیر dotNetFramework آشنای قبلی است.
دقت کنید که dotNetCore جایگزین dotNetFramework نیست و dotNetFramework برای انتشار تحت ویندوز همچنان پشتیبانی وتوسعه داده خواهد شد، کما اینکه نسخه نهایی و آتی dotNetFramework v4.6.2 در راه است.

درحال حاضر امکانات و توابع dotNetFramework بسیار کاملتر بوده ولی فقط مختص اجرای برنامه روی سیستم عامل ویندوز است.

dotNetCore بازنویسی مجددی از dotNetFramework است، که فضای نام ها ، کلاس ها و توابع فوق العاده شبیه و در واقع یک نام هستند ولی مختص اجرا در سایر سیستم عامل ها از جمله مک و لینوکس نوشته شده.

همانطورکه گفته شد، امکانات dotNetFramework هنوز بیشتر است، در واقع برای برخی امکانات آن باید راه کارهایی پیدا شود که مختص سیستم عامل ویندوز نباشد و این زمان میبرد، تیم مربوطه در حال کار هستند و تلاش میکنند تا بخش های بیشتری را برای کار در سایر سیستم عامل ها بازنویسی کنند ولی در حاضر پیشرفت بسیار خوب بوده و اغلب موارد بازنویسی و تبدیل شده اند.
در واقع الآن شما میتوانید کدنویسی عاد ی را انجام دهید و خیلی راحت یک کامپایل روی dotNetFramework بگیرید و یک کامپایل هم روی dotNetCore ، چون نام کلاس ها و متدها عوض نشده...

یعنی در این محدوده هم همچنان کلاس های List و FileStream و Thread و... و... وجود دارند و یادگیری آنها مشکلی ندارد، فقط مثلا شاید از کلاس MemoryStream که استفاده میکنید روی کامپایل dotNetCore تابع ToArray نداشته باشد که این موارد را هم VS در زمان کدنویسی و در فهرست های بازشو نشان داده و اخطارهای لازم را میدهد.

البته مطلب را خیلی خلاصه و فشرده خدمت تان عرض کردم و ریزه کاری ها و ریزنکات فراوانی وجود دارد.

==============

در گام بعد میرسیم به نوع پروژه ها ...
WinForm و ASP.Net WebForm که همچنان تحت dotNetFramework وجود دارد و قابل استفاده است ولی میدانید که چند سالی است توسعه آن متوقف شده و دیگر به آن چیزی از طرف مایکروسافت اضافه نخواهد شد ، این مورد هم ارتباطی به dotNetCore ندارد ولی درهرصورت شما میتوانید پروژه جاری خود را توسعه دهید و حتی پروژه جدید بسازید.
* در واقع سرمایه گذاری برای یادگیری ویا ایجاد پروژه های تازه از این نوع ها چندان مفید نیست *

پروژه های WPF کماکان به قوت خود پابرجا هستند و فعلا dotNetCore هم وارد این عرصه نشده، این پروژه ها تحت dotNetFramework و Xamarin (برای سایر سیستم عامل ها) قابل استفاده هستند.

درحال حاضر تحت dotNetCore میتوانید پروژه های Console و Library و ASP.Net Core 1 ایجاد کنید.
اجزای این پروژه ها تحت dotNetCore کمی تغییر کرده، اجزا که میگویم منظورم مدیریت پروژه تان است، مثلاً فایل جدید project.json را داریم که برخی از اصلی ترین تنظیمات پروژه تان را نگه داری میکند، باید ساختار آن را بشناسید و در بتوانید برای مقاصد خود دستی ویرایش اش کنید، علی الحساب شبیه app.config و web.config فرضش کنید که البته چنین نیست!
نکته جالب دیگر آن است که اگر پروژه های فوق را بسازید با تغییر تنظیمات همین آقای(!) project.json میتوانید خروجی dotNetFramework هم از کامپایل بگیرید، اصلاً میتوانید کامپایل تحت dotNetCore را حذف کنید.
پس دستکاری project.json امکان خروجی کامپایل های متفاوت را میدهد.

اصلی ترین تغییرات می ماند برای ASP.Net Core 1 که ضمن آنکه کاملا از بنیان از اول نوشته شده، فضای نام ها و کلاس ها و متدها و... و.... هم همه عوض شده، فقط و فقط الگوی کلی کاری ASP.Net MVC5 و قسمت اعظم سینتکس های Razor حفظ شده، یعنی در ASP.Net Core 1 هم مفهوم Model, View, Control, Action, ModelBinder, Router, Razor و... وجود دارد، در واقع مفاهیم و سینتکس کلی روی کار، خیلی به ASP.Net MVC5 نزدیک است ولی در زیرساخت همه چیز متلاشی و مجدد سرهم شده!

مثلاً کتابخانه System.Web.dll که قلب ASP.Net و رابطه آن با IIS بود بکل حذف شده، HttpHandler یا HttpModule که مفاهیم بسیار بنیادین و زیر ساختی ASP.Net بودند دیگر به شکل قدیم وجود ندارند.
این مفاهیم که خدمت تان عرض میکنم زیر ساخت ASP.Net بوده اند حتی با آمدن MVC هم تغییری نکردند چون کوچک ترین تغییر آنها کاخ زیرساختی ASP.Net را فرو میریخت و نیازمند کدنویسی از صفر برای ASP.Net بود، که البته چنین شد.


...
...
...

لازم است مجدد تاکید کنم که امکان کار با نوع پروژه های Classic قبلی همچنان وجود دارد ولی دیگر توسعه آن ها متوقف شده.
پس اگر تکنولوژی روز برایتان مهم است در نهایت در یادگیری ومطالعات ASP.Net خودتان فقط باید دقت کنید.
کتابهایی که در نامشان MVC یا Razor را یدک میکشند، بخشی از مفاهیم شان همچنان در ASP.Net Core 1 وجود دارد و قابل استفاده است.
کتابهای مختص ASP.Net Core 1 هم که هنوز نسخه های لاتین محدود دارند، فارسی که در کل وجود ندارد.

برای یادگیری نهایی گرچه اولش کمی سخت است ولی داشتن نیم نگاهی به کتابهای MVC و Razor قدیم و کار وساخت عملی پروژه تحت RC2 میتواند راه گشا باشد.
البته همانطور که در پست قبل اشاره شد، مستندات ودر واقع Help نسخه جدید ASP.Net از طریق لینک زیر در دسترس است:
https://docs.asp.net


1395/03/23 22:54
h-e-r-o-e-s

 
سلام
یک سوال
1- من دات نت کور باید از کجا بفهمم که نصب هست یا نه؟
2- آیا نسخه ای ویژوال استودیو ای که لینک دانلودش تو وب سایت شما است ایا با دانلود ویژوال استودیو و نصب آن دات نت کور یک نصب می شود یا این که باید ان را جداگانه دانلود و نصب نماییم ؟
با تشکر و سپاس فراوان از استاد خوبم جناب آقای حاجی شریفی


تفاوت میان دوستت دارم و عاشقتم چیست؟
پاسخی زیبا از چارلی چاپلین:

    *** شما اگر گلی را دوست داشته باشید آن گل را می چینید اما اگر عاشق گلی باشید آن را هر روز آبیاری می کنید ***   

من که به شخصه عاشق شما هستم ...

 

1395/03/24 1:57
حاجی شریفی
مؤسس سایت
 
سلام
نقل قول نوشته شده توسط: h-e-r-o-e-s
1- من دات نت کور باید از کجا بفهمم که نصب هست یا نه؟

میتوانید سری به مسیر PROGRAMFILES%\dotnet% یا همان C:\Program Files\dotnet بزنید و ببنید همچین پوشه ای وجود دارد یا خیر.
یا
همانطورکه گفته شد، بخش اعظمی از کارها با فرمان dotnet انجام میشود.
یعنی میتوانید در یک CommandPrompt فرمان "dotnet --version" یا "dotnet --info" را اجرا کنید واطلاعات و نسخه و... را مشاهده کنید.

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

خیر، نصب نمیشود، این جدیدتر از عرضه VS2015-U2 است.
VS2015 نسخه ASP.Net 5 RC1 را برپایه DNX نصب میکند که حالا در نسخه جدید تغییر نام پیدا کرده.

حجم دانلود هسته مرکزی کم است، در واقع بعدا که بخواهید از هر بسته dll ای در پروژه تان استفاده کنید، آن بسته دانلود خواهد شد، در نتیجه هسته کوچک است.

نقل قول نوشته شده توسط: h-e-r-o-e-s
من که به شخصه عاشق شما هستم


چه عرض کنم، لطف دارید.
شب خوش.