اشتراک‌ها
نسخه اسمبلی - قسمت دوم

«...  در ادامه و تو این قسمت مباحث تکمیلی این موضوع، شامل شماره نسخه و فرهنگ اسمبلی و همچنین نحوه کار با این داده‌ها تو ویژوال استودیو (که بیشتر به محیط عملی توسعه نزدیکه) ارائه میشه  ...»

نسخه اسمبلی - قسمت دوم
بازخوردهای پروژه‌ها
درخواست Persia
با سلام

بعد از اینکه برنامه رو در ویژوال باز میکنم و با nuget پکیج‌ها رو آپ دیت میکنم ارور نشناختن Reference مربوط به Persia رو میده!

از کجا و کدوم نسخه رو باید دانلود کرد؟
مطالب
بیرون نگاه داشتن پکیج های NuGet از سورس کنترل Git
ابزار NuGet بسیار کار آمد و مفید است. یکی از مشکلات رایج هنگامی پیش می‌آید که پروژه را بهمراه بسته‌های نصب شده به سورس کنترل push می‌کنید. با این کار حجم زیادی از فایل‌ها را به مخزن سورس کنترل آپلود می‌کنید و هنگام clone کردن پروژه توسط هر شخصی، این اطلاعات باید دریافت شوند. بد‌تر از این هنگامی است که برخی از بسته‌ها از سورس حذف می‌شوند و باید به اعضای تیم پروژه اطلاع دهید که چه بسته‌هایی باید دریافت و نصب شوند.

برای رفع این موارد به NuGet Package Restore وارد شوید.


به ویژوال استودیو اجازه دهید بسته‌های NuGet را در صورت لزوم احیا کند
پیش از آنکه بتوانیم از قابلیت Package Restore استفاده کنیم باید آن را روی ماشین خود فعال کنیم. این کار روی هر ماشین باید انجام شود (per-machine requirement). بدین منظور به منوی Tools -> Options -> Package Manager بروید.

در دیالوگ باز شده تنظیمات مربوطه را مانند تصویر زیر بروز رسانی کنید.

حال که ماشین ما برای بازیابی خودکار بسته‌های NuGet پیکربندی شده است، باید این قابلیت را برای Solution مورد نظر هم فعال کنیم.


فعال سازی NuGet Package Restore برای پروژه‌ها

بدین منظور روی Solution کلیک راست کنید و گزینه Enable Package Restore را انتخاب نمایید.

این کار ممکن است چند ثانیه زمان ببرد. پس از آنکه ویژوال استودیو پردازش‌های لازم را انجام داد، می‌توانید ببینید که پوشه جدیدی در مسیر ریشه پروژه ایجاد شده است.

همانطور که می‌بینید فایلی با نام NuGet.exe در این پوشه قرار دارد که باید به سورس کنترل آپلود شود. هنگامیکه شخصی پروژه شما را از سورس کنترل دریافت کند و بخواهد پروژه را Build کند، بسته‌های مورد نیاز توسط این ابزار بصورت خودکار دریافت و نصب خواهند شد.

مرحله بعد حذف کردن تمام بسته‌های NuGet از سورس کنترل است. برای اینکار باید فایل gitignore. را ویرایش کنید. فرض بر این است که سورس کنترل شما Git است، اما قواعد ذکر شده برای دیگر فریم ورک‌ها نیز صادق است. تنها کاری که باید انجام دهید این است که به سورس کنترل خود بگویید چه چیز هایی را در بر گیرد و از چه چیزهایی صرفنظر کند.

ویرایش فایل gitignore. برای حذف بسته‌ها و شامل کردن NuGet.exe

یک پروژه معمولی ASP.NET MVC 5 که توسط قالب استاندارد VS 2013 ایجاد می‌شود شامل 161 فایل از بسته‌های مختلف می‌شود (در زمان تالیف این پست). این مقدار قابل توجهی است که حجم زیادی از اطلاعات غیر ضروری را به مخزن سورس کنترل اضافه می‌کند. با استفاده از نسخه پیش فرض فایل gitignore. (یا فایل‌های مشابه دیگر برای سورس کنترل‌های مختلف مثل TFS) تعداد فایل هایی که در کل به مخزن سورس کنترل ارسال می‌شوند بیش از 200 آیتم خواهد بود. قابل ذکر است که این تعداد فایل شامل فایل‌های اجرایی (binary) و متعلق به ویژوال استودیو نیست. به بیان دیگر نزدیک به 75% از فایل‌های یک پروژه معمولی ASP.NET MVC 5 که توسط VS 2013 ساخته می‌شود را بسته‌های NuGet تشکیل می‌دهد، که حالا می‌توانند بجای ارسال شدن به مخزن سورس کنترل، بصورت خودکار بازیابی و نصب شوند.

برای حذف این فایل‌ها از سورس کنترل، فایل gitignore. را ویرایش می‌کنیم. اگر از سورس کنترل‌های دیگری استفاده میکنید نام این فایل hgignore. یا tfsignore. یا غیره خواهد بود. محتوای فایل شما ممکن است با لیست زیر متفاوت باشد اما جای نگرانی نیست. تنها تغییرات اندکی بوجود خواهیم آورد و مابقی محتویات فایل مهم نیستند.

چشم پوشی از پوشه Packages

فایل gitignore. را باز کنید و برای نادیده گرفتن پوشه بسته‌های NuGet در سورس، خط زیر را به آن اضافه کنید.

packages*/

استثنایی برای در نظر گرفتن NuGet.exe ایجاد کنید
به احتمال زیاد فایل gitignore. شما از فایل هایی با فرمت .exe چشم پوشی می‌کند. برای اینکه بسته‌های NuGet بتوانند بصورت خودکار دریافت شوند باید استثنایی تعریف کنیم. فایل gitignore. خود را باز کنید و به دنبال خط زیر بگردید.
*.exe
سپس خط زیر را بعد از آن اضافه کنید. دقت داشته باشید که ترتیب قرارگیری این دستوارت مهم است.
*.exe
!NuGet.exe
دستورات بالا به Git می‌گوید که فایل‌های .exe را نادیده بگیرد؛ اما برای فایل NuGet.exe استثناء قائل شود.
انجام مرحله بالا انتخابی (optional) است. اگر کسی که پروژه را از مخزن سورس کنترل دریافت می‌کند قابلیت Package Restore را روی Solution فعال کند ابزار NuGet.exe دریافت می‌شود. اما با انجام این مراحل دیگر نیازی به این فعالسازی نخواهد بود، پس در کار اعضای تیم هم صرفه جویی کرده اید.

اطلاع رسانی به اعضای تیم و مشتریان بالقوه
دیگر نیاز نیست بسته‌های NuGet را به مخزن سورس کنترل ارسال کنیم. اما باید به مخاطبین خود اطلاع دهید تا پیکربندی‌های لازم برای استفاده از قابلیت Package Restore را انجام دهند (مثلا در فایل README.txt پروژه).
نظرات مطالب
شروع به کار با EF Core 1.0 - قسمت 3 - انتقال مهاجرت‌ها به یک اسمبلی دیگر
- من چون از PowerShell برای اینکار استفاده نمی‌کنم، پیشنیازهای خط فرمان dotnet ef را نوشتم که امتحان شده و بدون مشکل کار می‌کند (و تغییر یا بسته‌ی دیگری را هم نیاز ندارد).
- دستورات PowerShell دیگر شامل enable-migration نیست و اینبار add-migration است.
برای فعالسازی آن‌ها هم نیاز است از همان بسته‌ی Microsoft.EntityFrameworkCore.Tools استفاده شود (که برای EF 1.1 هم به روز شده‌است):
"dependencies": {
       "Microsoft.EntityFrameworkCore.Tools": {
        "version": "1.1.0-preview4-final",
        "imports": [
            "portable-net45+win8"
        ],
        "type": "build"
   },
        // the rest ...
},
    "tools": {
        "Microsoft.EntityFrameworkCore.Tools": {
            "version": "1.1.0-preview4-final",
            "imports": [
                "portable-net45+win8"
            ]
        },
        // the rest ...
}
تنها این بسته‌است که شامل فایل‌های ps1 مربوط به PowerShell است (واقع در مسیر زیر):
%UserProfile%\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.1.0-preview4-final\tools
و این بسته جهت بارگذاری فایل‌های PowerShell توسط نیوگت، حتما باید در قسمت dependencies ذکر شود (علاوه بر قسمت tools).
ذکر آن در قسمت dependencies سبب می‌شود که قسمت frameworks نیز به نحو ذیل تغییر کند (و پس از این تغییرات نیاز است یکبار ویژوال استودیو را بسته و مجددا باز کنید):
"frameworks": { 
        "netcoreapp1.1": {
            "dependencies": {
                "Microsoft.NETCore.App": {
                    "type": "platform",
                    "version": "1.1.0"
                }
            },
            "imports": [
                "dnxcore50",
                "portable-net45+win8"
            ]
        }
    }
نظرات مطالب
آغاز به کار با Twitter Bootstrap در ASP.NET MVC
من حالت empty پروژه mvc 4 رو شروع کردم(بالا هم عرض کردم) و بوت استرپ هم از سایت rbootstrap.ir نسخه 2.3.2 v رو گرفتم.
البته الان که از دستور  PM> Install-Package Twitter.BootstrapRTL -Version 2.3.2.1 استفاده کردم
jquery-1.9.1.min.js  رو هم نصب کرد 

و مشکل منو‌ها حل شد.فقط فایل‌های validation و ajax رو همچنان ندارم

اشتراک‌ها
کار با Enumerated Values in Entity Framework

If you decide on using an Enum with enumerated values in your Entity Framework class, here are the tools you'll need to make it work. But an enumerated value shouldn't be your first choice. 

کار با Enumerated Values in Entity Framework
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 19 - بومی سازی
بعد از تلاش بسیار متوجه شدم، با اینکه پیام خطا ساخت generator در ویژوال استودیو نمایش داده می‌شود، ولی عملا به درستی ساخته می‌شود.

مشکل از معرفی baseName  بود که باید به جای

            _stringLocalizer = stringLocalizerFactory.Create(
                 baseName: "Controllers.LoginController",
                 location: "Zagros.ExternalResources");
            _htmlLocalizer = htmlLocalizerFactory.Create(
                baseName: "Controllers.LoginController",
                location: "Zagros.ExternalResources");

به دلیل اینکه در مسیر اصلی نیستیم، باید به این صورت معرفی شود (همراه مسیر فایل):

            _stringLocalizer = stringLocalizerFactory.Create(
                 baseName: "Areas.Identity.Controllers.LoginController",
                 location: "Zagros.ExternalResources");
            _htmlLocalizer = htmlLocalizerFactory.Create(
                baseName: "Areas.Identity.Controllers.LoginController",
                location: "Zagros.ExternalResources");


نظرات اشتراک‌ها
بسته NuGet برای bootstrap-rtl 3.3.5
با تشکر از شما دوست عزیز 
آیا لازمه قبل از نصب این بسته بوت استرپ انگلیسی هم نصب بشه ؟
من قبلا خودم ورژن 3.1 رو  با دستکاری در فایلهای less  راست به چب کردم ولی هر بار که یک ورژن جدید میامد باید می‌رفتم و تغییرات رو جدید رو اعمال می‌کردم ، اما جایی دیدم که شخصی یک css  افزونه تولید کرده بود که می‌بایست بعدا از ورژن انگلیسی صدا زده می‌شد  . تا دستورات قبلی رو overwrite  کنه . 
حال می‌خواستم بپیرسم بهتر است از ابتدا فایلهایless یا sass را راست به چپ کنیم با بهتر است از افزونه هایی که راست چین می‌کنند استفاده کنیم . حسن این کار در این است که برای صفحات فارسی فقط کافیست افزونه مورد نظر را اضافه کنیم . 
خوشحال میشم نظر شما یا سایر دوستان رو بدونم .