Highlight کردن لینک صفحه جاری در ASP.NET MVC
اگر اشتباه میکنم لطفا تصحیح بفرمایید.
چک لیست تهیه یک برنامه ASP.NET MVC
در ضمن در git و در همه سیستمهای مدیریت کد امکان دستیابی به کدهای قبل وجود دارد و به طور کلی این یکی از اهداف سیستمهای مدریت کد است.
خود من هم یک برنامه نویس دات نت هستم اما دلیلی ندارد که مجبور باشیم هر آنچه که مایکروسافت ساخته را استفاده کنیم
من با هر دو سیستم TFS و Git کار کردم و به شخصه استفاده و راه اندازی آن را از TFS سادهتر میبینم چون تنها یکی از کاربردهای TFS مدیریت کد است بنابراین شما به طور نسبی با سیستم پیچیدهتری سرو کار خواهید داشت.
اما در نهایت نیاز شما به معماری مورد استفاده در مدیریت کدهای خود تعیین کننده است
اگر یک سیستم مدیریت کد توزیع شده لازم دارید بهترین انتخاب git است
موفق باشید
با سلام و عرض خسته نباشید به همهی دوستان و همکاران
سوالی که بنده داشتم این بود که چرا و به چه علتی با وجود ابزاری مثل visual studio team foundation server 2010 , 2012 باید با ابزاری مثل git کار کرد و البته با توجه به اینکه دوستان این سایت یا وبلاگ عموما در حوضه دات نت هستند این سوال مهمتر هم میشه ، در مورد مطالب در خصوص git باید بگم طرز کار کردن با این ابزار بسیار پیچیدهتر و غیر اصولیتر از tfs هست ، مثلا اینکه خود فایل رو پس از تغییر نگهداری میکنه یک نقطه ضعفه ولی نویسنده مطلب از اون به عنوان نقطه قوت یاد کرده ، اگر فایل به صورت مجموعه تغییرات ذخیره بشه هم حجم اطلاعات ذخیره شده کاهش پیدا میکنه و هم منبع نگهداری سورسها میتونه مثل ماشین زمان ما رو به جلو و عقب ببره و محدودیتی نخواهد داشت ، در هر حال با توجه به محصول مایکروسافت بودن tfs و رایگان بودن git فکر کنم حتی مقایسه این دو حتی درست هم نباشه.
با تشکر از تمامی زحمات شما دوستان عزیز
lambda expression در Vb.net
متدهای کمکی مفید در پروژه های asp.net mvc
در اینجا تبدیل تاریخ مدنظر را باید همان طرف کدهای کنترلر انجام داد. یا این طرف از توابع جاوا اسکریپتی تبدیل تاریخ میلادی به شمسی باید استفاده کرد. دو context مختلف را نمیشود در آن واحد با هم ترکیب کرد.
البته میشود داخل کدهای جاوا اسکریپتی یک View از کدهای مثلا Razor استفاده کرد اما این کدها در زمان اجرا به صورت جاوا اسکریپتی پردازش و رندر میشوند و نه به فرمت مثلا سی شارپ. برای نمونه میشود در یک View داخل کدهای JavaScript موجود از Url.Action استفاده کرد. این مورد در زمان اجرا فقط تبدیل به یک رشته JavaScript میشود. البته این نکته برای بکارگیری Html.FarsiDateAndTime نیز صدق میکند و فراخوانی آن باید داخل کدهای Ajax جاوا اسکریپتی یک View باشد (و نه خارج از آن چون context دیگر JavaScript نخواهد بود). همچنین باید درنظر داشت که Html.FarsiDateAndTime در زمان رندر شدن جاوا اسکریپت موجود در یک View، تبدیل به معادل رشتهای آن شده و جایگزین میشود. یعنی در قسمت نتیجه یک عملیات Ajax قابل استفاده نخواهد بود.
درسته که نتیجش سرعت بیشتر در برنامه نویسی اما یک مشکل بزرگ داره.تا قبل از این اگه شما یک زبان برنامه نویسی رو یاد میگرفتید می تونستید خیلی آسون و سریع اون رو در زبان های دیگه هم یاد بگیرید و ازش استفاده کنید چون بیشتر API ها با زبان های C/C++ نوشته شدن بنابرین زبان ها معمولا یک API رو فراخوانی می کردن فقط نحوه فراخوانی اون ها در زبان ها فرق می کرد .
به عنوان مثال برنامه نویسی سوکت در Java,CSharp,CPlusPlus ... کاملا شبیه هم هستش.MultiThreading هم به همین صورت.اگه شما با یکی از این زبان ها این Concept
ها رو یاد بگیرید می تونید همون Concept رو در بقیه زبان ها هم سریع یاد بگیرید.
اما با این سیاست جدید اگه شما مثلا برنامه نویسی ASync رو در CSharp یاد بگیرید نمی تونید معلومات خودتون رو در این زمینه به زبان های دیگه ببرید و فقط میتونید ازش در دات نت استفاده کنید.
خوشحال می شم نظر بقیه اساتید رو در این زمینه بدونم .
5 دلیل برای استفاده از یک ابزار ORM
در مورد typed dataset ها ، بله نسبتا تا حدودی و تا حد نازلی بله! شبه ORM هستند که این مشکلات را دارند:
- مشکل Synchronization بین آنها و دیتابیس مساله ساز است که در یک ORM خوب باید این مساله حل شده باشد.
- join table queries در طراح آن کار نمیکند!
- query syntax استانداردی نداشته و هنگام کار با دیتابیسهای مختلف (نوعهای مختلف) این مورد مساله ساز میشود.
- typed dataset کمتر حال و هوای یک ORM واقعی و دنیای شیء گرایی با اشیایی که وابستگی کمی به دیتابیس دارند را ارائه میدهد.
- کلا dataset اشیایی با سربار بالا در دات نت فریم ورک مطرح هستند و زمانیکه کارآیی مطرح هست سعی میشود به روشهایی دیگری کوچ شود.
همچنین از لحاظ مباحث serialization هم بسیار ضعیف و کند عمل میکنند.
- زمانیکه از typed dataset استفاده میکنید عملا مدل رابطهای دیتابیس خود را با business layer مخلوط کردهاید.
از همین کتابخانه مدتی در یک سرور معمولی بدون مشکل استفاده کرده بودم تا اینکه پس از ارتقاء به سرور جدید با خراب بودن فایلهای Zip حاصل مواجه شدم. پس از بررسی مشخص شد که این کتابخانه با CPUهای چند هستهای مشکل دارد و باید این نوع پردازش موازی را در آن خاموش کرد:
using (var zf = new ZipFile()) { zf.UseUnicodeAsNecessary = true; zf.ParallelDeflateThreshold = -1; zf.Comment = "…."; zf.AddFile(path, "programName"); zf.Save(whereToSave); }
همچنین اگر نام فایلهای شما فارسی است نیاز است UseUnicodeAsNecessary نیز به true تنظیم گردد.
در کل گاهی از اوقات همین نکات کوتاه میتوانند از صدمات جدی در آینده جلوگیری کنند. خصوصا اگر از این محصول جهت تهیه پشتیبان استفاده شده باشد.