آژانس هواپیماییexchanging

كامپوننت در دات نت

شروع موضوع توسط Mehdi ‏11 فوریه 2006 در انجمن asp , ASP.NET

  1. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    49
    محل سکونت:
    Anywhere
    سلام
    ميخواستم ببينم تو دات نت ميشه يه كامپوننت نصبيد؟
    مثل مامبو كه كامپوننت رو انتخاب ميكني بعد نصب ميكنه خودش اتوماتيك
    اخه دات نت يخورده فرق فوكوله:wacko:
    دي ال ال هستش
     
  2. Parham

    Parham Registered User

    تاریخ عضویت:
    ‏24 سپتامبر 2003
    نوشته ها:
    1,039
    تشکر شده:
    1
    عزیز این چه ارتباطی به دات نت داره؟!:eek: مامبو یک سیستمیه که با php نوشته شده و طوری طراحی شده که بشه روش یک کامپوننت نصب کرد و با اون قابلیتهاش رو افزایش داد. حالا این سیستم میتونه با یکی از زبانهای دات نت نوشته بشه. میتونه با جاوا نوشته بشه و میتونه با خیلی چیزهای دیگه. این کاملا به نوع طراحی سیستم و پیش بینی این موارد در هنگام طراحی مربوطه و نه به نوع زبانی که نوشته شده. این کامپوننت هم یک چیزی مثل پلاگین هاییست که در اکثر برنامه ها ساپورت میشه. از فتوشاپ گرفته تا همین فایرفاکس!
     
  3. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    49
    محل سکونت:
    Anywhere
    خوب عزيزم اين چه ربطي به سوال من داشت[​IMG]
    من مامبو رو مثال زدم
    خواستم بگم همچين كاري با دات نت هم ميشه يا نه
     
  4. Graveworm

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    اونجور که من شنیدم، تو دات نت فقط کافیه Dll ها رو تو یه folder خاص بذاری ، instance که بسازی خودش load میشه، نیازی به رجیستر کردنش نیست
     
  5. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    با خود vs.net هم میتونی وارد برنامت کنی و راحت باهاش کار کنی ، توی سولوشن روی به عنوان یک رفرنس جدید میتونی معرفیش کنی ، رو قسمت رفرنس ها رایت کلیک کن تا ببنی چی میگم .
     
  6. Parham

    Parham Registered User

    تاریخ عضویت:
    ‏24 سپتامبر 2003
    نوشته ها:
    1,039
    تشکر شده:
    1
    خوب اینو از اول میگفتی که منظورت چیه! اون مثال کامپوننت مامبو یک مقداری منحرف کننده بود!

    این تایید میشه ولی اگر کامپوننت به صورت ویژوال هست و میخوای روی فرم اضافه کنی بهتره که روی Toolbox کلیک راست کنی و بعد Choose Item رو انتخاب کنی. حال تو این پنجره ای که باز میشه، اگر نوع کامپوننتت دات نت هست باید تو همون Tab اول از لیست انتخابش کنی و یا با Browse اضافه کنی و اگر هم که از نوع COM هست از تب دوم به همون شکل.
     
  7. appbannerkhuniresbanner
  8. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    49
    محل سکونت:
    Anywhere
    خداااااااااااااااااااااااااااااااااااااااااااااااااااا[​IMG]
    آموزش نصب كامپوننت ميديد[​IMG]
    [​IMG]
    اينارو بابام هم بلده[​IMG]
    من ميگم كاربر از منو مديريت بتونه اينكارو بكنه از داخل سي ام اس
    واسه چي پس مامبو رو مثال زدم؟
    [​IMG]
     
  9. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    چه میدونم خود درست مطرح نکردی شاید ، مستقیم UPLOAD کن توی BIN بقیش رو بسپار به IIS و دات نت فریم ورک و مهم تر از همه خدا :D
     
  10. Parham

    Parham Registered User

    تاریخ عضویت:
    ‏24 سپتامبر 2003
    نوشته ها:
    1,039
    تشکر شده:
    1
    خوب پس من از اول درست فهمیده بودم، حالا باید سوالت رو دقیق تر مطرح کنی. کلیاتش که همونیه که گفتم. از ابتدای طراحی سیستم باید این نکته رو در نظر داشته باشی و طوری سیستم رو طراحی کنی که قابلیت این کار رو داشته باشه. مثلا یک قالب کلی برای کمپوننتهایی که قراره اضافه بشه در نظر بگیری. مثلا حداقل یک سری کلاسها و متدهای پیش فرض که ساختارشون در تمامی کمپوننتها یکی باشه. حالا نمیدونم شاید سوالت اینه که عملا بعد چطور باید بشه اینها رو اضافه کرد؟ یک مطلب جالبی اینجا هست در مورد کامپایل کردن و اجرا نمودن سورس نوشته شده در دات نت در زمان اجرای یک نرم‌افزار! این برای وقتی مناسبه که مثلا اون کمپوننت به صورت سورس به سیستم اضافه بشه. حالا اگر که کامپایل شده باشه و به صورت dll باید دید که چطور میشه یک Reference به صورت داینامیک به پروژه اضافه کرد؟ اون هم با ایجاد یک Assembly و لود کردن از یک فایل DLL شدنیه.
     
  11. Parham

    Parham Registered User

    تاریخ عضویت:
    ‏24 سپتامبر 2003
    نوشته ها:
    1,039
    تشکر شده:
    1
    برای DLL کامپایل شده هم به این شکل عمل کن: فرض میکنیم که یک پروژه داری که Root NameSpace اون Sample هست و بعد یک کلاس SampleClass داری به این شکل:
    کد:
        Public Class SampleClass
            Public Shared Function SmapleFunc(ByVal arg As Integer) As Integer
                Return arg + 1
            End Function
        End Class
    
    وقتی این پروژه رو کامپایل کنی در حالت معمول یک فایل DLL داری به این نام: Sample.dll

    حالا میریم سراغ یک پروژه دیگه که از داخل اون میخوایم این DLL رو به صورت داینامیک لود کنیم و از اون استفاده کنیم. اگر فرض کنیم که اون DLL پروژه قبلی در روی درایو C ذخیره شده این کدش هست:
    کد:
            Dim mAssembly As System.Reflection.Assembly
            mAssembly = Reflection.Assembly.LoadFrom("C:\Sample.dll")
            Dim scriptType As Type
            Dim instance As Object
            Dim rslt As Object
    
            Try
                'Get the type from the assembly.  This will allow us access to
                'all the properties and methods.
                scriptType = mAssembly.GetType("Sample.SampleClass")
                'instance = mAssembly.CreateInstance("SampleClass")
                'Set up an array of objects to pass as arguments.
                Dim args() As Object = {1}
    
                'And call the static function
                rslt = scriptType.InvokeMember("SampleFunc", _
                    System.Reflection.BindingFlags.InvokeMethod Or _
                    System.Reflection.BindingFlags.Public Or _
                    System.Reflection.BindingFlags.Static, _
                    Nothing, Nothing, args)
    
                'Return value is an object, cast it back to a string and display
                If Not rslt Is Nothing Then
                    MessageBox.Show(CType(rslt, String))
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try