نظرات مطالب
سازماندهی برنامه‌های Angular توسط ماژول‌ها
فرض می‌کنیم در حال توسعه یک سیستم بزرگ می‌باشم که مثلا شامل چندین بخش مختلف مثل  Admin/Client/Colleague /Careworker و.. می‌باشد . تعدادی کامپوننت داریم که قرار است در تمامی بخش‌ها استفاده شود ( مثلا کامپوننت لیست سرویس‌ها / جزئیات سرویس‌ها و .. ) ، که تعداد این کامپوننت‌ها 200 یا بیشتر از 200 می‌باشد . در این حالت ، این کامپوننت‌ها را به Shared ماژول انتقال می‌دهیم جهت جلوگیری از ایجاد کامپوننت‌های تکراری و در نهایت بر اساس توضیحات بالا Shared ماژول را با forRoot در AppModule بخش import معرفی می‌کنیم و در سایر ماژول‌ها خود SharedModule را در بخش import معرفی می‌کنیم . 

1-آیا حداقل و حداکثر تعداد، برای کامپوننت‌ها در SharedModule وجود دارد ؟
2-آیا با افزایش تعداد کامپوننت‌ها درماژول  Shared  امکان کند شدن لود اولیه وجود دارد ؟ 
3- انتقال کامپوننت‌های مثل کامپوننت لیست سرویس‌ها / جزئیات سرویس‌ها و .. به ماژول Shared با توجه به اینکه قرار است در چند بخش مختلف استفاده شوند کار صحیحی است ؟ 
نظرات مطالب
معرفی افزونه‌های مفید VSCode جهت کار با Angular
چگونه از لیست افزونه‌های نصب شده‌ی در VSCode خروجی بگیریم؟
VSCode console را باز کنید و سپس دستور ذیل را صادر نمائید:
 code --list-extensions

چگونه لیست خروجی افزونه‌ها را تبدیل به دستور نصب آن‌ها کنیم؟
نصب یک افزونه توسط VSCode console:
 code --install-extension {ext1}
نصب چند افزونه توسط VSCode console:
 code --install-extension {ext1} --install-extension {ext2} --install-extension {extN}
و یا تولید یک فایل install.cmd به صورت خودکار:
for /F "tokens=*" %i in ('code --list-extensions') do @echo call code --install-extension %i >> install.cmd
حاصل اجرای این دستور، تولید فایل install.cmd است که پس از اجرای آن، تمام افزونه‌ها را به صورت خودکار نصب می‌کند.
نظرات مطالب
Url Routing در ASP.Net WebForms
ممنون؛ ما چند دامین داریم که مربوط به شرکتهای مختلفه و همه اینها به یک اپلیکیشن وبی ارجاع داده می‌شوند منتها به خاطر اینکه ممکنه تعداد شرکتها و اینکه هر شرکت صفحات اختصاصی و بالطبع روتینگ‌های خاص خودش رو داشته باشه، بهتره که فقط روتینگ‌های اون شرکت لود بشوند.
چیزی که شما می‌فرمایید کاملا درسته و روتینگ یکبار در application_start(این رویداد فقط یکبار در استارت کل پروژه اجرا می‌شود) لود میشه ولی برای این مورد که عرض کردم جوابگو نیست ، چون قراره که هر کاربر با واردشدنش به سایت، ابتدا تشخیص داده بشه برای کدام شرکته و در مرحله بعد روتینگ‌های مختص خودش لود بشوند.
برای این مورد مثلا میتونیم از Session_Start استفاده کنیم. و همونطور که خودتون هم میدونید متغیرهای استاتیک در کل پروژه ثابت هستند. بنابراین با دستکاری کردن لیست روتینگ‌های شرکت 1 ، روتینگ‌های شرکت 2 هم دستکاری میشه. یعنی کاربر شرکت 1 که در حال کار است با وارد شدن کاربر 2 که از شرکت 2 است، باعث عوض شدن لیست روتینگ‌های شرکت 1 میشه و این مشکل ایجاد میکنه.
نظرات مطالب
صفحه بندی، مرتب سازی و جستجوی پویای اطلاعات به کمک Kendo UI Grid
- پویا هست و خروجی دسترسی هم گرفتید. زمانیکه تعریف می‌کنید:
new Field { Type = column.DataType }
یعنی در لیست نهایی، خاصیتی با نام ثابت Type و با مقدار متغیر column.DataType را تولید کن (نام خاصیت، مقدار ثابت نام خاصیت را در JSON نهایی تشکیل می‌دهد).
+ نیازی هم به این همه پیچیدگی نداشت. تمام کارهایی را که انجام دادید با تهیه خروجی ساده <List<Field از یک متد دلخواه، یکی هست و نیازی به anonymous type کار کردن نبود.
- به همان کلاس فیلد، خواص دیگر مورد نیاز را اضافه کنید (عنوان و سایر مشخصات یک فیلد) و در نهایت لیست ساده <List<Field را بازگشت دهید. هر خاصیت کلاس Field، یک ستون گرید را تشکیل می‌دهد.
- همچنین دقت داشته باشید اگر از روش مطلب جاری استفاده می‌کنید، اطلاعات ستون‌‌های نهایی باید در فیلد Data نهایی قرار گیرند (قسمت «پیشنیاز تامین داده مخصوص Kendo UI Grid» در بحث).
نظرات مطالب
درج یک باره چندین رکورد بصورت همزمان هنگام استفاده از ORMها
سلام
من خطای زیر رو دارم. برای ویرایش چند رکورد به صورت یکجا از Entity Framework Extended Library استفاده کردم. اما مشکلی دارم این است من یک جدول در پایگاه دارم که می‌خوام به صورت یکجا ویرایش کنم به این صورت که ابتدا شماره فیلد هایی که را قرار است تغییر دهم(فیلد ID) داخل یک لیست ریختم و سپس از جدول فقط اون فیلدها رو ویرایش کنم
چند روش برای join جدول با این لیست امتحان کردم یا join خطا می‌دهد اگر join نیز مشکلی نداشت مقدار برگشتی از نوع enumerable هست و زمانی که از update کلاس Entity Framework Extended Libraryاستفاده میکنم
خطا می‌دهد که لیستی که قرار است update شود باید از نوع dbquery باشد  
 
Unable to create a constant value of type 'extendeexample.MyClass'. Only primitive types or enumeration types are supported in this context.

سورس پروژه به همراه پایگاه داده
project.rar
نظرات مطالب
Blogger auto poster
سلام . دستت درد نکنه . عالیه . فقط 3 تا سؤال : 1 -  نوع فرمت زمان ارسال لینکها بصورت 12 ساعته است و یا 24 ساعته است ؟ ( یعنی 10 شب از نظر برنامه 22 تعریف شده است و یا 10 )
2- برنامه  بصورت خودکار همیشه تمام لینکهای شر شده در یک روز را منتشر میکند و یا یک تعداد مشخصی را ؟ ( اگر مورد اول درست هست بهتر است که مورد دوم را در نسخه جدید برنامه به آن اضافه کنید )
 3- چرا بعد از انجام تنظیمات برنامه با توجه به حساب کاربری خودم و اتصال موفق ، بعد از زدن دکمه Download News در میان لیست لینکهای شر شده من ، لیست لینکها منتشر شده و منتخب شما مشاهده میگردد ؟ . آیا آدرس فید شما بصورت پیش فرض در برنامه گنجانده شده است ؟: ببینید :

http://upload20.ir/upload/13207696341013548167.jpg
مطالب
وب‌پارت اسلاید متحرک در شیرپوینت 2010
در خلال تعدادی از پروژه‌هایی که در زمینه توسعه شیرپوینت 2010 درگیر بودم، یکی از وب‌پارت‌هایی که اکثر مشتریان درخواست می‌کردند وب پارت اسلاید متحرک بود. به نظر من داشتن این وب‌پارت ظاهرا خیلی برای مشتریان مهم بنظر می‌رسید، بهمین سبب در زیر به پیاده‌سازی آن اشاره می‌کنم.

ساخت لیست سفارشی

ابتدا یک لیست سفارشی بنام ContentSlides ایجاد می‌کنیم و  ستونی از نوع Rich HTML به آن اضافه می‌کنیم.

ایجاد یک پروژه شیرپوینتی از نوع Visual Web Part

سپس یک پروژه شیرپوینت از نوع Visual Web Part در سایتی که لیست فوق در آن قرار دارد می‌سازیم.





در این مرحله نامگذاری‌های پیش‌فرض ویژوال استودیو که برای ویژوال وب‌پارت در نظر گرفته را به نام مناسب تغییر می‌دهیم.



افزودن پلاگین AnythingSlider

ابتدا پلاگین AnythingSlider را از این آدرس دریافت نمایید. سپس فایلهای anythingslider.css, anythingslider-ie.css, jquery.min.js, jquery.anythingslider.js  و "default.png " را به ویژوال وب‌پارت اضافه می‌کنیم. برای اضافه کردن فایلهای این پلاگین، ابتدا فولدر "Layouts" به پروژه اضافه می‌نماییم و سپس فایلهای این پلاگین در این فولدر قرار می‌دهیم.

سپس در خط 129 و 155 و 181 فایل anythingslider.css

background: url("../images/default.png") no-repeat; 
را به
background: url(“default.png") no-repeat;
تغییر دهید و شکل پروژه به صورت زیر خواهد شد.

در ادامه، بر روی "ContentSliderVisualWebPartUserControl.ascx" دابل کلیک کنید و کد زیر را به آن اضافه می‌کنیم.

<SharePoint:CssRegistration ID="AnythingSliderCssRegistration" runat="server" 
Name="/_layouts/ContentSliderWebPart/anythingslider.css"></SharePoint:CssRegistration>
<SharePoint:CssRegistration ID="AnythingSliderCssRegistrationIE7" runat="server" 
Name="/_layouts/ContentSliderWebPart/anythingslider.css" ConditionalExpression="lte IE 7"></SharePoint:CssRegistration>

<SharePoint:ScriptLink ID="JqueryScriptLink" runat="server" 
Name="/_layouts/ContentSliderWebPart/jquery.min.js"></SharePoint:ScriptLink>
<SharePoint:ScriptLink ID="AnythingSliderScriptLink" runat="server" 
Name="/_layouts/ContentSliderWebPart/jquery.anythingslider.js"></SharePoint:ScriptLink>

توجه کنید در کد بالا ما از کنترل‌های "SharePointCssRegistration" و "SharePointScriptLink" برای اضافه نمودن فایلهای Css و JavaScript مورد نیاز و هم چنین از خصیصه "ConditionalExpression" برای اضافه کردن فایل "anythingslider-ie.css" برای مرورگر اینترنت اکسپلورر 7 به بالا استفاده کردیم.

ایجاد کوئری برای لیست سفارشی

برای ایجاد کوئری از کتابخانه jQuery بنام SPService که از این آدرس قابل دریافت است، استفاده می‌کنیم. فایل "jquery.SPServices.min.js" موجود در این کتابخانه را همانند سایر فایل‌های اضافه شده در قسمت قبل را به پروژه اضافه می‌کنیم.

برای استفاده از کتابخانه، کد زیر را در user control قسمت فبلی و در ادامه کدهای قبلی وارد می‌کنیم.

<SharePoint:ScriptLink ID="SPServicesScriptLink" runat="server" 
Name="/_layouts/ContentSliderWebPart/jquery.SPServices.min.js"></SharePoint:ScriptLink>

و برای ایجاد کوئری کد زیر در user control وارد می‌کنیم.

<script language="javascript" type="text/javascript">

$(document).ready(function () {
$().SPServices({
operation: "GetListItems",
async: false,
listName: "ContentSlides",
CAMLViewFields: "<ViewFields<FieldRef Name='SlidesContent' /></ViewFields>",
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function () {
var liHtml = "<li>" + $(this).attr("ows_SlidesContent") + "</li>";
$("#slider").append(liHtml);
});
}
});

/*-- Initialize AnythingSlider plugin --*/
    $('#slider').anythingSlider();

});
</script>

<ul id="slider" />

وظیفه این کد انجام کوئری بر روی لیست "ContentSlides" و ایجاد ساختار یک لیست جهت نمایش اسلایدها می‌باشد که آیتم‌های این لیست مقادیر ستون
"Slides Content" می‌باشد، شناسه این لیست "Slider" است.

توجه کنید: ما می‌توانیم CAML Queryهای پیشرفته‌ای برای اعمال فیلتر مناسب و چیدمان اسلایدها استفاده کنیم.

در ادامه، برای مقدار دهی اولیه به پلاگین بوسیله فراخوانی تابع

 $('#slider').anythingSlider();

انجام می‌شود.

در پایان براحتی با Deploy نمودن Solution، امکان استفاده از وب پارت مهیاست.

برای دریافت کد این پروژه از این آدرس استفاده کنید.

مطالب
LINQ to Sharepoint Class
شیرپوینت قابلیت استفاده از دستورات LINQ را برای دسترسی به لیست‌های خود می‌دهد . این قابلیت جایگزین خوبی برای استفاده سنتی از CAML queries می باشد. (Collaborative  Application Markup Language (CAML برای تعریف کوئری‌ها درون لیست داده‌ها استفاده می‌شود و بر مبنای XML می‌باشد بیشتر 
برای این منظور می‌توان از دستور زیر استفاده کرد تا Sharepoint Foundation برای شما کلاسی بسازد تا بتوانید به تمام اعضای لیست داده‌های Sharepoint دسترسی داشته باشید  
لازم است بدانید که برای ساخت این کلاس از LINQ Provider Code Generator خود شیرپوینت به نام SPMETAL.EXE که در پوشه bin در زیر مجموعه 14 قرار دارد استفاده می‌شود . 

spmetal.exe /web:http://DOMAIN/code:c:\EntityModuleSharePoint.cs /user:DOMAIN\USERNAME/password:********** /namespace:EntityModuleSharePoint 


توجه داشته باشید که پسوند فایلی که نوشته اید مشخص می‌کند که دستورات بر مبنای چه زبانی ساخته شوند (قسمت قرمز رنگ بعد از سوییچ code ) مثلا با تغیر پسوند به VB فایل ایجاد شده با دستورات vb قابل استفاده است  

برای مشاهده یک مثال از این مورد ، به اینجا مراجعه نمایید 
مطالب
دریافت خطای database is not accessible و نحوه‌ی رفع مشکل

ممکن است هنگام تلاش جهت اتصال به دیتابیس اس کیوال سرور 2005 به بعد از طریق management studio با پیغام خطای زیر مواجه شوید:
The database XYZ is not accessible. (ObjectExplorer)

و یا اگر بر روی همین دیتابیس کلیک راست کرده و به خواص آن مراجعه کنیم، خطای 952 زیر صادر شود:

Database 'XYZ' is in transition. Try the statement later. (Microsoft SQL Server, Error: 952)

اصلا نگران نباشید؛ هیچ مشکلی نیست!
ابتدا رویه‌ی ذخیره شده‌ی sp_who2 را اجرا کنید. یک لیست از کانکشن‌های باز به دیتابیس‌های موجود را به شما خواهد داد.
در این لیست به دنبال کانکشن‌های موجود به دیتابیسی که این خطا را می‌دهد بگردید. Pid این کانکشن‌ها را یافته و سپس با دستور kill pid آن‌ها را از بین ببرید. مشکل حل خواهد شد.
عموما نبستن خود management studio سبب این مشکل می‌شود. بنابراین حتی یکبار باز و بسته کردن آن نیز باید این مشکل را برطرف کند (یا تمام management studio های متصل، که البته راه ساده‌تر همان kill کردن pid آن‌ها است).

مطالب
ELMAH 1.1

نگارش جدید ELMAH ارائه شده است. این نگارش کاملا با نگارش قبلی سازگار بوده و تنها بازنویسی فایل dll آن با نگارش جدید کفایت می‌کند.

لیست موارد فیکس شده
- System.Data.SQLite.dll causes image problems on 64-bit IIS/ASP.NET
- Incorrect jscript filter sample

لیست تازه‌های آن
- Ability to set mail priority in errorMail config section
- Allow configuration-based filtering rules to be diffrent for e-mail and log
- Adjust behavior of smtpPort attribute in
- Remove the XML declaration from the string returned by ErrorXml.EncodeString


دریافت از گوگل کد و یا دریافت از رپید شیر (سورس +‌ بایناری)