آموزش قفل نرم افزاری با وب سرویس در Mvc

سه شنبه 19 خرداد 1394

در این مقاله قصد داریم آموزشی درباره قفل نرم افزاری و پیاده سازی یک وب سرویس در Mvc و اجرای آن توسط winform به شما علاقه مندان به برنامه نویسی بدهیم

آموزش قفل نرم افزاری با وب سرویس  در   Mvc

اگر آشنایی با وب سرویس ندارید اینجا کلیک کنید.

فقط دراین مقاله به  توضیح مختصری درباره برخی پروتکل های مهم در وب سرویس میپردازیم:

: XML (eXtensible Markup Languag)

فایل های xml حاوی اطلاعات وداده  در قالب متن و فاقد شکل و ظاهر می باشند و تنها برای انتقال داده ها بین وب سرویس ها و برنامه ها به کار می روند.

SOAP (Simple Object Access Protocol(

این استاندارد عامل ایجاد ارتباط بین نرم افزارها (برنامه های کاربردی) و وب سرویس میباشد این ارتباط اغلب از طریق پروتکل امن Http صورت می پذیرد.

 WSDL (Web Service Description Language)

 هر وب سرویس دارای یک فایل WSDL می باشد. این فایل به توصیف وب سرویس می پردازد و نحوه استفاده از وب سرویس را توضیح می دهد و به صورت یک فایل متنی با فرمت Xml می باشد که به برنامه ها می گوید که وب سرویس مورد نظر چه ورودی هایی دریافت و چه خروجی هایی را به برنامه برمی گرداند.

در این مقاله قصد داریم اطلاعات خود را با استفاده از  نرم افراز پیاده سازی شده با win form در بانک اطلاعاتی ذخیره و سپس با وب سرویس امکان نصب یا استفاده پیش از 3 بار را به کاربر ندهیم.

حال برای شروع به کار یک بانک اطلاعاتی به نام WebService_Demo و سپس یک جدول به نام tblWbl برای ثبت داده مینویسیم:

حال برای ایجاد وب سرویس  یک  پروژه از نوع Mvc ایجاد میکنیم و روی Solution راست کلیک کرده و یک  Add>NewItem>Web Service  ایجاد میکنیم

حال صفحه مربوط به وب سرویس ساخته شده است برای شروع به کار یک متد به نامserail ایجاد میکنیم دراین مثال ما از Data Set برای برقرای به بانک اطلاعاتی خود استفاده میکنیم
برای برقراری بانک اطلاعاتی با Data Set  روی Solution راست کلیک کرده و Add>NewItem>Datasetرا انتخاب میکنیم

حال بانک اطلاعاتی ما به برنامه اضافه شد
دراین مرحله به صفحه DataSet1.xsd رفته و روی بانک اطلاعاتی راست کلیک کرده Add>Queryرا برای ایجاد توابع Select ،InsertوUpdate ایجادمیکنیم

در این مرحله کد های زیر را به متد serail  اضافه میکنیم

 [WebMethod]
        public string serial(int id , string saftWare,string name, string family, string Eamil,string Phone, string serial)
        {
         
                DataSet1 ds=new DataSet1();
                DataSet1TableAdapters.tblWblTableAdapter td = new DataSet1TableAdapters.tblWblTableAdapter();
            td.Fillbyid(ds.tblWbl, id);
                if (ds.tblWbl.Rows.Count>0)
                {
                    if (int.Parse(ds.tblWbl.Rows[0][7].ToString())>3)
                    {
                        return "این نرم افزار پیش از 3 بار اجرا شده است";
              
                    }
                    else
                    {
                        td.Update_softWare(id,saftWare,name,family,Eamil,Phone,serial,int.Parse(ds.tblWbl.Rows[0][7].ToString())+1,id);

                            
                        return serial + "barnamenevisan";
                    }
                }
                else
                {
                    td.Insert_softWare(id,saftWare,name,family,Eamil,Phone,serial,1);
                    return serial + "barnamenevisan";
                }
    
 
      }


همان طور که از کد ها مشخص است یک تابع با ورودی هایی که در بانک اطلاعاتی به عنوان داده ذخیره کردیم نوشته شده است فقط تنها داده ای که به عنوان ورودی نگرفتیم tedad است . زیرا کاربر نباید تعداد را مشخص کند.
Fillbyid: برای گرفتن آیدی کاربر به کار میرود
دراین کد دو حلقه if تعریف شده است که در حلقه اول منظور ما این است  که آیا داده ای در جدول ما وجود دارد یا نه   ؟ که اگر داده ای موجود بود حلقه بعدی ایجاد میشود ودر حلقه بعدی منظور ما این است که اگر  کاربری با یک  آیدی  بیش از 3 بار وارد شده است برای بار چهارم اجازه ورود با نصب نرم افزار به آن داده نشود .

حال از برنامه اجرا میگیرم وشروع به ثبت داده میکنیم .

 

 

اگر بیش از 3 بار باهمین آیدی به ثبت داده بپردازیم با این صفحه روبرو میشویم:

 

فقط این نکته را یاداوری کنم که آدرس بار وب سرویس را پس از اجرا ذخیره کنید

و حال برای برای تست کردن از وب سرویس  یک پروژه از نوع WindowsFormsApplication ایجاد میکنیم
وآن را مانند زیر طراحی میکنیم:

حال برای افزودن وب سرویس به برنامه، روی Add Refrence  راست کلیک کرده و صفحه ای مانند زیر باز میشود که درقسمت Address،آدرسی  که در اجرا از وب سرویس ذخیره کردیم را دراین قسمت مینویسیم

 

حال وب سرویس، در پوشه Web References برنامه اضافه شده است.

اکنون روی دکمه فعال کردن دوبار کلیک کرده و در رویداد click آن کد های زیر را وارد میکنیم:

 private void btnActive_Click(object sender, EventArgs e)
        {
            myWebservice.WebService1 service1=new WebService1();
            string serail = Guid.NewGuid().ToString();
    string i=        service1.serial(4, "نرم افزار حسابداری", txtName.Text, txtfamily.Text, txtEmail.Text, txtphone.Text,
               serail);
            if (serail == i)
            {
                Properties.Settings.Default.serail = i;
                Properties.Settings.Default.Save();
                MessageBox.Show("برنامه فعال شد ");
                this.Hide();
                Form2 f2= new Form2();
                f2.Show();
            }
            else
            {
                MessageBox.Show(i);
                
            }

        }

اگر از برنامه اجرا بگیریم با صفحه ای مانند زیر روبه رو میشویم:

حال اگر آیدی که ما به صورت دستی وارد کردیم کمتر از 3 بار وارد برنامه شده باشد (به عبارتی در برنامه واقعی کمتر از 3 بار برنامه نصب شده باشد ) یک سریال برای نصب به شما میدهد.

 

حال اگر همان کاربر،برای بار 4 وارد برنامه شود با پیغام زیر مواجه میشود.

 

تمام

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید