#SQLServer
#C#
#ASP.NET
#User_Defined_Table_Types
#TVP
#Table_Valued_Parameter
فرض کنید که شما توی برنامه تون درقسمت جستجو محصولات از یک استور پروسیجر استفاده میکنید که نیاز دارین یک بازه ای از قیمت(رکورد هایی از fromPrice ,toPrice) به ورودی اش اضافه کنید که بتونید تو بدنه استور پروسیجر فیلتر بازه قیمت را اعمال کنید . حالا شما باید این بازه قیمت را بصورت دیتا تیبل به متغیر های ورودی استور پروسیجر اضافه کنید .
در نظر داشته باشید که برای اینکه دیتا بیس بفهمه چه نوع دیتا تیبلی داریم بهش پاس میدیم باید ساختارش را تعریف کنیم.به این صورت که یه new query در sql server باز میکنیم و در دیتا بیس مورد نظر این ساختار رو بصورت زیر تعریف میکنیم :
بعد از اجرای کد بالا در مسیرprogrammability/Types/User-Defined Table Types ذخیره میشود .درواقع شما الان یک user-defined table type تعریف کردید.
حالا میتونید این نوع دیتا تیبل را به استورپروسیجر مورد نظر اضافه کرد . مثل نمونه کد زیر :
حال فقط کافیست زمانی که تو برنامه میخوایید از این استور پروسیجر استفاده کنید بازه قیمت را بصورت دیتا تیبل با همین ساختار پاس بدهید
@ArmanAbi
#C#
#ASP.NET
#User_Defined_Table_Types
#TVP
#Table_Valued_Parameter
فرض کنید که شما توی برنامه تون درقسمت جستجو محصولات از یک استور پروسیجر استفاده میکنید که نیاز دارین یک بازه ای از قیمت(رکورد هایی از fromPrice ,toPrice) به ورودی اش اضافه کنید که بتونید تو بدنه استور پروسیجر فیلتر بازه قیمت را اعمال کنید . حالا شما باید این بازه قیمت را بصورت دیتا تیبل به متغیر های ورودی استور پروسیجر اضافه کنید .
در نظر داشته باشید که برای اینکه دیتا بیس بفهمه چه نوع دیتا تیبلی داریم بهش پاس میدیم باید ساختارش را تعریف کنیم.به این صورت که یه new query در sql server باز میکنیم و در دیتا بیس مورد نظر این ساختار رو بصورت زیر تعریف میکنیم :
CREATE TYPE [dbo].[PriceRanges] AS TABLE(
[PriceMin] [decimal](18, 4) NULL,
[PriceMax] [decimal](18, 4) NULL
)
GO
بعد از اجرای کد بالا در مسیرprogrammability/Types/User-Defined Table Types ذخیره میشود .درواقع شما الان یک user-defined table type تعریف کردید.
حالا میتونید این نوع دیتا تیبل را به استورپروسیجر مورد نظر اضافه کرد . مثل نمونه کد زیر :
CREATE PROCEDURE [dbo].[SearchProduct]
(
@CategoryIds nvarchar(MAX) = null,
@SectionIds nvarchar(MAX) = null,
@ManufacturerId int = 0,
@PriceRangeList dbo.PriceRanges READONLY
)
AS
BEGIN
/* another code */
IF EXISTS (SELECT 1 FROM @PriceRangeList)
BEGIN
...
END
END
GO
حال فقط کافیست زمانی که تو برنامه میخوایید از این استور پروسیجر استفاده کنید بازه قیمت را بصورت دیتا تیبل با همین ساختار پاس بدهید
@ArmanAbi
#Fast_Member
#Reflection
در خیلی از مواقع در C# شما نیاز دارید که از reflection استفاده کنید، استفاده از reflection علاوه بر اینکه بسیار کند هست نیاز به نوشتن کد زیادی دارد. برای سرعت بیشتر و راحتی میتوان از Library FastMember استفاده کرد و برای دسترسی به یک property های یک object در زمان run time از روش زیر استفاده کرد:
// obj could be static or DLR
var wrapped = ObjectAccessor.Create(obj);
string propName = // something known only at runtime
Console.WriteLine(wrapped[propName]);
این کتابخانه توسط marc gravell که یکی از معروفترین برنامه نویسان سایت stackoverflow هست نوشته شده.
https://github.com/mgravell/fast-member
@ArmanAbi
#Reflection
در خیلی از مواقع در C# شما نیاز دارید که از reflection استفاده کنید، استفاده از reflection علاوه بر اینکه بسیار کند هست نیاز به نوشتن کد زیادی دارد. برای سرعت بیشتر و راحتی میتوان از Library FastMember استفاده کرد و برای دسترسی به یک property های یک object در زمان run time از روش زیر استفاده کرد:
// obj could be static or DLR
var wrapped = ObjectAccessor.Create(obj);
string propName = // something known only at runtime
Console.WriteLine(wrapped[propName]);
این کتابخانه توسط marc gravell که یکی از معروفترین برنامه نویسان سایت stackoverflow هست نوشته شده.
https://github.com/mgravell/fast-member
@ArmanAbi
GitHub
GitHub - mgravell/fast-member: Automatically exported from code.google.com/p/fast-member
Automatically exported from code.google.com/p/fast-member - mgravell/fast-member
#AlwaysOn
#SqlServer
درباره AlwaysOn چیست؟
در واقع Alwayson همکاری بین سرویس Windows server failover cluster- WSFC از ویندوز و Alwayson در اس کیو ال هستش. روش کار به طور خلاصه بدین صورت هست که ما چند تا سرور که اس کیو ال روی اونها نصب هستش رو به عنوان یک گروه Cluster معرفی می کنیم. به ابن منظور که اگر یکی از این سرورها Down شد یکی دیگه جایگزینش باشه.نکته ای هم که وجود داره، این سرورها با هم Sync هستند .
به طور خلاصه AlwaysOn باعث میشود تا دیتابیس شما همیشه آماده سرویس دهی باشد. حتی در مواقعی که سرور اصلی شما خاموش شود!!! یا هر نوع مشکل سخت افزاری یا نرم افزاری برای سرور دیتابیس اتفاق بیافتد یا سرور دیتابیس Crash کند.
توی برنامه هم کاربرها واسه Connection String فقط یه IP یا اسم set می کنن که در اصطلاح بهش میگیم Listener و این شنونده یا Listener با ارتباطی که با گروه Cluster داره میفهمه که در لحظه کدوم یکی از سرورها فعاله و Request رو میفرسته سراغ سرور فعال.
در Alwayson همه Instance هایی که در یک کلاستر یا گروه هستند با هم سینک هستند.البته نکته ای که وجود داره در زمان راه اندازی این امکان وجود داره که تنظیم کنیم نوع همزمان سازی به صورت Sync یا Async انجام بشه که معمولا Instnce که به صورت Async همگام میشه برای گزارشات مورد استفاده قرار میگیره.
تراکنش ها روی هر Instance که نقش Primary رو داره به طور کامل اجرا میشه و نتایج اون روی سایر Replicat ها توزیع میشه. بنابراین در زمینه کاهش ترافیک ترانزکت ها تأثیری نداره!
هدف اصلی Alwayson تأمین High Availability برای دیتابیس هست. به این معنا که همیشه دیتابیس ما در دسترس باشه و کلا Data Lost یا قطعی در سرویس دهی برنامه مون رو به دلیل قطعی ارتباط دیتابیس نداشته باشیم
به علاوه شما در Alwayson میتونین با هدایت گزارش گیری برنامه به سمت سرور دوم نوعی load balancing هم داشته باشیم.
@ArmanAbi
#SqlServer
درباره AlwaysOn چیست؟
در واقع Alwayson همکاری بین سرویس Windows server failover cluster- WSFC از ویندوز و Alwayson در اس کیو ال هستش. روش کار به طور خلاصه بدین صورت هست که ما چند تا سرور که اس کیو ال روی اونها نصب هستش رو به عنوان یک گروه Cluster معرفی می کنیم. به ابن منظور که اگر یکی از این سرورها Down شد یکی دیگه جایگزینش باشه.نکته ای هم که وجود داره، این سرورها با هم Sync هستند .
به طور خلاصه AlwaysOn باعث میشود تا دیتابیس شما همیشه آماده سرویس دهی باشد. حتی در مواقعی که سرور اصلی شما خاموش شود!!! یا هر نوع مشکل سخت افزاری یا نرم افزاری برای سرور دیتابیس اتفاق بیافتد یا سرور دیتابیس Crash کند.
توی برنامه هم کاربرها واسه Connection String فقط یه IP یا اسم set می کنن که در اصطلاح بهش میگیم Listener و این شنونده یا Listener با ارتباطی که با گروه Cluster داره میفهمه که در لحظه کدوم یکی از سرورها فعاله و Request رو میفرسته سراغ سرور فعال.
در Alwayson همه Instance هایی که در یک کلاستر یا گروه هستند با هم سینک هستند.البته نکته ای که وجود داره در زمان راه اندازی این امکان وجود داره که تنظیم کنیم نوع همزمان سازی به صورت Sync یا Async انجام بشه که معمولا Instnce که به صورت Async همگام میشه برای گزارشات مورد استفاده قرار میگیره.
تراکنش ها روی هر Instance که نقش Primary رو داره به طور کامل اجرا میشه و نتایج اون روی سایر Replicat ها توزیع میشه. بنابراین در زمینه کاهش ترافیک ترانزکت ها تأثیری نداره!
هدف اصلی Alwayson تأمین High Availability برای دیتابیس هست. به این معنا که همیشه دیتابیس ما در دسترس باشه و کلا Data Lost یا قطعی در سرویس دهی برنامه مون رو به دلیل قطعی ارتباط دیتابیس نداشته باشیم
به علاوه شما در Alwayson میتونین با هدایت گزارش گیری برنامه به سمت سرور دوم نوعی load balancing هم داشته باشیم.
@ArmanAbi
#WCF
#WebAPI
#WebService
تکنولوژی WCF به طور کلی Protocol Agnostic هست و به پروتکل انتقال وابستگی نداره. از لحاظ لایه های OSI بر روی لایه Transport کار می کنه. یعنی می تونه روی لایه های TCP و UDP کار کنه و تبادل اطلاعات کنه و طبیعتا به خاطر همین موضوع رو HTTP هم کار می تونه کار می کنه.
این اولین تکنولوژی پیاده سازی شده مایکروسافت برای ارائه معماری SOA یا سرویس محور بود. روش قدیمی ایی هست که بر اساس پروتکل SOAP کار می کنه.
مهم ترین مزیت WCF عدم وابستگی اش به HTTP هست. که در جهان امروز و وجود سیستم عامل هایی که HTTP رو ساپورت می کنن، باعث میشه این خیلی هم مزیت خاصی نباشه.
اما حقیقتا دنیای امروز به چه سمتی حرکت می کنه؟ سایت ها و سرویس دهنده های بزرگ چطور سرویس هاشون رو ارائه می دن؟ همه مطلقا بر روی شبکه جهانی اینترنت کار می کنن و به صورت REST و بر روی HTTP و با JSON داده ها رو منتقل می کنن. جهان به این سمت داره حرکت می کنه. سمتی که در دنیای دات نت نماینده اش WebAPI هست.
زمانی که WCF طراحی شد، دنیای متفاوت تری داشتیم با امروز. به عقیده من با توجه به دنیای امروز مون، WebAPI برای 99 درصد موارد بهتری هست و اصولا یه توسعه دهنده دیگه شاید نیازی به یادگیری WCF نداشته باشه
https://docs.microsoft.com/en-us/dotnet/framework/wcf/wcf-and-aspnet-web-api
@ArmanAbi
#WebAPI
#WebService
تکنولوژی WCF به طور کلی Protocol Agnostic هست و به پروتکل انتقال وابستگی نداره. از لحاظ لایه های OSI بر روی لایه Transport کار می کنه. یعنی می تونه روی لایه های TCP و UDP کار کنه و تبادل اطلاعات کنه و طبیعتا به خاطر همین موضوع رو HTTP هم کار می تونه کار می کنه.
این اولین تکنولوژی پیاده سازی شده مایکروسافت برای ارائه معماری SOA یا سرویس محور بود. روش قدیمی ایی هست که بر اساس پروتکل SOAP کار می کنه.
مهم ترین مزیت WCF عدم وابستگی اش به HTTP هست. که در جهان امروز و وجود سیستم عامل هایی که HTTP رو ساپورت می کنن، باعث میشه این خیلی هم مزیت خاصی نباشه.
اما حقیقتا دنیای امروز به چه سمتی حرکت می کنه؟ سایت ها و سرویس دهنده های بزرگ چطور سرویس هاشون رو ارائه می دن؟ همه مطلقا بر روی شبکه جهانی اینترنت کار می کنن و به صورت REST و بر روی HTTP و با JSON داده ها رو منتقل می کنن. جهان به این سمت داره حرکت می کنه. سمتی که در دنیای دات نت نماینده اش WebAPI هست.
زمانی که WCF طراحی شد، دنیای متفاوت تری داشتیم با امروز. به عقیده من با توجه به دنیای امروز مون، WebAPI برای 99 درصد موارد بهتری هست و اصولا یه توسعه دهنده دیگه شاید نیازی به یادگیری WCF نداشته باشه
https://docs.microsoft.com/en-us/dotnet/framework/wcf/wcf-and-aspnet-web-api
@ArmanAbi
Docs
WCF and ASP.NET Web API - WCF
Learn whether WCF or the ASP.NET Web API is better suited to your needs by comparing the major features of each technology.
#Razor
#Compare
#AngularJs
ببینید مقایسه ی انگولار با Razor مقایسه درستی نیست، انگولار یک فریم ورک کلاینت سایدی هست و razor یک ویو انجین برای MVC. اما بله شما بدون انگولار هم میتوانید برنامه تان را توسعه دهید و اتفاقا به نظر من مثلا برای نوشتن یک وب سایت معمولی استفاده از انگولار معقولانه نیست. اما انگولار با در اختیار گذاشتن برخی قابلیت ها توسعه ی راحت تر رو براتون امکان پذیر میکنه و کاربرد خودش رو داره. به خصوص برای نوشتن SPA ها خیلی مفیده.
@ArmanAbi
#Compare
#AngularJs
ببینید مقایسه ی انگولار با Razor مقایسه درستی نیست، انگولار یک فریم ورک کلاینت سایدی هست و razor یک ویو انجین برای MVC. اما بله شما بدون انگولار هم میتوانید برنامه تان را توسعه دهید و اتفاقا به نظر من مثلا برای نوشتن یک وب سایت معمولی استفاده از انگولار معقولانه نیست. اما انگولار با در اختیار گذاشتن برخی قابلیت ها توسعه ی راحت تر رو براتون امکان پذیر میکنه و کاربرد خودش رو داره. به خصوص برای نوشتن SPA ها خیلی مفیده.
@ArmanAbi
#ICollection - #IEnumarable - #IList - #DynamicProxy #LazyLoading - #NavigationProperty - #EF - #DistributedCache #Poco - #ChangeTracking
درباره Dynamic Proxy یا Lazy Loading
قطعا یکی از مهمترین نکات در استفاده از ORM ها و بهبود عملکرد ORM ها برای هرگونه نگاشت یا ارتباط با پایگاه داده استفاده ی ORM از Dynamic Proxy ها است.
داینامیک پراکسی ها به طور گسترده و توسعه یافته درORM اختصاصی شرکت اوراکل برای جاوا یا همان هایبرنت (در انگلیسیHibernate) استفاده شد ، بعد ها مایکروسافت به دلیل پرکاربرد بودن Dynamic Proxy ها تصمیم به ورود آن ها در C# و هسته دات نت کرد ، و پس از استفاده موفق و گرفتن فید بک های مثبت از توسعه دهنگان تصمیم به استفاده از Dynamic Proxy در EF کرد (البته مایکروسافت در ADO.NET از POCO Proxy استفاده کرده بود که بی شباهت به Dynamic Proxy ها نبود) ولی به هر صورت داینامیک پراکسی ها به EF اضافه شدند ، شاید برای شما هم سوال پیش آمده باشد که چرا مایکروسافت در نمونه های استاندارد خود در MSDN و Blog سایت Aspnet از اینترفیس ICollection برای ایجاد ارتباطات Many-To-Many و One-To-Many استفاده کرده است ، اگر بخواهید از Dynamic Proxy ها در EF استفاده کنید ملزم به رعایت چند نکته خواهید بود :
1 - استفاده از کلاس های Public و عدم استفاده از کلاس های Static و Sealed
2- استفاده از Property های دارای Get , Set با پیشوند Virtual (عدم استفاده از پراپرتی های Read&Write Only)
3 - استفاده از ICollection برای Navigation Properties در کلاس ( حتما باید از این Interface استفاده شود)
استفاده از Dynamic Proxy ها اگر چه فواید زیادی دارند ، ولی در بسیاری از موارد کارایی سیستم را نیز کم خواهند کرد ، (به عنوان مثال در استفاده از Distributed Caching در EF ، که خود این مبحث کاربرد فراوان ازجمله (بالا بردن پرفورمنس EF و قابلیت اطمینان و...) را دارند.
استفاده از Dynamic Proxy ها بیشتر در Lazy Loading و Chnage Tracking کاربرد دارند.
ولی به هرسو اگر نیاز به استفاده از Dynamic Proxy ها دارید نباید در Navigation Property های روابط در EF از List<> برای ایجاد کالکشن استفاده کنید و باید این کار را با ICollection انجام دهید.برای عدم استفاده از Dynamic Proxy ها نیز باید از با دستور زیر اقدام به غیر فعال سازی این ویژگی کنید.
Configuration.ProxyCreationEnabled = false;
در آخر ذکر این نکته ضروری به نظر میرسد که استفاده از Dynamic Proxy ها برای استفاده از LazyLoading ضروری است اگر چه میتوان به صورت دستی Lazy Loading رو فعال کرد.
@ArmanAbi
درباره Dynamic Proxy یا Lazy Loading
قطعا یکی از مهمترین نکات در استفاده از ORM ها و بهبود عملکرد ORM ها برای هرگونه نگاشت یا ارتباط با پایگاه داده استفاده ی ORM از Dynamic Proxy ها است.
داینامیک پراکسی ها به طور گسترده و توسعه یافته درORM اختصاصی شرکت اوراکل برای جاوا یا همان هایبرنت (در انگلیسیHibernate) استفاده شد ، بعد ها مایکروسافت به دلیل پرکاربرد بودن Dynamic Proxy ها تصمیم به ورود آن ها در C# و هسته دات نت کرد ، و پس از استفاده موفق و گرفتن فید بک های مثبت از توسعه دهنگان تصمیم به استفاده از Dynamic Proxy در EF کرد (البته مایکروسافت در ADO.NET از POCO Proxy استفاده کرده بود که بی شباهت به Dynamic Proxy ها نبود) ولی به هر صورت داینامیک پراکسی ها به EF اضافه شدند ، شاید برای شما هم سوال پیش آمده باشد که چرا مایکروسافت در نمونه های استاندارد خود در MSDN و Blog سایت Aspnet از اینترفیس ICollection برای ایجاد ارتباطات Many-To-Many و One-To-Many استفاده کرده است ، اگر بخواهید از Dynamic Proxy ها در EF استفاده کنید ملزم به رعایت چند نکته خواهید بود :
1 - استفاده از کلاس های Public و عدم استفاده از کلاس های Static و Sealed
2- استفاده از Property های دارای Get , Set با پیشوند Virtual (عدم استفاده از پراپرتی های Read&Write Only)
3 - استفاده از ICollection برای Navigation Properties در کلاس ( حتما باید از این Interface استفاده شود)
استفاده از Dynamic Proxy ها اگر چه فواید زیادی دارند ، ولی در بسیاری از موارد کارایی سیستم را نیز کم خواهند کرد ، (به عنوان مثال در استفاده از Distributed Caching در EF ، که خود این مبحث کاربرد فراوان ازجمله (بالا بردن پرفورمنس EF و قابلیت اطمینان و...) را دارند.
استفاده از Dynamic Proxy ها بیشتر در Lazy Loading و Chnage Tracking کاربرد دارند.
ولی به هرسو اگر نیاز به استفاده از Dynamic Proxy ها دارید نباید در Navigation Property های روابط در EF از List<> برای ایجاد کالکشن استفاده کنید و باید این کار را با ICollection انجام دهید.برای عدم استفاده از Dynamic Proxy ها نیز باید از با دستور زیر اقدام به غیر فعال سازی این ویژگی کنید.
Configuration.ProxyCreationEnabled = false;
در آخر ذکر این نکته ضروری به نظر میرسد که استفاده از Dynamic Proxy ها برای استفاده از LazyLoading ضروری است اگر چه میتوان به صورت دستی Lazy Loading رو فعال کرد.
@ArmanAbi
#EntityFramework, #Repostiry, #UnitOfWork
فایده الگوی Repository (مخزن) جدا سازی لایه ی منطق (Bl) توی پروژه است. یعنی اینکه منطق پروژتون وابسته به ORM یا روش خاصی نیست و توی ریپوسیتوری میتونین اون رو تغییر بدین و توی کل پروژه هم تاثیری نگذاره
فایده الگوی UnitOfWork (واحد کار) جدا سازی Context پروژه است. یعنی ایکه دیگه مثلا حتما الزامی به استفاده از dbContext EF توی پروژه نیست و هروقت خواستین میتونین context رو توی IUnitOfWork عوض کنین و توی پروژه هم تاثیری نگذاره
این که توی پروژه ای که EF استفاده میکنیم، الگوی Repistory یا UnitOfWork رو استفاده بکنیم یا نه. همیشه بین علما اختلاف نظر بوده و هست. و البته بیشتر بر میگرده به نیاز های سیستم تون در آینده...
اطلاعات بیشتر
http://www.thereformedprogrammer.net/is-the-repository-pattern-useful-with-entity-framework/
@ArmanAbi
فایده الگوی Repository (مخزن) جدا سازی لایه ی منطق (Bl) توی پروژه است. یعنی اینکه منطق پروژتون وابسته به ORM یا روش خاصی نیست و توی ریپوسیتوری میتونین اون رو تغییر بدین و توی کل پروژه هم تاثیری نگذاره
فایده الگوی UnitOfWork (واحد کار) جدا سازی Context پروژه است. یعنی ایکه دیگه مثلا حتما الزامی به استفاده از dbContext EF توی پروژه نیست و هروقت خواستین میتونین context رو توی IUnitOfWork عوض کنین و توی پروژه هم تاثیری نگذاره
این که توی پروژه ای که EF استفاده میکنیم، الگوی Repistory یا UnitOfWork رو استفاده بکنیم یا نه. همیشه بین علما اختلاف نظر بوده و هست. و البته بیشتر بر میگرده به نیاز های سیستم تون در آینده...
اطلاعات بیشتر
http://www.thereformedprogrammer.net/is-the-repository-pattern-useful-with-entity-framework/
@ArmanAbi
@ArmanAbi
انصراف میلیاردی از دانشگاه؛ فرمولی طلایی یا افسانه ای خیالی؟(بیل گیتس٬ مارک زاکربرگ)
انصراف از تحصیلات دانشگاهی ویژگی مشترک دو تن از مشهورترین و بزرگترین میلیاردهای حال حاضر دنیاست. جالب اینجاست که هم مارک زاکربرگ به عنوان بنیان گذار فیسبوک و هم بیل گیتس به عنوان بنیان گذار مایکروسافت ادامه تحصیل در یکی از معتبرترین دانشگاه های دنیا، یعنی هاروارد، را رها کرده اند. آیا واقعاً درس و دانشگاه ما از میلیاردر شدن باز می دارد؟
هردوی این افراد مشهور و اشخاص موفق مشابه این دو، همواره از رها کردن دانشگاه به عنوان بهترین تصمیم زندگی خود یاد می کنند، اما سوال اصلی اینجاست که این راهکار تا چه حد می تواند عمومیت داشته باشد؟
واقعیت اینجاست که بررسی های آماری متعدد نشان می دهند که افرادی مانند زاکربرگ و گیتس در اقلیت مطلق قرار دارند. به بیان دیگر، اکثریت قریب به اتفاق افراد موفق در جامعه ای مثل آمریکا دارای مدارک بالای دانشگاهی هستند.
جالب است بدانید که بر اساس بررسی آماری دقیقی که توسط نشریه «businessinsider» انجام گرفته، از میان ۱۱۷۴۵ نفر از موفق ترین افراد جامعه (چه از لحاظ مالی و چه موقعیت های اجتماعی یا سیاسی) ۹۴ درصد آنها با پایان تحصیلات تکمیلی به موفقیت دست پیدا کرده اند. حدود ۵۰ درصد این افراد نیز تحصیلات دانشگاهی خود را در بهترین و معتبرترین کالج های این کشور گذرانده اند. لازم به ذکر است که نسبت مذکور در فهرست «قدرتمندترین آمریکایی های» مجله فوربس به حدود ۸۰ درصد می رسد.
همه این ها در حالی است که تعداد افراد موفقی که تحصیلات در کالج های معتبر را نیمه کاره رها کرده اند چیزی مابین ۲ تا ۵ درصد برآورد شده است. به عبارت دیگر، کسانی مثل زاکربرگ و گیتس استثناهایی واقعی به شمار می روند.
پرواضح است که نمی توان یک راهکار یکسان جهت موفقیت را به تمام افراد توصیه کرد. استعدادها، توانایی ها و خصوصیات فردی هرکس مختص اوست. پس همان گونه که انصراف از تحصیلات عالیه به هیچ وجه به عنوان راهکار موفقیت توصیه نمی شود، رفتن به بهترین دانشگاه ها نیز هرگز به معنی رسیدن به بهترین موقعیت های مالی و اجتماعی نیست.
با این همه، مطالعه زندگی تعداد زیادی از افراد موفق نشان می دهد که برای بسیاری مسیر موفقیت از میان راهروهای دانشگاه می گذرد. به یاد داشته باشیم که حتی گیتس و زاکربرگ هم گرچه در نهایت از دانشگاه انصراف دادند، اما دست کم در ابتدا به سراغ تحصیلات تکمیلی رفته اند.
منبع: http://digiato.com/article/2017/04/21/انصراف-میلیاردی-از-دانشگاه؛-فرمولی-طل/
@ArmanAbi
انصراف میلیاردی از دانشگاه؛ فرمولی طلایی یا افسانه ای خیالی؟(بیل گیتس٬ مارک زاکربرگ)
انصراف از تحصیلات دانشگاهی ویژگی مشترک دو تن از مشهورترین و بزرگترین میلیاردهای حال حاضر دنیاست. جالب اینجاست که هم مارک زاکربرگ به عنوان بنیان گذار فیسبوک و هم بیل گیتس به عنوان بنیان گذار مایکروسافت ادامه تحصیل در یکی از معتبرترین دانشگاه های دنیا، یعنی هاروارد، را رها کرده اند. آیا واقعاً درس و دانشگاه ما از میلیاردر شدن باز می دارد؟
هردوی این افراد مشهور و اشخاص موفق مشابه این دو، همواره از رها کردن دانشگاه به عنوان بهترین تصمیم زندگی خود یاد می کنند، اما سوال اصلی اینجاست که این راهکار تا چه حد می تواند عمومیت داشته باشد؟
واقعیت اینجاست که بررسی های آماری متعدد نشان می دهند که افرادی مانند زاکربرگ و گیتس در اقلیت مطلق قرار دارند. به بیان دیگر، اکثریت قریب به اتفاق افراد موفق در جامعه ای مثل آمریکا دارای مدارک بالای دانشگاهی هستند.
جالب است بدانید که بر اساس بررسی آماری دقیقی که توسط نشریه «businessinsider» انجام گرفته، از میان ۱۱۷۴۵ نفر از موفق ترین افراد جامعه (چه از لحاظ مالی و چه موقعیت های اجتماعی یا سیاسی) ۹۴ درصد آنها با پایان تحصیلات تکمیلی به موفقیت دست پیدا کرده اند. حدود ۵۰ درصد این افراد نیز تحصیلات دانشگاهی خود را در بهترین و معتبرترین کالج های این کشور گذرانده اند. لازم به ذکر است که نسبت مذکور در فهرست «قدرتمندترین آمریکایی های» مجله فوربس به حدود ۸۰ درصد می رسد.
همه این ها در حالی است که تعداد افراد موفقی که تحصیلات در کالج های معتبر را نیمه کاره رها کرده اند چیزی مابین ۲ تا ۵ درصد برآورد شده است. به عبارت دیگر، کسانی مثل زاکربرگ و گیتس استثناهایی واقعی به شمار می روند.
پرواضح است که نمی توان یک راهکار یکسان جهت موفقیت را به تمام افراد توصیه کرد. استعدادها، توانایی ها و خصوصیات فردی هرکس مختص اوست. پس همان گونه که انصراف از تحصیلات عالیه به هیچ وجه به عنوان راهکار موفقیت توصیه نمی شود، رفتن به بهترین دانشگاه ها نیز هرگز به معنی رسیدن به بهترین موقعیت های مالی و اجتماعی نیست.
با این همه، مطالعه زندگی تعداد زیادی از افراد موفق نشان می دهد که برای بسیاری مسیر موفقیت از میان راهروهای دانشگاه می گذرد. به یاد داشته باشیم که حتی گیتس و زاکربرگ هم گرچه در نهایت از دانشگاه انصراف دادند، اما دست کم در ابتدا به سراغ تحصیلات تکمیلی رفته اند.
منبع: http://digiato.com/article/2017/04/21/انصراف-میلیاردی-از-دانشگاه؛-فرمولی-طل/
@ArmanAbi
دیجیاتو
انصراف میلیاردی از دانشگاه؛ فرمولی طلایی یا افسانه ای خیالی؟
انصراف از تحصیلات دانشگاهی ویژگی مشترک دو تن از مشهورترین و بزرگترین میلیاردهای حال حاضر دنیاست. جالب اینجاست که هم مارک زاکربرگ به عنوان بنیان گذار
@ArmanAbi
یکی از بهترین و کامل ترین کتابخانه ها جهت کار با GoogleMap که کار با اون رو راحت تر میکنه
https://hpneo.github.io/gmaps/
توسط این میتونین این کاری که میخواین رو میتونین انجام بدین
مثال : تبدیل لیستی از مخصات به marker روی نقشه
https://hpneo.github.io/gmaps/examples/markers.html
مثال : تبدیل لیستی از مختصات به مسیر
https://hpneo.github.io/gmaps/examples/polylines.html
مثال : تبدیل لیستی از مختصات به محوطه
https://hpneo.github.io/gmaps/examples/polygon.html
@ArmanAbi
یکی از بهترین و کامل ترین کتابخانه ها جهت کار با GoogleMap که کار با اون رو راحت تر میکنه
https://hpneo.github.io/gmaps/
توسط این میتونین این کاری که میخواین رو میتونین انجام بدین
مثال : تبدیل لیستی از مخصات به marker روی نقشه
https://hpneo.github.io/gmaps/examples/markers.html
مثال : تبدیل لیستی از مختصات به مسیر
https://hpneo.github.io/gmaps/examples/polylines.html
مثال : تبدیل لیستی از مختصات به محوطه
https://hpneo.github.io/gmaps/examples/polygon.html
@ArmanAbi
A_performance_analysis_of_WS_SOAP.pdf
702.6 KB
مقاله در مورد مقایسه restful و soap
@ArmanAbi
ثبت خطاهای Client Side، یکی از مشکلاتی است که در برنامه های مدرن مبتنی بر وب ایجاد می شود. این برنامه ها در قسمت های مربوط به Client Side به شدت و قوت و وفور از جاواسکریپت استفاده می کنند. این قسمت از کد هم در سمت کاربر و خارج از سرور های ما اجرا می گردد.
حال فرض کنید وب سایت پر زرق و برقِ سازمانی ما بر روی سیستم صد ها نفر از پرسنل سازمان در حال اجرا باشد. چطور می توانیم خطاها و باگ هایی که در کد های جاوا اسکریپت ما وجود دارد و کاربران در حین کار با آن ها مواجه می شوند را در جایی متمرکز ثبت کنیم و یا حتی گامی فراتر رفته و برای ثبت این خطا ها از Elmah استفاده نماییم؟
کتابخانه JSNLog دقیقا به همین منظور و پاسخ به همین نیاز طراحی شده است. این کتابخانه کم حجم را می توانید به راحتی به نرم افزار خود اضافه کنیم تا دیگر وقوع هیچ خطایی در Client Side از پیش شما پنهان نماند.
http://jsnlog.com
@ArmanAbi
ثبت خطاهای Client Side، یکی از مشکلاتی است که در برنامه های مدرن مبتنی بر وب ایجاد می شود. این برنامه ها در قسمت های مربوط به Client Side به شدت و قوت و وفور از جاواسکریپت استفاده می کنند. این قسمت از کد هم در سمت کاربر و خارج از سرور های ما اجرا می گردد.
حال فرض کنید وب سایت پر زرق و برقِ سازمانی ما بر روی سیستم صد ها نفر از پرسنل سازمان در حال اجرا باشد. چطور می توانیم خطاها و باگ هایی که در کد های جاوا اسکریپت ما وجود دارد و کاربران در حین کار با آن ها مواجه می شوند را در جایی متمرکز ثبت کنیم و یا حتی گامی فراتر رفته و برای ثبت این خطا ها از Elmah استفاده نماییم؟
کتابخانه JSNLog دقیقا به همین منظور و پاسخ به همین نیاز طراحی شده است. این کتابخانه کم حجم را می توانید به راحتی به نرم افزار خود اضافه کنیم تا دیگر وقوع هیچ خطایی در Client Side از پیش شما پنهان نماند.
http://jsnlog.com
@ArmanAbi
@ArmanAbi
سایت Stackoverflow یکی از مشهورترین پروژه هایی است که سوار بر پلتفرم مایکروسافت شده و از دات نت در توسعه اش استفاده شده است.
سرور های آن ها روزانه چیزی در حدود 210 میلیون درخواست را پاسخ می دهند.
آقای Nick Craver اخیرا سلسله مقالاتی را شروع کرده اند که در مورد معماری سخت افزاری، سرور ها، Load Balancer ها، نحوه استفاده از Cache و پایگاه داده و کتابخانه های استفاده شده در مجموعه سایت های Stack به تفکیک توضیح میدهد.
دنبال کردن این مقالات بسیار آموزنده خواهد بود و بیان این موضوعات فنی و طرح ساختار معماری سخت افزاری/نرم افزاری نشان می دهد که سازمان های خارجی تا چه حد تعهد اخلاقی برای پیشبرد و به اشتراک گذاری دانش شان با سایرین دارند.
همچنین در Trello می توانید سوالات خود و موضوعات پیشنهادی برای مطرح شدن در این مقالات را مطرح کنید.
1. قسمت اول مقاله: http://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/
2. پروژه trello:
https://trello.com/b/0zgQjktX/blog-post-queue-for-stack-overflow-topics
@ArmanAbi
سایت Stackoverflow یکی از مشهورترین پروژه هایی است که سوار بر پلتفرم مایکروسافت شده و از دات نت در توسعه اش استفاده شده است.
سرور های آن ها روزانه چیزی در حدود 210 میلیون درخواست را پاسخ می دهند.
آقای Nick Craver اخیرا سلسله مقالاتی را شروع کرده اند که در مورد معماری سخت افزاری، سرور ها، Load Balancer ها، نحوه استفاده از Cache و پایگاه داده و کتابخانه های استفاده شده در مجموعه سایت های Stack به تفکیک توضیح میدهد.
دنبال کردن این مقالات بسیار آموزنده خواهد بود و بیان این موضوعات فنی و طرح ساختار معماری سخت افزاری/نرم افزاری نشان می دهد که سازمان های خارجی تا چه حد تعهد اخلاقی برای پیشبرد و به اشتراک گذاری دانش شان با سایرین دارند.
همچنین در Trello می توانید سوالات خود و موضوعات پیشنهادی برای مطرح شدن در این مقالات را مطرح کنید.
1. قسمت اول مقاله: http://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/
2. پروژه trello:
https://trello.com/b/0zgQjktX/blog-post-queue-for-stack-overflow-topics
@ArmanAbi
Nickcraver
Nick Craver - Stack Overflow: The Architecture - 2016 Edition
This is #1 in a very long series of posts on Stack Overflow’s architecture. Welcome.Previous post (#0): Stack Overflow: A Technical DeconstructionNext post...
@ArmanAbi
#TSQL
#TempTable
#TableVariable
#CommonTableExpression
در SQLخیلی از مواقع نیاز هست که ما یک ساختار یا جدول موقت برای نگهداری رکورد ها داشته باشیم.
به عنوان مثال ممکنه در یک استور پروسیجر (SP) لازم باشه که رکوردهای یک جدول رو واکشی کنیم و در ابتدای SP نگهداری کنیم و در ادامه از این رکوردها برای عملیات Join و ... استفاده کنیم.
سه مدل برای نگهداری رکوردها به صورت موقت عبارتند از:
1- Temp Table
2-Table Variable
3-Common Table Expression (CTE)
در ادامه از هر کدام یک مثال ساده مطرح می کنیم:
CTE:
;With CTE1(Fname,Lname, Age)--Column names for CTE, which are optional
AS
(
SELECT Addr.Address, user.Name, user.Age from Address Addr
INNER JOIN User user ON user.ID = Addr.userID
)
SELECT * FROM CTE1 —Using CTE
WHERE CTE1.Lname Like '%احمدی%'
ORDER BY CTE1.NAME
Temp Table:
CREATE TABLE #LocalTemp
(
UserID int,
Name varchar(50),
Address varchar(150)
)
GO
insert into #LocalTemp values ( 1, 'testName','testAddress');
GO
Select * from #LocalTemp
Table Variable:
DECLARE @TProduct TABLE
(
No INT IDENTITY(1,1),
ProductId INT,
Qty INT
)
—Insert data to Table variable @Product
INSERT INTO @TProduct(ProductId,Qty)
SELECT DISTINCT ProductID, Qty FROM ProductsSales ORDER BY ProductID ASC
—Select data
Select * from @TProduct
هر کدام از سه ساختار معرفی شده، دارای مزایا و معایب خاص خود هستند.
مثلا Temp Table و Table Variable در Tempdb ایجاد می شوند در حالیکه CTE در حافظه ایجاد می شود.
دو ساختار Tem Table , Table Variable تفاوت های زیادی اط نظر ایجاد ایندکس، Statistics ,Scopet و .... دارند.
اگر کارایی کوئری برای شما اهمیت زیادی دارد. باید در انتخاب هر یک از این سه ساختار، متناسب با نیاز خود استفاده کنید
@ArmanAbi
#TSQL
#TempTable
#TableVariable
#CommonTableExpression
در SQLخیلی از مواقع نیاز هست که ما یک ساختار یا جدول موقت برای نگهداری رکورد ها داشته باشیم.
به عنوان مثال ممکنه در یک استور پروسیجر (SP) لازم باشه که رکوردهای یک جدول رو واکشی کنیم و در ابتدای SP نگهداری کنیم و در ادامه از این رکوردها برای عملیات Join و ... استفاده کنیم.
سه مدل برای نگهداری رکوردها به صورت موقت عبارتند از:
1- Temp Table
2-Table Variable
3-Common Table Expression (CTE)
در ادامه از هر کدام یک مثال ساده مطرح می کنیم:
CTE:
;With CTE1(Fname,Lname, Age)--Column names for CTE, which are optional
AS
(
SELECT Addr.Address, user.Name, user.Age from Address Addr
INNER JOIN User user ON user.ID = Addr.userID
)
SELECT * FROM CTE1 —Using CTE
WHERE CTE1.Lname Like '%احمدی%'
ORDER BY CTE1.NAME
Temp Table:
CREATE TABLE #LocalTemp
(
UserID int,
Name varchar(50),
Address varchar(150)
)
GO
insert into #LocalTemp values ( 1, 'testName','testAddress');
GO
Select * from #LocalTemp
Table Variable:
DECLARE @TProduct TABLE
(
No INT IDENTITY(1,1),
ProductId INT,
Qty INT
)
—Insert data to Table variable @Product
INSERT INTO @TProduct(ProductId,Qty)
SELECT DISTINCT ProductID, Qty FROM ProductsSales ORDER BY ProductID ASC
—Select data
Select * from @TProduct
هر کدام از سه ساختار معرفی شده، دارای مزایا و معایب خاص خود هستند.
مثلا Temp Table و Table Variable در Tempdb ایجاد می شوند در حالیکه CTE در حافظه ایجاد می شود.
دو ساختار Tem Table , Table Variable تفاوت های زیادی اط نظر ایجاد ایندکس، Statistics ,Scopet و .... دارند.
اگر کارایی کوئری برای شما اهمیت زیادی دارد. باید در انتخاب هر یک از این سه ساختار، متناسب با نیاز خود استفاده کنید
@ArmanAbi
Forwarded from 🛑 Iranian Experts 🛑
Media is too big
VIEW IN TELEGRAM
کتابخانه ی تاریخ شمسی برای پروژه های وب و مورد استفاده در جاوا اسکریپت به NuGet اضافه شد
این کتابخانه کامل ترین کتابخانه ی تاریخ شمسی در جاوا اسکریپت می باشد که از تاریخ 1/1/1 تا 30/12/9377 را پشتیبانی می کند
جهت نصب این دستور را در Package Manager Console تایپ کنید
Install-Package anyresolver.persiandate
https://www.nuget.org/packages/anyresolver.persiandate
@ArmanAbi
این کتابخانه کامل ترین کتابخانه ی تاریخ شمسی در جاوا اسکریپت می باشد که از تاریخ 1/1/1 تا 30/12/9377 را پشتیبانی می کند
جهت نصب این دستور را در Package Manager Console تایپ کنید
Install-Package anyresolver.persiandate
https://www.nuget.org/packages/anyresolver.persiandate
@ArmanAbi
www.nuget.org
anyresolver.persiandate 2.0.0
Complete persian date library for java script
#Frontend_Skill
#FrontEnd
#AngularJS
#TypeScript
فریم ورک انگولار (منظور 2 به بالا)
🔴#Angular2
چرا انگولار؟
1- جز پر طرفدار ترین نیاز بازار کار در ایران و دنیا
2- یادگیری آسان و ساده
بیشتر در
https://goo.gl/RN2XeC
چگونه انگولار را یاد بگیرم؟
راستش خودم آن را در خلال یک پروژه به تدریج یادگرفتم! که تجربه ای شیرین و لذت بخش بود. اما سعی کنید از همین الان با هدف ساخت نمونه کار خوب و قوی خود را وارد چالش یادگیری انگولار دو کنید. مثلا یک نسخه ساده از Gmail بسازید.
چه چیزهایی را باید یاد بگیرم؟
1- جاوااسکریپت
همان طور که در قسمت قبل گفتیم. آشنایی با ES6 کار شما را آسان تر می کند. البته کمی هم آشنایی با npm , webpack مفید خواهد بود.
#JavaScript
2- تایپ اسکریپت
زبانی است که هم انگولار را با آن توسعه داده اند و هم برای توسعه دهندگان پیشنهاد می شود که آن را یاد بگیرند. قول می دهم زمانی که با آن آشنا شوید عاشقش خواهید شد!
#Typecript
🌟http://www.dotnettips.info/learningpaths/details/40
3- انگولار
زمانی که مهارت های حداقلی را در موارد بالا کسب کردید وقتش رسیده است که انگولار را یاد بگیرید. چون انگولار در حال تغییر است بهترین منبع آموزش سایت خودش است.
🌟https://angular.io/docs/ts/latest/guide/learning-angular.html
⭐️http://www.dotnettips.info/learningpaths/details/44
یا آموزش های ویدیویی لیندا و یودمی و ... :
http://git.ir/tag/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-angular-2/
#FrontEnd
#AngularJS
#TypeScript
فریم ورک انگولار (منظور 2 به بالا)
🔴#Angular2
چرا انگولار؟
1- جز پر طرفدار ترین نیاز بازار کار در ایران و دنیا
2- یادگیری آسان و ساده
بیشتر در
https://goo.gl/RN2XeC
چگونه انگولار را یاد بگیرم؟
راستش خودم آن را در خلال یک پروژه به تدریج یادگرفتم! که تجربه ای شیرین و لذت بخش بود. اما سعی کنید از همین الان با هدف ساخت نمونه کار خوب و قوی خود را وارد چالش یادگیری انگولار دو کنید. مثلا یک نسخه ساده از Gmail بسازید.
چه چیزهایی را باید یاد بگیرم؟
1- جاوااسکریپت
همان طور که در قسمت قبل گفتیم. آشنایی با ES6 کار شما را آسان تر می کند. البته کمی هم آشنایی با npm , webpack مفید خواهد بود.
#JavaScript
2- تایپ اسکریپت
زبانی است که هم انگولار را با آن توسعه داده اند و هم برای توسعه دهندگان پیشنهاد می شود که آن را یاد بگیرند. قول می دهم زمانی که با آن آشنا شوید عاشقش خواهید شد!
#Typecript
🌟http://www.dotnettips.info/learningpaths/details/40
3- انگولار
زمانی که مهارت های حداقلی را در موارد بالا کسب کردید وقتش رسیده است که انگولار را یاد بگیرید. چون انگولار در حال تغییر است بهترین منبع آموزش سایت خودش است.
🌟https://angular.io/docs/ts/latest/guide/learning-angular.html
⭐️http://www.dotnettips.info/learningpaths/details/44
یا آموزش های ویدیویی لیندا و یودمی و ... :
http://git.ir/tag/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-angular-2/
baboon
شروع کار با فریم ورک Angular 2
Angular 2 با شعار یک فریم ورک برای دسکتاپ و موبایل وارد رقابت با سایر فریم ورک ها و کتابخانه های جاوااسکریپتی شد. بررسی سریع فریم ورک انگولار 2