بستگی داره چه تعداد رشته رو قراره با هم جمع بزنید. اگر 10هزار مورد است، استفاده از StringBuilder میتونه مفید باشه؛ اما اگر فقط سه قطعه است (مانند تشکیل newFile در مثال بالا)، تفاوتی را در کارآیی احساس نخواهید کرد؛ ضمن اینکه سربار تولید و وهله سازی StringBuilder برای اتصال فقط سه قطعه با هم میتونه تا چهار برابر حالتهای معمولی باشه (مراجعه کنید به قسمت ابتدای نمودار مقاله Performance considerations for strings ؛ در این نمودار، تفاوت پس از اتصال 600 قطعه به هم، خودش رو نشون میده.)
سلام
سرعت و قابلیت اجرایی Over Clause به مراتب از Group by بهتر است. بطوریکه اگر یک عملیات یکسان را،بطور جداگانه،هم با Over Clause و هم با Group By انجام دهید. و در Execution Plan مشاهده نمایید، تفاوت را حس خواهید نمود. سایت زیر یک مثال ساده در این رابطه قرار داده است:
در مورد اینکه برای محیط های Transactional مناسب است یا نه، عوامل زیادی در آن دخیل است و بسته به حجم داده ای مورد انتظار شما در خروجی دارد،بطور مثال اگر بخواهید یک گزارش 400 صفحه ای ایجاد نمایید، بطور حتم در چنین محیط هایی هیچ Scriptی مناسب، نیست، اما بطور قاطع میتوان گفت که Window Functionها از کارایی بسیار خوبی برخوردار هستند، و انجام عملیاتهای پیچیده محاسباتی را برای ما آسانتر نموده اند.
نظرات مطالب
lambda expression در Vb.net
اصولا این گونه نظرات نسبت به زبانی مثل وی بی دات نت به دلیل عدم سابقه تجربی و دانش کافی در مورد آن است. از نظر کارایی و سرعت و قدرت که تفاوت خاصی بین زبانهای قابل استفاده در دات نت نیست. از نظر زیبایی سینتکس وی بی دات نت برتری داره و به همین دلیل برای آموزش و شروع کار بسیار بهتر است و برای ادامه هم هیچ مشکلی ندارد. سی شارپ هم جذابیتهای خود را دارد. گاهی همان خلاصه نویسی آن لذت بخش است. اما اصولا یه برنامه نویس حرفه ای که یکی از این زبانها را انتخاب کرده به راحتی میتواند در چند ساعت در دیگری نیز مهارت لازم را کسب نماید. بحث عمر تلف شدن در وی بی بسیار جالب است!
نظرات مطالب
اهمیت Controller های ساده در ASP.NET MVC
-معماری n-tier یک مدل برای توسعه ی نرم افزارهای انعطاف پذیر و با قابلیت استفادهی مجدد میباشد. MVC یکArchitectural_pattern است.
-MVC در یک معماری چند لایه وظیفهی لایهی نمایش (Presentation) را بر عهده دارد. همانند MVP در Windows Forms یا Web Forms.
-ViewModel الگوی MVVM با ViewModel که ما در MVC داریم تفاوت زیادی دارند و ارتباطی با هم ندارند.
نظرات مطالب
استفاده از DbProviderFactory
من توصیه میکنم که ADO.NET رو به شکل خام آن فراموش کنید. این نوع روشها هرچند پایه و اساس تمام ORMهای نوشته شده هستند، اما فقط ابتدای کار را به شما نشان میدهند. واقعیت این است که سوئیچ کردن بین بانکهای اطلاعاتی مختلف نیاز به تولید SQL قابل فهم برای آن موتور خاص را نیز دارد. اینجا است که ORMها در وقت شما صرفه جویی میکنند. شما کوئری LINQ مینویسید اما در پشت صحنه بر اساس پروایدر مورد استفاده، این کوئری LINQ به معادل SQL قابل فهم برای بانک اطلاعاتی مورد نظر ترجمه میشود. خیلی از توابع هستند که در بانکهای اطلاعاتی مختلف تفاوت میکنند و این SQL ایی که مورد بحث است ... در عمل آنچنان استاندارد نیست. توابع تاریخ در SQLite با SQL Server فرق میکند. نوعهای دادهای اینها عموما تطابق ندارد و مسایل دیگر. ORMها میتوانند این مسایل را به خوبی مدیریت کنند بدون اینکه شما آنچنان درگیر این جزئیات شوید.
در وب فرمها:
- یک TextBox را به صفحه اضافه کنید. TextMode آن باید MultiLine باشد تا تبدیل به TextArea شود. همچنین ClientID آنرا هم مقدار دهی کنید تا بشود در jQuery ازش استفاده کرد.
- تمام توضیحات یکی است با این تفاوت که:
الف) return Content در اینجا میشود Response.Write
ب) بجای کنترلر شما از یک http handler میتونید استفاده کنید (فایلهای ashx معروف)
در اینجا context.Request.Files امکان دسترسی به فایلهای آپلود شده را میدهد.
آنها را ذخیره کنید. در آخر کار هم با context.Response.Write مواردی را که در مقاله فوق توضیح داده شد، بازگشت دهید.
- یک TextBox را به صفحه اضافه کنید. TextMode آن باید MultiLine باشد تا تبدیل به TextArea شود. همچنین ClientID آنرا هم مقدار دهی کنید تا بشود در jQuery ازش استفاده کرد.
- تمام توضیحات یکی است با این تفاوت که:
الف) return Content در اینجا میشود Response.Write
ب) بجای کنترلر شما از یک http handler میتونید استفاده کنید (فایلهای ashx معروف)
public class Upload : IHttpHandler { public void ProcessRequest (HttpContext context) { HttpPostedFile uploads = context.Request.Files["upload"]; //... save the file // return context.Response.Write(...) // and then context.Response.End();
آنها را ذخیره کنید. در آخر کار هم با context.Response.Write مواردی را که در مقاله فوق توضیح داده شد، بازگشت دهید.
نظرات مطالب
ASP.NET MVC #3
کلاس ProductController در پوشه Controllers اضافه میشود. این کلاس هم یک کلاس ساده دات نتی است با این تفاوت که با ارث بری از کلاس استاندارد Controller، مفهوم یک کنترلر را پیدا میکند.
مرحله بعد ایجاد View است برای متدهای این کنترلر. در این مورد در قسمت بعد با تصویر توضیح خواهم داد. البته نتیجه آن هم این خواهد بود که فایلهای View آن در پوشه پیش فرض Views/Product قرار میگیرند.
بنابراین نام کنترلر Product است.
نام پوشه Viewهای پیش فرض آن مطابق قرارداد، Views/Product است.
اما این کنترلر باید تحت عنوان کلاسی به نام ProductController به پوشه Controllers اضافه شود.
مرحله بعد ایجاد View است برای متدهای این کنترلر. در این مورد در قسمت بعد با تصویر توضیح خواهم داد. البته نتیجه آن هم این خواهد بود که فایلهای View آن در پوشه پیش فرض Views/Product قرار میگیرند.
بنابراین نام کنترلر Product است.
نام پوشه Viewهای پیش فرض آن مطابق قرارداد، Views/Product است.
اما این کنترلر باید تحت عنوان کلاسی به نام ProductController به پوشه Controllers اضافه شود.
خوب، سخت بودن کار سورس باز هم همینجا است. در کارهای سورس باز در تمام آنها، شما مجاز هستید کار مشتق شده رو بفروشید. تنها تفاوت در اینجا است که یکی میگه حتما باید سورس رو هم کنارش قرار بدی و یکی میگه مهم نیست و گرنه تمامشون با این مساله مالی مشکلی ندارند.
در کل به درجهی روانی به اشتراک گذاری اطلاعات رسیدن، کار سختی است. به همین جهت باز هم تکرار میکنم این دور و اطراف بگردید، ماهی 5 نفر رو شاید پیدا کنید که حاضر باشند مطلب فنی مهمی رو به رایگان منتشر کنند و قید همه چیز آنرا بزنند. زمانیکه هم که روز به روز تعدادشون کمتر بشه، انگیزه رو از بقیه خواهند گرفت.
در کل به درجهی روانی به اشتراک گذاری اطلاعات رسیدن، کار سختی است. به همین جهت باز هم تکرار میکنم این دور و اطراف بگردید، ماهی 5 نفر رو شاید پیدا کنید که حاضر باشند مطلب فنی مهمی رو به رایگان منتشر کنند و قید همه چیز آنرا بزنند. زمانیکه هم که روز به روز تعدادشون کمتر بشه، انگیزه رو از بقیه خواهند گرفت.
نظرات مطالب
ذخیره سازی SQL تولیدی در NH3
شاید این موضوع بی ربط به پست جاری باشه. از این بابت عذر خواهی میکنم.
اینطور که در کدهای شما دیدم شما اغلب از CodeStyleیی شبیه Developerهای سیستمهای مایکروسافت استفاده میکنید. که بارزترین تفاوت آن استفاده از Underline در ابتدای فیلدهای تعریف شده در کلاس است.
حتماً میدانید که StyleCop نیز که توسط خود مایکروسافت ارائه شده، این روش را رد میکند و میگوید Underline زیبایی را کاهش میدهد و به جای آن از this. استفاده شود که محاسن دیگری نیز دارد.
البته به قول نویسنده StyleCop اینکه بچههای مایکروسافت اینطور کد مینویسند یک دلیل منطقی دارد؛ و آن این است که آنها بیشتر برنامهنویسان ++C بودهاند و در ++C شبیه این سبک بیشتر رایج است (درست است که این روش، روش مجارستانی نیست ولی حداقل استفاده از this به هیچ عنوان در ++C رایج نبود).
خوب، سوال اینجاست. نظر شما چیست؟
اینطور که در کدهای شما دیدم شما اغلب از CodeStyleیی شبیه Developerهای سیستمهای مایکروسافت استفاده میکنید. که بارزترین تفاوت آن استفاده از Underline در ابتدای فیلدهای تعریف شده در کلاس است.
حتماً میدانید که StyleCop نیز که توسط خود مایکروسافت ارائه شده، این روش را رد میکند و میگوید Underline زیبایی را کاهش میدهد و به جای آن از this. استفاده شود که محاسن دیگری نیز دارد.
البته به قول نویسنده StyleCop اینکه بچههای مایکروسافت اینطور کد مینویسند یک دلیل منطقی دارد؛ و آن این است که آنها بیشتر برنامهنویسان ++C بودهاند و در ++C شبیه این سبک بیشتر رایج است (درست است که این روش، روش مجارستانی نیست ولی حداقل استفاده از this به هیچ عنوان در ++C رایج نبود).
خوب، سوال اینجاست. نظر شما چیست؟
همونطور که قبلا عرض کردم، فقط تشخیص اینجکشن نیست(یا به عبارتی اینکه نشه اینجکشن کرد). نکته اصلی اینجاست که مقدار زمان لازم در زمانی که اینجکشن شده تفاوت داره و در SP هیچ تفاوتی بین حالت عادی و حالتی که اینجکشن شده وجود نداره و این مهم از طریق برخی ابزارها قابل تشخیصه(ولو با زمان زیاد).
- بله توزیع ویندوزی مناسب نیست ولی خب گاهی اوقات اجبار از طرف کارگزار وجود داره!
-مثال:http://blogs.msdn.com/b/adonet/archive/2010/06/28/performance-impact-of-server-side-generated-guids-in-ef.aspx
-اینکه EF از تمامی مشابه های موجود بهتره شکی ندارم.
- بله توزیع ویندوزی مناسب نیست ولی خب گاهی اوقات اجبار از طرف کارگزار وجود داره!
-مثال:http://blogs.msdn.com/b/adonet/archive/2010/06/28/performance-impact-of-server-side-generated-guids-in-ef.aspx
-اینکه EF از تمامی مشابه های موجود بهتره شکی ندارم.