نظرات مطالب
سفارشی سازی ASP.NET Core Identity - قسمت دوم - سرویس‌های پایه
مقدار identityDbInitializer در کد زیر null هست و برنامه با خطای 500.30 متوقف می‌شود. حدس می‌زنید اشکال از کجاست؟
        public static void InitializeDb(this IServiceProvider serviceProvider)
        {
            var scopeFactory = serviceProvider.GetRequiredService<IServiceScopeFactory>();
            using (var scope = scopeFactory.CreateScope())
            {
                var identityDbInitializer = scope.ServiceProvider.GetService<IIdentityDbInitializer>();
                identityDbInitializer.Initialize();
                identityDbInitializer.SeedData();
            }
        }

نظرات مطالب
روش نامگذاری Smurf ایی!
- برنامه FxCop می‌تونه اسمبلی‌های شما رو آنالیز کنه و دقیقا گزارش بده که چه مواردی هم نام کلاس‌های پایه دات نت هستند و بهتر است تغییر نام پیدا کنند. بنابراین به این صورت می‌تونید خیلی سریع حجم بالایی از کدها رو بررسی و رفع اشکال کنید.
- به علاوه زمانیکه طراح شما هستید، محدودیتی در نامگذاری نهایی وجود ندارد. مثلا نام کلاس مشتق شده را NumericTextBox قرار دهید و مواردی مانند این که بیانگر عملکرد سفارشی و ویژه کلاس مشتق شده جدید هستند:
public class RequiredTextBox : TextBox

نظرات مطالب
برنامه نویسی اندروید با Xamarin.Android - قسمت اول
1- در این باره توضیحاتی را خواهم گفت البته به طور خلاصه باید گفت که با توجه به امکاناتی که استفاده می‌کنید حجم برنامه متغییر است. اگر شما از System.XML.Linq استفاده کنید، dll آن با حجم تقریبی 1 مگ به برنامه اضافه خواهد شد!
2- تجاری بودن آن!
3- جستجو کنید کم نیست!
4- تمام Resourceها به راحتی قابل انتقال هستند و کدهای سی شارپ باید باز نویسی شوند. بنده بعد از کار با Xamarin به راحتی شروع به کار با Android Studio کردم
به نظر من برای برنامه هایی که نیاز به پخش آن در جامعه(مانند مارکت هایی چون بازار) وجود دارد بهتر است از جاوا استفاده کنید و برای برنامه‌های سازمانی که قابلیت‌های فوق العاده‌ی سی شارپ راه را ساده میکند از Xamarin استفاده کنید.
نظرات مطالب
ایجاد ایندکس منحصربفرد بر روی چند فیلد با هم در EF Code first
- EF جزو خانواده‌ی ابزارهایی به نام ORMs است. زمانیکه از یک ORM استفاده می‌کنید و مستقیما SQL نویسی نمی‌کنید، کدهای شما قابل انتقال می‌شوند. می‌توانید به سادگی بانک اطلاعاتی برنامه را عوض کنید بدون اینکه نیازی باشد در کدهای اصلی برنامه تغییری حاصل شود. اهمیت این مساله در اینجا است که نهایتا پروایدر آن بانک اطلاعاتی خاص، بر اساس تعاریف برنامه و ORM مورد استفاده می‌داند که چگونه باید SQL صحیح و مرتبطی را تولید کند که ممکن است از یک بانک اطلاعاتی به بانک اطلاعاتی دیگری متفاوت باشد.
- فعلا از طریق ویژگی فوق پشتیبانی نمی‌شود.
نظرات مطالب
یکسان سازی ی و ک دریافتی حین استفاده از NHibernate
از برنامه فوق جهت نصب استفاده کردم و صفحه کلید درست شد .(Persian-2901)
اما در برخی قسمتهای برنامه ام فونت ها بصورت علامت سوال نمایش داده می شود. برای درست شدن علامت سوالها در
Region-> admin-> Change System local
Current System Local را به Persian تبدیل کردم . با این کار مشکل علامت سوالها حل شد ولی دوباره ک و ی فارسی به سیستم برگشت . پس از اینکه همین بخش را به English تبدیل کردم دوباره ک و ی عربی را داشتم .

آیا مشکل علامت سوالها در برخی موارد میتواند بدلیل برنامه نویسی (نسخه دلفی / کامپوننت مورد استفاده و یا ترکیب فونت )باشد ؟
نظرات نظرسنجی‌ها
رنگ پس زمینه قالب IDE شما چیست؟
کلا برنامه‌های تیره ، طبق لینک‌های ارجاع داده شده برای کارهای گرافیکی مناسب‌تر هستند. مثلا در برنامه فتوشاپ پس زمینه تیره برای سند، باعث میشه طرح رو بهتر ببینیم.یا مثلا برنامه‌های فیلم که شامل تعداد زیادی پوستر میشن و هر اونچه که مربوط به گرافیک میشه ولی برنامه نویسی یا برنامه هایی که بیشتر نیاز به فکر کردن دارن و یا اتوماسیون‌های کاری بیشتر نیازمند یه محیط ساده و کاری و تجاری دارن.
البته اگر ترکیب رنگ‌ها و نوع و سایز قلم در محیط میتونه خیلی از فرمول‌های بالا رو کنار بزنه
بازخوردهای دوره
نگاهی به SignalR Hubs
با سلام

من یک برنامه وب فرم دارم که کلاینت signalr من می‌باشد. این برنامه در شرایط معمولی به درستی کار می‌کند و ارتباط برقرار می‌شود.
ولی زمانی که در کامپیوتر از kerio control vpn client  استفاده می‌کنم، و برنامه وب فرم را باز می‌کنم، برنامه در کنسول خطای زیر را نمایش می‌دهد:
Uncaught Error: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'></script>.
    at Object.start (jquery.signalR-2.4.0.min.js:9)
    at HTMLDocument.<anonymous> (Default.aspx:716)
.......


hubs:1 Failed to load resource: net::ERR_CONNECTION_TIMED_OUT
متوجه شدم که خطا در این خط ایجاد می‌شود:
 $.connection.hub.start().done(function ()
آیا می‌توانید در این مورد من رو راهنمایی کنید؟
نظرات مطالب
کار با Docker بر روی ویندوز - قسمت ششم - کار با بانک‌های اطلاعاتی درون Containerها
سلام؛ یک برنامه ساده restful api دارم که وقتی اجرا میشه کاربر باید بتونه فیلدهایی رو پر کنه و ذخیره بشه. و بتونه مجدد اون‌ها رو ببینه.
یعنی منظورم اینه که با دیتابیس در تعامله. این برنامه به صورت asp.net mvc هست (دات کور) نیست و بر اساس توضیحات مایکروسافت برای ساخت ایمیجش باید آدرس ایمیج ویندوز سرور رو در Dockerfile قرار بدم که حدود ۳ گیگ و نیم هست. حالا سوالم این هست این ایمیج ویندوز سرور با این حجم٬ خودش sql server داره دیگه؟ یعنی برنامه من بعد از ایمیج شدن وقتی داخل یک container بالا میاد٬ چطور باید به دیتابیس کانکت بشه؟  با آموزش شما متوجه شدم چطور یک باید دیتابیس در یک container دیگه بالا آورد اما در مورد برنامه خودم نمیتونم درک کنم چطور باید کار کنه. نمیشه هم برنامم هم دیتابیسش در یک container‌باشند و کسی که ایمیج برنامم رو بالا میاره بدون نیاز به کار خاصی برنامه رو بتونه صحیح ببینه و کار کنه؟
مطالب
ایجاد BootstrapSwitch در MVC
در  مقاله‌ی قبلی ما بخشی از BootstrapDialog را با استفاده از Reflection  پیاده سازی کردیم. دلیل اینکه پیاده سازی کاملی از آن نداشتیم، متغیر بودن مقادیر و پیچیده‌تر شدن و طولانی تر شدن کد نویسی آن بود که برای آن کد ارزش زیادی نداشت تا وقت بیشتری صرف شود. ولی در اینجا بخاطر پیچیدگی کمتر، به طور کامل از Reflection استفاده شده است.
شیء BootstrapSwitch یک چک باکس است که با استفاده از جی کوئری و استایل‌ها به یک سوئیچ انیمیشنی زیبا تبدیل شده است که خودم به شخصه علاقه زیادی به استفاده‌ی از آن در پروژه‌های شخصی پیدا کرده‌ام. غیر از زیبایی، حس خوبی از کارکرد برنامه میدهد.
فایل‌های موردنیاز را دانلود کرده و آن‌ها را در ابتدای صفحه و با رعایت ترتیب صدا بزنید:
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> 
  <link href="~/content/css/bootstrap-switch.min.css" rel=stylesheet"></link>
<script src="~/Scripts/bootstrap-switch.min.js"></script>
نکته مهم: فایل css شامل دو نسخه هست که یکی از آن برای Bootstrap2 و دیگری برای نسخه 3 آن است که نسبت به آن نسخه، استایل مناسب را انتخاب کنید.
پروژه‌ی اصلی را دریافت کنید و آن را به solution خود اضافه کنید. پروژه به دو بخش اصلی Controls و Models تقسیم می‌شود که بخش مدل آن، برای ایجاد ساختارهای آن و در بخش کنترل، برای ترسیم آن به صورت HtmlHelper به کار می‌رود.
ابتدا قبل از هر چیزی یک شیء از کلاس BootstrapSwitchModel ایجاد کنید و مقادیر دلخواه خود را به خصوصیت‌های آن نسبت دهید:
var model=BootstrapSwitchModel();

//وضعیت فعال بودن و غیرفعال بودن سوئیچ
model.Checked=true;

//اندازه آن
model.Size=BootstrapSize..normal;

//یک انیمیشن ساده موقع سوئیچ کردن دارد
model.Animate=true;

//به چک باکس عادی تبدیل میشود
model.Disabled=true;

//غیرفعال شده و به صورت فقط خواندنی قابل دسترس است
model.Readonly=true;

//رنگ قعال بودن
model.OnColor=BootstrapColor.Success;

//رنگ غیرفعال بودن
model.OffColor=BootstrapColor.Danger;

//متن نمایشی در هنگام فعال بودن
model.OnText="On";

//متن نمایشی در حالت عدم انتخاب
model.OffText="Off";

//بین دو حالت روشن و خاموش نمایش داده میشود
model.label="Public Display";

//تعیین میزان اندازه برچسب  بالا
model.LabelWidth=100;

//سوئیچ به صورت آینه ای معکوس میشود
model.Inverse=false;

//کلاسی جهت تغییر استایل سوئیچ
model.BaseClass="myclass";

//تعیین کلاس برای تگ اصلی پدر
model.WrapperClass="wclass";

//فقط یکی از چند سوئیچ میتواند فعال باشد
model.RadioAllOff=false;

//یک سوئیچ در حالت عادی فقط یکی از
//وضعیت‌ها را نمایش میده ولی در این حالت
//سوئیچ در ابتدا بین این دو وضعیت گیر کرده است
model.Indeterminate=true;

//اندازه سمت چپ و راست سوئیچ
model.HandleWidth=25;
برای ترسیم آن در یک ویو هم به صورت زیر عمل کنید:
@{
var model=BootstrapSwitchModel();
....}

@HTML.BootstrapSwitch("id",model);
برای اطلاع از رویدادهای این کنترل، مستندات آن را مطالعه کنید و از id برای ارتباط با آن استفاده می‌کنند.
مطالب
استفاده از قابلیت Script Data اس کیوال سرور 2008 از طریق برنامه نویسی

همانطور که مطلع هستید قابلیت تهیه عبارات Insert از جداول یک دیتابیس، به صورت استاندارد به management studio 2008 اضافه شده است. برای استفاده از این قابلیت از طریق برنامه نویسی به صورت زیر می‌توان عمل نمود:

الف) سه ارجاع را به اسمبلی‌های زیر اضافه نمائید:
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Management.Sdk.Sfc
Microsoft.SqlServer.Smo

ب) اکنون کدی که عملیات Script Data را با استفاده از قابلیت‌های SMO ارائه می‌دهد به صورت زیر خواهد بود:

using System;
using System.Text;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Sdk.Sfc;

/// <summary>
/// تهیه اسکریپت رکوردها
/// </summary>
/// <param name="dbName">نام دیتابیس مورد نظر</param>
/// <param name="table">نام جدولی که باید اسکریپت شود</param>
/// <param name="instance">وهله سرور</param>
/// <param name="userName">نام کاربری جهت اتصال</param>
/// <param name="pass">کلمه عبور جهت اتصال به سرور</param>
/// <returns>اسکریپت تهیه شده</returns>
public static string ScriptData(string dbName, string table, string instance, string userName, string pass)
{
try
{
ServerConnection serverConnection = new ServerConnection(instance, userName, pass);
Server server = new Server(serverConnection);
Database database = server.Databases[dbName];
if (database == null) return string.Empty;
Table tb = database.Tables[table];
Scripter scripter = new Scripter(server) {Options = {ScriptData = true}};
if (tb == null) return string.Empty;
StringBuilder sb = new StringBuilder();
foreach (string s in scripter.EnumScript(new Urn[] {tb.Urn}))
sb.AppendLine(s);
return sb.ToString();
}
catch(Exception ex)
{
//todo: log ...
return string.Empty;
}
}

نکته:
اسمبلی‌های SMO به همراه مجموعه SQL Server 2008 نصب می‌شوند. بنابراین متد و برنامه‌ی فوق بر روی سروری با این مشخصات بدون مشکل اجرا خواهد شد. اما اگر قصد توزیع برنامه خود را دارید باید Microsoft SQL Server 2008 Management Objects را نیز به همراه برنامه خود نصب نمائید.