Graph extensions in SQL Server 2017 will facilitate users in linking different pieces of connected data to help gather powerful insights and increase operational agility. Graphs are well suited for applications where relationships are important, such as fraud detection, risk management, social networks, recommendation engines, predictive analysis, dependence analysis, and IoT applications. In this session we will demonstrate how you can use SQL Graph extensions to build your application using graph data.
معرفی IndexedDB در مرورگر
This article introduces you to the in-browser document database known as IndexedDB. With IndexedDB you can create, read, update, and delete large sets of records in much the same way you are accustomed to doing with server-side databases. To experiment with a working version of the code presented in this article, please go to , and the full source code is available via the GitHub repository found at .
معرفی Blazor Hybrid
- در Blazor Web Assembly که UI با HTML / CSS زده میشود، کدهای C# .NET ای با کمک Web Assembly و داخل خود مرورگر اجرا میشوند. با کمک Blazor Web Assembly میتوان محصولات PWA و SPA ایجاد نمود.
- در Blazor Server که UI با HTML / CSS زده میشود، کدها در سرور اجرا و به وسیلهی Web Sockets، تعاملات UI ای از Browser به سرور ارسال و تغییرات UI ای از سرور به Browser ارسال میشوند. با کمک Blazor Server میتوان محصولات SPA ایجاد نمود.
- Blazor Native Mobile Apps که در این روش از کامپوننتهای Native موبایل استفاده میشود؛ نه عناصر HTML مانند h1 و div. با کمک Blazor Native Mobile Apps میتوان برنامههای Native موبایل برای Android / iOS و برنامههای Desktop برای Windows ایجاد نمود.
- Blazor Hybrid که در این روش UI با HTML / CSS بوده، ولی اجرای کدهای C# .NET داخل خود سیستم عامل و به صورت Native است. با کمک Blazor Hybrid میتوان برنامههای موبایل برای Android / iOS و برنامههای Desktop برای Windows ایجاد نمود.
این سناریو رو در نظر بگیرید:
وب سرور ما در همان محلی قرار دارد که SVN Server نصب شده است.
میخواهیم به ازای هربار Commit تیم به مخزن SVN ما، سایت ارائه شده توسط وب سرور نیز به صورت خودکار به روز شود.
چه باید کرد؟!
احتمالا خیلیها تصور میکنند که امکان پذیر نیست؛ چون مخزن SVN موجود در سرور، ساختار خودش را دارد و همانند فایلهای یک پروژه معمولی نگهداری نمیشود.
برای انجام اینکار چندین روش موجود است، که تمام آنها به مفهوم hooks در SVN گره خورده است. هرچند hook به معنای قلاب است، اما در اینجا معنای تریگر را دارد. شبیه به تریگرهای SQL Server : پیش یا پس از انجام کار یا رخداد مشخصی، فلان کار را انجام بده. (برای اطلاعات بیشتر میتوانید به فصل hooks در این کتابچه مراجعه کنید: (+))
در میان این قلابهای موجود، میتوان از قلاب post-commit جهت به روز رسانی یک سایت پس از هر هماهنگ سازی با مخزن SVN استفاده کرد. پیشنهاد من به تمام کسانی که میخواهند کار با SVN را شروع کنند استفاده از برنامه رایگان Visual SVN Server است. این برنامه سازگاری فوق العادهای با محیط ویندوز دارد (از لحاظ تعریف سطح دسترسیها). همچنین تعریف hooks را هم به شدت ساده کرده است. فقط کافی است روی یک مخزن کد تعریف شده در Visual SVN Server کلیک راست کرده و در برگهی باز شده، تنظیمات سطوح دسترسی یا تعاریف Hooks را اضافه نمود (در اینجا اعمال سطوح دسترسی روی پوشهها یا روی فایلها نیز به همان شکل با کلیک راست و کم و زیاد کردن کاربران میسر است؛ همانند دادن دسترسی بر اساس امکانات NTFS و اکتیودایرکتوری).
بنابراین به صورت خلاصه:
- فرض بر این است که مخزن کد SVN ایی را بر روی سرور راه اندازی کردهاید. همچنین پوشهای را که میخواهید ریشه سایت باشد، مثلا در مسیر دلخواه C:\path\www قرار دارد.
- برای شروع کار، check out باید صورت گیرد. یا میتوان از TortoiseSVN استفاده کرد یا چون مخزن کد در همان سرور است، دستور زیر نیز کار میکند:
svn checkout file:///c:/svn/MyRepository/trunk C:\path\www
- سپس یک فایل bat باید درست کنید با محتوای زیر:
svn update file:///c:/svn/MyRepository/trunk C:\path\www
این فایل bat باید در همان قسمت تعریف post-commit hook استفاده شود.
به این معنا که پس از هر commit ، لطفا مسیر C:\path\www را بر اساس آخرین به روز رسانیهای مخزن کد به صورت خودکار به روز کن. در این حالت اگر فایلی حذف شده باشد، به صورت خودکار از ریشه سایت شما حذف میشود و اگر فایل یا فایلهایی تغییر کرده باشند نیز سریعا به روز رسانی آنها انجام خواهد شد.
در روش svn update ، پوشههای مخفی svn نیز در ریشه سایت حضور خواهند داشت. وجود آنها هم الزامی است زیرا update بر همین اساس کار میکند.
- اگر میخواهید این پوشههای مخفی وجود نداشته باشند از دستور svn export استفاده کنید. فقط دقت کنید که در این حالت اگر فایلی از مخزن کد حذف شده باشد، باز هم در ریشه سایت وجود خواهد داشت. راه حلی هم که توصیه شده، این است که در همان bat فایلی که درست میکنید ابتدا دستور حذف محتویات پوشه ریشه را صادر کنید و بعد svn export . البته بدیهی است این روش نسبت به svn update کندتر است و svn update به شدت بهینه و سریع میباشد.
- یا راه دیگر بجای حذف کردن پوشه موجود و بعد export به آن، استفاده از برنامههایی مانند Robocopy است که میتوانند عملیات همگام سازی را هم انجام دهند. در این حالت محتوای فایل bat شما شبیه به دستورات زیر خواهد شد:
svn checkout file:///c:/svn/MyRepository/trunk C:\temp\Site1 >> output.log
robocopy C:\temp\Site1 C:\path\www *.* /S /XF *.cs *.tmp *.sln *.csproj *.webinfo /XD .svn _svn /PURGE >> output.log
به این معنا که پس از هر commit به مخزن کد (با توجه به تعریف قلاب ذکر شده)، ابتدا یک svn checkout در یک پوشه موقتی (خارج از ریشه اصلی سایت) انجام گردیده و سپس برنامه robocopy یا موارد مشابه آن وارد عمل شده و تغییرات را با ریشه اصلی هماهنگ میکنند (در اینجا میتوان مشخص کرد چه فایلهایی با پسوندهای مشخص، با ریشه سایت هماهنگ نشوند).
در کل همان روش svn update به نظر سریعتر و مقرون به صرفهتر است. اگر از IIS استفاده میکنید، به صورت پیش فرض کسی نمیتواند محتوای پوشهای را با وارد کردن آدرس آن در مرورگر بررسی کند، همچنین IIS فایلهایی را که نمیشناسد (پسوند از پیش تعریف شدهای در بانک اطلاعاتی آن ندارند)، سرو نمیکند و در صورت درخواست آنها، خطای 404 یا "پیدا نشد" به کاربر نهایی ارائه خواهد شد.
کتابخانه ngx-page-scroll
Animated scrolling functionality for angular written in pure typescript with no additional dependencies Demo
- easy-to-use directive: scroll to an element referenced in the href-attribute (
href="#mytarget
) just by addingpageScroll
directive - service usage: trigger scroll animations from your component or when server responds
- customizable: adjust duration, offset or whether scrolling stops if the user interrupts (read more)
- use custom easing functions to calculate the scroll position over time
- works across routes (scrolls to target element as soon as the routing has finished) and in both directions (horizontal/vertical)
npm install ngx-page-scroll
مستند سازی Database
dbdescis a powerful tool to help you document your databases. It can produce detailed documents describing your databases
Currently dbdesc supports the following databases:
SQL Server 2000, 2005, 2008, 2008 R2, 2012, 2014
Microsoft Desktop Engine 2000 (MSDE) and SQL Server Express editions
MySQL 5.0
Oracle 9 and above
Microsoft Access 97 and above
Firebird
با استفاده از کوئری زیر نیز میتوانید نام و Description ستونها و دیتاتایپ و ... آنها را بدست آورید.
SELECT p.name ,p.value ,t.name AS TableName ,c.name AS ColumnName ,c.is_nullable ,c.max_length ,TYPE_NAME(c.system_type_id) FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id LEFT JOIN sys.extended_properties p ON p.major_id = t.object_id AND p.minor_id = c.column_id ORDER BY t.name DESC,c.name DESC
جهت بررسی بیشتر و آشنایی با Extended Properties in SQL Server به لینک Towards the Self-Documenting SQL Server Database مراجعه کنید.
Modern software development practices value quick and continuous updates, following processes that minimize the impact of software failures. As important as identifying bugs early, finding out if changes are improving business value are equally important. These practices can only work when a monitoring solution is in place. This article explores options for adding observability to .NET Core apps. They have been collected based on interactions with customers using .NET Core in different environments. We will be looking into OpenTelemetry and Application Insights SDKs to add observability to a sample distributed application.