پروژه‌های جاوایی در دات‌نت

تعدادی زیادی از پروژه‌های کد باز معروف ‭.Net‬ از روی پروژه‌های موفق Java ساخته شده‌اند. یکی از قشنگ‌ترین چیزهایی که در این تقلید رعایت شده، یکسان بودن API هر دو است. یعنی مثلاً اگر پروژه‌ی جاوایی JavaProjABC وجود داشته باشد که شامل سه کلاس C1 و C2 و C3 بوده و کلاس C2 شامل متودی به اسم m1 باشد که دو پارامتر string دریافت می‌کند، پروژه‌ی دات‌نتی آن که احتمالاً NProjABC یا ProjABC.Net نام دارد هم دقیقاً همین کلاس‌ها و همین متودها را دارد. علاوه بر این رفتار کلاس‌ها و متودها هم یکی است. مثلاً اگر متود m1 در پروژه‌ی جاوایی دو پارامتر دریافتی را در یک فایل متنی نوشته و زیر آن یک خط می‌کشد، متود m1 پروژه‌ی دات‌نتی هم دقیقاً همین کار را می‌کند.

خوبی این موضوع این است که کدهای نوشته شده برای استفاده از یک پروژه‌ی جاوایی یا دات‌نتی اصطلاحاً قابل حمل بوده و به راحتی قابل تبدیل به platform دیگر است. خوبی دیگر آن، یکی بودن شکل و شمایل configuration است. مثلاً کدهای مورد نیاز برای configuration پروژه‌ی جاوایی log4j بسیار شبیه به configuration نسخه‌ی دات‌نتی یعنی log4net است. خوبی دیگری هم هست که خیلی هم قابل استفاده است. وقتی که کار کردن با یکی را بلد باشید کار کردن با آن یکی را هم خود به خود یاد گرفته‌اید و اگر مثالی یا کتابی روی یکی از پروژه‌ها موجود باشد، در آن پروژه‌ی دیگر هم می‌توان از آن استفاده کرد.

این مورد آخر جدیداً خیلی برای من به درد بخور بود. یکی از APIهای پر استفاده‌ی جستجو در NHibernate عبارت است از ICriteria. من به مشکلی در استفاده از آن برخورده بودم که نمی‌دانستم چطور باید آن را حل کنم. در مورد NHibernate و ICriteria جستجو کردم و چیز خاصی پیدا نکردم. اما خوشبختانه چون NHibernate پورت پروژه‌ی معروف جاوایی Hibernate به دات‌نت است توانستم از روی یک سوال و جواب Hibernate جاوایی به جوابم برسم.