نظرات مطالب
تبدیل HTML به PDF با استفاده از کتابخانه‌ی iTextSharp
مراجعه کنید به مطلب «رمزنگاری فایل‌های PDF با استفاده از کلید عمومی توسط iTextSharp ». در اینجا توسط مقادیری مانند PdfWriter.ALLOW_COPY و غیره می‌شود روی فایل تولیدی محدودیت ایجاد کرد. ضمنا راه برای برطرف کردن این محدودیت‌ها هم هست.
نظرات مطالب
تبدیل html به pdf با کیفیت بالا
iTextSharp با Stream کار می‌کند. این استریم می‌تواند فایل استریم یا memory stream باشد؛ که من در اینجا از حالت memory stream استفاده می‌کنم.
ضمن اینکه اگر فایل استریم هم می‌بود چون نام فایل‌ها یکی نیست، تداخلی رخ نمی‌داد.
نظرات مطالب
iTextSharp و نمایش صحیح تاریخ در متنی راست به چپ
بستگی داره نرم افزار تولید PDF از چه روشی استفاده کرده باشه. بعضی‌ها از چرخاندن حروف استفاده می‌کنند و این روش بسیار متداولی هست. یعنی مشکل از iTextSharp نیست. در اصل به همین ترتیب حروف ذخیره شدن. الگوریتم اولیه به همین صورت بوده.
نظرات مطالب
iTextSharp و نمایش صحیح تاریخ در متنی راست به چپ
بستگی داره نرم افزار تولید PDF از چه روشی استفاده کرده باشه. بعضی‌ها از چرخاندن حروف استفاده می‌کنند و این روش بسیار متداولی هست. یعنی مشکل از iTextSharp نیست. در اصل به همین ترتیب حروف ذخیره شدن. الگوریتم اولیه به همین صورت بوده.
نظرات مطالب
نقدی بر کتاب «مرجع کامل entity framework 4.1»
درک مطلب در درجه‌ای اول به دامنه‌ی لغات شما وابسته است. دامنه‌ی لغات کتاب‌های فنی هم خوشبختانه زیاد وسیع نیست برای مثال نسبت به کتاب‌های رمان و ادبی و امثال آن. بنابراین باید شروع کنید به «خواندن». نه خواندن لغات لغتنامه که هیچ اثری ندارد. لغات را باید در متن یاد بگیرید. مثلا شروع کنید به وبلاگ انگلیسی خواندن. در این سایت OPML را جستجو کنید. تعداد زیادی فید سایت‌های مرتبط برنامه نویسی رو می‌تونید پیدا کنید. خلاصه کم کم به این ترتیب، البته نه از روی تفنن، بلکه به صورت جدی با یاد گرفتن روزی حداقل 10 واژه جدید، ظرف یکسال ترس شما از متون فنی انگلیسی خواهد ریخت.
اشتراک‌ها
استفاده از فایل csv برای مقدار دهی اولیه‌ی جداول با استفاده از EF

protected override void Seed(SeedingDataFromCSV.Domain.LocationContext context)
{
    Assembly assembly = Assembly.GetExecutingAssembly();
    string resourceName = "SeedingDataFromCSV.Domain.SeedData.countries.csv";
    using (Stream stream = assembly.GetManifestResourceStream(resourceName))
    {
        using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
        {
            CsvReader csvReader = new CsvReader(reader);
            csvReader.Configuration.WillThrowOnMissingField = false;
            var countries = csvReader.GetRecords<Country>().ToArray();
            context.Countries.AddOrUpdate(c => c.Code, countries);
        }
    }

    resourceName = "SeedingDataFromCSV.Domain.SeedData.provincestates.csv";
    using (Stream stream = assembly.GetManifestResourceStream(resourceName))
    {
        using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
        {
            CsvReader csvReader = new CsvReader(reader);
            csvReader.Configuration.WillThrowOnMissingField = false;
            while (csvReader.Read())
            {
                var provinceState = csvReader.GetRecord<ProvinceState>();
                var countryCode = csvReader.GetField<string>("CountryCode");
                provinceState.Country = context.Countries.Local.Single(c => c.Code == countryCode);
                context.ProvinceStates.AddOrUpdate(p => p.Code, provinceState);
            }
        }
    }
}

یک کتابخانه مرتبط: EntityFramework.Seeder

استفاده از فایل csv برای مقدار دهی اولیه‌ی جداول با استفاده از EF