اشتراکها
نظرات اشتراکها
به روز رسانی فایل OPML وبلاگهای IT ایرانی
جهت اعمال استایل سفارشی هم میتونید از افزونه Stylish استفاده کنید، مثلا نمایش فونت به صورت tahoma و ... یک نمونه در اینجا
مطلب فوق مربوط به بوت استرپ دو است. این افزونه در بوت استرپ سه حذف شده و باید از کتابخانههای ثالث استفاده کنید. برای نمونه
اشتراکها
Angular Language Service چیست؟
تیم Angular در حال تهیهی پروژهای است به نام Angular Language Service که به عنوان افزونهای برای ادیتورها جهت درک بهتر قالبهای کامپوننتها بکار میرود.
اشتراکها
Visual Studio 2017 15.6 منتشر شد
- We improved solution load performance by optimizing design time build.
- We've added installation progress details on Visual Studio Installer.
- You can pause your installation and resume at a later time.
- We streamlined the update process so the notification takes you directly to the Installer.
- Non-administrators can create a VS layout.
- We added a new shortcut for Edit.Duplicate in the keyboard mapping.
- We made significant improvements to the F# language and tools, particularly for .NET Core SDK projects.
- The C++ compiler optimizes your code to run faster through improved optimizations.
- C++ Mapfile generation overhead is reduced in full linking scenarios.
- Debug options are available for Embedded ARM GCC support.
- We added strong name signing on CoreCLR for the C# compiler.
- Visual Studio Tools for Xamarin has lots of new productivity updates for iOS and Android developers.
- Python no longer requires a completion DB, and Anaconda users have support for conda.
- The Performance Profiler's CPU Usage Tool can display logical call stacks for asynchronous code.
- The CPU Usage tool displays source line highlighting and async/await code with logical 'Call Stack Stitching'.
- The debugger supports thread names set via SetThreadDescription APIs in dump debugging.
- Snapshot Debugging can be started from the Debug Target dropdown for ASP.NET applications.
- We've launched the initial implementation of Navigate to decompiled sources for .NET code navigation.
- New enhancements for Configure Continuous Delivery include support for TFVC, Git authentication over SSH, and containerized projects.
- You can now click on the Continuous Delivery tile in Team Explorer to configure automated build and deployments for your application.
- Team Explorer supports Git tags and checking out pull request branches.
- Service Fabric Tooling for the 6.1 Service Fabric release is now available.
- The Windows 10 Insider Preview SDK can be installed as an optional component.
- File versions for a number of Visual Studio executables now reflect the minor release.
- Test Explorer has a hierarchy view and real time test discovery is now on by default.
- We have added support for testing Win10 IoT Core applications.
- Visual Studio Build Tools supports TypeScript and Node.js.
- ClickOnce Tools support signing application and deployment manifests with CNG certificate.
- You can access Azure resources such as Key Vault using your Visual Studio accounts.
«... به خوبی در پروژه اصلی بار گذاری میشود ...»
یعنی منوی پویای افزونهی مرتبط در پروژهی اصلی کار میکند و اضافه میشود و همچنین با کلیک بر روی آن، صفحهی اصلی افزونه ظاهر میشود؟ اگر بله، یعنی مشکلی در یافتن آن نبودهاست و مسیریابی آن اضافه شدهاست. اگر مسیریابی آن خوانده نشود، با کلیک بر روی منوی پویای آن، صفحهی اصلی افزونه ظاهر نمیشود.
در کل بررسی کنید:
- آیا پروژهی افزونهای که ایجاد کردید از نوع ASP.NET MVC است یا خیر؟
- آیا فایلهای پوشهی bin آن در پوشهی bin پروژهی اصلی کپی شدهاند یا خیر؟
- اگر این افزونه یک سری وابستگی اضافهتر دارد که در پروژهی اصلی ارجاعی ندارند، این فایلها هم باید در پوشهی bin پروژهی اصلی کپی شوند وگرنه این افزونه بارگذاری نخواهد شد.
دو مثال افزونه به همراه کدهای این پروژه هست، سورس خودتان را با آن انطباق دهید.
یعنی منوی پویای افزونهی مرتبط در پروژهی اصلی کار میکند و اضافه میشود و همچنین با کلیک بر روی آن، صفحهی اصلی افزونه ظاهر میشود؟ اگر بله، یعنی مشکلی در یافتن آن نبودهاست و مسیریابی آن اضافه شدهاست. اگر مسیریابی آن خوانده نشود، با کلیک بر روی منوی پویای آن، صفحهی اصلی افزونه ظاهر نمیشود.
در کل بررسی کنید:
- آیا پروژهی افزونهای که ایجاد کردید از نوع ASP.NET MVC است یا خیر؟
- آیا فایلهای پوشهی bin آن در پوشهی bin پروژهی اصلی کپی شدهاند یا خیر؟
- اگر این افزونه یک سری وابستگی اضافهتر دارد که در پروژهی اصلی ارجاعی ندارند، این فایلها هم باید در پوشهی bin پروژهی اصلی کپی شوند وگرنه این افزونه بارگذاری نخواهد شد.
دو مثال افزونه به همراه کدهای این پروژه هست، سورس خودتان را با آن انطباق دهید.
اشتراکها
آموزش آنگولار برای طراحان
زمانیکه از آنگولار 2 به بالا استفاده میکنیم باز هم احتیاجی به این کتابخانه وجود داره؟
خود انگولار این ماجولها رو در قالب کامپوننت درمیاره، یعنی مجبوریم بصورت کامپوننتهای جدا از هم دربیاریم
نظرات مطالب
بررسی مشکلات AngularJS 1.x
نظرتون راجع به آنگولار 2 تا اینجای کار چیه؟
تا اینجای کار توانسته مشکلات را برطرف کند؟
توانسته با کتابخانههای دیگه ارتباط برقرار بکند؟
یک: ASP.NET Core مستقل از Platform است
آیندهی محتوم نرمافزار، توسعه به شیوههای مستقل از Platform است. شاید این دلیل به تنهایی برای مهاجرت به ASP.NET Core کافی باشد. امروزه نرمافزارهایی که مبتنی بر یک Platform خاص نیستند، نسبت به سایر نرمافزارها مزیت رقابتیتری دارند. نرمافزارهای Cross Platform یا مستقل از Platform، بر روی هر سیستم عاملی اجرا میشوند. برای اجرای آنها در کامپیوترهای شخصی یا Server کافیست معماری پردازندهی مرکزی x86 باشد و سیستم عامل نیز یکی از انواع ویندوز، لینوکس یا مک.
دلیل مستقل بودن ASP.NET Core از Platform، مبتنی بودن آن بر NET Core. است. این نسخه از داتنت را میتوان برای سیستمعاملهای مختلف از http://dot.net دانلود و نصب کرد.
برای اجرای نرمافزارهایی که مبتنی بر NET Core. هستند نیاز به بازنویسی کدها یا استفاده از زبانهای برنامهنویسی جداگانهای نیست. این خاصیت همچنین برای libraryهای استانداردی که از این نسخه از داتنت استفاده میکنند نیز صادق است.
دو: Open Source است
یکی از انتقادهایی که سالها به مایکروسافت میشد، ناشناخته بودن سورس نرمافزارهای این شرکت و انحصار طلبیهایش بود. اما در سالهای اخیر مایکروسافت نشان دادهاست که این جنبه از کاراکترش را به تدریج اصلاح کردهاست. به طوری که اسکات هانسلمن، یکی از کارمندان این شرکت و وبلاگنویس مشهور در این مورد گفته است:
دلیل آمدن من به مایکروسافت این بود که میخواستیم هر چقدر میتوانیم کارها را Open Source کنیم و یک جامعهی کاربری برای داتنت و اوپن سورس بسازیم و حالا به NET Core 1.0. رسیدهایم.
زمانی شایعهی لو رفتن بخشی از سورس کد ویندوز ۹۵، در صدر اخبار تکنولوژی بود و این یک شکست برای مایکروسافت محسوب میشد. اما امروزه ASP.NET Core با لایسنس MIT عرضه شده است که یکی از آزادترین مجوزهای اوپن سورس است. نرمافزارهایی که با این مجوز عرضه میشوند، آزادی تغییر کد، ادغام با مجوزهای دیگر، عرضه به عنوان محصول دیگر، استفاده تجاری و ... را به همهی توسعهدهندگان میدهد.
سه: جدا بودن از Web Server
این نسخهی از APS.NET، کاملاً از وبسرور که نرمافزارها را هاست میکند، جدا (decouple) شده است. اگرچه همچنان استفاده از IIS بر روی ویندوز منطقی به نظر میرسد اما مایکروسافت یک پروژهی اوپن سورس دیگری را به نام Kestrel نیز منتشر کرده است.
وبسرور Kestrel مبتنی بر پروژه libuv است و libuv در اصل برای هاست کردن Node.js تولید شده بود و تأکید آن بر روی انجام عملیات I/O به صورت asynchronous است.
نکته جالب این است که یک برنامهی مبتنی بر ASP.NET Core، در واقع یک Console Application است که در متد Main آن وبسرور فراخوانی میشود:
using System; using Microsoft.AspNetCore.Hosting; namespace aspnetcoreapp { public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .Build(); host.Run(); } } }
چهار: تزریق وابستگی (Dependency Injection) تو کار
تزریق وابستگیها برای ایجاد وابستگی سست (loosely coupling) بین اشیاء مرتبط و وابسته به یکدیگر است. به جای نمونهسازی مستقیم اشیاء مرتبط، یا استفاده از ارجاعهای ایستا به آن اشیاء، زمانی که یک کلاس به آنها احتیاج داشته باشد، با روشهای خاصی از طریق DI به اشیاء مورد نیاز دسترسی پیدا میکند. در این استراتژی، ماژولهای سطح بالا نباید به ماژولهای سطح پایین وابسته باشند، بلکه هر دو باید به abstraction (معمولا Interface ها) وابسته باشند.
وقتی یک سیستم برای استفادهی از DI طراحی شدهاست و کلاسهای زیادی دارد که وابستگیهایش را از طریق constructor یا propertyها درخواست میکند، بهتر است یک کلاس مخصوص ایجاد آن کلاسها و وابستگیهایشان داشته باشد. به این کلاسها container، یا Inversion of Control (IoC) container یا Dependency Injection (DI) container گفته میشود.
با این روش، بدون نیاز به hard code کردن instance سازی از کلاسها، میتوان گرافهای پیچیده وابستگی را در اختیار یک کلاس قرار داد.
طراحی ASP.NET Core از پایه طوری است که حداکثر استفاده را از Dependency Injection میکند. یک container ساده توکار با نام IServiceProvider وجود دارد که به صورت پیشفرض constructor injection را پشتیبانی میکند.
در ASP.NET Core با مفهومی به نام service سر و کار خواهید داشت که در واقع به type هایی گفته میشود که از طریق DI در اختیار شما قرار میگیرند. سرویسها در متد ConfigureServices کلاس Startup برنامه شما تعریف میشوند. این serviceها میتوانند Entity Framework Core یا ASP.NET Core MVC باشند یا سرویسهایی که توسط شما تعریف شدهاند. مثال:
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices (IServiceCollection services) { // Add framework services. services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity<ApplicationUser, IdentityRole>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders(); services.AddMvc(); // Add application services. services.AddTransient<IEmailSender, AuthMessageSender>(); services.AddTransient<ISmsSender, AuthMessageSender>(); }
پنج: یکپارچگی با frameworkهای مدرن سمت کلاینت
فرآیند build در برنامههای تحت وب مدرن معمولاً این وظایف را انجام میدهد:
- bundle و minify کردن فایلهای جاوا اسکریپت و همینطور CSS
- اجرای ابزارهایی برای bundle و minify کردن قبل از هر build
- کامپایل کردن فایلهای LESS و SASS در CSS
- کامپیال کردن فایلهای CoffeeScript و TypeScript در JavaScript
برای اجرای چنین فرآیندهایی از ابزاری به نام task runner استفاده میشود که Visual Studio از دو ابزار task runner مبتنی برا جاوا اسکریپت به نامهای Gulp و Grunt بهره میبرد. از این ابزارها با استفاده از ASP.NET Core Web Application template میتوان در ASP.NET Core استفاده کرد.
همچنین امکان استفاده از Bower که یک package manager (مانند NuGet) برای وب است، وجود دارد. معمولاً از Bower برای نصب فایلهای CSS ، فونتها، frameworkهای سمت کلاینت و کتابخانههای جاوا اسکریپت استفاده میشود. اگرچه بسیاری از packageها در NuGet هم وجود دارند، اما تمرکز بیشتر NuGet بر روی کتابخانههای داتنتی است.
نصب و استفادهی سایر libraryهای سمت کلاینت مانند Bootstrap ، Knockout.js ، Angular JS و زبان TypeScript نیز در Visual Studio و هماهنگی آن با ASP.NET Core نیز بسیار ساده است.
پس همین حالا دست به کار شوید و با نصب -حداقل - Microsoft Visual Studio 2015 Update 3 بر روی ویندوز یا Visual Studio Code بر روی هر سیستم عاملی از برنامهنویسی با ASP.NET Core لذت ببرید!
منابع :