PDA

View Full Version : بر نامه نویسی همزمان با #c و VB در ویندوز application



personprime
پنج شنبه 10 اردیبهشت 1388, 23:34 عصر
با سلام
همونطور که می دونید در ASP.net 3.5 این امکان وجود داره که دو تا پوشه برای کلاسهای
#C و VB ایجاد کرد و همزمان از هر دو استفاده کرد من می خوام این کار رو توی windows app انجام بدم می دونم که الان میگید که یکی از کلاسهام رو به dll تبدیل کنم و از اون یکی
ازش استفاده کنم ولی من می خوام این کار رو در حالی که کد رو بتونم تغییر بدم انجام بدم درست مثل web application خیلی ممنون می شم اگه جواب سوالم رو بدید

__H2__
جمعه 11 اردیبهشت 1388, 03:01 صبح
سلام
شما میتوانید در هر Solution چندینت پروزه همزمان داشته باشید...
یعنی پروزه را به dll و exe های متنوعی بشکنید و همه را در یک Solution قرار دهید.

(اولین روزه را که ساختید و باز کردید، برای دومی از فرمان File->Add->NewProject استفاده کنید.)

در این حالت میتوانید به جای فایلهای dll کامپایلی خود پروژه ها را به یکدیگر AddReference کنید و همه پروژه ها اماده و در دسترس و قابل ویرایش و Debug خواهند بود.

govaleshgar2
یک شنبه 13 اردیبهشت 1388, 16:27 عصر
البته به جز اینکه دو پروژه(همونی که شما dll میگید) مجزا تعریف کنی وجود نداره، این کار هیچ ضرری نداره.

البته اگر اصرار داری میتونی یک کار دیگر هم بکنی و اون هم اینه که اسمبلی (خروجی پروژه یا همون dll) ها رو توسط ابزارهای موجود با هم merge کنید. فکر کنم ILMerge که تو خود دات نت فریم هم موجوده این کار را میکند، اما اونی که من باهاش کار کردم .Net Reactor نامی است از شرکت Eziriz که البته کار اصلیش به جز merge اسمبلیها جلوگیری از لو رفتن کدها است.

در ضمن یه راهکار سوم هم هست که یه خورده پیچیده است، باید MSBuild و جزئیات فنی آن آشنا باشی و بعد بری تعریف .csproj و vbproj رو جوری تغییر بدی که فایلهای vb را جداگانه با کامپایلر vb کامپایل کنه و فایلهای .cs را جداگانه با کامپایلر .cs کامپایل کنه و بعد خروجی میانی این دو را با هم در یک اسمبلی خروجی ترکیب کند. البته عواقب این کار باخودتونه!!!

بازم توضیح میخواهید بگم؟؟

__H2__
دوشنبه 14 اردیبهشت 1388, 00:33 صبح
سلام

در ضمن یه راهکار سوم هم هست که یه خورده پیچیده است، باید MSBuild و جزئیات فنی آن آشنا باشی و بعد بری تعریف .csproj و vbproj رو جوری تغییر بدی که فایلهای vb را جداگانه با کامپایلر vb کامپایل کنه و فایلهای .cs را جداگانه با کامپایلر .cs کامپایل کنه و بعد خروجی میانی این دو را با هم در یک اسمبلی خروجی ترکیب کند. البته عواقب این کار باخودتونه!!!
بله اینکار هم قابل انجام است، عواقب خاصی هم ندارد ولی چون VS به ذات آن را ساپورت نمیکند، توسعه و دیباگ پروژه را به شدت مشکل میکند.
در این روش باید یکی از پروژه ها با خط فرمان target:module/ کامپایل شود که حاصل یک فایل کامپایلی شده میانی خواهد بود.
در کامپایل پروزه دوم باید با خط فرمان addmodule/ خروجی کامپایل اول را هم اضافه کرد. نتیجه یک exe یا dll واحد است که خوب هم کار میکند ولی تست و اشکال یابی این نوع پروزه خیلی سخت میشود و به نظرم شکستن به چند dll یا exe مجزا و در عوض بهره مند شدن از قابلیتهای خوب VS بسیار ساده تر است.

(
البته اگر بتوانید کل برنامه را با یک زبان بنویسید که دیگر عالی میشود !
بدون شک میتوان کدهای یکی از پروژه ها را به زبان دیگر تبدیل کرد
)

govaleshgar2
سه شنبه 15 اردیبهشت 1388, 14:41 عصر
سلام

بله اینکار هم قابل انجام است، عواقب خاصی هم ندارد ولی چون VS به ذات آن را ساپورت نمیکند، توسعه و دیباگ پروژه را به شدت مشکل میکند.


منظورم این بود که اگه اشتباهی زد فایلهای csproj و vbproj رو خراب کرد به من ربطی نداره:چشمک:



در این روش باید یکی از پروژه ها با خط فرمان target:module/ کامپایل شود که حاصل یک فایل کامپایلی شده میانی خواهد بود.
در کامپایل پروزه دوم باید با خط فرمان addmodule/ خروجی کامپایل اول را هم اضافه کرد. نتیجه یک exe یا dll واحد است که خوب هم کار میکند

سپاس برای ذکر نکته فوق فقط اینو بگم که اینهایی که شما گفتید با اونهایی که من گفتم فرق میکنه، میشه صفرمین روش! من گفتم بره تعریف MSBuild برای فایلهای csproj و vbproj رو جوری تغییر بده که هر یک بتوانند شامل کدهای اون یکی زبان باشند. اما روشی که شما میگید همچنان باید چند پروژه داشته باشند اما خروجی کامپایل پروژه های مختلفشون به صورت یک اسمبلی در بیاید.