ايران ويج

نسخه‌ی کامل: نمایی از قدرت 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;
}
درباره linq این تکنولوژی جدید که در دات نت 2008 قرار گرفته توضیح میدین که چی هست؟ و دقیقا بدرد چکاری میخوره؟
و برای شروع آموزش خاصی سراغ ندارین ؟(فارسی)
(۱۶-فروردین-۱۳۸۸, ۱۶:۰۰:۱۰)HoseinVig نوشته است: [ -> ]درباره linq این تکنولوژی جدید که در دات نت 2008 قرار گرفته توضیح میدین که چی هست؟ و دقیقا بدرد چکاری میخوره؟
و برای شروع آموزش خاصی سراغ ندارین ؟(فارسی)

اینجا رو ببین : http://forum.iranled.com/showthread.php?...9#pid60259
توضیح خوبی بود حالا منم چندی دربارش میگم .
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