برگزیده های پرشین تولز

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

Mehdi

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

Parham

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

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
خوب عزيزم اين چه ربطي به سوال من داشت
106.gif

من مامبو رو مثال زدم
خواستم بگم همچين كاري با دات نت هم ميشه يا نه
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
اونجور که من شنیدم، تو دات نت فقط کافیه Dll ها رو تو یه folder خاص بذاری ، instance که بسازی خودش load میشه، نیازی به رجیستر کردنش نیست
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
با خود vs.net هم میتونی وارد برنامت کنی و راحت باهاش کار کنی ، توی سولوشن روی به عنوان یک رفرنس جدید میتونی معرفیش کنی ، رو قسمت رفرنس ها رایت کلیک کن تا ببنی چی میگم .
 

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
خوب اینو از اول میگفتی که منظورت چیه! اون مثال کامپوننت مامبو یک مقداری منحرف کننده بود!

به نقل از H_R :
با خود vs.net هم میتونی وارد برنامت کنی و راحت باهاش کار کنی ، توی سولوشن روی به عنوان یک رفرنس جدید میتونی معرفیش کنی ، رو قسمت رفرنس ها رایت کلیک کن تا ببنی چی میگم .
این تایید میشه ولی اگر کامپوننت به صورت ویژوال هست و میخوای روی فرم اضافه کنی بهتره که روی Toolbox کلیک راست کنی و بعد Choose Item رو انتخاب کنی. حال تو این پنجره ای که باز میشه، اگر نوع کامپوننتت دات نت هست باید تو همون Tab اول از لیست انتخابش کنی و یا با Browse اضافه کنی و اگر هم که از نوع COM هست از تب دوم به همون شکل.
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
خداااااااااااااااااااااااااااااااااااااااااااااااااااا
102.gif

آموزش نصب كامپوننت ميديد
45.gif

66.gif

اينارو بابام هم بلده
107.gif

من ميگم كاربر از منو مديريت بتونه اينكارو بكنه از داخل سي ام اس
واسه چي پس مامبو رو مثال زدم؟
76.gif
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
چه میدونم خود درست مطرح نکردی شاید ، مستقیم UPLOAD کن توی BIN بقیش رو بسپار به IIS و دات نت فریم ورک و مهم تر از همه خدا :D
 

Parham

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

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
برای 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
 
بالا