امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
نمایی از قدرت Linq
نویسنده پیام
esmaeily-hosein آفلاین
كاربر دو ستاره
**

ارسال‌ها: 232
موضوع‌ها: 12
تاریخ عضویت: دى ۱۳۸۴

تشکرها : 6
( 91 تشکر در 46 ارسال )
ارسال: #1
نمایی از قدرت Linq
این کد در پوشه مورد نظر فایل های htm را باز کرده و در آن به دنبال کلمات مرتبط با Visual میگردد . ترکیبی از Regex,Linq
کد :
کد:
public static void Main()
{
// Modify this path as necessary.
string startFolder = @"c:\program files\Microsoft Visual Studio 9.0\";

// Take a snapshot of the file system.
IEnumerable<IO.FileInfo> fileList = GetFiles(startFolder);

// Create the regular expression to find all things "Visual".
Text.RegularExpressions.Regex searchTerm =
new Text.RegularExpressions.Regex(@"Visual (Basic|C#|C\+\+|J#|SourceSafe|Studio)");

// Search the contents of each .htm file.
var queryMatchingFiles =
from file in fileList
where file.Extension == ".htm"
let fileText = IO.File.ReadAllText(file.FullName)
let matches = searchTerm.Matches(fileText)
where searchTerm.Matches(fileText).Count > 0
select new
{
name = file.FullName,
matches = from Text.RegularExpressions.Match match in matches
select match.Value
};

// Execute the query.
Console.WriteLine("The term \"{0}\" was found in:", searchTerm.ToString());


foreach (var v in queryMatchingFiles)
{
// Trim the path a bit, then write
// the file name in which a match was found.
string s = v.name.Substring(startFolder.Length - 1);
Console.WriteLine(s);

// For this file, write out all the matching strings
foreach (var v2 in v.matches)
{
Console.WriteLine(" " + v2);
}
}

// Keep the console window open in debug mode
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}

// This method assumes that the application has discovery
// permissions for all folders under the specified path.
static IEnumerable<IO.FileInfo> GetFiles(string path)
{
if (!IO.Directory.Exists(path))
throw new IO.DirectoryNotFoundException();

string[] fileNames = null;
List<IO.FileInfo> files = new List<IO.FileInfo>();

fileNames = IO.Directory.GetFiles(path, "*.*", IO.SearchOption.AllDirectories);
foreach (string name in fileNames)
{
files.Add(new IO.FileInfo(name));
}
return files;
}

هر چی روش خوبه توش خوب نیست!
۱۶-فروردین-۱۳۸۸, ۱۴:۴۰:۱۴
ارسال‌ها
پاسخ
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #2
RE: نمایی از قدرت Linq
درباره linq این تکنولوژی جدید که در دات نت 2008 قرار گرفته توضیح میدین که چی هست؟ و دقیقا بدرد چکاری میخوره؟
و برای شروع آموزش خاصی سراغ ندارین ؟(فارسی)

۱۶-فروردین-۱۳۸۸, ۱۶:۰۰:۱۰
ارسال‌ها
پاسخ
amirjan آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,105
موضوع‌ها: 24
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 348
( 697 تشکر در 251 ارسال )
ارسال: #3
RE: نمایی از قدرت Linq
(۱۶-فروردین-۱۳۸۸, ۱۶:۰۰:۱۰)HoseinVig نوشته است: درباره linq این تکنولوژی جدید که در دات نت 2008 قرار گرفته توضیح میدین که چی هست؟ و دقیقا بدرد چکاری میخوره؟
و برای شروع آموزش خاصی سراغ ندارین ؟(فارسی)

اینجا رو ببین : http://forum.iranled.com/showthread.php?...9#pid60259

سید امیر حسین حسنینی

Human knowledge belongs to the world ...
۱۶-فروردین-۱۳۸۸, ۱۶:۰۹:۳۰
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig
esmaeily-hosein آفلاین
كاربر دو ستاره
**

ارسال‌ها: 232
موضوع‌ها: 12
تاریخ عضویت: دى ۱۳۸۴

تشکرها : 6
( 91 تشکر در 46 ارسال )
ارسال: #4
RE: نمایی از قدرت Linq
توضیح خوبی بود حالا منم چندی دربارش میگم .
linq بر روی پیاده سازی پرس و جو بر روی هر کلاسی در .Net که از ساختار collection پیروی میکنند .
(فرض کن میخواهی در کلاس students نمره max به فرض در بیاری )
برای این منظور زبان خاصی هم برای query های خود در نظر گرفت .

مفهوم دیگری به نام ORM وجود دارد یعنی برنامه ما مستقل از Db عمل کند فرض کن برای ما بانک اطلاعاتی مهم نیست Oracle یا Sql یا Db2 و.... باشد برنامه ما میخواد در هر محیط کاری کند قبل از linq پروژه open source در .net پیش میرفت به نام Hibernate که بسیاری از معماری های برنامه بر روی آن قرار گرفتند خود Hibernate در اصل برای جاوا بوده است و از ORM معروف است ولی با وجود linq اونم از دور خارج شد .

از مزایای آن میتوان به caching فوق العاده ، حذف sql Injection از برنامه ها ، خوانایی بالا ، راحتی کد نویسی با کمتر کردن کدها و ... اشاره کرد .
در ضمن linq در .net 3 یکی از مفاهیم مهم بود که از جمله مفاهیم دیگر میوان به wf,wcf,wpf اشاره کرد تا microsoft بتواند در هر زمینه ای مفهوم مستقل بودن از platform را معنی کند :
wf : هدف برنامه مستقل از کد
wcf : هدف پیاده سازی واقعی SOA "Service Oriented Architect"
wpf : هدف استقلال برنامه از ui در 2 محیط سیستم عامل و وب

من اعتقاد دارم microsft در نسخه .net 3 نه تنها به جاوا رسید بلکه از او جلو هم زد . کافیست نظرات java کارا درباره wcf فقط ببینید.
کتاب Pro Linq کتاب خیلی خوبیه ببخشید فارسی پیدا نکردم ولی متن روون خوبی داره .
http://www.ebookee.com/Pro-LINQ-Language...53648.html

هر چی روش خوبه توش خوب نیست!
(آخرین ویرایش در این ارسال: ۱۶-فروردین-۱۳۸۸, ۱۷:۳۳:۳۴، توسط esmaeily-hosein.)
۱۶-فروردین-۱۳۸۸, ۱۷:۲۸:۱۰
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig, amirjan


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش LINQ : همراه با مثال هایی از LINQ to Objects ، LINQ to SQL و LINQ to XML ostovarit 0 2,922 ۲۳-بهمن-۱۳۸۹, ۱۸:۱۳:۲۹
آخرین ارسال: ostovarit

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS