a

ABLY مقالات و مطالب مجموعه

صفحه اصلی / ABLY مقالات و مطالب مجموعه

بسم الله الرحمن الرحیم

 

بسیاری از مواقع شما نیاز دارید اطلاعات درون پایگاه داد خود را به پایگاه داده دیگری انتقال دهید.

در مطلب تبدیل اطلاعات یک SQL Server به نسخه SQL Server پایین تر  نحوه انتقال اطلاعات را از یک نسخه جدید SQL Server به نسخه های قدیمی تر توضیح دادیم. در مطلب بالا توضیح دادیم چطور می توانید فقط اطلاعات و داده های درون پایگاه داده را بدون ساختار پایگاه داده (مانند کدهای تولید View,Table و...) انتخاب کنید.

 

 

آموزش انتقال اطلاعات Database در MVC

 

 

 

 

بسم الله الرحمن الرحیم

آموزش ساخت Full Text Catalog و Full Text Search در SQL Server

در این آموزش مفاهیم زیر را بررسی خواهیم کرد

  • ساخت Full-Text Search

    • ساخت Full-Text Catalog

    • ساخت Full-Text Index

  • نوشتن Query با استفاده از Full-Text Search

  •  استفاده از Full-Text Search  در پروژه های ASP.NET MVC  به کمک LINQ

تصور کنید وب سایتی دارید و میخواهید بر روی حجم زیادی از اطلاعات جستجو انجام دهید. وب سایت شما یک وب سایت آموزشی مانند ABLY.ir است و در آن متن های زیادی وجود دارد. شما میخواهید یک فرم جستجو برای جستجو در تمامی قسمت های وب سایت ایجاد کنید.
چطور می توانید این جستجو را با این ویژگی ها پیاده سازی کنید؟
1- جستجو در کلمات کلیدی
2- جستجو در میان نویسندگان
3- جستجو در مطالب
4- جستجو در عنوان فایل ها
و..

اولین راه حلی که انتخاب می شود JOIN کردن تمام جداول و نوشتن یک دستور SELECT با انجام WHERE بر روی همه ی ستون ها است!.  این راه حل بدترین راه حل ممکن است زیرا در صورتی که حجم اطلاعات شما افزایش یابد عملا سیستم جستجو شما دیگر پاسخگو نخواهد بود زیرا طبیعتا برای جستجو در متن ها باید از دستور LIKE استفاده کنید که این دستور خود به دلیل مقایسه تمامی عبارت های ذخیره شده به صورت بخش به بخش با متن درخواستی کاربر بسیار سرعت کمی دارد، همچنین هزینه JOIN بسیار سنگین خواهد بود و باعث می شود عملا این ویژگی غیر قابل استفاده شود.
SQL Server با ارائه دادن ابزاری به نام Full Text Search به شما این امکان را می دهد که به سادگی و با بهترین کارایی جستجحو های خود را بر روی متن ها انجام دهید.

Full Text Search

Full Text Search ابزاری است که به شما برای ایجاد انواع کوئری های پیچده بر روی داده های از نوع کاراکتر (Character) کمک می کند. این کوئری ها می توانند بر روی کلمات، جمله ها و عبارت ها مورد استفاده قرار گیرند. ما می توانیم یک full-text index را بر روی یک Table و یا یک indexed view ایجاد کنیم. full-text Search تنها می تواند بر روی یک Table و یا یک indexed view مورد استفاده قرار گیرد. Index می تواند تا 1024 ستون (Column) را در بر گیرد.

Full Text Index

Full Text Index از Token هایی تشکیل می شود که این Token ها در واقع همان کلمات درون یک فیلد شما هستند و این امر باعث می شود که بتوان بر روی متون index گذاری کرد و سرعت جستجو را افزایش داد.
مثال: من اسماعیل شیدایی هستم.
اگر مقدار یکی از رکوردهای ما به صورت بالا باشد پس از انجام عملیات full-text index این متن به صورت زیر ذخیره خواهد شد.
"من"
"اسماعیل"
"شیدایی"
"هستم"
این کار باعث می شود تا شما در سریعترین حالت ممکن بتوانید به اطلاعات مورد نظر خود برسید زیرا SQL Server اطلاعات شما را Index گذاری می کند در نتیجه به سرعت می تواند محل قرار گیری (شماره رکورد) هر کلمه را در جدول بازیابی کند.

طبیعتا راه حل پیش فرض برای جستجو در متن ها استفاده از دستور LIKE می باشد.  دستور Like بر روی کاراکترها جستج خود را انجام می دهد و مقدار درخواستی شما را با تمام متن ها مقایسه می کند اما در Full Text Search مقدار درخواستی شما با کلمات مقایسه می شود به همین دلیل تفاوت سرعت اجرای این دو دستور در کوئری های پیچیده بسیار مشخص خواهد بود.

برای ساخت Index می بایست ما مراحل زیر را انجام دهیم.


1.    Create a Full-Text Catalog

2.    Create a Full-Text Index

3.    Populate the Index


Create a Full-Text Catalog

ابتدا دیتابیس خود را انتخاب کرده، سپس از بخش Storage بر روی Full Text Catalog راست کلیک کرده و گزینه New Full-Text-Catalog را انتخاب می کنیم.

آموزش Full Text Search

در پنجره باز شده نامی را برای Full Text Catalog خود انتخاب می کنیم و سپس Ok را انتخاب کنید. Full Text Catalog ما با موفقیت ایجاد شد.

بسم الله الرحمن الرحیم

معماری برنامه های اندروید

فصل اول - بخش ششم

حال که  شما اولین برنامه اندروید را ایجاد کرده اید زمان آ ن رسید است که ساختار یک پروژه اندروید را شرح دهیم. اولین قدم را با شرح فایل و پوشه ها که در Package Explorer وجود دارد شروع میکنیم.

بسم الله الرحمن الرحیم

طراحی و ایجاد برنامه Andriod

فصل اول- بخش پنجم

در این قسمت قصد داریم اولین پروژه اندروید را ایجاد  کنیم و آن را روی دستگاه مجازی تست کنیم.

در Eclipse از منوی File-->new  Project  را انتخاب کنید

بسم الله الرحمن الرحیم

تست نرم افزار

در تمامی معماری ها مبحثی با نام تست نرم افزار وجود دارد که شاید در شرکت های ایران این مبحث خیلی جدی گرفته نمی شوند و تست نرم افزار نهایتا منتی به تست شدن کد ها توسط توسعه دهنده گان می شود.
اما در واقعیت می بایست بخشی وقت خود را صرف توسعه و تست قسمت های مختلف نرم افزار کنند. همچنین تست نرم افزار تنها بررسی یک تابع و یا کلاس نیست بلکه می بایست فرایند ها و Process ها نیز در محیط اجرای نرم افزار چک شوند که این فرایند تنها توسط یک کاربر واقعی می تواند صورت پذیرد، اما برای بررسی صحت کار کردن یک تابع می توان از کدهایی برای تست هر تابع استفاده کرد.

UnitTest

مثالی را برای معرفی منطق تست کردن نرم افزار معرفی می کنیم.
میخواهیم یک برنامه بنویسیم که دو عدد را دریافت و با یکدیگر جمع کنند. این برنامه ما بسیار ساده است  و به صورت زیر نوشته می شود.

public void Sum()
{
  TextBoxResult.Text = int.Parse(TextBoxNum1.Text) + int.Parse(TextBoxNum2.Text);
}


در برنامه ما دو TextBox برای وارد کردن اعداد وجود دارد که دو عدد وارد شده با یکدیگر جمع می شوند و در TextBoxResult نمایش داده می شوند. این برنامه در صورتی که مقادیر صحیح وارد شوند به درستی کار خواهد کرد اما اگر کاربر به هر شکلی مقادیر غیر معتبر را وارد نماید چه اتفاقی می افتد؟

بسم الله الرحمن الرحیم

جلوگیری از حملات CSRF و XSS

CSRF و XSS چیست

مثل همیشه با یک مثال این موضوع را بررسی خواهیم کرد، تصور کنید قرار است یک کد ساده برای ویرایش اطلاعات بنویسیم

public class UserProfileController : Controller
{
    public ViewResult Edit() { return View(); }
 
    public ViewResult SubmitUpdate()
    {
        // Get the user's existing profile data (implementation omitted)
        ProfileData profile = GetLoggedInUserProfile();
 
        // Update the user object
        profile.EmailAddress = Request.Form["email"];
        profile.FavoriteHobby = Request.Form["hobby"];
        SaveUserProfile(profile);
 
        ViewData["message"] = "Your profile was updated.";
        return View();
    }
}

در کد بالا ما ابتدا یک View را برای کاربر برمی گردانیم که قرار است اطلاعات آن را ویرایش کند، تصور کنید این View تغییر اطلاعات کاربری باشد. طبیعتا کاربر هنگامی که فرم اطلاعاتی را تکمیل کرد آن را Submit می کند. در این جا هیچ مشکلی نیست، البته به نظر می رسد!.

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس