Virtual Events for Developers
While in-person conferences and events may be cancelled, there are still many online opportunities for you to stay connected. Browse the full list of virtual events to continue to grow your skills as a developer, contribute to interesting projects, and meet like-minded developers around the world.
سورس نگارش کامل دات نت
The referencesource repository contains sources from Microsoft .NET Reference Source that represent a subset of the .NET Framework. This subset contains similar functionality to the class libraries that are being developed in .NET Core. We intend to consult the referencesource repository as we develop .NET Core. It is also for the community to leverage to enable more scenarios for .NET developers.
2.Visual Studio 2017 15.9 منتشر شد
These are the customer-reported issues addressed in 15.9.2:
- MFC EXE (binary) size is 5 times bigger in VS 15.8 (_MSC_VER = 1915).
- Key 'OPENSSH' is not supported.
- Windows magnifier can no longer track keyboad cursor.
- Analysis fails with immediately-invoked lamba in while loop.
- Xamarin iOS designer not working with 15.9 and Xamarin.iOS 12.2.1.10.
- We improved the reliability of incremental linking for large C++ projects.
- LNK2001 "unresolved external symbol" errors for certain vector deleting destructors will now be resolved.
- Compiler execution time has been improved for code that makes heavy use of chained, inline functions involving lambdas or local classes as parameter or return types.
مایکروسافت ابزار اتوماسیون آنالیز کرش و خطرات امنیتی حاصل از آنرا که پیشتر در تیمهای داخلی خودش مورد استفاده قرار میگرفت، سورس باز کرد.
برای نمونه از این ابزار در طی سالهای 2005 تا 2006 جهت بررسی کدهای ویندوز ویستا بهره برداری شده و توسط آن بیش از 300 باگ امنیتی پیش از سوء استفاده از آنها کشف و برطرف گردیده است. این ابزار اطلاعات حاصل از یک کرش را بررسی کرده و باگهای امنیتی ممکن آنرا گوشزد میکند.
صفحهی اصلی پروژه در CodePlex
exploitable Crash Analyzer
و دمویی در مورد فلسفهی وجودی و کاربردهای این ابزار
دریافت
WebAssembly, or Wasm, is on its way to becoming the next big thing in software development, allowing us to develop more reusable code across programming stacks. It will also enable the deployment of smaller packages more securely. This talk will focus on the view of a .NET developer using WebAssembly in their projects, whether client-side, server-side, or plugins.
Agenda
0:00:00 – Introduction
0:01:44 – Presentation Start
0:04:36 – Wasm on the client
0:08:27 – Wasm on the server
0:11:51 – ASP.NET Core in Wasi
0:21:41 – Wasm in the cloud
0:32:38 – Wasm for plugins
0:36:07 – Wasm plugins samples
0:49:05 – .NET 8 and the future
0:55:08 – Who’s working on this?
1:03:13 – Outro
public bool CanUserAccess(ClaimsPrincipal user, string area, string controller, string action) { var currentClaimValue = $"{area}:{controller}:{action}"; var securedControllerActions = _mvcActionsDiscoveryService.GetAllSecuredControllerActionsWithPolicy(ConstantPolicies.DynamicPermission); if (!securedControllerActions.SelectMany(x => x.MvcActions).Any(x => x.ActionId == currentClaimValue)) { throw new KeyNotFoundException($@"The `secured` area={area}/controller={controller}/action={action} with `ConstantPolicies.DynamicPermission` policy not found. Please check you have entered the area/controller/action names correctly and also it's decorated with the correct security policy."); } if (!user.Identity.IsAuthenticated) { return false; } if (user.IsInRole(ConstantRoles.Admin)) { // Admin users have access to all of the pages. return true; } // Check for dynamic permissions // A user gets its permissions claims from the `ApplicationClaimsPrincipalFactory` class automatically and it includes the role claims too. return user.HasClaim(claim => claim.Type == ConstantPolicies.DynamicPermissionClaimType && claim.Value == currentClaimValue); }
public bool CanUserAccess(ClaimsPrincipal user, string area, string controller, string action) { if (!user.Identity.IsAuthenticated) { return false; } if (user.IsInRole(ConstantRoles.Admin)) { // Admin users have access to all of the pages. return true; } var currentClaimValue = $"{area}:{controller}:{action}"; var securedControllerActions = _mvcActionsDiscoveryService.GetAllSecuredControllerActionsWithPolicy(ConstantPolicies.DynamicPermission); if (!securedControllerActions.SelectMany(x => x.MvcActions).Any(x => x.ActionId == currentClaimValue)) { throw new KeyNotFoundException($@"The `secured` area={area}/controller={controller}/action={action} with `ConstantPolicies.DynamicPermission` policy not found. Please check you have entered the area/controller/action names correctly and also it's decorated with the correct security policy."); } // Check for dynamic permissions // A user gets its permissions claims from the `ApplicationClaimsPrincipalFactory` class automatically and it includes the role claims too. return user.HasClaim(claim => claim.Type == ConstantPolicies.DynamicPermissionClaimType && claim.Value == currentClaimValue); }
سلام
(نوع stub همانند فریم ورک mock میباشد )
تعریفی که از stup تو راهنماش اومده با مطلبی که شما ذکر کردید متفاوته
Martin Fowler’s article Mocks aren’t Stubs compares and contrasts the underlying principles of Stubs and Mocks. As outlined in Martin Fowler’s article, a stub provides static canned state which results in state verification of the system under test, whereas a mock provides a behavior verification of the results for the system under test and their indirect outputs as related to any other component dependencies while under test
بررسی ضد الگوهای تست نویسی
Software Testing Anti-Pattern List
- Having unit tests without integration tests
- Having integration tests without unit tests
- Having the wrong kind of tests
- Testing the wrong functionality
- Testing internal implementation
- Paying excessive attention to test coverage
- Having flaky or slow tests
- Running tests manually
- Treating test code as a second class citizen
- Not converting production bugs to tests
- Treating TDD as a religion
- Writing tests without reading documentation first
- Giving testing a bad reputation out of ignorance
تولید MiniDump در برنامههای دات نت
خلاصهی روش تولید MiniDump در پروژهی Orleans به صورت زیر است:
الف) حالتهای مختلف تولید فایل دامپ که مقادیر آن قابلیت Or شدن را دارا هستند:
[Flags] public enum MiniDumpType { MiniDumpNormal = 0x00000000, MiniDumpWithDataSegs = 0x00000001, MiniDumpWithFullMemory = 0x00000002, MiniDumpWithHandleData = 0x00000004, MiniDumpFilterMemory = 0x00000008, MiniDumpScanMemory = 0x00000010, MiniDumpWithUnloadedModules = 0x00000020, MiniDumpWithIndirectlyReferencedMemory = 0x00000040, MiniDumpFilterModulePaths = 0x00000080, MiniDumpWithProcessThreadData = 0x00000100, MiniDumpWithPrivateReadWriteMemory = 0x00000200, MiniDumpWithoutOptionalData = 0x00000400, MiniDumpWithFullMemoryInfo = 0x00000800, MiniDumpWithThreadInfo = 0x00001000, MiniDumpWithCodeSegs = 0x00002000, MiniDumpWithoutManagedState = 0x00004000 }
ب) متد توکار ویندوز برای تولید فایل دامپ
public static class NativeMethods { [DllImport("Dbghelp.dll")] public static extern bool MiniDumpWriteDump( IntPtr hProcess, int processId, IntPtr hFile, MiniDumpType dumpType, IntPtr exceptionParam, IntPtr userStreamParam, IntPtr callbackParam); }
ج) فراخوانی متد تولید دامپ در برنامه
در اینجا نحوهی استفاده از enum و متد MiniDumpWriteDump ویندوز را مشاهده میکنید:
public static class DebugInfo { public static void CreateMiniDump( string dumpFileName, MiniDumpType dumpType = MiniDumpType.MiniDumpNormal) { using (var stream = File.Create(dumpFileName)) { var process = Process.GetCurrentProcess(); // It is safe to call DangerousGetHandle() here because the process is already crashing. NativeMethods.MiniDumpWriteDump( process.Handle, process.Id, stream.SafeFileHandle.DangerousGetHandle(), dumpType, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero); } } public static void CreateMiniDump(MiniDumpType dumpType = MiniDumpType.MiniDumpNormal) { const string dateFormat = "yyyy-MM-dd-HH-mm-ss-fffZ"; // Example: 2010-09-02-09-50-43-341Z var thisAssembly = Assembly.GetEntryAssembly() ?? Assembly.GetCallingAssembly(); var dumpFileName = string.Format(@"{0}-MiniDump-{1}.dmp", thisAssembly.GetName().Name, DateTime.UtcNow.ToString(dateFormat, CultureInfo.InvariantCulture)); var path = Path.Combine(getApplicationPath(), dumpFileName); CreateMiniDump(path, dumpType); } private static string getApplicationPath() { return HttpContext.Current != null ? HttpRuntime.AppDomainAppPath : Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); } }
یک مثال:
class Program { static void Main(string[] args) { try { var zero = 0; Console.WriteLine(1 / zero); } catch (Exception ex) { Console.Write(ex); DebugInfo.CreateMiniDump(dumpType: MiniDumpType.MiniDumpNormal | MiniDumpType.MiniDumpWithPrivateReadWriteMemory | MiniDumpType.MiniDumpWithDataSegs | MiniDumpType.MiniDumpWithHandleData | MiniDumpType.MiniDumpWithFullMemoryInfo | MiniDumpType.MiniDumpWithThreadInfo | MiniDumpType.MiniDumpWithUnloadedModules); throw; } } }
نحوهی بررسی فایلهای dump
الف) با استفاده از Visual studio 2013
از به روز رسانی سوم VS 2013 به بعد، فایلهای dump را میتوان داخل خود VS.NET نیز آنالیز کرد (^ و ^ و ^). برای نمونه تصویر ذیل، حاصل کشودن فایل کرش مثال فوق است:
در اینجا اگر بر روی لینک debug managed memory کلیک کنید، پس از چند لحظه، آنالیز کامل اشیاء موجود در حافظه را در حین تهیهی دامپ تولیدی، میتوان مشاهده کرد. این مورد برای آنالیز نشتیهای حافظهی یک برنامه بسیار مفید است.
ب) استفاده از برنامهی Debug Diagnostic Tool
برنامهی Debug Diagnostic Tool را از اینجا میتوانید دریافت کنید. این برنامه نیز قابلیت آنالیز فایلهای دامپ را داشته و اطلاعات بیشتری را پس از آنالیز ارائه میدهد.
برای نمونه پس از آنالیز فایل دامپ تهیه شده توسط این برنامه، خروجی ذیل حاصل میشود:
کدهای کامل این مثال را از اینجا میتوانید دریافت کنید:
MiniDumpTest.zip
بررسی علت CPU Usage بالای برنامه در حال اجرا
چند وقتی است روی یکی از سرورهی ما مش out of memory به وجود آمده
مشخصات سرور ویندوز 2003 سی دو بیتی رم بالای 4 گیگابایت که با سویچ /PAE در فایل بوت ... این حافظه به ویندوز معرفی شده در
ضمن اینکه Lock Page in memory برای یوزری که سرویس IIS را Start کرده تنظیم شده در این حالت باز ما خطا را میگیرم
چیزی که به ذخن من میرسه ما در برنامه از کریستال ریپورت استفاده کردیم که داخل اون یک library ار نوع com وجود داره که کار
تبدیل تاریخ میلادی به شمسی رو انجام میده فکر میکنم به خاطر اینکه این کتابخانه به شکل unmanage code است
سوالی که دارم اینه
چه طور می توانم مطمئن بشم مشکل از این کتابخانه است و یا خیر
لازم میدونم اشاره کنم تعداد کاربرای سایت بالا و همچنین این سرور مختص iis است و به هیچ عنوان SQL روی اون نصب نمی باشد