استفاده از Batch Insert و Batch Update در عملیات دیتابیسی نقش مهمی در Performance عملیات با تعداد سطر بالا دارد. هنگام استفاده از EntityFramework به صورت پیشفرض از این عملیات پشتیبانی نمیشود. پروژه EntityFramework.Extended یکی از پروژههایی است که این قابلیت را به EF اضافه میکند. این پروژه قابلیتهای زیر را به EF اضافه میکند:
- Batch Update and Delete
- Future Queries
- Query Result Cache
- Audit Log
https://github.com/loresoft/EntityFramework.Extended
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
- Batch Update and Delete
- Future Queries
- Query Result Cache
- Audit Log
https://github.com/loresoft/EntityFramework.Extended
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
GitHub
GitHub - zzzprojects/EntityFramework.Extended: Add-on feature for Entity Framework
Add-on feature for Entity Framework. Contribute to zzzprojects/EntityFramework.Extended development by creating an account on GitHub.
Forwarded from Software Philosophy
ضد الگو یا Anti Pattern «روحهای سرگردان» یکی از مواردی است که باعث دردسر در نرمافزارها میشود. این ضد الگو وقتی اتفاق میافتد که در کد، کلاسهای بیموردی که تقریبا هیچ مسئولیتی ندارند به وجود باید. به عبارتی بیش از حد مورد نیاز همه چیز abstract شده است. یکی شایعترین علتهای بروز این ضد الگو افرادی در پروژه هستند که دانش فرایندی بالا و دانش شیگرایی کم دارند. معمولا افرادی که یا در شیگرایی و Object Oriented جدید هستند و این دنیا برایشان خیلی جذاب است به شدت عاشق ساخت «کلاسهای روح سرگردان» میشوند! نبود نقش تخصصی معمار نرمافزار در تیم نیز یکی دیگر از دلایل این ضد الگو است.
https://sourcemaking.com/antipatterns/poltergeists
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://sourcemaking.com/antipatterns/poltergeists
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Sourcemaking
Design Patterns and Refactoring
Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi.
Forwarded from Software Philosophy
همیشه مبحث DateTime در زبانهای برنامهنویسی چالش برانگیز بودهاست. مخصوصا اگر پای Calendar های مختلف و TimeZone های متفاوت در میان باشد. یکی از کتابخانههای بسیار محبوب در Java، کتابخانه JodaTime میباشد که این مفاهیم را کامل پوشش دادهاست. در Java 8 مفهوم DataTime بطور کامل بازنویسی شدهاست است و طبق JSR-310 به JDK اضافه شدهاست. یکی از سوالاتی که برای خیلیها پیش آمده بود این بود که اگر JodaTime خوب و موفق بود، چرا خودش به JDK اضافه نشده. در پست زیر Stephen Colebourne که برنامه نویس اصلی هر دو پروژه بوده توضیح داده علت این طراحی مجدد چه بوده است.
https://blog.joda.org/2009/11/why-jsr-310-isn-joda-time_4941.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://blog.joda.org/2009/11/why-jsr-310-isn-joda-time_4941.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Forwarded from Iran .Net
همانطور که مطلع هستید نسخه نهایی SQL Server 2016 منتشر شده است و در صورتی که در برنامه Visual Studio Dev Essentials عضو باشید می توانید به طور رایگان نسخه ای معادل با نسخه Enterprise را دریافت کنید. به این نسخه Developer Edition گفته می شود.
یکی از قابلیت های جدید و جذاب این نسخه Temporal Table می باشد.
این قابلیت کمک می کند که تمامی تغییراتی که در داده های یک جدول حادث می شود، در جدولی جداگانه به نام History Table ذخیره شود. در این جدول همچنین زمانِ تغییرات و مدت زمانی که یک داده Valid بوده است به طور خودکار ضبط می شوند.
از این ویژگی می توانید به جهت Auditing و مانیتورینگ تغییرات استفاده کنید و یا به مدیران کمک کنیم که با تحلیل نحوه تغییرات داده ها در طول زمان تصمیم گیری های بهتری داشته باشند.
1. آشنایی با Temporal Tables
https://msdn.microsoft.com/en-us/library/dn935015.aspx
2. نگاهی دقیق تر و آشنایی با محدودیت ها
https://www.mssqltips.com/sqlservertip/3680/introduction-to-sql-server-2016-temporal-tables/
این ویژگی از لحاظ ماهوی به قابلیت Change Data Tracking یا CDC اشتراکاتی دارد. این قابلیت هم در پست های قبلی معرفی شده بود.
@irandotnet
یکی از قابلیت های جدید و جذاب این نسخه Temporal Table می باشد.
این قابلیت کمک می کند که تمامی تغییراتی که در داده های یک جدول حادث می شود، در جدولی جداگانه به نام History Table ذخیره شود. در این جدول همچنین زمانِ تغییرات و مدت زمانی که یک داده Valid بوده است به طور خودکار ضبط می شوند.
از این ویژگی می توانید به جهت Auditing و مانیتورینگ تغییرات استفاده کنید و یا به مدیران کمک کنیم که با تحلیل نحوه تغییرات داده ها در طول زمان تصمیم گیری های بهتری داشته باشند.
1. آشنایی با Temporal Tables
https://msdn.microsoft.com/en-us/library/dn935015.aspx
2. نگاهی دقیق تر و آشنایی با محدودیت ها
https://www.mssqltips.com/sqlservertip/3680/introduction-to-sql-server-2016-temporal-tables/
این ویژگی از لحاظ ماهوی به قابلیت Change Data Tracking یا CDC اشتراکاتی دارد. این قابلیت هم در پست های قبلی معرفی شده بود.
@irandotnet
MSSQLTips.com
Introduction to SQL Server Temporal Tables
Temporal tables is a new feature introduced with SQL Server 2016 and allow automatic history tracking of data in a table.
اگر با زبان Python کار میکنید، حتما اسم فریمورکهای Django, Flask و Pyramid را شنیدهاید و با آنها کار کردهاید. فریمورک Django معروفترین این فریمورکهاست و معمولا در پروژههای بزرگ از آن استفاده میشود. فریمورک Pyramid بسیار منعطف طراحی شده و از میتوان از آن در پروژههای کوچک به راحتی استفاده کرد. از طرفی از آن در پروژههای بزرگی مانند Dropbox استفاده شده. فریمورک Flask یک فریمورک خوشدست است که کمک میکند بتوان برنامههای کوچک را با آن بسیار سریع ساخت.
مقاله زیر این سه فریمورک را با جزئیات بیشتری مقایسه کردهاست.
https://www.airpair.com/python/posts/django-flask-pyramid
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر این سه فریمورک را با جزئیات بیشتری مقایسه کردهاست.
https://www.airpair.com/python/posts/django-flask-pyramid
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Software Philosophy
ضد الگو یا Anti Pattern «چکش طلایی» موردی است که در بسیاری از راهحلها دیده میشود. این ضد الگو از این ایده آمده است: «من یک چکش دارم، پس همه چیز برای من مثل یک میخ است»
وقتی از یک ابزار استفاده میکنیم به آن عادت میکنیم و سعی میکنیم از آن به بعد همه مسائل را با آن حل کنیم. مثلا این ایده که همه کارها را باید با دیتابیس انجام داد، یا هر پروژهای را باید با این زبان خاص نوشت. یکی از دلایل این ضد الگو موفقیتهای قبلی در استفاده از یک تکنولوژی است. البته این ضد الگو استثناهایی هم دارد. برای مثال ممکن است شرکت برنامهریزی بلند مدتی داشته باشد و در این برنامهریزی یک فریمورک نرمافزاری با یک معماری و تکنولوژی خاص خلق کرده باشد. در این صورت این این فریمورک طوری طراحی شده که بتواند یک طیف خاص از مسائل را با هزینه کمتر حل کند.
لینک زیر این ضد الگو را با جزئیات بیشتری توضیح دادهاست.
https://sourcemaking.com/antipatterns/golden-hammer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
وقتی از یک ابزار استفاده میکنیم به آن عادت میکنیم و سعی میکنیم از آن به بعد همه مسائل را با آن حل کنیم. مثلا این ایده که همه کارها را باید با دیتابیس انجام داد، یا هر پروژهای را باید با این زبان خاص نوشت. یکی از دلایل این ضد الگو موفقیتهای قبلی در استفاده از یک تکنولوژی است. البته این ضد الگو استثناهایی هم دارد. برای مثال ممکن است شرکت برنامهریزی بلند مدتی داشته باشد و در این برنامهریزی یک فریمورک نرمافزاری با یک معماری و تکنولوژی خاص خلق کرده باشد. در این صورت این این فریمورک طوری طراحی شده که بتواند یک طیف خاص از مسائل را با هزینه کمتر حل کند.
لینک زیر این ضد الگو را با جزئیات بیشتری توضیح دادهاست.
https://sourcemaking.com/antipatterns/golden-hammer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Sourcemaking
Design Patterns and Refactoring
Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi.
نوشتن برنامههای REPL یا Read-Evaluate-Print-Loop در زبانهای برنامهنویسی کار سادهای نیست. برای نوشتن این برنامهها نیاز به کتابخانهای است که بتواند یک string حاوی قطعه کدی از آن زبان (مثلا Java یا C#) را ترجمه و اجرا کند. معمولا در هر زبان برنامه نویسی کتابخانههایی وجود دارد که کمک میکنند بتوان رشتههای حاوی یک برنامه از همان زبان را ترجمه و اجرا کرد.
مقاله زیر نشان میدهد که چطور میتوان با استفاده از کامپایلر خود زبان C#، رشتههای حاوی کدهای سیشارپ یا csx را کامپایل و اجرا کرد و در نهایت یک برنامه REPL را فقط با چند خط نوشت.
https://blogs.msdn.microsoft.com/cdndevs/2015/12/01/adding-c-scripting-to-your-development-arsenal-part-1/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر نشان میدهد که چطور میتوان با استفاده از کامپایلر خود زبان C#، رشتههای حاوی کدهای سیشارپ یا csx را کامپایل و اجرا کرد و در نهایت یک برنامه REPL را فقط با چند خط نوشت.
https://blogs.msdn.microsoft.com/cdndevs/2015/12/01/adding-c-scripting-to-your-development-arsenal-part-1/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Software Philosophy
ساخت انیمیشن با JavaScript یکی از کارهای جذاب این روزهای دنیای وب است. بازی سه بعدی زیر که در وب اجرا میشود توسط کتابخانه ThreeJs نوشته شدهاست. کمی بازی کردن با آن به شما نشان میدهد که قدرت این کتابخانه چقدر بالاست. جالبی این بازی این است که نه تنها تمام سورس آن روی اینترنت است بلکه نویسنده آن نحوه نوشتن این بازی را کاملا در لینک زیر توضیح داده و شما با خواندن آن به راحتی میتوانید مجددا این بازی را خودتان بنویسید.
لینک خود بازی:
https://tympanus.net/Tutorials/TheAviator/
لینک توضیح سورس:
https://tympanus.net/codrops/2016/04/26/the-aviator-animating-basic-3d-scene-threejs/
https://tympanus.net/Tutorials/TheAviator/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
لینک خود بازی:
https://tympanus.net/Tutorials/TheAviator/
لینک توضیح سورس:
https://tympanus.net/codrops/2016/04/26/the-aviator-animating-basic-3d-scene-threejs/
https://tympanus.net/Tutorials/TheAviator/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
tympanus.net
The Aviator: The Game | Codrops
Demo of the game: The Making of 'The Aviator': Animating a Basic 3D Scene with Three.js
نسل جدید فریمورکهای JavaScript برای ساخت برنامههای SPA در راه هستند. فریمورکهای Angular 2.0، React و Aurelia فریمورکهای نسل بعدی هستند که عمدتا بر پایه ES6 نوشتهشدهاند. فریمورک Angular 2.0 نسخه جدید این فریمورک محبوب است هنوز قبل از ریلیز بیشترین طرفدار را دارد. این فریمورک توسط گوگل و مایکروسافت پشتیبانی میشود. فریمورک React که توسط فیسبوک پشتیبانی میشود بسیار قوی است ولی ذاتا هدف آن انجام تمام وظایف یک SPA نیست و بیشتر روی HTML Rendering تمرکز دارد.
فریمورک Aurelia نسخه بعدی Durandal است که قبلا رقیب کمتر شناخته شده Angular بود. خالق این فریمورک قبلا در تیم Angular 2.0 بود که بعدها به دلایلی تصمیم گرفت از این تیم جدا شود و فریم ورک رویای خود را خلق کند. یکی از مزایای این فریمورک Syntax بسیار ساده و روان آن است که تقریبا در هر مقایسهای به آن اشاره شدهاست.
مقاله زیر این فریمورکها را با جزئیات بیشتری با هم مقایسه کردهاست.
https://blog.ae.be/comparing-angular-aurelia-react-js-framework/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
فریمورک Aurelia نسخه بعدی Durandal است که قبلا رقیب کمتر شناخته شده Angular بود. خالق این فریمورک قبلا در تیم Angular 2.0 بود که بعدها به دلایلی تصمیم گرفت از این تیم جدا شود و فریم ورک رویای خود را خلق کند. یکی از مزایای این فریمورک Syntax بسیار ساده و روان آن است که تقریبا در هر مقایسهای به آن اشاره شدهاست.
مقاله زیر این فریمورکها را با جزئیات بیشتری با هم مقایسه کردهاست.
https://blog.ae.be/comparing-angular-aurelia-react-js-framework/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
www.ae.be
Comparing Angular, Aurelia and React: Is there a next-gen JS framework that rules them all?
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
Forwarded from Software Philosophy
تا امروز فیدبکهای خیلی خوبی از شما دوستان گرفتیم. بر اساس فیدبکهای شما تصمیم گرفتیم که پستهای این کانال را در سه دسته بندی پست کنیم:
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر https://twitter.com/mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر https://twitter.com/mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
مورد توافقترین تعریفی که در ارتباط با مدیریت محصول وجود دارد، تعریفی بسیار ساده و قابل درک است: «ارائه محصولی درست به شیوه ای درست به مشتری». اما مدیریت محصول کماکان یکی از سخترین شرح وظایفهایی است که میتوان در هر سازمان تصور کرد. این ابهام در چیستی و چگونگی مدیریت محصول در شرکت های نرم افزاری که تجربهای درست در داشتن مدیر محصول ندارند بسیار بیشتر است.
لینک زیر می تواند یک شروع خوب برای آشنا شدن با این مفهوم باشد.
https://medium.com/@joshelman/a-product-managers-job-63c09a43d0ec#.i6pcfk9wa
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
لینک زیر می تواند یک شروع خوب برای آشنا شدن با این مفهوم باشد.
https://medium.com/@joshelman/a-product-managers-job-63c09a43d0ec#.i6pcfk9wa
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
Medium
A Product Manager’s Job
Product management is one of the hardest jobs to define in any organization, partially because it’s different in every company. I’ve had several recent conversations about “what is a product…
تجربه کاربری یا UX یکی از مفاهیمی است که تاثیر زیادی در محبوب شدن یک محصول دارد. مفهوم DX یا Developer Experience نیز مفهوم جدیدی است که تجربه یک برنامهنویس هنگام استفاده از یک پلتفرم یا فریمورک را بررسی میکند. چرا یک پلتفرم یا فریمورک محبوب میشود و دیگری نه؟ این سوالی است که عوامل زیادی در پاسخ دادن به آن موثر هستند. اینکه یک برنامه نویس هنگام کار با آن پلتفرم چه تجربهای احساس میکند یکی از عوامل مهم موفقیت یک پلتفرم است. در مقاله زیر مفهوم جدیدی به نام Dotability معرفی شده که میتوان به وسیله آن کتابخانهها و فریمورکهای مختلف را از لحاظ DX بررسی کرد.
https://mehrandvd.me/2016/05/31/developer-experience-dotability/
https://mehrandvd.me/2016/05/31/developer-experience-dotability/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://mehrandvd.me/2016/05/31/developer-experience-dotability/
https://mehrandvd.me/2016/05/31/developer-experience-dotability/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Dot Philosophy
Developer Experience: Dotability - Dot Philosophy
Again, this famous 'X', as in UX. It's all about experience. The good experience is the key that makes a product valuable. We are always talking about user experience, but here in this post, I am going to talk about developer experience. As a developer, you…
نامگذاری در برنامهنویسی شاید یکی از مهمترین کارهایی باشد که یک برنامهنویس انجام میدهد. یک برنامهنویس با نامگذاری متغییرها، کلاسها، فایلها و ... در حقیقت مفاهیم جدید خلق میکند که در آینده برنامهنویسان دیگر معنی آن را از روی «نام» آنها حدس خواهند زد!
فصل زیر از کتاب Framework Design Guidlines (که به FDG معروف است) به طور اختصاصی استانداردهای نامگذاری را که در طراحی .Net Framework استفاده شدهاست را شرح میدهد. این کتاب برای ساخت تمامی سیستمها در مایکروسافت به عنوان یک مرجع استفاده میشود. به همین دلیل هم در سایت msdn به صورت رایگان و قابل دسترس برای همه وجود دارد و هم کتاب چاپی آن وجود دارد که بسیار محبوب است.
https://msdn.microsoft.com/en-us/library/ms229002%28v=vs.110%29.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
فصل زیر از کتاب Framework Design Guidlines (که به FDG معروف است) به طور اختصاصی استانداردهای نامگذاری را که در طراحی .Net Framework استفاده شدهاست را شرح میدهد. این کتاب برای ساخت تمامی سیستمها در مایکروسافت به عنوان یک مرجع استفاده میشود. به همین دلیل هم در سایت msdn به صورت رایگان و قابل دسترس برای همه وجود دارد و هم کتاب چاپی آن وجود دارد که بسیار محبوب است.
https://msdn.microsoft.com/en-us/library/ms229002%28v=vs.110%29.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
امکاناتی که در Java 8 اضافه شده بسیار جذاب و دوست داشتنی هستند. عمده این امکانات حول محور مفهوم Lambda Expression میچرخند که باعث میشوند برنامهنویسی با استفاده از مفاهیم Functional Programming بسیار لذتبخشتر شود. سایت زیر یک Cheat Sheet خیلی مختصر و مفید از مثالهایی است که میتوانید در نسخه جدید جاوا از آنها استفاده کنید.
https://www.java8.org/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.java8.org/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
خواندن لاگها و فهمیدن آنها معمولا کار سخت و زمانبری است، مخصوصا اگر این لاگ مربوط به فرایند بیلد یک سیستم در فرایند CI باشد. اخیرا Kirill Osenkov (یکی از برنامهنویسان کلیدی تیم داتنت) یک برنامه برای Visualization لاگهای MSBuild منتشر کردهاست که خواندن این لاگها را بسیار راحت میکند. این برنامه لاگها را به صورت درختی نمایش میدهد.
https://www.hanselman.com/blog/MSBuildStructuredLogRecordAndVisualizeYourBuilds.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.hanselman.com/blog/MSBuildStructuredLogRecordAndVisualizeYourBuilds.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Hanselman
MSBuild Structured Log: record and visualize your builds
MSBuild has been open source for a while (over a year now!) and is used to build .NET and .NET Core projects. In fact, ...
Forwarded from Iran .Net
روش Partitioned Table جهت افزایش کارایی SQL Server
پایگاه داده SQL Server روش های متعددی را به جهت Scale-Up کردن در اختیار ما قرار می دهد. یکی از این روش ها که برای بالابردن بهره وری و سرعت ذخیره و بازیابی داده ها استفاده می شود، استفاده از جداول خاصی به نام Partitioned Table ها می باشد. پیش از توضیح مطلب لازم به ذکر است که اساس این روش بر این فرضیه استوار است که یکی از مهمترین گلوگاه های کاراییِ پایگاه داده هارددیسک و مسائل مربوط به I/O می باشد. استفاده از این روش برای جداولی با تراکنش های بسیار بالا و با حجمی بیشتر از 50 گیگابایت توصیه می شود.
اساس این روش بر این استوار است که داده های یک جدول به جای قرار گرفتن در یک فایل، در چندین فایل پراکنده می شود. مثلا می توانیم داده ها را با توجه به ماه های سال تقسیم بندی کنیم و به ازای هر ماه یک Partition ایجاد کنیم. در نتیجه به جای تحمیل بار سیستم به یک فایل بزرگ و البته کند، ما چندین فایل با سایز های بسیار کوچک تر مواجه خواهیم بود.
این موجب خواهد شد که سرعت I/O افزایش پیدا کند، داده های مربوط به Indexing کوچک تر شده جستجو سریع تر خواهد شد. همچنین چون فایل های هر Partition جداست، می توانیم هر Partition در دیسکی مجزا قرار دهیم.
لازم به ذکر است که این جداسازی در سطح Database Engine انجام می گیرد و ما در دستورات T-SQL فقط و فقط با یک جدولِ کلی کار خواهیم کرد. این مسئولیت SQL Server است که داده ها را با توجه به Partiton شان پیدا کرده و یا ذخیره می کند.
به همین جهت می توانیم با Entity Framework هم از جداول Partitioned استفاده کنیم، چون این جداسازی از لایه Application پنهان می باشد.
* این تکنیک در شرایطی بهتر است استفاده شود که کوئری های ما به گونه ای نوشته شده اند که فقط لازم است داده ها از یک یا تعداد کمی پارتیشن خوانده شوند. مثلا شرکتی را در نظر بگیرید که هر ماه تعداد زیادی تراکنش داشته و در هر ماه گزارش گیری و تسویه مالیِ سنگینی را بر روی داده های همان ماه انجام می دهد. در این صورت با گزاردن فایل های هر ماه بر روی یک Partiton جدا به سرعت بسیار بالایی دست پیدا خواهیم کرد.
https://www.mssqltips.com/sql-server-tip-category/65/partitioning/
https://www.brentozar.com/archive/2012/03/how-decide-if-should-use-table-partitioning/
ویزارد:
https://www.mssqltips.com/sqlservertip/2856/sql-server-partition-wizard/
@irandotnet
پایگاه داده SQL Server روش های متعددی را به جهت Scale-Up کردن در اختیار ما قرار می دهد. یکی از این روش ها که برای بالابردن بهره وری و سرعت ذخیره و بازیابی داده ها استفاده می شود، استفاده از جداول خاصی به نام Partitioned Table ها می باشد. پیش از توضیح مطلب لازم به ذکر است که اساس این روش بر این فرضیه استوار است که یکی از مهمترین گلوگاه های کاراییِ پایگاه داده هارددیسک و مسائل مربوط به I/O می باشد. استفاده از این روش برای جداولی با تراکنش های بسیار بالا و با حجمی بیشتر از 50 گیگابایت توصیه می شود.
اساس این روش بر این استوار است که داده های یک جدول به جای قرار گرفتن در یک فایل، در چندین فایل پراکنده می شود. مثلا می توانیم داده ها را با توجه به ماه های سال تقسیم بندی کنیم و به ازای هر ماه یک Partition ایجاد کنیم. در نتیجه به جای تحمیل بار سیستم به یک فایل بزرگ و البته کند، ما چندین فایل با سایز های بسیار کوچک تر مواجه خواهیم بود.
این موجب خواهد شد که سرعت I/O افزایش پیدا کند، داده های مربوط به Indexing کوچک تر شده جستجو سریع تر خواهد شد. همچنین چون فایل های هر Partition جداست، می توانیم هر Partition در دیسکی مجزا قرار دهیم.
لازم به ذکر است که این جداسازی در سطح Database Engine انجام می گیرد و ما در دستورات T-SQL فقط و فقط با یک جدولِ کلی کار خواهیم کرد. این مسئولیت SQL Server است که داده ها را با توجه به Partiton شان پیدا کرده و یا ذخیره می کند.
به همین جهت می توانیم با Entity Framework هم از جداول Partitioned استفاده کنیم، چون این جداسازی از لایه Application پنهان می باشد.
* این تکنیک در شرایطی بهتر است استفاده شود که کوئری های ما به گونه ای نوشته شده اند که فقط لازم است داده ها از یک یا تعداد کمی پارتیشن خوانده شوند. مثلا شرکتی را در نظر بگیرید که هر ماه تعداد زیادی تراکنش داشته و در هر ماه گزارش گیری و تسویه مالیِ سنگینی را بر روی داده های همان ماه انجام می دهد. در این صورت با گزاردن فایل های هر ماه بر روی یک Partiton جدا به سرعت بسیار بالایی دست پیدا خواهیم کرد.
https://www.mssqltips.com/sql-server-tip-category/65/partitioning/
https://www.brentozar.com/archive/2012/03/how-decide-if-should-use-table-partitioning/
ویزارد:
https://www.mssqltips.com/sqlservertip/2856/sql-server-partition-wizard/
@irandotnet
Mssqltips
SQL Server Partitioning Tips
Learn about SQL Server Partitioning from these valuable tips, tutorials, how-to's, scripts, and more for SQL Server DBAs.
نحوه استفاده از الگوریتمهای Hash در .net core نسبت به .net تفاوتهای محسوسی کردهاست. پیادهسازی و API مربوط به عملیات امنیتی در .net core مجددا طراحی شدهاند. مقاله زیر به آزمایش و آموزش استفاده از این الگوریتمها پرداخته است. جالب است که این آزمایشها و آموزشها روی Ubuntu انجام شدهاند.
https://www.c-sharpcorner.com/article/hashing-passwords-in-net-core-with-tips
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.c-sharpcorner.com/article/hashing-passwords-in-net-core-with-tips
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
C-Sharpcorner
Hashing Passwords In .NET Core With Tips
In this article you will learn about how to hash passwords in .NET Core with tips.
«شما می توانید عناوبن را خرید و فروش کنید، در یک دوره کوتاه مدت شرکت کنید و یک واژه به عنوان شغلی خود اضافه کنید. اما نمی توانید تجربه را بخرید. تنها می توانید آن را بیاموزید». این جملات بخشی از بلاگ “Agile is Dead” است که در سال 2014 توسط یکی از تئوریسین هایAgile نوشته است. خواندن این مطلب هم برای عاشقان این متد و هم برای دیگر دوستان خالی از لطف نیست.
https://pragdave.me/blog/2014/03/04/time-to-kill-agile
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
https://pragdave.me/blog/2014/03/04/time-to-kill-agile
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
اگر تا به حال با ASP.NET Core RC1 کار میکردید و الان میخواهید با نسخه جدید یعنی RC2 کار کنید نیاز دارید به نسخه جدید مهاجرت کنید. مهاجرت به نسخه جدید معمولا از اینکه آن را از ابتدا نصب کنید سختتر است. لینک زیر به صورت قدم به قدم مراحل مهاجرت به نسخه جدید و شروع توسعه سیستم با آن را توضیح دادهاست.
https://ievangelist.github.io/blog/migrating-to-rc2
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://ievangelist.github.io/blog/migrating-to-rc2
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Iran .Net
در مورد فرهنگ سازمانی، توسعه چابک و با کیفیت، ایجاد کشش های قوی بین تیم توسعه، سازمان و مشتری حرف های خوب و قشنگی می شود زد و با آن ها شعار داد. ما هم که مملکت شاعر مسلک و شعار زده ای هستیم و مستعد!
محیط کار و تمام اجزای تشکیل دهنده آن به نوعی نشان دهنده فرهنگ سازمانی حاکم می تواند باشد. از میز ها و محل کار کارکنان، فاصله فیزیکی کارکنان و تیم ها، فاصله طبقات و اتاق های مدیریت با واحد های دیگر گرفته تا وسایلی که در محیط قرار گرفته تا به نوعی چیدمان ساختمان را شکل دهند، همه و همه نشات گرفته از فرهنگ سازمانی هستند البته فرهنگ سازمانی هم از ساختار فیزیکی و اجزای فیزیکی ساختمان و محیط کار تاثیر خواهد پذیرفت.
اینکه چگونه چابک شویم، چگونه محیط کاری فراهم کنیم تا رضایت حداکثری کارکنان مان را جذب کنیم و بتوانیم با ایجاد حب و علاقه در کارکنان، فرهنگی را به وجود بیاوریم که همه سازمان به گونه ای یکپارچه خود را بپندارد و اهداف سازمان همان اهداف نفرات شود، کار دشواری است. مایکروسافت از معدود شرکت هایی است که چابکی یا Agility در سطح Enterprise پیاده سازی کرده است و معتقد است برای دستیابی به این اهداف، یکی از ضروریات معماری داخلی ساختمان و اجزا و امکانات موجود در محیط می باشد.
در ساختمان های 16 و 17 مقر Redmond که تیم های Cloud و Enterprise مایکروسافت قرار گرفته اند، معماری به غایت مدرنی به کار گرفته شده که می توانید تصاویر و توضیحات و چرایی ها را در مطلب زیر ببینید.
دقت کنید که در محیط کار مدرن مایکروسافت، یکی از اهداف سرعت در گردش اطلاعات و همکاری حداکثری می باشد. به همین خاطر محیط کار آن ها Office Free یا بدون اتاق می باشد و تیم های مختلف در محیط های بزرگی به نام "همسایگی و Neigboorhoods" در کنار هم قرار گرفته اند. همچنین مدیران و کارکنان تفاوتی در امکانات و فاصله فیزیکیِ محلِ کارشان با سایرین ندارند و همه کنار هم کار می کنند.
https://news.microsoft.com/stories/b16/
محیط کار و تمام اجزای تشکیل دهنده آن به نوعی نشان دهنده فرهنگ سازمانی حاکم می تواند باشد. از میز ها و محل کار کارکنان، فاصله فیزیکی کارکنان و تیم ها، فاصله طبقات و اتاق های مدیریت با واحد های دیگر گرفته تا وسایلی که در محیط قرار گرفته تا به نوعی چیدمان ساختمان را شکل دهند، همه و همه نشات گرفته از فرهنگ سازمانی هستند البته فرهنگ سازمانی هم از ساختار فیزیکی و اجزای فیزیکی ساختمان و محیط کار تاثیر خواهد پذیرفت.
اینکه چگونه چابک شویم، چگونه محیط کاری فراهم کنیم تا رضایت حداکثری کارکنان مان را جذب کنیم و بتوانیم با ایجاد حب و علاقه در کارکنان، فرهنگی را به وجود بیاوریم که همه سازمان به گونه ای یکپارچه خود را بپندارد و اهداف سازمان همان اهداف نفرات شود، کار دشواری است. مایکروسافت از معدود شرکت هایی است که چابکی یا Agility در سطح Enterprise پیاده سازی کرده است و معتقد است برای دستیابی به این اهداف، یکی از ضروریات معماری داخلی ساختمان و اجزا و امکانات موجود در محیط می باشد.
در ساختمان های 16 و 17 مقر Redmond که تیم های Cloud و Enterprise مایکروسافت قرار گرفته اند، معماری به غایت مدرنی به کار گرفته شده که می توانید تصاویر و توضیحات و چرایی ها را در مطلب زیر ببینید.
دقت کنید که در محیط کار مدرن مایکروسافت، یکی از اهداف سرعت در گردش اطلاعات و همکاری حداکثری می باشد. به همین خاطر محیط کار آن ها Office Free یا بدون اتاق می باشد و تیم های مختلف در محیط های بزرگی به نام "همسایگی و Neigboorhoods" در کنار هم قرار گرفته اند. همچنین مدیران و کارکنان تفاوتی در امکانات و فاصله فیزیکیِ محلِ کارشان با سایرین ندارند و همه کنار هم کار می کنند.
https://news.microsoft.com/stories/b16/
Microsoft
Productivity by design
Microsoft’s inspired new workspaces boost creativity and collaboration.