<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3130554371420344199</id><updated>2026-10-10T02:52:32.294-07:00</updated><category term="SQL"/><category term="asp .net"/><category term="visual studio"/><category term="Cloud Computing"/><category term="Troubleshooting"/><category term="WCF"/><category term="ms chart"/><category term="server"/><category term="windows"/><category term="&#39;ASP"/><category term="&#39;Access-Control-Allow-Origin&#39; error in ASP.NET Core 6/7"/><category term="&#39;gulp&#39; is not recognized as an internal or external command"/><category term=". net keep clipboard history"/><category term=".NET"/><category term=".NET 7: a connection establish error. A connection was successfully established with the server"/><category term=".NET Build Errors"/><category term=".NET Support for TLS 1.2"/><category term=".Net 2015"/><category term=".Net 6 dowanload file"/><category term=".Net core 6 db migration error"/><category term=".Net core with Vue js"/><category term=".Net object JSON representation"/><category term=".WindowsForms TextBox Watermark"/><category term=".http files in Visual Studio"/><category term=".net 6 access Configuration"/><category term=".net URL validator"/><category term=".net clipboard manager"/><category term=".net object to json"/><category term=".net plain text from HTML"/><category term=".net remove html tags"/><category term=".net spring."/><category term="7 great free office suites for PCs"/><category term="@fontface rule"/><category term="AI Tools"/><category term="ASP .Net MVC wrap text in DisplayFor"/><category term="ASP.NET Ajax client-side framework failed to load"/><category term="ASP.NET Checking for logged in user"/><category term="ASP.NET Core 6/7 CORS"/><category term="ASP.NET Core 6/7:  Accessing Configuration during startup"/><category term="ASP.NET Core in .NET 11"/><category term="ASP.NET GridView Data Filter Control"/><category term="ASP.NET MVC delete multiple records"/><category term="ASP.NET Web Applications with Content Security Policy `. ASP.Net CSP"/><category term="ASP.Net  MVC upload file size"/><category term="ASP.Net  Web Form  Web Optimization"/><category term="ASP.Net Browser specific CSS"/><category term="ASP.Net HTTPS WebRequest SSL TLS 1.2 Channel creation"/><category term="ASP.Net MVC generate Url of any file"/><category term="ASP.Net keep Scroll Position On every Postback or Refresh"/><category term="ASP.Net keep textbox passoword on postbacks"/><category term="Accessing ASP.NET session variables with JavaScript"/><category term="Add icons to hyperlinks"/><category term="Add or Update query string parameter"/><category term="Adding visibility attribute"/><category term="Adobe Illustrator to PNG"/><category term="Ajax.NET Professional (AjaxPro) Starter Kit"/><category term="AjaxFileupload inside an UpdatePanel"/><category term="AjaxPro.2"/><category term="Allow checking only one checkbox in a group"/><category term="An Ajax toolbar for crystal reports"/><category term="An existing connection was forcibly closed by the remote host"/><category term="Append JavaScript to html body"/><category term="AsSplitQuery"/><category term="Asp .Net validate dropdownlist jQuery"/><category term="Asp.Net Customized Javascript Messages"/><category term="Asp.Net Google MAP"/><category term="Asp.net Ajax Tabcontrol header javascipt"/><category term="Asp.net Conditional CSS"/><category term="Asp.net DropDownList with Custom Paging"/><category term="Asp.net MVC 4 bootstrap integration"/><category term="Asp.net MVC bootstrap"/><category term="Asp.net Preview Image"/><category term="Asp.net Preview Image before Upload"/><category term="Asp.net Share page content in Facebook"/><category term="Asp.net textbox allow &lt; charactor to be saved"/><category term="Assign an empty string if the value is null in Linq"/><category term="Attempted to access an unloaded AppDomain"/><category term="Auto Generate .gitignore file"/><category term="Autocomplete for Addresses and Search"/><category term="Azure AI Foundry"/><category term="Azure Functions Core Tools"/><category term="Azure Functions local development"/><category term="Azure Monitor"/><category term="Azure QNA Maker role does not have permission"/><category term="Azure Tools"/><category term="Best ways to crop image"/><category term="Bootstrap file Input"/><category term="Bootstrap layout generator"/><category term="Bootstrap switch checked"/><category term="Bootstrap switch checked event"/><category term="Build failed on Database First Scaffold-DbContext"/><category term="C # 8 witch"/><category term="C # get file MIMETYPE determine file mimetype"/><category term="C Sharp check numeric"/><category term="C# 14 Extension members"/><category term="C# 14 Null  check"/><category term="C# 14 Null conditional assignment"/><category term="C# 15 powerful features"/><category term="C# Latest News Website"/><category term="C# new switch"/><category term="CSS Multiple ID and class"/><category term="CSS compatibility breakdown"/><category term="CSS data attributes"/><category term="CSS focus ring"/><category term="CSS form action selector"/><category term="CSS put icon inside an input element"/><category term="CSS select label"/><category term="CSS style form action"/><category term="CSS support for mail clients. CSS support mobile and desktop"/><category term="CSS target Edge"/><category term="CSS target IE"/><category term="CSS3 selector to find the 2nd div of the same class"/><category term="Change Asp.net Ajax Tabcontrol header from javascipt"/><category term="Checking for logged in user using jQuery in ASP.NET"/><category term="Chrome complains about a missing source map"/><category term="Click and Highlight Text in a TextBox using jQuery"/><category term="Client Side Validation using ASP.NET Validator Controls from Javascript"/><category term="CodeQL"/><category term="Codespaces .net instant development setup"/><category term="Coding Assistants"/><category term="Colorize Crystal Reports Controls"/><category term="Colorize Crystal Reports Controls Using HTML Hex Color Value"/><category term="Context.Database call stored procedure"/><category term="Context.Database execute SP"/><category term="Convert .net object into a JSON"/><category term="Convert an AI to  PNG"/><category term="Converting an AI file to a PNG"/><category term="Copilot integration with SQL server"/><category term="Copilot vs ChatGPT vs Gemini AI"/><category term="Could not load file or assembly Exception from HRESULT: 0x80131515"/><category term="Could not load file or assembly Operation is not supported"/><category term="Create an insert script using SELECT"/><category term="Crystal Reports custom function"/><category term="Cybersecurity"/><category term="DAL tips"/><category term="DIV element redirect"/><category term="DIV work like a hyperlink"/><category term="DOM Ready not fired after postback"/><category term="DOM Ready postback issue"/><category term="DOM events"/><category term="Data Migration"/><category term="DataTable filter by date time.Datatable Select with Datetime"/><category term="Database First Scaffold-DbContext Build failed error"/><category term="Database Management"/><category term="DbContext Build failed error"/><category term="DbSet.ExecuteUpdate . Ef Core ExecuteUpdate"/><category term="Detect IE compatibility mode"/><category term="Detect IE compatibility mode and version using JavaScript"/><category term="DevOps"/><category term="DevSecOps"/><category term="Developing a SQL Server Backup Strategy"/><category term="Development Tips"/><category term="Disable Asp.Net linkbutton"/><category term="Disable all Element inside a div or table"/><category term="Ditto"/><category term="DropDownList get selected Text"/><category term="DropDownList get selected Value"/><category term="EF .Net Core AsNoTracking"/><category term="EF .net core query optimization"/><category term="EF 6/EF7  Bulk Save"/><category term="EF Core AsSplitQuery.AsSplitQuery"/><category term="EF Core LeftJoin"/><category term="EF Core Vs Dapper"/><category term="EF core  Selectmany"/><category term="ENOENT error"/><category term="ENOENT: no such file or directory"/><category term="ERR_CONNECTION_REFUSED"/><category term="Edit and continue"/><category term="Ef Core bulk operations"/><category term="Enable/Disable button when checkbox clicked"/><category term="Enabling jQuery Intellisense Visual Studio 2010"/><category term="Entity Framework"/><category term="Entity Framework Selectmany"/><category term="Entityframework  Bulk insert"/><category term="Enumerable Check empty"/><category term="Error handling in SQL Server 2012"/><category term="Error: ENOENT"/><category term="Exam 70-480"/><category term="Exam 70-480 Training Resources"/><category term="Excel Tips"/><category term="Expand and Collapse a html Table Rows"/><category term="Export HTML  jquery"/><category term="Export HTML table using jQuery"/><category term="Facebook share integration"/><category term="Find all elements ID starting with or Ending with"/><category term="Find and replace text in a file in c#"/><category term="Find checkbox in span"/><category term="FluentValidation validating bool"/><category term="Font face generator"/><category term="Format Date with ReportViewer"/><category term="Full Text Searches on Documents in FileTables"/><category term="Get All DOM elements"/><category term="Get Client IP Address"/><category term="Get MIME typ"/><category term="Get Total Checkboxes jQuery"/><category term="Getting full url of any file ASP.Ne MVC"/><category term="Git"/><category term="GitHub Codespaces"/><category term="GitHub Copilot"/><category term="GitHub Copilot features"/><category term="GitHub Copilot in SQL Server"/><category term="Google map error: a is null"/><category term="HRESULT: 0x80131515"/><category term="HTML 5 Rediness"/><category term="HTML tooltip line break. multiline tooltip"/><category term="HTML5"/><category term="HTTP Error 404.3"/><category term="HTTP Error 500.52"/><category term="Helvetica Neue in CSS using Helvetica Neue"/><category term="How Set and Get ASP.NET session variables with JavaScript"/><category term="How to expand and collapse a html Table Rows on Click"/><category term="How to fix Weird .NET Build Errors"/><category term="How to get a date in YYYY-MM-DD format from a TSQL datetime field"/><category term="How to make a checkbox readonly"/><category term="How to replace last character of an input"/><category term="How to set fixed width and height Asp.net Gridview"/><category term="How to use watermark System.Windows.Forms.TextBox using C#"/><category term="HttpModule for Query String Encryption"/><category term="ICollection to List conversion"/><category term="IE 10 preview  for Windows 7"/><category term="IE 9 JSON not defined"/><category term="IE compatibility JavaScript"/><category term="IE11 compatibility mode off doPostBack and PageRequestManager undefined"/><category term="IIF NullReferenceException"/><category term="IIS 7.x asp.net 4.0 deployment"/><category term="ISAM"/><category term="Image Preview"/><category term="Insert results of a stored procedure"/><category term="Install-PackageProvider  not executed"/><category term="Integrating Vue with .Net Core"/><category term="IsNumeric function for c#"/><category term="JSON in SQL Server"/><category term="JSON not Defined"/><category term="JSON not Defined (IE 9)"/><category term="JavaScript format  date DD/MM/YYYY"/><category term="Jquery Autocomplete suggest size is displayed larger than the textbox"/><category term="Jquery Get Client IP"/><category term="Jquery UI dialog  close button  blue halo"/><category term="Jquery UI dialog close button focus"/><category term="Jquery select an empty div"/><category term="LAG() Function.SQL Server LAG() Function"/><category term="LINQ There is already an open DataReader associated with this Connection"/><category term="LINQ and Model-First for the Oracle Database"/><category term="LINQ close connection"/><category term="LeftJoin and RightJoin operators in EF Core 10"/><category term="Linkedin link preview cache"/><category term="Linq Distinct"/><category term="Linq Distinct By"/><category term="Linq null or empty  string"/><category term="Linq query saaign empty string to null value"/><category term="Load jquery.js file via code behind"/><category term="MSB1009"/><category term="MSBUILD : error MSB1009: Project file does not exist"/><category term="MSBuild"/><category term="MSSQL Error &#39;The underlying provider failed on Open&#39;"/><category term="MVC delete multiple records"/><category term="Macs"/><category term="MailKit  warning"/><category term="MailKit 4.7.1.1 error"/><category term="Maintain Scroll Position On every Postback or Refresh in ASP.Net"/><category term="Maintain Scroll Position of EVERY Element on PostBacks"/><category term="MapStaticAssets"/><category term="Maximum request length exceeded"/><category term="Microsoft Defender for cloud"/><category term="Microsoft Dev Box"/><category term="Microsoft Reports"/><category term="Microsoft SharePoint Server 2013"/><category term="Microsoft WebMatrix"/><category term="Microsoft.Bcl.Build.Tasks.dll used by another process"/><category term="Miscrosoft Exams online practice questions"/><category term="Mobile friendly controls"/><category term="Mobile ui controls"/><category term="MoreLINQ"/><category term="MultiColumnComboBox change selected value"/><category term="Multiline Button Text"/><category term="Multiple Directories for Static Files in ASP.NET Core"/><category term="Navigate DOM"/><category term="Nemeric Text Box"/><category term="NuGet Package restore failed"/><category term="Nuget Error when retrieving package"/><category term="Nuget error retrieving package metadata"/><category term="Object already exists"/><category term="OneOf"/><category term="Package &#39;MailKit&#39; 4.7.1.1 has a known moderate severity vulnerability"/><category term="Page_ClientValidate"/><category term="Pass two arguments toDataNavigateUrlFormatString in hyperlink field of Asp.NET  Grid-View"/><category term="Placing icon inside an input element"/><category term="Preventing multiple button clicks.prevent users clicking a button twice"/><category term="Print stylesheet"/><category term="Printing web pages"/><category term="Programming Tips"/><category term="QNA Maker roepermission"/><category term="RAISERROR with parameter"/><category term="Radeditor character count"/><category term="Radeditor show remaining character count"/><category term="RadioButtonList  get selected value javascript"/><category term="RadioButtonList get   selected value jQuery"/><category term="RadioButtonList get selected value"/><category term="RadioButtonList selected value"/><category term="Remote working Opportunities"/><category term="Remove HTML Tags in Javascript with Regex"/><category term="Remove all HTML Tags in text"/><category term="Remove all table rows except first"/><category term="Removing XML Nodes"/><category term="Removing XML Nodes  with children"/><category term="Report Viewer Date Format"/><category term="Reset Linkedin link preview cache"/><category term="Response Codes in WEB API"/><category term="Retrieve button value"/><category term="Return no operation form a task implementation"/><category term="Rotate Image OnClick"/><category term="Rotate image every time on click"/><category term="SP get results into a temporary table"/><category term="SQL 2025 REGEX"/><category term="SQL Query Conversion Tool"/><category term="SQL Query Translation Tool"/><category term="SQL RAISERROR  pass parameter"/><category term="SQL Server"/><category term="SQL Server 2012 Error handling"/><category term="SQL Server 2012 SP1"/><category term="SQL Server 2017 Installation issues"/><category term="SQL Server 2025 Copilot"/><category term="SQL Server 2025 JSON"/><category term="SQL Server 2025 Regular expressions functions"/><category term="SQL Server 2025 fuzzy string matching"/><category term="SQL Server Debugging"/><category term="SQL Server Debugging with WinDbg"/><category term="SQL Server OUTER APPLY"/><category term="SQL Server check nemeric"/><category term="SQL Server convert string to datetime"/><category term="SQL Server drop Unique Key Drop Unique Key SQL"/><category term="SQL Server getdate in YYYY-MM-DD without time"/><category term="SQL Server intellisense not workinng"/><category term="SQL Server kill process best practices"/><category term="SQL Server read XML attribute"/><category term="SQL get element count in XML"/><category term="SQL login error"/><category term="SQL server setup failed with exit code 1638"/><category term="SQL sever 2014 compatibility issue when TLS 1.0 and TLS 1.1 is turned off"/><category term="SQL70001"/><category term="SSDT Error SQL70001"/><category term="SSDT build error"/><category term="SSMS"/><category term="SSMS Visual Studio 2015 Shell error"/><category term="SSMS openng error"/><category term="Scroll to a specified target using jQuery"/><category term="Search Text in Stored Procedure in SQL Server"/><category term="Securing Connection Strings &amp; AppSettings in ASP.NET Core"/><category term="Serilog Sinks"/><category term="Serverless"/><category term="SignalR"/><category term="Silverlight"/><category term="Silverlight Spy"/><category term="Social Network Sharing using jQuery"/><category term="Software Architecture"/><category term="Software Development"/><category term="Software Engineering"/><category term="Sort string items in a datatable"/><category term="Sql Server offset 0 example"/><category term="Sql Server offset 0 usage"/><category term="Sql server  Extended Events"/><category term="Statistics Tool to Check Website Performance. generate http statuses"/><category term="Stop Windows Service"/><category term="TLS 1.2  .Net support"/><category term="TLS 1.2 suport in .Net 4.5"/><category term="Table partitioning"/><category term="Targeting Microsoft Edge with CSS"/><category term="Tech Trends"/><category term="The &quot;SqlBuildTask&quot; task failed unexpectedly"/><category term="The CodeDom provider type could not be located"/><category term="The Ultimate Guide to CSS"/><category term="The client and server cannot communicate"/><category term="The imported project Microsoft.TextTemplating.targets&quot; was not found"/><category term="The required anti-forgery cookie &quot;__RequestVerificationToken&quot; is not present"/><category term="The server principal is not able to access the database under the current security context"/><category term="The term Install-Module is not recognized as the name of cmdlet"/><category term="The type &#39;ASP.global_asax&#39; exists in both DLLs"/><category term="The type initializer for &#39;System.Management.Automation.Runspaces.InitialSessionState&#39; threw an exception"/><category term="The underlying provider failed on Open"/><category term="There is already an open DataReader associated with this Connection"/><category term="TypeScript"/><category term="URL Rewrite Module Error"/><category term="Unable to create an object of type &#39;MyDBContext&#39;"/><category term="Unable to download the list of available providers"/><category term="Unable to read data from the transport connection"/><category term="Using Blend to Design HTML5 video"/><category term="Using Google MAP control in Asp.Net"/><category term="Using jQuery Intellisense in Visual Studio 2010"/><category term="Using jQuery validate plugin in Asp .Net to validate dropdownlist"/><category term="VS build error MSB4019"/><category term="Virtual Keyboard for asp.net"/><category term="Visual Studio 2012 Testing for Continuous Delivery"/><category term="Visual Studio 2013"/><category term="Visual Studio 2015"/><category term="Visual Studio 2015  features"/><category term="Visual Studio 2015 Installer Projects"/><category term="Visual Studio 2015 download"/><category term="Visual Studio 2026 overview"/><category term="Visual Studio Performance enhancements"/><category term="Visual Studio database project build error"/><category term="Visual Studio enable Edit and continue"/><category term="Visual studio build error MSB4019"/><category term="Visual studio compilation issue  Attempted to access an unloaded AppDomain"/><category term="Vue JS UI does not load"/><category term="WCF IIS error  404.3"/><category term="WCF access error IIS"/><category term="WEB API status codes"/><category term="WPF"/><category term="Web Developer toolbar"/><category term="Web Optimization Framework"/><category term="Web essentials 2012"/><category term="What are Serilog sinks"/><category term="WinDbg"/><category term="Windows Forms TextBox watermark"/><category term="Windows Service stop Programmatically"/><category term="XML element count"/><category term="access Ajax Tabcontrol header javascipt"/><category term="accessing data attributes CSS"/><category term="add icon to link"/><category term="adding ASP.Net Web Optimization Framework to Web Form"/><category term="ajax combobox issue"/><category term="ajax enabled Fileupload"/><category term="ajax modal popup close"/><category term="asp .net menu"/><category term="asp. net mvc 5 using data attributes"/><category term="asp.net  save html tags to db"/><category term="asp.net 4 IE11 compatibility mode javascript issue"/><category term="asp.net 4.0 crystal reports"/><category term="asp.net 4.0 iis 7 deployment"/><category term="asp.net 4.0 mobile development. vs 2010 mobile development asp.net 4.0 mobile  deployment"/><category term="asp.net Checkboxlist iterate through checkbox items acess from javascript"/><category term="asp.net DropDownList  goes up when thesr is too many records"/><category term="asp.net DropDownList get selected value javascript"/><category term="asp.net Menu flickering"/><category term="asp.net PageRequestManager undefined"/><category term="asp.net controls for Mobile devices"/><category term="asp.net crystal reports issues"/><category term="asp.net dealing with dom"/><category term="asp.net grid view fixed row height"/><category term="asp.net hide element when printing"/><category term="asp.net html-encode"/><category term="asp.net linkbutton target blank"/><category term="asp.net logout disable back"/><category term="asp.net mvc oracle"/><category term="asp.net save password on postback"/><category term="asp.net spell checking"/><category term="asp.net text box highlight text on click"/><category term="asp.net textbox Enter key press"/><category term="asp.net textbox Enter key press focus next control"/><category term="asp.net textbox yellowing in Chrome"/><category term="asp.net url validate"/><category term="asp.net virtual keyboard"/><category term="asp.net virtual keyboard interface"/><category term="aspnet Checkboxlist checkbox items javascript"/><category term="autocomplete address"/><category term="because they do not possess a common algorithm"/><category term="best way to return null from a task"/><category term="block special  chars"/><category term="bootstrap Asp.net MVC"/><category term="bootstrap layout builder"/><category term="bootstrap online layout generator"/><category term="bootstrap print issues"/><category term="browser HTML 5 compatibility"/><category term="browser back button issue after logout"/><category term="but then an error occurred"/><category term="c # button OnClick() and OnClientClick()"/><category term="c sharp download file"/><category term="c sharp download file from a given URL"/><category term="c sharp nullable types"/><category term="c sharp sms"/><category term="c# asp.net response.redirect"/><category term="c# find and replace text in a file"/><category term="cast ICollection  to List"/><category term="catch paste jQuery"/><category term="change access location"/><category term="change browser location"/><category term="change height/width of toast message"/><category term="check local host"/><category term="check local server"/><category term="checkbox  checked javascript"/><category term="checkbox OnChange jQuery"/><category term="checkbox in span jquery"/><category term="chrome devtools missing source map"/><category term="chrome missing layout in print"/><category term="chrome print issues bootstrap"/><category term="clear Linkedin link preview cache"/><category term="close all child windows on logout"/><category term="closing children windows from javascript"/><category term="code analysis tool"/><category term="completely disable link button"/><category term="control"/><category term="convert ICollection to List"/><category term="count check-boxes using jQuery"/><category term="create a new table based on an existing view"/><category term="create and use Temp tables in SSIS"/><category term="create table from view sql"/><category term="crop image"/><category term="crop image without losing quality"/><category term="cross browser file uploader"/><category term="crystal reports iis"/><category term="css select element by ID and Class"/><category term="css visibility"/><category term="custom-format the Autocomplete plug-in results"/><category term="datatable sort string based numeric values"/><category term="defensive coding"/><category term="delete table rows except first"/><category term="detect screen height"/><category term="disable Elements inside a div or table using jQuery"/><category term="disable browser&#39;s BACK"/><category term="disable button after submit"/><category term="disable form submission on enter"/><category term="disable resize grip"/><category term="disable submit when hitting ENTER"/><category term="display button text multiple lines"/><category term="docker build error"/><category term="drop Unique Key script"/><category term="drop database user that owns a schema"/><category term="empty DIV selector"/><category term="enable Edit and continue"/><category term="except one element"/><category term="export table To Excel"/><category term="file upload maximum size"/><category term="file uploader"/><category term="find element based on data- value"/><category term="find element in a table jQuery"/><category term="find next table-row"/><category term="find second DIV of the same class"/><category term="focus ring"/><category term="form action style"/><category term="format number"/><category term="format textbox"/><category term="fuzzy string"/><category term="generate fontface"/><category term="get a particular attribute from XML element  SQL"/><category term="get all empty DIVs"/><category term="get checkbox is checked"/><category term="get file URL ASP.Ne MVC"/><category term="get file extension java script"/><category term="get uploaded file extension"/><category term="get window height"/><category term="global_asax&#39; exists in both DLLs"/><category term="gmail smtp error 5.7.0"/><category term="google community support"/><category term="google english to sinhala translation"/><category term="google map javascript  error- Unable to get value of the property &#39;offsetWidth&#39;: object is null or undefined"/><category term="gridview"/><category term="gulp stopped working"/><category term="handle empty enumerable"/><category term="hide elements when printing"/><category term="hide weekends in ajax calender"/><category term="hide weekends when using the ASP.NET Calendar control"/><category term="how to check file mimitype"/><category term="html css twitter-bootstrap glyphicons"/><category term="html file control height"/><category term="html text change"/><category term="htmldecode"/><category term="hyperlinks icon"/><category term="iOS and Android"/><category term="if operator"/><category term="iframe post message"/><category term="iframe postmessage"/><category term="iif check null"/><category term="import js file"/><category term="improve EF Core efficiency for bulk updates. EF Core bulk updates"/><category term="include JS file to another JS file"/><category term="increase/decrease width/height of toast"/><category term="increasing Maximum request length"/><category term="inject js file to html body"/><category term="input paste jQuery"/><category term="input radio disable"/><category term="insert clob"/><category term="jQuery  RadioButtonList selected value"/><category term="jQuery  find next table-row"/><category term="jQuery Easy UI"/><category term="jQuery Force form validation"/><category term="jQuery Rotate Image"/><category term="jQuery UI dialog missing close icon"/><category term="jQuery check form validity"/><category term="jQuery find element"/><category term="jQuery loop through hyperlink elements"/><category term="jQuery scroll page or element"/><category term="jQuery select all elements except for a particular Id"/><category term="jQuery session timeout"/><category term="jQuery validate dropdownlist"/><category term="jQuery validate form before submit"/><category term="jQuery working with paste"/><category term="jQueryUI"/><category term="jQueryUI modal close icon missing"/><category term="jQuey get button value"/><category term="jason to class"/><category term="java script  window height"/><category term="javascript  Restrict special characters"/><category term="javascript  validate date formatted"/><category term="javascript add querystring. add querystring dynamically"/><category term="javascript check connection"/><category term="javascript close all children windows"/><category term="javascript date comparison"/><category term="javascript for validating numeric with two decimal points"/><category term="javascript localhost"/><category term="javascript multiple Page loads"/><category term="javascript scroll element"/><category term="javascript scroll page"/><category term="javascript validate min date"/><category term="javascript validating numeric"/><category term="jquery Assigning more than one class for one event"/><category term="jquery Close button additional text"/><category term="jquery UI dialog initialize without a title bar"/><category term="jquery dialog remove title bar"/><category term="jquery export excel"/><category term="jquery find element id contains"/><category term="jquery format number two decimal places"/><category term="jquery handling numeric values"/><category term="jquery issue after postback"/><category term="jquery iterate table"/><category term="jquery modal close icon show text"/><category term="jquery modal missing close"/><category term="jquery not working after postback"/><category term="jquery paste event"/><category term="jquery skip element"/><category term="jquery trigger input"/><category term="jquery validate URL. URL validate. format URL"/><category term="jsSocials  asp.net"/><category term="jsSocials  mvc sample"/><category term="json converter"/><category term="json to csharp"/><category term="keep page footer at the bottom"/><category term="kill process SQL Server"/><category term="label for css"/><category term="linkbutton  disable"/><category term="linkbutton open in a new window"/><category term="linq"/><category term="load js file"/><category term="loop through all hyperlink elements"/><category term="loop through hyperlink elements using jQuery"/><category term="make asp.net table responsive"/><category term="missing source map"/><category term="mobile friendly table"/><category term="msbuild fails to run"/><category term="multi line textboxes disable resize"/><category term="multiple classes same event"/><category term="mysql"/><category term="normalize.css · GitHub"/><category term="npm run build  issues"/><category term="npm run build  not working"/><category term="npm run dev command does not load VUE.JS UI"/><category term="nuget error &quot;The underlying connection was closed&quot;"/><category term="nullable type"/><category term="numeric textbox"/><category term="office 2013"/><category term="online .gitignore file"/><category term="opensource rich text editor"/><category term="oracle"/><category term="oracle insert clob"/><category term="override frame body"/><category term="page foooter position"/><category term="page footer force to bottom"/><category term="parameterise RAISERROR"/><category term="passing max value for nvarchar"/><category term="password get cleared on postback"/><category term="pattern matching switch c#"/><category term="powershell Install-PackageProvider error"/><category term="powershell install program"/><category term="prevent form  being submitted when ENTER key pressed"/><category term="prevent typing special characters"/><category term="rad multicolumn combo change selected"/><category term="radio button disable"/><category term="readonly checkbox"/><category term="reference js file"/><category term="refused-to-display-in-a-frame"/><category term="regex accept numeric only first number cant be zero"/><category term="regex to validate HH:MM AM/PM"/><category term="regex validate number starting zero"/><category term="regex validate time"/><category term="reinstall gulp"/><category term="remove duplicates sql"/><category term="remove href values when printing"/><category term="replace last character of the string"/><category term="resize grip on multi line textboxes"/><category term="response.redirect open new windpw"/><category term="responsive table"/><category term="return multiple objects from a metgod"/><category term="return several types from a one method"/><category term="role does not have permission for this action in QNA Maker"/><category term="running IIS  Error 502"/><category term="running win XP compatible software in Windows 7"/><category term="secure Connection Strings"/><category term="secure appsettings"/><category term="select all elements of a class"/><category term="select label for css"/><category term="select only one checkbox in a group"/><category term="selector to get second div"/><category term="session in javascript asp.net"/><category term="setInterval vs setTimeout"/><category term="setInterval() and setTimeout() difference"/><category term="share content facebook"/><category term="sinhala font widget"/><category term="solving ERR_CONNECTION_REFUSED"/><category term="son to class map"/><category term="specify  file input height all browsers"/><category term="speed up EF .Net Core Select"/><category term="split string sql server"/><category term="sql remove duplicates from query"/><category term="sql search"/><category term="sql server eliminate duplicates from query"/><category term="sql server get open connections"/><category term="sql server send mms"/><category term="sql server split"/><category term="sql server string convert date"/><category term="stop Chrome from yellowing  input boxes"/><category term="stored procedure insert result to a temporary table"/><category term="style ifram"/><category term="style sheet for print"/><category term="table  iterate"/><category term="table find cell value"/><category term="table find element jQuery"/><category term="table get next row"/><category term="target Microsoft Edge with CSS"/><category term="task return null"/><category term="textbox autofilll chrome issue"/><category term="textbox detect change"/><category term="textbox on change"/><category term="the web application project is configured to use iis"/><category term="unable to run gulp"/><category term="uninstall problematic Programs .Windows 11/10:   uninstall problematic Programs"/><category term="updatepanel DOM ready issue"/><category term="url redirect check"/><category term="use ADO.NET via Context.Database"/><category term="use Select results into Insert script"/><category term="use Session variable in an HttpHandler.How can I use Session variable in an HttpHandler"/><category term="use data dash attributes to find and element"/><category term="use of .http file"/><category term="using AjaxFileupload inside an UpdatePanel"/><category term="using Google map inside update panel"/><category term="using Temp tables in SSIS"/><category term="using data attributes in CSS"/><category term="using data attributes in HTML helper"/><category term="validate HH:MM AM/PM"/><category term="validate bool using FluentValidation"/><category term="vb net url validator"/><category term="visual studio 2010/2012/2013 nuget error"/><category term="visual studio improve debugging"/><category term="visual studio take long time to debug"/><category term="vs 2028 features"/><category term="warn user when caps lok is on"/><category term="web application exists  on IIS and IIS express"/><category term="web application exists on both the local IIS web server and the IIS Express web server"/><category term="web page print style sheet"/><category term="web.config maxRequestLength"/><category term="what is  .http file"/><category term="what is new in .net 2015"/><category term="when to use clearInterval"/><category term="windows 2019  firewall prevent port 1433"/><category term="windows 2019 firewall exceptions"/><category term="work from home"/><category term="wrap the text in the DisplayFor in MVC view"/><category term="zen coding visual studio 2012"/><category term="“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider” could not be located"/><title type='text'>.Netter Tech Blog</title><subtitle type='html'>Blogs Tech stuff and many more...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>434</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-594266686189146022</id><published>2026-10-10T02:52:32.293-07:00</published><updated>2026-10-10T02:52:32.294-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cloud Computing"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Serverless"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Architecture"/><title type='text'>Serverless Architecture in 2026: Benefits, Challenges, and When to Use Ii</title><content type='html'>&lt;p&gt;&amp;nbsp;Serverless architecture (utilizing services like AWS Lambda, Google Cloud Functions, and Vercel) has matured immensely. It promises a world where developers focus entirely on writing business logic without worrying about provisioning servers, scaling clusters, or managing operating systems.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Major Benefits:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;True Pay-As-You-Go Pricing:: You pay only for the exact milliseconds your code executes. If traffic drops to zero, your hosting cost drops to zero.&lt;/li&gt;&lt;li&gt;Automatic Scaling: Serverless platforms scale up instantly during traffic spikes and scale down just as fast.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Challenges to Keep in Mind:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Cold Starts:When a function hasn&#39;t been invoked recently, the initial request might experience a slight latency delay while the container spins up.&lt;/li&gt;&lt;li&gt;Vendor Lock-In: Migrating serverless functions from AWS to GCP or Azure can require substantial rewrites due to proprietary event triggers and SDKs.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Verdict&lt;/b&gt;:&lt;/p&gt;&lt;p&gt;&amp;nbsp;Serverless is ideal for event-driven processing, APIs with fluctuating traffic, and rapid MVP development. For heavy, continuous workloads, traditional containers (like Docker and Kubernetes) may still be more cost-effective.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/594266686189146022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/10/serverless-architecture-2026-guide.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/594266686189146022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/594266686189146022'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/10/serverless-architecture-2026-guide.html' title='Serverless Architecture in 2026: Benefits, Challenges, and When to Use Ii'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-3438123833398104709</id><published>2026-09-27T08:08:55.424-07:00</published><updated>2026-09-27T08:08:55.424-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cybersecurity"/><category scheme="http://www.blogger.com/atom/ns#" term="DevSecOps"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Engineering"/><title type='text'>5 Essential Cybersecurity Practices Every Software Developer Must Follow</title><content type='html'>&lt;p&gt;&amp;nbsp;With cyber threats evolving rapidly, security can no longer be an afterthought handled solely by the IT or operations team. Security must start in the IDE—a concept known as **Shift-Left Security**.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here are five essential practices every developer must implement:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;1. Never Hardcode Secrets:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Always use environment variables or secure secret managers (like AWS Secrets Manager or HashiCorp Vault) for API keys, database credentials, and tokens.&lt;/p&gt;&lt;p&gt;&lt;b&gt;2. Automate Dependency Scanning:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Integrate tools like Snyk or GitHub Dependabot to catch vulnerabilities in third-party libraries before they hit production.&lt;/p&gt;&lt;p&gt;&lt;b&gt;3. Implement Strict Input Validation:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Never trust user input. Sanitize and validate all incoming data on both the client and server sides to prevent SQL injection and XSS attacks.&lt;/p&gt;&lt;p&gt;&lt;b&gt;4. Enforce the Principle of Least Privilege:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Ensure that microservices, database accounts, and internal APIs only have access to the exact resources they need to function—nothing more.&lt;/p&gt;&lt;p&gt;&lt;b&gt;5. Regular Code Reviews and SAST:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Use Static Application Security Testing (SAST) tools to scan your codebase automatically during your CI/CD pipeline builds.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cheers,&lt;/p&gt;&lt;p&gt;Samitha&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/3438123833398104709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/09/cybersecurity-practices-software-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/3438123833398104709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/3438123833398104709'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/09/cybersecurity-practices-software-developers.html' title='5 Essential Cybersecurity Practices Every Software Developer Must Follow'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-2228819213624950450</id><published>2026-09-21T20:44:29.158-07:00</published><updated>2026-09-27T08:05:20.209-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Migration"/><category scheme="http://www.blogger.com/atom/ns#" term="Database Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Excel Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="SSMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Troubleshooting"/><title type='text'>How to Fix Excel Dates Copying Incorrectly into SSMS (SQL Server Management Studio)</title><content type='html'>&lt;p&gt;&amp;nbsp;If you have ever tried copying date cells straight from Excel into SQL Server Management Studio (SSMS) and ended up with weird numbers or import errors, you are not alone.&lt;/p&gt;&lt;p data-path-to-node=&quot;3&quot;&gt;When you copy standard date cells, Excel places both the formatted view and the raw serial number onto your system clipboard. SSMS often captures that raw serial number instead of the actual date string, causing formatting conflicts.&lt;/p&gt;&lt;p data-path-to-node=&quot;4&quot;&gt;Here is a quick, foolproof workaround to ensure your dates paste correctly every single time.&lt;/p&gt;&lt;h3 data-path-to-node=&quot;6&quot;&gt;The Solution: Use Excel&#39;s TEXT Function&lt;/h3&gt;&lt;p data-path-to-node=&quot;7&quot;&gt;To force SSMS to accept your data as a proper date during a direct copy-and-paste, you need to convert the dates into a clean text format in Excel first.&lt;/p&gt;&lt;ol data-path-to-node=&quot;8&quot; start=&quot;1&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;8,0,0&quot;&gt;&lt;span data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;Create a temporary helper column&lt;/span&gt; next to your original data.&amp;nbsp;&lt;span data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot;&gt;Use the TEXT function&lt;/span&gt; to convert the date into standard ISO format (&lt;code data-index-in-node=&quot;68&quot; data-path-to-node=&quot;8,1,0&quot;&gt;YYYY-MM-DD&lt;/code&gt;). For example, if your original date is in cell &lt;code data-index-in-node=&quot;46&quot; data-path-to-node=&quot;8,2,0&quot;&gt;A2&lt;/code&gt;, enter this formula in your helper column:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;response-element class=&quot;no-md&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c4001850310=&quot;&quot; class=&quot;ng-tns-c4001850310-15 enable-luminous-code-block ng-star-inserted&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block ng-tns-c4001850310-15 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation&quot; data-hveid=&quot;0&quot; data-ved=&quot;0CAAQhtANahcKEwj-9tqCooGXAxUAAAAAHQAAAAAQJQ&quot; decode-data-ved=&quot;1&quot; jslog=&quot;223238;track:impression,attention;BardVeMetadataKey:W1sicl9jNzdiYTQyZGY4ZWQ3YThkIiwiY18yYmFjZjU5YmI2NmNhMzZjIixudWxsLCJyY182YTU2Njc4YzhmMjg0ODg3IixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d&quot;&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;formatted-code-block-internal-container ng-tns-c4001850310-15&quot;&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;animated-opacity ng-tns-c4001850310-15&quot;&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;Excel&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;=TEXT(A2, &quot;yyyy-mm-dd&quot;)&lt;/div&gt;&lt;/blockquote&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;Drag this formula down for all rows, then copy these new text-formatted values (and **Copy &amp;gt; Paste Values** if you want to strip the formulas).&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;2. Verify the destination column type:&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;In SQL Server Management Studio, make sure the target column type is explicitly set to `DATE` or `DATETIME` (and not `INT` or `FLOAT`). If the column is numeric, SSMS will force the pasted text back into a number.&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;3. Paste the data into the SSMS grid:&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;Right-click your table in SSMS and select **Edit Top 200 Rows**.&lt;/li&gt;&lt;li&gt;Scroll down to the bottom, empty row marked with an asterisk (`*`).&lt;/li&gt;&lt;li&gt;Click the row selector header on the far left, and press `Ctrl + V` to paste.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;b&gt;Verification&lt;/b&gt;: Click away from the pasted row to commit the changes. The dates should save successfully as `YYYY-MM-DD` calendar dates instead of numbers.&lt;/div&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;buttons ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;gem-icon-button _ngcontent-ng-c4001850310=&quot;&quot; _nghost-ng-c3431756913=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-23&quot; arialabel=&quot;Copy code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger copy-button ng-tns-c4001850310-15 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; data-test-id=&quot;gem-copy-button&quot; fonticonname=&quot;copy&quot; gemtooltip=&quot;Copy code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;&lt;br /&gt;&lt;/gem-icon-button&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;buttons ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;gem-icon-button _ngcontent-ng-c4001850310=&quot;&quot; _nghost-ng-c3431756913=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-23&quot; arialabel=&quot;Copy code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger copy-button ng-tns-c4001850310-15 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; data-test-id=&quot;gem-copy-button&quot; fonticonname=&quot;copy&quot; gemtooltip=&quot;Copy code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;Cheers,&lt;/gem-icon-button&gt;&lt;/div&gt;&lt;div _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;buttons ng-tns-c4001850310-15 ng-star-inserted&quot;&gt;&lt;gem-icon-button _ngcontent-ng-c4001850310=&quot;&quot; _nghost-ng-c3431756913=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-23&quot; arialabel=&quot;Copy code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger copy-button ng-tns-c4001850310-15 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; data-test-id=&quot;gem-copy-button&quot; fonticonname=&quot;copy&quot; gemtooltip=&quot;Copy code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;Samitha&lt;/gem-icon-button&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;ng-tns-c4001850310-15&quot;&gt;&lt;code _ngcontent-ng-c4001850310=&quot;&quot; class=&quot;code-container formatted ng-tns-c4001850310-15&quot; data-test-id=&quot;code-content&quot; role=&quot;text&quot;&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code-block&gt;&lt;/response-element&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/2228819213624950450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/09/httpsssenarath.blogspot.com202609fix-excel-dates-copying-into-ssms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/2228819213624950450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/2228819213624950450'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/09/httpsssenarath.blogspot.com202609fix-excel-dates-copying-into-ssms.html' title='How to Fix Excel Dates Copying Incorrectly into SSMS (SQL Server Management Studio)'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-4833208148752839213</id><published>2026-09-19T07:07:37.348-07:00</published><updated>2026-09-19T07:07:37.348-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Coding Assistants"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Tech Trends"/><title type='text'>GitHub Copilot vs. Cursor AI: Which Coding Assistant Wins in 2026?</title><content type='html'>&lt;p&gt;Artificial Intelligence has completely revolutionized how we write code. Gone are the days of manually looking up syntax or boilerplate templates. Today, developers have powerful AI tools integrated right into their workflows. Two names dominate the landscape: **GitHub Copilot** and **Cursor AI**.&lt;/p&gt;&lt;p&gt;Let’s break down how they compare:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;GitHub Copilot:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The pioneer of mainstream AI code completion. It integrates seamlessly as an extension into VS Code, JetBrains, and other IDEs. It excels at inline code suggestions and multi-file context understanding.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Cursor AI:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;A standalone fork of VS Code built from the ground up specifically for AI pair programming. Features like deep codebase indexing, the &quot;Composer&quot; mode for multi-file edits, and chat panels make it feel like a true co-pilot rather than just an autocomplete tool.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Which one should you choose?&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;If you love your current IDE setup and want reliable, fast inline suggestions, GitHub Copilot is a safe bet. If you want a deeper, conversational workflow that can refactor your entire project structure automatically, Cursor AI currently takes the crown for raw innovation.&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers&lt;/div&gt;&lt;div&gt;Samitha&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/4833208148752839213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/09/httpsssenarath.blogspot.com202609cursor-ai-vs-github-copilot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/4833208148752839213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/4833208148752839213'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/09/httpsssenarath.blogspot.com202609cursor-ai-vs-github-copilot.html' title='GitHub Copilot vs. Cursor AI: Which Coding Assistant Wins in 2026?'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-6354952163637793650</id><published>2026-09-13T02:05:32.008-07:00</published><updated>2026-09-13T02:06:02.760-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Development Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="MSBuild"/><category scheme="http://www.blogger.com/atom/ns#" term="visual studio"/><title type='text'>How to Exclude the Docs Folder from MSBuild and Static Web Assets in .NET</title><content type='html'>&lt;p&gt;&amp;nbsp;If you are managing a .NET solution where documentation files reside in a root-level &lt;code data-index-in-node=&quot;85&quot; data-path-to-node=&quot;3&quot;&gt;docs&lt;/code&gt; folder, you might run into issues where MSBuild or static web assets unnecessarily scan, compile, or include these files in your build output.&lt;/p&gt;&lt;p data-path-to-node=&quot;4&quot;&gt;You can easily prevent this by adding a targeted MSBuild configuration to your project file (&lt;code data-index-in-node=&quot;93&quot; data-path-to-node=&quot;4&quot;&gt;.csproj&lt;/code&gt;).&lt;/p&gt;&lt;h3 data-path-to-node=&quot;6&quot;&gt;The MSBuild Snippet&lt;/h3&gt;&lt;p data-path-to-node=&quot;7&quot;&gt;Add the following &lt;code data-index-in-node=&quot;18&quot; data-path-to-node=&quot;7&quot;&gt;&amp;lt;ItemGroup&amp;gt;&lt;/code&gt; snippet directly into your project&#39;s &lt;code data-index-in-node=&quot;67&quot; data-path-to-node=&quot;7&quot;&gt;.csproj&lt;/code&gt; file:&lt;/p&gt;&lt;response-element class=&quot;no-md&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot;&gt;&lt;code-block _nghost-ng-c1450388852=&quot;&quot; class=&quot;ng-tns-c1450388852-15 enable-luminous-code-block ng-star-inserted&quot;&gt;&lt;div _ngcontent-ng-c1450388852=&quot;&quot; class=&quot;code-block ng-tns-c1450388852-15 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation&quot; data-hveid=&quot;0&quot; data-ved=&quot;0CAAQhtANahcKEwj_0ICMmeuWAxUAAAAAHQAAAAAQKA&quot; decode-data-ved=&quot;1&quot; jslog=&quot;223238;track:impression,attention;BardVeMetadataKey:W1sicl85ZjllOTkzZGI4YWJkYmU5IiwiY19hZDg3NmI4OGZkYzk1ZmI2IixudWxsLCJyY19kN2Q2ZTlkYzdlMDJlMjg3IixudWxsLG51bGwsImVuIixudWxsLDEsbnVsbCxudWxsLDEsMF1d&quot;&gt;&lt;div _ngcontent-ng-c1450388852=&quot;&quot; class=&quot;formatted-code-block-internal-container ng-tns-c1450388852-15&quot;&gt;&lt;div _ngcontent-ng-c1450388852=&quot;&quot; class=&quot;animated-opacity ng-tns-c1450388852-15&quot;&gt;&lt;div _ngcontent-ng-c1450388852=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c1450388852-15 ng-star-inserted&quot;&gt;&lt;div _ngcontent-ng-c1450388852=&quot;&quot; class=&quot;buttons ng-tns-c1450388852-15 ng-star-inserted&quot;&gt;&lt;gem-icon-button _ngcontent-ng-c1450388852=&quot;&quot; _nghost-ng-c2522272073=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-23&quot; arialabel=&quot;Copy code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger copy-button ng-tns-c1450388852-15 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; data-test-id=&quot;gem-copy-button&quot; fonticonname=&quot;copy&quot; gemtooltip=&quot;Copy code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c1450388852=&quot;&quot; class=&quot;ng-tns-c1450388852-15&quot;&gt;&lt;code _ngcontent-ng-c1450388852=&quot;&quot; class=&quot;code-container formatted ng-tns-c1450388852-15&quot; data-test-id=&quot;code-content&quot; role=&quot;text&quot;&gt;&lt;blockquote&gt;&amp;lt;ItemGroup&amp;gt;
     &amp;lt;!-- Prevent static web assets and MSBuild from scanning the docs folder --&amp;gt;
     &amp;lt;Content Remove=&quot;..\..\docs\**&quot; /&amp;gt;
     &amp;lt;None Include=&quot;..\..\docs\**&quot; /&amp;gt;
&amp;lt;/ItemGroup&amp;gt;
&lt;/blockquote&gt;&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;h3 data-path-to-node=&quot;9&quot;&gt;Why Use This?&lt;/h3&gt;&lt;ul data-path-to-node=&quot;10&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;Content Remove&lt;/code&gt;&lt;/b&gt;: Stops MSBuild from treating the files inside the parent &lt;code data-index-in-node=&quot;72&quot; data-path-to-node=&quot;10,0,0&quot;&gt;docs&lt;/code&gt; directory as web content or publishable assets.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;None Include&lt;/code&gt;&lt;/b&gt;: Ensures that while the files are ignored by build pipelines and static asset scanners, they still remain visible within your solution explorer (depending on your IDE settings) without triggering build actions.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,2,0&quot;&gt;Path Traversal (&lt;code data-index-in-node=&quot;16&quot; data-path-to-node=&quot;10,2,0&quot;&gt;..\..\&lt;/code&gt;)&lt;/b&gt;: Adjust the number of &lt;code data-index-in-node=&quot;46&quot; data-path-to-node=&quot;10,2,0&quot;&gt;..\&lt;/code&gt; segments depending on how deep your &lt;code data-index-in-node=&quot;86&quot; data-path-to-node=&quot;10,2,0&quot;&gt;.csproj&lt;/code&gt; file is nested relative to the root &lt;code data-index-in-node=&quot;130&quot; data-path-to-node=&quot;10,2,0&quot;&gt;docs&lt;/code&gt; folder&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers,&lt;/div&gt;&lt;div&gt;Samitha&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/6354952163637793650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/09/how-to-exclude-docs-folder-from-msbuild.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/6354952163637793650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/6354952163637793650'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/09/how-to-exclude-docs-folder-from-msbuild.html' title='How to Exclude the Docs Folder from MSBuild and Static Web Assets in .NET'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-2171367701807845098</id><published>2026-09-06T08:43:31.132-07:00</published><updated>2026-09-06T08:43:31.132-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Git"/><category scheme="http://www.blogger.com/atom/ns#" term="Troubleshooting"/><category scheme="http://www.blogger.com/atom/ns#" term="visual studio"/><title type='text'>Fixed: Visual Studio Git Changes Not Showing Modified Files</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h1 data-path-to-node=&quot;2&quot;&gt;Fixing the &quot;Git Changes Not Showing Modified Files&quot; Issue in Visual Studio&lt;/h1&gt;&lt;p data-path-to-node=&quot;3&quot;&gt;Have you ever made a bunch of code changes, only to look over at the &lt;b data-index-in-node=&quot;69&quot; data-path-to-node=&quot;3&quot;&gt;Git Changes&lt;/b&gt; window in Visual Studio and see... nothing? It’s a frustrating glitch that can grind your workflow to a halt.&lt;/p&gt;&lt;p data-path-to-node=&quot;4&quot;&gt;This issue is usually caused by file-system watcher sync lags, multi-repository root settings, or a minor UI state desynchronization. Fortunately, it’s usually quick to fix. Here are the most effective ways to troubleshoot and resolve the problem:&lt;/p&gt;&lt;h3 data-path-to-node=&quot;6&quot;&gt;1. Manually Refresh the Git Status&lt;/h3&gt;&lt;p data-path-to-node=&quot;7&quot;&gt;Visual Studio relies on background file watchers to detect changes in your workspace. If it misses an update:&lt;/p&gt;&lt;ul data-path-to-node=&quot;8&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;8,0,0&quot;&gt;Click the &lt;b data-index-in-node=&quot;10&quot; data-path-to-node=&quot;8,0,0&quot;&gt;Refresh icon&lt;/b&gt; (the circular arrow) at the top of the &lt;b data-index-in-node=&quot;62&quot; data-path-to-node=&quot;8,0,0&quot;&gt;Git Changes&lt;/b&gt; window.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;8,1,0&quot;&gt;Run &lt;code data-index-in-node=&quot;4&quot; data-path-to-node=&quot;8,1,0&quot;&gt;git status&lt;/code&gt; in an external terminal (such as Git Bash or the Developer Command Prompt) to verify if Git itself recognizes the modifications.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;8,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,2,0&quot;&gt;How to verify:&lt;/b&gt; If the command line shows your modified files but Visual Studio doesn&#39;t, you are dealing with a pure UI sync glitch.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node=&quot;9&quot;&gt;2. Close and Reopen the Git Changes Window&lt;/h3&gt;&lt;p data-path-to-node=&quot;10&quot;&gt;A quick way to force Visual Studio to re-initialize the tool window control is to toggle it off and back on:&lt;/p&gt;&lt;ul data-path-to-node=&quot;11&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;11,0,0&quot;&gt;Close the &lt;b data-index-in-node=&quot;10&quot; data-path-to-node=&quot;11,0,0&quot;&gt;Git Changes&lt;/b&gt; tab.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;11,1,0&quot;&gt;Go to the top menu and select &lt;b data-index-in-node=&quot;30&quot; data-path-to-node=&quot;11,1,0&quot;&gt;View &amp;gt; Git Changes&lt;/b&gt; (or press &lt;code data-index-in-node=&quot;59&quot; data-path-to-node=&quot;11,1,0&quot;&gt;Ctrl + 0&lt;/code&gt;, &lt;code data-index-in-node=&quot;69&quot; data-path-to-node=&quot;11,1,0&quot;&gt;Ctrl + G&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node=&quot;12&quot;&gt;3. Check for Multiple Repositories or Solution Roots&lt;/h3&gt;&lt;p data-path-to-node=&quot;13&quot;&gt;If your solution contains projects spread across different folders or Git submodules, Visual Studio might simply be looking at the wrong repository context:&lt;/p&gt;&lt;ul data-path-to-node=&quot;14&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;14,0,0&quot;&gt;Look at the top of the &lt;b data-index-in-node=&quot;23&quot; data-path-to-node=&quot;14,0,0&quot;&gt;Git Changes&lt;/b&gt; window to check the active repository context.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;14,1,0&quot;&gt;Use the repository selector dropdown to ensure you are targeting the exact root folder where your files were modified.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node=&quot;15&quot;&gt;4. Review Excluded Files and &lt;code data-index-in-node=&quot;29&quot; data-path-to-node=&quot;15&quot;&gt;.gitignore&lt;/code&gt; Rules&lt;/h3&gt;&lt;p data-path-to-node=&quot;16&quot;&gt;Sometimes files fail to show up because they match a newly added or updated &lt;code data-index-in-node=&quot;76&quot; data-path-to-node=&quot;16&quot;&gt;.gitignore&lt;/code&gt; rule, or because Visual Studio&#39;s filters are hiding them:&lt;/p&gt;&lt;ul data-path-to-node=&quot;17&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;17,0,0&quot;&gt;Double-check if your untracked files were accidentally ignored.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;17,1,0&quot;&gt;Ensure your view filters aren&#39;t hiding untracked or specific file types.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node=&quot;18&quot;&gt;5. Restart Visual Studio or Clear the Component Cache&lt;/h3&gt;&lt;p data-path-to-node=&quot;19&quot;&gt;If the underlying Git integration service has crashed or locked up internally:&lt;/p&gt;&lt;ul data-path-to-node=&quot;20&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;20,0,0&quot;&gt;Restart Visual Studio completely.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;20,1,0&quot;&gt;If the problem persists, clear the MEF component cache by deleting the &lt;code data-index-in-node=&quot;71&quot; data-path-to-node=&quot;20,1,0&quot;&gt;%LocalAppData%\Microsoft\VisualStudio\[Version]\ComponentModelCache&lt;/code&gt; folder. This forces Visual Studio to rebuild its internal component extensions on the next launch.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-path-to-node=&quot;22&quot;&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;Have you encountered other Git quirks in Visual Studio? Let us know how you solved them in the comments below!&lt;/i&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/2171367701807845098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/09/fixed-visual-studio-git-changes-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/2171367701807845098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/2171367701807845098'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/09/fixed-visual-studio-git-changes-not.html' title='Fixed: Visual Studio Git Changes Not Showing Modified Files'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-688254993134140486</id><published>2026-08-22T23:08:54.812-07:00</published><updated>2026-08-22T23:10:38.633-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Build Errors"/><category scheme="http://www.blogger.com/atom/ns#" term="How to fix Weird .NET Build Errors"/><title type='text'>How to Fix Weird .NET Build Errors Using dotnet clean and NuGet Cache Clearing</title><content type='html'>&lt;p&gt;If you work with .NET long enough, you will eventually run into a baffling build error where your code looks completely correct, but the compiler stubbornly refuses to cooperate. Often, the culprit isn&#39;t your code—it&#39;s stale build artifacts or corrupted package caches.&lt;/p&gt;&lt;p&gt;In this quick guide, we’ll look at two powerful commands every .NET developer should have in their toolkit: dotnet clean and dotnet nuget locals all --clear.&lt;/p&gt;&lt;p&gt;&lt;b&gt;What does dotnet clean do?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;When you build a .NET project, the compiler generates temporary files, compiled binaries, and cache files stored inside the bin/ and obj/ directories of your project folder.&lt;/p&gt;&lt;p&gt;The dotnet clean command deletes these build outputs (the contents of the bin and obj folders).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Why use it?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;To force a completely fresh build from scratch.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To resolve issues where old compiled files aren&#39;t being updated properly during incremental builds.&lt;/p&gt;&lt;p&gt;Before packaging or publishing your application to ensure no old artifacts sneak in.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Bash&lt;/b&gt;&lt;/p&gt;&lt;p&gt;dotnet clean&lt;/p&gt;&lt;p&gt;(Note: This only affects the local project directory and does not delete your source code.)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;What does dotnet nuget locals all --clear do?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;While dotnet clean clears local project build outputs, NuGet handles external library dependencies. .NET stores downloaded NuGet packages in global machine caches (such as http-cache, global-packages, and temp) so it doesn&#39;t have to re-download them every time.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The dotnet nuget locals all --clear command completely wipes out all local NuGet caches across your machine.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Why use it?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;To fix stubborn package restore errors (e.g., NU1101, NU1202).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;When a package download was interrupted or corrupted, causing constant build failures.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To force .NET to fetch fresh copies of packages from NuGet.org (useful when working with prerelease packages or packages with the same version number updated locally).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Bash&lt;/b&gt;&lt;/p&gt;&lt;p&gt;dotnet nuget locals all --clear&lt;/p&gt;&lt;p&gt;When should you use them together?&lt;/p&gt;&lt;p&gt;If you are experiencing mysterious build errors that won&#39;t go away after a standard rebuild, try running them in sequence as a &quot;nuclear option&quot; to reset your local environment:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;# 1. Clean local build artifacts&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;dotnet clean&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;# 2. Clear all global NuGet caches&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;dotnet nuget locals all --clear&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;# 3. Restore dependencies and rebuild fresh&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;dotnet restore&lt;/p&gt;&lt;p&gt;dotnet build&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/688254993134140486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/08/how-to-fix-weird-net-build-errors-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/688254993134140486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/688254993134140486'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/08/how-to-fix-weird-net-build-errors-using.html' title='How to Fix Weird .NET Build Errors Using dotnet clean and NuGet Cache Clearing'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-1782675035528475361</id><published>2026-08-07T18:00:59.449-07:00</published><updated>2026-08-07T18:00:59.449-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Sql Server offset 0 example"/><category scheme="http://www.blogger.com/atom/ns#" term="Sql Server offset 0 usage"/><title type='text'>Sql Server offset 0 usage </title><content type='html'>&lt;p&gt;&amp;nbsp;In SQL Server, &lt;code data-index-in-node=&quot;15&quot; data-path-to-node=&quot;0&quot;&gt;OFFSET 0 ROWS&lt;/code&gt; instructs the database to skip exactly zero rows before returning data.&lt;/p&gt;&lt;p data-path-to-node=&quot;1&quot;&gt;On its own, skipping zero rows doesn&#39;t change the output, but when paired with the &lt;code data-index-in-node=&quot;83&quot; data-path-to-node=&quot;1&quot;&gt;FETCH NEXT&lt;/code&gt; clause, it becomes the standard, ANSI-compliant way to implement &lt;b data-index-in-node=&quot;159&quot; data-path-to-node=&quot;1&quot;&gt;pagination&lt;/b&gt; (specifically, grabbing the &quot;first page&quot; of results).&lt;/p&gt;&lt;h2 data-path-to-node=&quot;2&quot;&gt;Basic Syntax&lt;/h2&gt;&lt;response-element class=&quot;no-md&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c1274178722=&quot;&quot; class=&quot;ng-tns-c1274178722-21 enable-luminous-code-block ng-star-inserted&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;code-block ng-tns-c1274178722-21 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation&quot; data-hveid=&quot;0&quot; data-ved=&quot;0CAAQhtANahcKEwi88umU6Y-WAxUAAAAAHQAAAAAQKQ&quot; decode-data-ved=&quot;1&quot; jslog=&quot;223238;track:impression,attention;BardVeMetadataKey:[[&amp;quot;r_38a2322ed3d69388&amp;quot;,&amp;quot;c_edc3f7022c8816d0&amp;quot;,null,&amp;quot;rc_d193a63c054fd2a9&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]&quot;&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;formatted-code-block-internal-container ng-tns-c1274178722-21&quot;&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;animated-opacity ng-tns-c1274178722-21&quot;&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c1274178722-21 ng-star-inserted&quot;&gt;&lt;span _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;ng-tns-c1274178722-21&quot;&gt;SQL&lt;/span&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;buttons ng-tns-c1274178722-21 ng-star-inserted&quot;&gt;&lt;gem-icon-button _ngcontent-ng-c1274178722=&quot;&quot; _nghost-ng-c442743132=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-27&quot; arialabel=&quot;Download code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger download-button ng-tns-c1274178722-21 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; fonticonname=&quot;arrow_circle_down&quot; gemtooltip=&quot;Download code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c442743132=&quot;&quot; aria-label=&quot;Download code&quot; class=&quot;mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted&quot; jslog=&quot;305704;track:generic_click,impression&quot; mat-ripple-loader-centered=&quot;&quot; mat-ripple-loader-class-name=&quot;mat-mdc-button-ripple&quot; mat-ripple-loader-uninitialized=&quot;&quot; matbadgeposition=&quot;after&quot; maticonbutton=&quot;&quot;&gt;&lt;span class=&quot;mat-mdc-button-persistent-ripple mdc-icon-button__ripple&quot;&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c442743132=&quot;&quot; _nghost-ng-c2752513697=&quot;&quot;&gt;&lt;mat-icon _ngcontent-ng-c2752513697=&quot;&quot; aria-hidden=&quot;true&quot; class=&quot;mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted&quot; data-mat-icon-name=&quot;arrow_circle_down&quot; data-mat-icon-namespace=&quot;lumi-symbols&quot; data-mat-icon-type=&quot;font&quot; fonticon=&quot;arrow_circle_down&quot; role=&quot;img&quot;&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class=&quot;mat-focus-indicator&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mat-mdc-button-touch-target&quot;&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;gem-icon-button _ngcontent-ng-c1274178722=&quot;&quot; _nghost-ng-c442743132=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-28&quot; arialabel=&quot;Copy code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger copy-button ng-tns-c1274178722-21 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; data-test-id=&quot;gem-copy-button&quot; fonticonname=&quot;copy&quot; gemtooltip=&quot;Copy code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c442743132=&quot;&quot; aria-label=&quot;Copy code&quot; class=&quot;mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted&quot; jslog=&quot;179062;track:generic_click,impression;BardVeMetadataKey:[[&amp;quot;r_38a2322ed3d69388&amp;quot;,&amp;quot;c_edc3f7022c8816d0&amp;quot;,null,&amp;quot;rc_d193a63c054fd2a9&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]];mutable:true&quot; mat-ripple-loader-centered=&quot;&quot; mat-ripple-loader-class-name=&quot;mat-mdc-button-ripple&quot; mat-ripple-loader-uninitialized=&quot;&quot; matbadgeposition=&quot;after&quot; maticonbutton=&quot;&quot;&gt;&lt;span class=&quot;mat-mdc-button-persistent-ripple mdc-icon-button__ripple&quot;&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c442743132=&quot;&quot; _nghost-ng-c2752513697=&quot;&quot;&gt;&lt;mat-icon _ngcontent-ng-c2752513697=&quot;&quot; aria-hidden=&quot;true&quot; class=&quot;mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted&quot; data-mat-icon-name=&quot;copy&quot; data-mat-icon-namespace=&quot;lumi-symbols&quot; data-mat-icon-type=&quot;font&quot; fonticon=&quot;copy&quot; role=&quot;img&quot;&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class=&quot;mat-focus-indicator&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mat-mdc-button-touch-target&quot;&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;ng-tns-c1274178722-21&quot;&gt;&lt;code _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;code-container formatted ng-tns-c1274178722-21&quot; data-test-id=&quot;code-content&quot; role=&quot;text&quot;&gt;&lt;span class=&quot;hljs-keyword&quot;&gt;SELECT&lt;/span&gt; column_name(s)
&lt;span class=&quot;hljs-keyword&quot;&gt;FROM&lt;/span&gt; table_name
&lt;span class=&quot;hljs-keyword&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;BY&lt;/span&gt; sort_column
&lt;span class=&quot;hljs-keyword&quot;&gt;OFFSET&lt;/span&gt; &lt;span class=&quot;hljs-number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;ROWS&lt;/span&gt; 
&lt;span class=&quot;hljs-keyword&quot;&gt;FETCH&lt;/span&gt; NEXT n &lt;span class=&quot;hljs-keyword&quot;&gt;ROWS&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;ONLY&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;h2 data-path-to-node=&quot;5&quot;&gt;e.g 1: The &quot;First Page&quot; of Results&lt;/h2&gt;&lt;p data-path-to-node=&quot;6&quot;&gt;Imagine you have an &lt;code data-index-in-node=&quot;20&quot; data-path-to-node=&quot;6&quot;&gt;Employees&lt;/code&gt; table, and you are building a UI that displays 5 employees per page, starting with the highest earners.&lt;/p&gt;&lt;p data-path-to-node=&quot;7&quot;&gt;To get &lt;b data-index-in-node=&quot;7&quot; data-path-to-node=&quot;7&quot;&gt;Page 1&lt;/b&gt;, you use &lt;code data-index-in-node=&quot;23&quot; data-path-to-node=&quot;7&quot;&gt;OFFSET 0&lt;/code&gt;:&lt;/p&gt;&lt;response-element class=&quot;no-md&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c1274178722=&quot;&quot; class=&quot;ng-tns-c1274178722-22 enable-luminous-code-block ng-star-inserted&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;code-block ng-tns-c1274178722-22 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation&quot; data-hveid=&quot;0&quot; data-ved=&quot;0CAAQhtANahcKEwi88umU6Y-WAxUAAAAAHQAAAAAQKg&quot; decode-data-ved=&quot;1&quot; jslog=&quot;223238;track:impression,attention;BardVeMetadataKey:[[&amp;quot;r_38a2322ed3d69388&amp;quot;,&amp;quot;c_edc3f7022c8816d0&amp;quot;,null,&amp;quot;rc_d193a63c054fd2a9&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]&quot;&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;formatted-code-block-internal-container ng-tns-c1274178722-22&quot;&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;animated-opacity ng-tns-c1274178722-22&quot;&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c1274178722-22 ng-star-inserted&quot;&gt;&lt;span _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;ng-tns-c1274178722-22&quot;&gt;SQL&lt;/span&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;buttons ng-tns-c1274178722-22 ng-star-inserted&quot;&gt;&lt;gem-icon-button _ngcontent-ng-c1274178722=&quot;&quot; _nghost-ng-c442743132=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-27&quot; arialabel=&quot;Download code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger download-button ng-tns-c1274178722-22 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; fonticonname=&quot;arrow_circle_down&quot; gemtooltip=&quot;Download code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c442743132=&quot;&quot; aria-label=&quot;Download code&quot; class=&quot;mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted&quot; jslog=&quot;305704;track:generic_click,impression&quot; mat-ripple-loader-centered=&quot;&quot; mat-ripple-loader-class-name=&quot;mat-mdc-button-ripple&quot; mat-ripple-loader-uninitialized=&quot;&quot; matbadgeposition=&quot;after&quot; maticonbutton=&quot;&quot;&gt;&lt;span class=&quot;mat-mdc-button-persistent-ripple mdc-icon-button__ripple&quot;&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c442743132=&quot;&quot; _nghost-ng-c2752513697=&quot;&quot;&gt;&lt;mat-icon _ngcontent-ng-c2752513697=&quot;&quot; aria-hidden=&quot;true&quot; class=&quot;mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted&quot; data-mat-icon-name=&quot;arrow_circle_down&quot; data-mat-icon-namespace=&quot;lumi-symbols&quot; data-mat-icon-type=&quot;font&quot; fonticon=&quot;arrow_circle_down&quot; role=&quot;img&quot;&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class=&quot;mat-focus-indicator&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mat-mdc-button-touch-target&quot;&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;gem-icon-button _ngcontent-ng-c1274178722=&quot;&quot; _nghost-ng-c442743132=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-28&quot; arialabel=&quot;Copy code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger copy-button ng-tns-c1274178722-22 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; data-test-id=&quot;gem-copy-button&quot; fonticonname=&quot;copy&quot; gemtooltip=&quot;Copy code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c442743132=&quot;&quot; aria-label=&quot;Copy code&quot; class=&quot;mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted&quot; jslog=&quot;179062;track:generic_click,impression;BardVeMetadataKey:[[&amp;quot;r_38a2322ed3d69388&amp;quot;,&amp;quot;c_edc3f7022c8816d0&amp;quot;,null,&amp;quot;rc_d193a63c054fd2a9&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]];mutable:true&quot; mat-ripple-loader-centered=&quot;&quot; mat-ripple-loader-class-name=&quot;mat-mdc-button-ripple&quot; mat-ripple-loader-uninitialized=&quot;&quot; matbadgeposition=&quot;after&quot; maticonbutton=&quot;&quot;&gt;&lt;span class=&quot;mat-mdc-button-persistent-ripple mdc-icon-button__ripple&quot;&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c442743132=&quot;&quot; _nghost-ng-c2752513697=&quot;&quot;&gt;&lt;mat-icon _ngcontent-ng-c2752513697=&quot;&quot; aria-hidden=&quot;true&quot; class=&quot;mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted&quot; data-mat-icon-name=&quot;copy&quot; data-mat-icon-namespace=&quot;lumi-symbols&quot; data-mat-icon-type=&quot;font&quot; fonticon=&quot;copy&quot; role=&quot;img&quot;&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class=&quot;mat-focus-indicator&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mat-mdc-button-touch-target&quot;&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;ng-tns-c1274178722-22&quot;&gt;&lt;code _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;code-container formatted ng-tns-c1274178722-22&quot; data-test-id=&quot;code-content&quot; role=&quot;text&quot;&gt;&lt;span class=&quot;hljs-keyword&quot;&gt;SELECT&lt;/span&gt; EmployeeID, FirstName, LastName, Salary
&lt;span class=&quot;hljs-keyword&quot;&gt;FROM&lt;/span&gt; Employees
&lt;span class=&quot;hljs-keyword&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;BY&lt;/span&gt; Salary &lt;span class=&quot;hljs-keyword&quot;&gt;DESC&lt;/span&gt;
&lt;span class=&quot;hljs-keyword&quot;&gt;OFFSET&lt;/span&gt; &lt;span class=&quot;hljs-number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;ROWS&lt;/span&gt; 
&lt;span class=&quot;hljs-keyword&quot;&gt;FETCH&lt;/span&gt; NEXT &lt;span class=&quot;hljs-number&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;ROWS&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;ONLY&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;p data-path-to-node=&quot;9&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9&quot;&gt;How it works:&lt;/b&gt;&lt;/p&gt;&lt;ol data-path-to-node=&quot;10&quot; start=&quot;1&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;ORDER BY Salary DESC&lt;/code&gt;&lt;/b&gt;: Sorts the employees from highest to lowest salary.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;OFFSET 0 ROWS&lt;/code&gt;&lt;/b&gt;: Starts at the very first row of that sorted list (skips nothing).&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,2,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,2,0&quot;&gt;FETCH NEXT 5 ROWS ONLY&lt;/code&gt;&lt;/b&gt;: Grabs exactly 5 rows and stops.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-path-to-node=&quot;11&quot;&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11&quot;&gt;(To get Page 2, you would change it to &lt;code data-index-in-node=&quot;39&quot; data-path-to-node=&quot;11&quot;&gt;OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY&lt;/code&gt;)&lt;/i&gt;.&lt;/p&gt;&lt;h2 data-path-to-node=&quot;13&quot;&gt;e.g 2: Dynamic Pagination in a Stored Procedure&lt;/h2&gt;&lt;p data-path-to-node=&quot;14&quot;&gt;The most common real-world use case for &lt;code data-index-in-node=&quot;40&quot; data-path-to-node=&quot;14&quot;&gt;OFFSET 0&lt;/code&gt; is inside stored procedures where pagination math is calculated dynamically using variables.&lt;/p&gt;&lt;p data-path-to-node=&quot;15&quot;&gt;When a user requests Page 1, the math automatically calculates to &lt;code data-index-in-node=&quot;66&quot; data-path-to-node=&quot;15&quot;&gt;OFFSET 0&lt;/code&gt;.&lt;/p&gt;&lt;response-element class=&quot;no-md&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;code-block _nghost-ng-c1274178722=&quot;&quot; class=&quot;ng-tns-c1274178722-23 enable-luminous-code-block ng-star-inserted&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;code-block ng-tns-c1274178722-23 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation&quot; data-hveid=&quot;0&quot; data-ved=&quot;0CAAQhtANahcKEwi88umU6Y-WAxUAAAAAHQAAAAAQKw&quot; decode-data-ved=&quot;1&quot; jslog=&quot;223238;track:impression,attention;BardVeMetadataKey:[[&amp;quot;r_38a2322ed3d69388&amp;quot;,&amp;quot;c_edc3f7022c8816d0&amp;quot;,null,&amp;quot;rc_d193a63c054fd2a9&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]&quot;&gt;&lt;!----&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;formatted-code-block-internal-container ng-tns-c1274178722-23&quot;&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;animated-opacity ng-tns-c1274178722-23&quot;&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c1274178722-23 ng-star-inserted&quot;&gt;&lt;span _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;ng-tns-c1274178722-23&quot;&gt;SQL&lt;/span&gt;&lt;div _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;buttons ng-tns-c1274178722-23 ng-star-inserted&quot;&gt;&lt;gem-icon-button _ngcontent-ng-c1274178722=&quot;&quot; _nghost-ng-c442743132=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-27&quot; arialabel=&quot;Download code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger download-button ng-tns-c1274178722-23 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; fonticonname=&quot;arrow_circle_down&quot; gemtooltip=&quot;Download code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c442743132=&quot;&quot; aria-label=&quot;Download code&quot; class=&quot;mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted&quot; jslog=&quot;305704;track:generic_click,impression&quot; mat-ripple-loader-centered=&quot;&quot; mat-ripple-loader-class-name=&quot;mat-mdc-button-ripple&quot; mat-ripple-loader-uninitialized=&quot;&quot; matbadgeposition=&quot;after&quot; maticonbutton=&quot;&quot;&gt;&lt;span class=&quot;mat-mdc-button-persistent-ripple mdc-icon-button__ripple&quot;&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c442743132=&quot;&quot; _nghost-ng-c2752513697=&quot;&quot;&gt;&lt;mat-icon _ngcontent-ng-c2752513697=&quot;&quot; aria-hidden=&quot;true&quot; class=&quot;mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted&quot; data-mat-icon-name=&quot;arrow_circle_down&quot; data-mat-icon-namespace=&quot;lumi-symbols&quot; data-mat-icon-type=&quot;font&quot; fonticon=&quot;arrow_circle_down&quot; role=&quot;img&quot;&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class=&quot;mat-focus-indicator&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mat-mdc-button-touch-target&quot;&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;gem-icon-button _ngcontent-ng-c1274178722=&quot;&quot; _nghost-ng-c442743132=&quot;&quot; aria-describedby=&quot;cdk-describedby-message-ng-1-28&quot; arialabel=&quot;Copy code&quot; cdk-describedby-host=&quot;ng-1&quot; class=&quot;mat-mdc-tooltip-trigger copy-button ng-tns-c1274178722-23 gem-button gem-button-badge-size-small gem-button-size-small gem-button-type-on-surface lm-enabled ng-star-inserted&quot; data-test-id=&quot;gem-copy-button&quot; fonticonname=&quot;copy&quot; gemtooltip=&quot;Copy code&quot; size=&quot;small&quot; tabindex=&quot;-1&quot; theme=&quot;lm&quot; type=&quot;onSurface&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;button _ngcontent-ng-c442743132=&quot;&quot; aria-label=&quot;Copy code&quot; class=&quot;mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted&quot; jslog=&quot;179062;track:generic_click,impression;BardVeMetadataKey:[[&amp;quot;r_38a2322ed3d69388&amp;quot;,&amp;quot;c_edc3f7022c8816d0&amp;quot;,null,&amp;quot;rc_d193a63c054fd2a9&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]];mutable:true&quot; mat-ripple-loader-centered=&quot;&quot; mat-ripple-loader-class-name=&quot;mat-mdc-button-ripple&quot; mat-ripple-loader-uninitialized=&quot;&quot; matbadgeposition=&quot;after&quot; maticonbutton=&quot;&quot;&gt;&lt;span class=&quot;mat-mdc-button-persistent-ripple mdc-icon-button__ripple&quot;&gt;&lt;/span&gt;&lt;gem-icon _ngcontent-ng-c442743132=&quot;&quot; _nghost-ng-c2752513697=&quot;&quot;&gt;&lt;mat-icon _ngcontent-ng-c2752513697=&quot;&quot; aria-hidden=&quot;true&quot; class=&quot;mat-icon notranslate lm-icon-l lumi-symbols mat-ligature-font mat-icon-no-color ng-star-inserted&quot; data-mat-icon-name=&quot;copy&quot; data-mat-icon-namespace=&quot;lumi-symbols&quot; data-mat-icon-type=&quot;font&quot; fonticon=&quot;copy&quot; role=&quot;img&quot;&gt;&lt;/mat-icon&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon&gt;&lt;!----&gt;&lt;span class=&quot;mat-focus-indicator&quot;&gt;&lt;/span&gt;&lt;span class=&quot;mat-mdc-button-touch-target&quot;&gt;&lt;/span&gt;&lt;/button&gt;&lt;!----&gt;&lt;!----&gt;&lt;/gem-icon-button&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;pre _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;ng-tns-c1274178722-23&quot;&gt;&lt;code _ngcontent-ng-c1274178722=&quot;&quot; class=&quot;code-container formatted ng-tns-c1274178722-23&quot; data-test-id=&quot;code-content&quot; role=&quot;text&quot;&gt;&lt;span class=&quot;hljs-keyword&quot;&gt;DECLARE&lt;/span&gt; &lt;span class=&quot;hljs-variable&quot;&gt;@PageNumber&lt;/span&gt; &lt;span class=&quot;hljs-type&quot;&gt;INT&lt;/span&gt; &lt;span class=&quot;hljs-operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;hljs-number&quot;&gt;1&lt;/span&gt;; &lt;span class=&quot;hljs-comment&quot;&gt;-- The user wants the 1st page&lt;/span&gt;
&lt;span class=&quot;hljs-keyword&quot;&gt;DECLARE&lt;/span&gt; &lt;span class=&quot;hljs-variable&quot;&gt;@PageSize&lt;/span&gt; &lt;span class=&quot;hljs-type&quot;&gt;INT&lt;/span&gt; &lt;span class=&quot;hljs-operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;hljs-number&quot;&gt;10&lt;/span&gt;;  &lt;span class=&quot;hljs-comment&quot;&gt;-- The user wants 10 records per page&lt;/span&gt;

&lt;span class=&quot;hljs-keyword&quot;&gt;SELECT&lt;/span&gt; EmployeeID, FirstName, LastName, Department
&lt;span class=&quot;hljs-keyword&quot;&gt;FROM&lt;/span&gt; Employees
&lt;span class=&quot;hljs-keyword&quot;&gt;ORDER&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;BY&lt;/span&gt; LastName &lt;span class=&quot;hljs-keyword&quot;&gt;ASC&lt;/span&gt;
&lt;span class=&quot;hljs-comment&quot;&gt;-- The math: (1 - 1) * 10 = 0. So this resolves to OFFSET 0 ROWS&lt;/span&gt;
&lt;span class=&quot;hljs-keyword&quot;&gt;OFFSET&lt;/span&gt; (&lt;span class=&quot;hljs-variable&quot;&gt;@PageNumber&lt;/span&gt; &lt;span class=&quot;hljs-operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;hljs-number&quot;&gt;1&lt;/span&gt;) &lt;span class=&quot;hljs-operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;hljs-variable&quot;&gt;@PageSize&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;ROWS&lt;/span&gt; 
&lt;span class=&quot;hljs-keyword&quot;&gt;FETCH&lt;/span&gt; NEXT &lt;span class=&quot;hljs-variable&quot;&gt;@PageSize&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;ROWS&lt;/span&gt; &lt;span class=&quot;hljs-keyword&quot;&gt;ONLY&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/code-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;h2 data-path-to-node=&quot;18&quot;&gt;Important Rules&lt;/h2&gt;&lt;ul data-path-to-node=&quot;19&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;19,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,0,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,0,0&quot;&gt;ORDER BY&lt;/code&gt; is Mandatory:&lt;/b&gt; You cannot use &lt;code data-index-in-node=&quot;38&quot; data-path-to-node=&quot;19,0,0&quot;&gt;OFFSET&lt;/code&gt; without an &lt;code data-index-in-node=&quot;56&quot; data-path-to-node=&quot;19,0,0&quot;&gt;ORDER BY&lt;/code&gt; clause. The database needs a definitive sorting order to know exactly &lt;i data-index-in-node=&quot;135&quot; data-path-to-node=&quot;19,0,0&quot;&gt;which&lt;/i&gt; rows it is skipping.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;19,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,1,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,1,0&quot;&gt;FETCH&lt;/code&gt; is Optional:&lt;/b&gt; You can use &lt;code data-index-in-node=&quot;31&quot; data-path-to-node=&quot;19,1,0&quot;&gt;OFFSET&lt;/code&gt; without &lt;code data-index-in-node=&quot;46&quot; data-path-to-node=&quot;19,1,0&quot;&gt;FETCH&lt;/code&gt;. If you write &lt;code data-index-in-node=&quot;66&quot; data-path-to-node=&quot;19,1,0&quot;&gt;OFFSET 10 ROWS&lt;/code&gt; without a &lt;code data-index-in-node=&quot;91&quot; data-path-to-node=&quot;19,1,0&quot;&gt;FETCH&lt;/code&gt; clause, SQL Server will skip the first 10 rows and return &lt;i data-index-in-node=&quot;155&quot; data-path-to-node=&quot;19,1,0&quot;&gt;everything else&lt;/i&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;19,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,2,0&quot;&gt;No mixing with &lt;code data-index-in-node=&quot;15&quot; data-path-to-node=&quot;19,2,0&quot;&gt;TOP&lt;/code&gt;:&lt;/b&gt; You cannot use &lt;code data-index-in-node=&quot;35&quot; data-path-to-node=&quot;19,2,0&quot;&gt;TOP&lt;/code&gt; and &lt;code data-index-in-node=&quot;43&quot; data-path-to-node=&quot;19,2,0&quot;&gt;OFFSET-FETCH&lt;/code&gt; in the same query block. &lt;code data-index-in-node=&quot;81&quot; data-path-to-node=&quot;19,2,0&quot;&gt;OFFSET-FETCH&lt;/code&gt; was introduced in SQL Server 2012 specifically as a more robust replacement for using &lt;code data-index-in-node=&quot;180&quot; data-path-to-node=&quot;19,2,0&quot;&gt;TOP&lt;/code&gt; for pagination.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Cheers&lt;/div&gt;&lt;div&gt;Samitha&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/1782675035528475361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/08/sql-server-offset-0-usage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/1782675035528475361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/1782675035528475361'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/08/sql-server-offset-0-usage.html' title='Sql Server offset 0 usage '/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-7504356425830708852</id><published>2026-07-26T23:21:58.301-07:00</published><updated>2026-07-26T23:21:58.302-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2026 overview"/><category scheme="http://www.blogger.com/atom/ns#" term="vs 2028 features"/><title type='text'>Visual Studio 2026 overview</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-path-to-node=&quot;0&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/h2&gt;&lt;p data-path-to-node=&quot;1&quot; id=&quot;p-rc_aafecb4f62353121-19&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span class=&quot;citation-15 citation-end-15&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Visual Studio 2026 delivers a major leap forward, focusing on deep AI integration, architectural speed, and a refreshed interface.&lt;source-footnote _nghost-ng-c318024766=&quot;&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;sup _ngcontent-ng-c318024766=&quot;&quot; class=&quot;superscript&quot; data-turn-source-index=&quot;1&quot; style=&quot;font-size: 16px !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt; &lt;span class=&quot;citation-14&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Designed alongside &lt;/span&gt;&lt;b data-index-in-node=&quot;150&quot; data-path-to-node=&quot;1&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;.NET 10&lt;/b&gt;&lt;span class=&quot;citation-14&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt; and &lt;/span&gt;&lt;b data-index-in-node=&quot;162&quot; data-path-to-node=&quot;1&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;C# 14&lt;/b&gt;&lt;span class=&quot;citation-14 citation-end-14&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;, it aims to drastically cut down boilerplate code, enhance real-time responsiveness, and streamline modern development workflows.&lt;source-footnote _nghost-ng-c318024766=&quot;&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;sup _ngcontent-ng-c318024766=&quot;&quot; class=&quot;superscript&quot; data-turn-source-index=&quot;2&quot; style=&quot;font-size: 16px !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c966090210=&quot;&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;  &lt;source-inline-chip _ngcontent-ng-c966090210=&quot;&quot; _nghost-ng-c643572535=&quot;&quot; class=&quot;ng-star-inserted&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;h2 data-path-to-node=&quot;3&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Key Highlights&lt;/h2&gt;&lt;h3 data-path-to-node=&quot;4&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;1. AI-Powered and Agentic Workflows&lt;/h3&gt;&lt;ul data-path-to-node=&quot;5&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important; padding-inline-start: 32px;&quot;&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;5,0,0&quot; id=&quot;p-rc_aafecb4f62353121-20&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Intelligent Agents:&lt;/b&gt; &lt;span class=&quot;citation-13 citation-end-13&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Built-in C# and C++ coding, debugging, and profiling agents help isolate root causes and optimize build paths seamlessly.&lt;source-footnote _nghost-ng-c318024766=&quot;&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;sup _ngcontent-ng-c318024766=&quot;&quot; class=&quot;superscript&quot; data-turn-source-index=&quot;3&quot; style=&quot;font-size: 16px !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c966090210=&quot;&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;  &lt;source-inline-chip _ngcontent-ng-c966090210=&quot;&quot; _nghost-ng-c643572535=&quot;&quot; class=&quot;ng-star-inserted&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;5,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Adaptive Paste:&lt;/b&gt; Automatically rewrites pasted external snippets to match your active project&#39;s naming conventions and structure.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;5,2,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Model Context Protocol (MCP):&lt;/b&gt; Advanced [GitHub Copilot Chat] capabilities supporting custom skills and server management.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node=&quot;6&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;2. Performance and Architecture&lt;/h3&gt;&lt;ul data-path-to-node=&quot;7&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important; padding-inline-start: 32px;&quot;&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Decoupled Build Tools:&lt;/b&gt; Separates the IDE from underlying compilers, allowing you to update Visual Studio independently from toolchains.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Reduced UI Freezes:&lt;/b&gt; Startup time is snappier, and UI unresponsiveness during heavy enterprise solution loads has been cut by over 50%.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 data-path-to-node=&quot;8&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;3. User Experience and Tooling&lt;/h3&gt;&lt;ul data-path-to-node=&quot;9&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important; padding-inline-start: 32px;&quot;&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;9,0,0&quot; id=&quot;p-rc_aafecb4f62353121-21&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Fluent Design:&lt;/b&gt; &lt;span class=&quot;citation-12 citation-end-12&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;A modernized, distraction-free interface featuring cleaner icons, accessible color tokens, and full color emoji support across logs and comments.&lt;source-footnote _nghost-ng-c318024766=&quot;&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;sup _ngcontent-ng-c318024766=&quot;&quot; class=&quot;superscript&quot; data-turn-source-index=&quot;4&quot; style=&quot;font-size: 16px !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;!----&gt;&lt;/sup&gt;&lt;/source-footnote&gt;&lt;/span&gt;&lt;sources-carousel-inline _nghost-ng-c966090210=&quot;&quot; ng-version=&quot;0.0.0-PLACEHOLDER&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;  &lt;source-inline-chip _ngcontent-ng-c966090210=&quot;&quot; _nghost-ng-c643572535=&quot;&quot; class=&quot;ng-star-inserted&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/source-inline-chip&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/sources-carousel-inline&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;9,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Unified Settings:&lt;/b&gt; A streamlined, embedded settings tab that enables direct editing via JSON configurations.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/7504356425830708852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/07/visual-studio-2026-overview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/7504356425830708852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/7504356425830708852'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/07/visual-studio-2026-overview.html' title='Visual Studio 2026 overview'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-6504967757742993583</id><published>2026-07-12T02:45:55.065-07:00</published><updated>2026-07-12T02:45:55.065-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="sql server get open connections"/><title type='text'>sql server get open connections</title><content type='html'>&lt;p data-path-to-node=&quot;0&quot; style=&quot;--animation-duration: 550ms;&quot;&gt;&lt;span class=&quot;&quot;&gt;To get the active and open connections in SQL Server,&lt;/span&gt;&lt;span class=&quot;&quot;&gt; you can use a few different methods depending on how much detail you need.&lt;/span&gt;&lt;/p&gt;&lt;p data-path-to-node=&quot;1&quot;&gt;&lt;span class=&quot;&quot;&gt;Here is the cleaned-up,&lt;/span&gt;&lt;span class=&quot;&quot;&gt; fully corrected version of those scripts and explanations,&lt;/span&gt;&lt;span class=&quot;&quot;&gt; free of formatting artifacts:&lt;/span&gt;&lt;/p&gt;&lt;h3 class=&quot;&quot; data-path-to-node=&quot;2&quot;&gt;1. The Quick Count (By Database)&lt;/h3&gt;&lt;p data-path-to-node=&quot;3&quot; style=&quot;--animation-duration: 481ms;&quot;&gt;&lt;span class=&quot;&quot;&gt;If you just want a quick headcount of how many connections are open on each database,&lt;/span&gt;&lt;span class=&quot;&quot;&gt; query &lt;/span&gt;&lt;code class=&quot;&quot; data-index-in-node=&quot;92&quot; data-path-to-node=&quot;3&quot;&gt;sys.sysprocesses&lt;/code&gt;&lt;span class=&quot;&quot;&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p data-path-to-node=&quot;3&quot; style=&quot;--animation-duration: 481ms;&quot;&gt;SELECT&amp;nbsp;&lt;/p&gt;&lt;p data-path-to-node=&quot;3&quot; style=&quot;--animation-duration: 481ms;&quot;&gt;&amp;nbsp; &amp;nbsp; DB_NAME(dbid) as DatabaseName,&amp;nbsp; &amp;nbsp; &amp;nbsp;COUNT(dbid) as OpenConnections&lt;/p&gt;&lt;p data-path-to-node=&quot;3&quot; style=&quot;--animation-duration: 481ms;&quot;&gt;FROM&amp;nbsp; &amp;nbsp; &amp;nbsp;sys.sysprocesses&lt;/p&gt;&lt;p data-path-to-node=&quot;3&quot; style=&quot;--animation-duration: 481ms;&quot;&gt;WHERE&amp;nbsp; &amp;nbsp; &amp;nbsp;dbid &amp;gt; 0&lt;/p&gt;&lt;p data-path-to-node=&quot;3&quot; style=&quot;--animation-duration: 481ms;&quot;&gt;GROUP BY&amp;nbsp; &amp;nbsp; &amp;nbsp;dbid;&lt;/p&gt;&lt;h3 data-path-to-node=&quot;6&quot;&gt;2. The Detailed View (Recommended)&lt;/h3&gt;&lt;p data-path-to-node=&quot;7&quot;&gt;For a modern, detailed breakdown of &lt;b data-index-in-node=&quot;36&quot; data-path-to-node=&quot;7&quot;&gt;who&lt;/b&gt; is connected, &lt;b data-index-in-node=&quot;54&quot; data-path-to-node=&quot;7&quot;&gt;what&lt;/b&gt; application they are using, and &lt;b data-index-in-node=&quot;91&quot; data-path-to-node=&quot;7&quot;&gt;where&lt;/b&gt; they are connecting from, use &lt;code data-index-in-node=&quot;127&quot; data-path-to-node=&quot;7&quot;&gt;sys.dm_exec_sessions&lt;/code&gt;.&lt;/p&gt;&lt;p data-path-to-node=&quot;8&quot;&gt;This script filters out internal system connections so you only see actual user traffic:&lt;/p&gt;&lt;p data-path-to-node=&quot;8&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p data-path-to-node=&quot;8&quot;&gt;SELECT&amp;nbsp;&lt;/p&gt;&lt;p data-path-to-node=&quot;8&quot;&gt;&amp;nbsp; &amp;nbsp; session_id,&amp;nbsp; &amp;nbsp; login_name,&amp;nbsp; &amp;nbsp; host_name,&amp;nbsp; &amp;nbsp; program_name,&amp;nbsp; &amp;nbsp; status,&amp;nbsp; &amp;nbsp; cpu_time,&amp;nbsp; &amp;nbsp; total_elapsed_time&lt;/p&gt;&lt;p data-path-to-node=&quot;8&quot;&gt;FROM&amp;nbsp; &amp;nbsp; &amp;nbsp; sys.dm_exec_sessions&lt;/p&gt;&lt;p data-path-to-node=&quot;8&quot;&gt;WHERE&amp;nbsp; &amp;nbsp; &amp;nbsp; is_user_process = 1; -- 1 filters for user connections, 0 for system processes&lt;/p&gt;&lt;h3 data-path-to-node=&quot;11&quot;&gt;3. What Are They Currently Running?&lt;/h3&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;If you want to see the open connections &lt;i data-index-in-node=&quot;40&quot; data-path-to-node=&quot;12&quot;&gt;and&lt;/i&gt; the exact SQL query they are executing right now, join the sessions DMV with &lt;code data-index-in-node=&quot;121&quot; data-path-to-node=&quot;12&quot;&gt;sys.dm_exec_requests&lt;/code&gt; and &lt;code data-index-in-node=&quot;146&quot; data-path-to-node=&quot;12&quot;&gt;sys.dm_exec_sql_text&lt;/code&gt;:&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;SELECT&amp;nbsp; &amp;nbsp; &amp;nbsp;s.session_id,&amp;nbsp; &amp;nbsp; s.login_name,&amp;nbsp; &amp;nbsp; s.host_name,&amp;nbsp; &amp;nbsp; s.program_name,&amp;nbsp; &amp;nbsp; r.status,&amp;nbsp; &amp;nbsp; st.text AS ExecutingQuery&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;FROM&amp;nbsp; &amp;nbsp; &amp;nbsp;sys.dm_exec_sessions s&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;INNER JOIN&amp;nbsp; &amp;nbsp; &amp;nbsp;sys.dm_exec_requests r ON s.session_id = r.session_id&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;CROSS APPLY&amp;nbsp;&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;&amp;nbsp; &amp;nbsp; sys.dm_exec_sql_text(r.sql_handle) st&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;WHERE&amp;nbsp; &amp;nbsp; &amp;nbsp;s.is_user_process = 1;&lt;/p&gt;&lt;h3 data-path-to-node=&quot;15&quot;&gt;4. The Built-in Stored Procedure&lt;/h3&gt;&lt;p data-path-to-node=&quot;16&quot;&gt;If you don&#39;t want to type out a long query, SQL Server has a classic built-in stored procedure that gives you a massive dump of all current processes and connections&lt;/p&gt;&lt;p data-path-to-node=&quot;16&quot;&gt;&lt;span class=&quot;hljs-keyword&quot;&gt;EXEC&lt;/span&gt; sp_who2;&lt;/p&gt;&lt;p data-path-to-node=&quot;16&quot;&gt;&amp;nbsp;Look at the &lt;code data-index-in-node=&quot;17&quot; data-path-to-node=&quot;18,0&quot;&gt;SPID&lt;/code&gt; column (anything above 50 is typically a user connection) and the &lt;code data-index-in-node=&quot;88&quot; data-path-to-node=&quot;18,0&quot;&gt;DBName&lt;/code&gt; column to see where the action is happening.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/6504967757742993583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/07/sql-server-get-open-connections.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/6504967757742993583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/6504967757742993583'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/07/sql-server-get-open-connections.html' title='sql server get open connections'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-2714321189442158031</id><published>2026-07-04T06:42:26.932-07:00</published><updated>2026-07-04T06:42:26.932-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="kill process SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server kill process best practices"/><title type='text'>kill many process in sql server</title><content type='html'>&lt;p&gt;&amp;nbsp;To kill multiple processes in SQL Server, you cannot pass a list of IDs directly into a single KILL command. Instead, you have to generate and execute individual KILL &amp;lt;spid&amp;gt; statements.&lt;/p&gt;&lt;p&gt;Here are the three most efficient ways to do this, depending on your needs.&lt;/p&gt;&lt;p&gt;Method 1: The Quick Filter Script (Recommended)&lt;/p&gt;&lt;p&gt;If you want to kill processes tied to a specific database or a specific user, you can run a query that automatically generates the syntax for you.&lt;/p&gt;&lt;p&gt;Run this script to generate the list of kill commands:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;SQL&lt;/p&gt;&lt;p&gt;DECLARE @sql NVARCHAR(MAX) = &#39;&#39;;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;SELECT @sql += &#39;KILL &#39; + CAST(session_id AS VARCHAR(10)) + &#39;;&#39; + CHAR(13)&lt;/p&gt;&lt;p&gt;FROM sys.dm_exec_sessions&lt;/p&gt;&lt;p&gt;WHERE database_id = DB_ID(&#39;YourDatabaseName&#39;) -- Filter by database&lt;/p&gt;&lt;p&gt;&amp;nbsp; AND is_user_process = 1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-- Only target user processes, not system tasks&lt;/p&gt;&lt;p&gt;&amp;nbsp; AND session_id &amp;lt;&amp;gt; @@SPID;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-- Do not kill your current connection&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-- STEP 1: Preview the commands to make sure they look correct&lt;/p&gt;&lt;p&gt;PRINT @sql;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-- STEP 2: Uncomment the line below when you are ready to execute them all at once&lt;/p&gt;&lt;p&gt;-- EXEC sp_executesql @sql;&lt;/p&gt;&lt;p&gt;Method 2: The Cursor Approach (Fully Automated)&lt;/p&gt;&lt;p&gt;If you want a single script that finds and drops connections instantly without a copy-paste preview step, you can loop through them using a CURSOR. This is highly effective if you are preparing a database for a restore or a drop.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;SQL&lt;/p&gt;&lt;p&gt;DECLARE @spid INT&lt;/p&gt;&lt;p&gt;DECLARE @kill_cmd NVARCHAR(50)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DECLARE spid_cursor CURSOR FOR&lt;/p&gt;&lt;p&gt;SELECT session_id&lt;/p&gt;&lt;p&gt;FROM sys.dm_exec_sessions&lt;/p&gt;&lt;p&gt;WHERE database_id = DB_ID(&#39;YourDatabaseName&#39;)&lt;/p&gt;&lt;p&gt;&amp;nbsp; AND is_user_process = 1&lt;/p&gt;&lt;p&gt;&amp;nbsp; AND session_id &amp;lt;&amp;gt; @@SPID;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;OPEN spid_cursor&lt;/p&gt;&lt;p&gt;FETCH NEXT FROM spid_cursor INTO @spid&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;WHILE @@FETCH_STATUS = 0&lt;/p&gt;&lt;p&gt;BEGIN&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; SET @kill_cmd = &#39;KILL &#39; + CAST(@spid AS VARCHAR(10))&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; EXEC sp_executesql @kill_cmd&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; FETCH NEXT FROM spid_cursor INTO @spid&lt;/p&gt;&lt;p&gt;END&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;CLOSE spid_cursor&lt;/p&gt;&lt;p&gt;DEALLOCATE spid_cursor&lt;/p&gt;&lt;p&gt;Method 3: Kick Everyone Off via ALTER DATABASE&lt;/p&gt;&lt;p&gt;If your goal is to kill every single connection to a specific database right now (for instance, to perform maintenance, rename it, or drop it), the fastest and safest approach doesn&#39;t require looking up SPIDs at all. You can forcefully transition the database into SINGLE_USER mode, which automatically terminates all other active connections.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;SQL&lt;/p&gt;&lt;p&gt;USE master;&lt;/p&gt;&lt;p&gt;ALTER DATABASE YourDatabaseName&lt;/p&gt;&lt;p&gt;SET SINGLE_USER WITH ROLLBACK IMMEDIATE;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-- Perform your work here...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-- Don&#39;t forget to set it back to multi-user mode when finished!&lt;/p&gt;&lt;p&gt;ALTER DATABASE YourDatabaseName&lt;/p&gt;&lt;p&gt;SET MULTI_USER;&lt;/p&gt;&lt;p&gt;Note on ROLLBACK IMMEDIATE: This option specifies that any open transactions in the database will be instantly rolled back, and their underlying connections severed immediately.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Best Practices &amp;amp; Precautions&lt;/p&gt;&lt;p&gt;Check Status: If you kill a long-running write transaction (like a massive data import or index rebuild), SQL Server must roll back the changes to ensure data integrity. If you check sys.dm_exec_requests, you might see the status as KILLED/ROLLBACK. Do not restart the SQL service to speed this up, as the rollback will simply resume upon startup and often take longer.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Avoid System SPIDs: Always include is_user_process = 1 or filter out session_id &amp;lt;= 50 to avoid accidentally targeting background SQL Server engine processes.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cheers&lt;/p&gt;&lt;p&gt;Samitha&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/2714321189442158031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/07/kill-many-process-in-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/2714321189442158031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/2714321189442158031'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/07/kill-many-process-in-sql-server.html' title='kill many process in sql server'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-2956290568603657440</id><published>2026-06-28T07:05:33.061-07:00</published><updated>2026-06-28T07:05:33.061-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="create a new table based on an existing view"/><category scheme="http://www.blogger.com/atom/ns#" term="create table from view sql"/><title type='text'> create a new table based on an existing view</title><content type='html'>&lt;p&gt;&amp;nbsp;The absolute fastest and cleanest way to create a new table with the exact same schema (structure and data types) as an existing view in SQL Server is to use a SELECT ... INTO statement combined with a WHERE 1 = 0 clause.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The WHERE 1 = 0 condition acts as a false flag—it forces SQL Server to clone the structural definition of the view without actually copying any of the rows into your new table.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Run this script in your SQL Server Management Studio (SSMS):&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;SQL&lt;/p&gt;&lt;p&gt;-- Creates an empty table with the exact structure of the view&lt;/p&gt;&lt;p&gt;SELECT *&lt;/p&gt;&lt;p&gt;INTO q2AIR_MDPL_RPT_TimecardSalaryReport&lt;/p&gt;&lt;p&gt;FROM q2vAIR_MDPL_TimecardSalaryReport&lt;/p&gt;&lt;p&gt;WHERE 1 = 0;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cheers&lt;/p&gt;&lt;p&gt;Samitha&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/2956290568603657440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/06/create-new-table-based-on-existing-view.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/2956290568603657440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/2956290568603657440'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/06/create-new-table-based-on-existing-view.html' title=' create a new table based on an existing view'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-1069318676881879226</id><published>2026-06-20T17:27:34.004-07:00</published><updated>2026-06-20T17:27:34.004-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSS focus ring"/><category scheme="http://www.blogger.com/atom/ns#" term="focus ring"/><title type='text'>CSS focus ring </title><content type='html'>&lt;p&gt;&amp;nbsp;The CSS focus ring is the visual indicator (usually a blue or dotted outline) that appears around interactive elements like links, buttons, and inputs when they are focused via keyboard navigation (like pressing the Tab key).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It is a critical feature for accessibility (a11y), allowing users who don&#39;t use a mouse to see exactly where they are on a page.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The CSS Focus Pseudo-Classes&lt;/p&gt;&lt;p&gt;To style the focus ring, you will primarily use three pseudo-classes depending on how you want the ring to behave:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;:focus: Applies whenever an element receives focus, whether by keyboard, mouse click, or touch. (Can look messy when mouse users click a button and get a big ring).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;:focus-visible: The modern standard. It only applies the focus ring when the browser determines it’s helpful—typically only for keyboard users, leaving mouse users with a clean interface.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;:focus-within: Applies to a parent element when any of its child elements gain focus.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;How to Style the Focus Ring&lt;/p&gt;&lt;p&gt;Historically, developers used outline, but modern CSS gives us much better control using outline, box-shadow, and outline-offset.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. The Modern Standard (:focus-visible)&lt;/p&gt;&lt;p&gt;Use this for 95% of your use cases to keep things accessible for keyboard users without annoying mouse users.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;CSS&lt;/p&gt;&lt;p&gt;/* Target buttons and links when focused via keyboard */&lt;/p&gt;&lt;p&gt;button:focus-visible,&amp;nbsp;&lt;/p&gt;&lt;p&gt;a:focus-visible {&lt;/p&gt;&lt;p&gt;&amp;nbsp; outline: 3px solid #3b82f6; /* Thicker, vibrant blue ring */&lt;/p&gt;&lt;p&gt;&amp;nbsp; outline-offset: 2px;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Pushes the ring away from the element */&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;2. The Custom Glow Effect (box-shadow)&lt;/p&gt;&lt;p&gt;If you want a smoother, curved focus ring that matches an element&#39;s border-radius, box-shadow is excellent. Note that you should always pair it with a transparent outline so users with Windows High Contrast Mode can still see it.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;CSS&lt;/p&gt;&lt;p&gt;input:focus-visible {&lt;/p&gt;&lt;p&gt;&amp;nbsp; outline: 2px solid transparent; /* Fallback for high-contrast accessibility */&lt;/p&gt;&lt;p&gt;&amp;nbsp; border-color: #3b82f6;&lt;/p&gt;&lt;p&gt;&amp;nbsp; box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.5); /* Soft outer glow */&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;3. Styling the Parent (:focus-within)&lt;/p&gt;&lt;p&gt;Great for form cards or search bars where you want the entire container to light up when the input inside is active.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;CSS&lt;/p&gt;&lt;p&gt;.search-form-container:focus-within {&lt;/p&gt;&lt;p&gt;&amp;nbsp; border-color: #10b981;&lt;/p&gt;&lt;p&gt;&amp;nbsp; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;The Golden Rule: Never Just outline: none&lt;/p&gt;&lt;p&gt;⚠️ Accessibility Warning: Never use outline: none or outline: 0 without immediately providing a custom, highly visible focus alternative. Removing the focus ring entirely breaks website navigation for millions of keyboard and assistive technology users.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If you hate how the default focus ring looks on mouse clicks, don&#39;t kill it completely. Just use :focus-visible instead:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;CSS&lt;/p&gt;&lt;p&gt;/* Bad: Breaks accessibility completely */&lt;/p&gt;&lt;p&gt;button:focus {&lt;/p&gt;&lt;p&gt;&amp;nbsp; outline: none;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;/* Good: Removes default for mouse, keeps/customizes for keyboard */&lt;/p&gt;&lt;p&gt;button:focus {&lt;/p&gt;&lt;p&gt;&amp;nbsp; outline: none; /* Reset default */&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;button:focus-visible {&lt;/p&gt;&lt;p&gt;&amp;nbsp; outline: 3px solid #ff4757; /* Custom keyboard focus */&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;Cheers&lt;/p&gt;&lt;p&gt;Samitha&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/1069318676881879226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/06/css-focus-ring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/1069318676881879226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/1069318676881879226'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/06/css-focus-ring.html' title='CSS focus ring '/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-3777205771082150095</id><published>2026-06-05T21:01:53.882-07:00</published><updated>2026-06-05T21:01:53.883-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Best ways to crop image"/><category scheme="http://www.blogger.com/atom/ns#" term="crop image"/><category scheme="http://www.blogger.com/atom/ns#" term="crop image without losing quality"/><title type='text'>Best way to crop image without losing quality</title><content type='html'>&lt;p&gt;&amp;nbsp;Cropping itself does NOT reduce quality — it simply removes unwanted pixels. [wildandfreetools.com]&lt;/p&gt;&lt;p&gt;Quality loss usually happens because of:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Saving as low‑quality JPG&lt;/li&gt;&lt;li&gt;Re-compressing multiple times&lt;/li&gt;&lt;li&gt;Resizing after cropping [picovert.com]&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Recommended steps&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Upload your image to a crop tool&lt;/li&gt;&lt;li&gt;Drag the crop box to exclude the right side (text)&lt;/li&gt;&lt;li&gt;DON’T resize unless needed&lt;/li&gt;&lt;li&gt;Export with: PNG (best quality, lossless) OR JPG at 90–100% quality [fixtools.io]&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Best FREE online crop tools (no quality loss)&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Here are reliable ones:&lt;/p&gt;&lt;p&gt;1. Adobe Express Crop Tool&lt;/p&gt;&lt;p&gt;Easy drag-and-drop cropping&lt;/p&gt;&lt;p&gt;Keeps high quality&lt;/p&gt;&lt;p&gt;No signup needed&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.adobe.com/express/feature/image/crop&quot;&gt;https://www.adobe.com/express/feature/image/crop&lt;/a&gt; [&lt;a href=&quot;http://adobe.com&quot;&gt;adobe.com&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. FixTools (Lossless crop)&lt;/p&gt;&lt;p&gt;True lossless cropping&lt;/p&gt;&lt;p&gt;Lets you control export quality precisely&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href=&quot;https://www.fixtools.io/image-tools/crop-image-without-losing-quality&quot;&gt;https://www.fixtools.io/image-tools/crop-image-without-losing-quality&lt;/a&gt; [&lt;a href=&quot;http://fixtools.io&quot;&gt;fixtools.io&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;3. FastConvert Crop Tool&lt;/p&gt;&lt;p&gt;Supports custom dimensions (good for your unusual size)&lt;/p&gt;&lt;p&gt;No registration required&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href=&quot;https://fastconvert.co/crop-image&quot;&gt;https://fastconvert.co/crop-image&lt;/a&gt; [&lt;a href=&quot;http://fastconvert.co&quot;&gt;fastconvert.co&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4. FormatFuse Cropper&lt;/p&gt;&lt;p&gt;Pixel-accurate cropping&lt;/p&gt;&lt;p&gt;Keeps original format (lossless for PNG)&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://formatfuse.com/tools/image-crop&quot;&gt;https://formatfuse.com/tools/image-crop&lt;/a&gt; [&lt;a href=&quot;http://formatfuse.com&quot;&gt;formatfuse.com&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5. ArtsFlick Crop Tool&lt;/p&gt;&lt;p&gt;Designed to crop without blur or compression&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;a href=&quot;https://artsflick.com/features/crop&quot;&gt;https://artsflick.com/features/crop&lt;/a&gt; [&lt;a href=&quot;http://artsflick.com&quot;&gt;artsflick.com&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;For UI banners or screenshots:&lt;/p&gt;&lt;p&gt;Always use PNG (text remains sharp)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cheers&lt;/p&gt;&lt;p&gt;Samith&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/3777205771082150095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/06/best-way-to-crop-image-without-losing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/3777205771082150095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/3777205771082150095'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/06/best-way-to-crop-image-without-losing.html' title='Best way to crop image without losing quality'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-4586916594458465538</id><published>2026-05-09T22:15:00.000-07:00</published><updated>2026-05-09T22:15:54.976-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Helvetica Neue in CSS using Helvetica Neue"/><title type='text'>Using Helvetica Neue font</title><content type='html'>&lt;p&gt;&amp;nbsp;Adding Helvetica Neue to your CSS is a classic choice for a clean, modern look. However, because it is a licensed font owned by Monotype, it isn&#39;t &quot;free&quot; to host like a Google Font. You have to handle it differently depending on whether you&#39;re relying on the user&#39;s system or hosting the files yourself.1. The &quot;System Font&quot; Method (Recommended)This is the fastest and most common way. Since Helvetica Neue comes pre-installed on almost all Macs and iOS devices, you can simply call it in your font stack. If the user doesn&#39;t have it (like on most Windows or Android devices), the browser will fall back to the next font in your list.CSS.your-class {&lt;/p&gt;&lt;p&gt;&amp;nbsp; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;Why this order? The browser reads left-to-right. It tries to find &quot;Helvetica Neue&quot; first. If that fails, it looks for &quot;Helvetica,&quot; then &quot;Arial,&quot; and finally any generic &quot;sans-serif&quot; font.2. Using @font-face (Self-Hosting)If you have purchased a web license and have the font files (e.g., .woff2 or .woff), you can host them on your own server. This ensures the font appears on all devices, even Windows.Upload the font files to your project folder (e.g., /fonts/).Define the font in your CSS:CSS@font-face {&lt;/p&gt;&lt;p&gt;&amp;nbsp; font-family: &#39;Helvetica Neue&#39;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; src: url(&#39;fonts/helvetica-neue-bold.woff2&#39;) format(&#39;woff2&#39;),&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url(&#39;fonts/helvetica-neue-bold.woff&#39;) format(&#39;woff&#39;);&lt;/p&gt;&lt;p&gt;&amp;nbsp; font-weight: bold;&lt;/p&gt;&lt;p&gt;&amp;nbsp; font-style: normal;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;body {&lt;/p&gt;&lt;p&gt;&amp;nbsp; font-family: &#39;Helvetica Neue&#39;, Arial, sans-serif;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers&lt;/div&gt;&lt;div&gt;Samitha&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/4586916594458465538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/05/using-helvetica-neue-font.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/4586916594458465538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/4586916594458465538'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/05/using-helvetica-neue-font.html' title='Using Helvetica Neue font'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-7827122494143092757</id><published>2026-05-03T01:56:00.000-07:00</published><updated>2026-05-03T01:56:20.585-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MailKit  warning"/><category scheme="http://www.blogger.com/atom/ns#" term="MailKit 4.7.1.1 error"/><category scheme="http://www.blogger.com/atom/ns#" term="Package &#39;MailKit&#39; 4.7.1.1 has a known moderate severity vulnerability"/><title type='text'>Package &#39;MailKit&#39; 4.7.1.1 has a known moderate severity vulnerability,</title><content type='html'>&lt;p&gt;&amp;nbsp;Warning As Error: Package &#39;MailKit&#39; 4.7.1.1 has a known moderate severity vulnerability, https://github.com/advisories/GHSA-9j88-vvj5-vhgr&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The error message you&#39;re seeing is a security safeguard. Because your project is likely configured with TreatWarningsAsErrors enabled, NuGet is blocking your build due to a known security vulnerability in MailKit 4.7.1.1.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The Vulnerability: GHSA-9j88-vvj5-vhgr&lt;/p&gt;&lt;p&gt;This is a STARTTLS Response Injection vulnerability.&lt;/p&gt;&lt;p&gt;The Risk: A Man-in-the-Middle (MitM) attacker can inject commands during the &quot;handshake&quot; phase when your app switches from a plain-text connection to an encrypted one (TLS).&lt;/p&gt;&lt;p&gt;The Impact: This can be used to trick your application into &quot;downgrading&quot; its security—for example, forcing it to use a less secure authentication method (like sending passwords in plain text) even though you think you&#39;re using an encrypted connection.&lt;/p&gt;&lt;p&gt;&lt;b&gt;How to Fix It&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The fix is straightforward: Upgrade MailKit to a patched version.&lt;/p&gt;&lt;p&gt;1. Update via .NET CLI&lt;/p&gt;&lt;p&gt;Run the following command in your terminal at the project root:&lt;/p&gt;&lt;p&gt;Bash&lt;/p&gt;&lt;p&gt;dotnet add package MailKit --version 4.8.0&lt;/p&gt;&lt;p&gt;(Or the latest available version, as 4.8.0+ contains the fix).&lt;/p&gt;&lt;p&gt;2. Update via Package Manager Console (Visual Studio)&lt;/p&gt;&lt;p&gt;PowerShell&lt;/p&gt;&lt;p&gt;Update-Package MailKit&lt;/p&gt;&lt;p&gt;3. Update via Project File (.csproj)&lt;/p&gt;&lt;p&gt;Locate the PackageReference in your .csproj file and update the version manually:&lt;/p&gt;&lt;p&gt;XML&lt;/p&gt;&lt;p&gt;&amp;lt;PackageReference Include=&quot;MailKit&quot; Version=&quot;4.8.0&quot; /&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Why am I seeing this now?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The .NET SDK and NuGet now integrate with the GitHub Advisory Database. When you build your project, it checks your dependencies against known security threats.&lt;/p&gt;&lt;p&gt;If you absolutely cannot upgrade right now (which is not recommended) and need to bypass the error to unblock your build, you can temporarily &quot;suppress&quot; this specific warning by adding the following to your .csproj file, though you should only do this if you have a specific mitigation in place:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;XML&lt;/p&gt;&lt;p&gt;&amp;lt;PropertyGroup&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;lt;NoWarn&amp;gt;$(NoWarn);NU1901;NU1902;NU1903;NU1904&amp;lt;/NoWarn&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/PropertyGroup&amp;gt;&lt;/p&gt;&lt;p&gt;Recommendation: Stick with the upgrade. MailKit updates are generally very stable and backward-compatible within the same major version&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/7827122494143092757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/05/package-mailkit-4711-has-known-moderate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/7827122494143092757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/7827122494143092757'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/05/package-mailkit-4711-has-known-moderate.html' title='Package &#39;MailKit&#39; 4.7.1.1 has a known moderate severity vulnerability,'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-1991129947586191770</id><published>2026-04-26T01:15:00.000-07:00</published><updated>2026-04-26T01:15:27.537-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Adobe Illustrator to PNG"/><category scheme="http://www.blogger.com/atom/ns#" term="Convert an AI to  PNG"/><category scheme="http://www.blogger.com/atom/ns#" term="Converting an AI file to a PNG"/><title type='text'>Converting an AI (Adobe Illustrator) file to a PNG</title><content type='html'>&lt;p&gt;&amp;nbsp;Converting an AI (Adobe Illustrator) file to a PNG is a common task when you need to turn a scalable vector graphic into a web-ready, transparent raster image.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Since AI files are &quot;vector-based&quot; (made of paths) and PNGs are &quot;raster-based&quot; (made of pixels), the process involves a step called rasterization. Here are the best ways to do it depending on the tools you have.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. Using Adobe Illustrator (Best Quality)&lt;/p&gt;&lt;p&gt;If you have the original software, this is the most reliable method because it gives you control over resolution and transparency.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Export for Screens (Quickest): Go to File &amp;gt; Export &amp;gt; Export for Screens. Select PNG as the format and choose your &quot;Scale&quot; (e.g., 1x, 2x, or 300 ppi for high quality).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Export As: Go to File &amp;gt; Export &amp;gt; Export As.... Choose PNG from the dropdown menu.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Note: In the &quot;PNG Options&quot; pop-up, ensure the Background Color is set to Transparent if you don&#39;t want a solid white box around your logo.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. Using Free Online Converters (No Software Needed)&lt;/p&gt;&lt;p&gt;If you don&#39;t have Illustrator, several web-based tools can handle the conversion for you. These are great for one-off tasks.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;CloudConvert: Very reliable and maintains high fidelity.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Adobe Express: Adobe offers a free online converter that is specifically optimized for their own file formats.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Zamzar: A classic choice for simple file-to-file swaps.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Cheers&lt;/p&gt;&lt;p&gt;Samitha&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/1991129947586191770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/04/converting-ai-adobe-illustrator-file-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/1991129947586191770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/1991129947586191770'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/04/converting-ai-adobe-illustrator-file-to.html' title='Converting an AI (Adobe Illustrator) file to a PNG'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-4105238628529856931</id><published>2026-04-19T01:04:00.000-07:00</published><updated>2026-04-19T01:04:10.274-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="npm run dev command does not load VUE.JS UI"/><category scheme="http://www.blogger.com/atom/ns#" term="Vue JS UI does not load"/><title type='text'>npm run dev command does not load Vue JS UI</title><content type='html'>&lt;p&gt;&amp;nbsp;It is incredibly frustrating when the terminal says &quot;Ready&quot; and the browser opens, but all you get is a blank white screen. It usually feels like the app is &quot;running&quot; but just refusing to speak to you.&lt;/p&gt;&lt;p&gt;Since `npm run dev` is technically working (it opens the link), the issue is almost certainly a **client-side JavaScript error** preventing the Vue instance from mounting.&lt;/p&gt;&lt;p&gt;Here is how to track down the culprit&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;### 1. The &quot;Golden Rule&quot;: Check the Console&lt;/p&gt;&lt;p&gt;Right-click the blank page in your browser and select **Inspect**, then go to the **Console** tab.&lt;/p&gt;&lt;p&gt;* **Red Errors:** If you see `Uncaught ReferenceError` or `Failed to fetch dynamically imported module`, it means your code has a syntax or path error that is crashing the app before it can render.&lt;/p&gt;&lt;p&gt;* **404 Errors:** If it says `app.js` or `main.js` was not found, your build tool (Vite or Webpack) is looking in the wrong directory.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;### 2. Common Culprits &amp;amp; Fixes&lt;/p&gt;&lt;p&gt;| Problem | Likely Cause | Solution |&lt;/p&gt;&lt;p&gt;| **Blank Page + No Errors** | Missing `&amp;lt;div id=&quot;app&quot;&amp;gt;&amp;lt;/div&amp;gt;` | Ensure your `index.html` has a div with the ID that matches your `main.js` mount point: `app.mount(&#39;#app&#39;)`. |&lt;/p&gt;&lt;p&gt;| **Vite &quot;Missing&quot; Files** | `base` path config | If you recently changed your `vite.config.js`, ensure the `base` property is correct (usually `&#39;/&#39;`). |&lt;/p&gt;&lt;p&gt;| **Infinite Redirects** | Vue Router Guard | If you have a router guard (`router.beforeEach`) that isn&#39;t calling `next()`, the UI will never load. |&lt;/p&gt;&lt;p&gt;| **Case Sensitivity** | Import Filenames | On some systems, importing `./components/Header.vue` as `./components/header.vue` will fail silently or crash the build. |&lt;/p&gt;&lt;p&gt;### 3. Clear the &quot;Gunk&quot;&lt;/p&gt;&lt;p&gt;Sometimes the local cache gets corrupted. Try this &quot;reset&quot; sequence:&lt;/p&gt;&lt;p&gt;1.&amp;nbsp; **Stop** the terminal process (`Ctrl + C`).&lt;/p&gt;&lt;p&gt;2.&amp;nbsp; **Delete** the `node_modules` folder and `package-lock.json`.&lt;/p&gt;&lt;p&gt;3.&amp;nbsp; **Delete** the `.vite` folder (usually found inside `node_modules/.vite`).&lt;/p&gt;&lt;p&gt;4.&amp;nbsp; Run `npm install`.&lt;/p&gt;&lt;p&gt;5.&amp;nbsp; Run `npm run dev` again.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;### 4. Check your `App.vue`&lt;/p&gt;&lt;p&gt;If you recently added a new library or a complex component, comment out the contents of your `App.vue` and replace it with a simple `&amp;lt;h1&amp;gt;Hello World&amp;lt;/h1&amp;gt;`.&amp;nbsp;&lt;/p&gt;&lt;p&gt;* **If &quot;Hello World&quot; appears:** The issue is inside your components (likely a lifecycle hook like `onMounted` that is looping or crashing).&lt;/p&gt;&lt;p&gt;* **If it stays blank:** The issue is in your `main.js` or `index.html` configuration.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;gt; **Quick Tip:** Check your terminal output again. Are there any **Warnings**? Sometimes Vite will continue to serve the app even if a dependency is missing, but the browser won&#39;t be able to execute the broken code.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If all of the above options does not work&amp;nbsp; check what you see in the Browser Console (F12) when the page loads.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cheers&lt;/p&gt;&lt;p&gt;Samitha&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/4105238628529856931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/04/npm-run-dev-command-does-not-load-vue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/4105238628529856931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/4105238628529856931'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/04/npm-run-dev-command-does-not-load-vue.html' title='npm run dev command does not load Vue JS UI'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-4582208836693168795</id><published>2026-04-05T04:02:00.000-07:00</published><updated>2026-04-05T04:04:47.634-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C# 15 powerful features"/><title type='text'>C# 15 powerful features </title><content type='html'>&lt;p data-path-to-node=&quot;0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;/p&gt;&lt;h2 data-path-to-node=&quot;2&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;1. Collection Expression Arguments&lt;/h2&gt;&lt;h2 data-path-to-node=&quot;2&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;3&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-size: medium; font-weight: 400; line-height: 1.15; margin-top: 0px;&quot;&gt;You can now pass arguments directly to a collection&#39;s underlying constructor or factory method using the&amp;nbsp;&lt;code data-index-in-node=&quot;105&quot; data-path-to-node=&quot;3&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;with(...)&lt;/code&gt;&amp;nbsp;syntax. This must be the&amp;nbsp;&lt;b data-index-in-node=&quot;140&quot; data-path-to-node=&quot;3&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;first element&lt;/b&gt;&amp;nbsp;inside the collection expression brackets&amp;nbsp;&lt;code data-index-in-node=&quot;196&quot; data-path-to-node=&quot;3&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;[...]&lt;/code&gt;.&lt;/p&gt;&lt;ul data-path-to-node=&quot;4&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; font-size: medium; font-weight: 400; line-height: 1.15; margin-top: 0px; padding-inline-start: 32px;&quot;&gt;&lt;li style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;4,0,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,0,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;Purpose:&lt;/b&gt;&amp;nbsp;Allows you to set initial properties like&amp;nbsp;&lt;b data-index-in-node=&quot;51&quot; data-path-to-node=&quot;4,0,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;capacity&lt;/b&gt;&amp;nbsp;or&amp;nbsp;&lt;b data-index-in-node=&quot;63&quot; data-path-to-node=&quot;4,0,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;comparers&lt;/b&gt;&amp;nbsp;without reverting to traditional&amp;nbsp;&lt;code data-index-in-node=&quot;106&quot; data-path-to-node=&quot;4,0,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;new&lt;/code&gt;&amp;nbsp;syntax.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;4,1,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,1,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;Syntax:&lt;/b&gt;&amp;nbsp;&lt;code data-index-in-node=&quot;8&quot; data-path-to-node=&quot;4,1,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;[with(arguments), ...elements]&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/h2&gt;&lt;h3 data-path-to-node=&quot;5&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;Examples&lt;/h3&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Google Sans Text, sans-serif;&quot;&gt;Set Capacity&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif;&quot;&gt;List&amp;lt;string&amp;gt; names = [with(capacity: 10), &quot;A&quot;, &quot;B&quot;];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Google Sans Text, sans-serif;&quot;&gt;Set Comparer&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif;&quot;&gt;HashSet&amp;lt;string&amp;gt; set = [with(StringComparer.Ordinal), &quot;a&quot;, &quot;A&quot;];&lt;/span&gt;&lt;/div&gt;&lt;h2 data-path-to-node=&quot;8&quot;&gt;2. Union Types&lt;/h2&gt;&lt;h2 data-path-to-node=&quot;2&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;9&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-weight: 400;&quot;&gt;Union types allow a single variable to hold one of several specific &quot;case types.&quot; This is a major step forward for type safety and functional programming patterns in C#.&lt;/p&gt;&lt;ul data-path-to-node=&quot;10&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-weight: 400;&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;Declaration:&lt;/b&gt;&amp;nbsp;Use the&amp;nbsp;&lt;code data-index-in-node=&quot;21&quot; data-path-to-node=&quot;10,0,0&quot;&gt;union&lt;/code&gt;&amp;nbsp;keyword followed by the allowed types:&amp;nbsp;&lt;code data-index-in-node=&quot;66&quot; data-path-to-node=&quot;10,0,0&quot;&gt;public union Pet(Cat, Dog, Bird);&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;Key Features:&lt;/b&gt;&lt;/p&gt;&lt;ul data-path-to-node=&quot;10,1,1&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,1,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,1,0,0&quot;&gt;Implicit Conversion:&lt;/b&gt;&amp;nbsp;You can assign a&amp;nbsp;&lt;code data-index-in-node=&quot;38&quot; data-path-to-node=&quot;10,1,1,0,0&quot;&gt;Dog&lt;/code&gt;&amp;nbsp;directly to a&amp;nbsp;&lt;code data-index-in-node=&quot;56&quot; data-path-to-node=&quot;10,1,1,0,0&quot;&gt;Pet&lt;/code&gt;&amp;nbsp;variable without casting.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,1,1,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,1,1,0&quot;&gt;Exhaustive Switching:&lt;/b&gt;&amp;nbsp;The compiler checks your&amp;nbsp;&lt;code data-index-in-node=&quot;47&quot; data-path-to-node=&quot;10,1,1,1,0&quot;&gt;switch&lt;/code&gt;&amp;nbsp;expressions to ensure every possible case of the union is handled. If you miss a type, you get a compiler error.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,2,0&quot;&gt;Current Status:&lt;/b&gt;&amp;nbsp;Introduced in .NET 11 previews. Some advanced features (like union member providers) are still in development.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/h2&gt;&lt;h3 data-path-to-node=&quot;12&quot;&gt;Comparison: Traditional vs. New Syntax&lt;/h3&gt;&lt;h2 data-path-to-node=&quot;2&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;13&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-weight: 400;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13&quot;&gt;Before (Collection Initializers):&lt;/b&gt;&lt;/p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: 400;&quot;&gt;var set = new HashSet&amp;lt;string&amp;gt;(StringComparer.OrdinalIgnoreCase) { &quot;Hi&quot; };&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p data-path-to-node=&quot;15&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-weight: 400;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15&quot;&gt;After (Collection Expressions):&lt;/b&gt;&lt;/p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: 400;&quot;&gt;HashSet&amp;lt;string&amp;gt; set = [with(StringComparer.OrdinalIgnoreCase), &quot;Hi&quot;];&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers&lt;/div&gt;&lt;div&gt;Samitha&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/4582208836693168795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/04/c-15-powerful-features.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/4582208836693168795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/4582208836693168795'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/04/c-15-powerful-features.html' title='C# 15 powerful features '/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-573987740927690259</id><published>2026-03-22T07:26:00.000-07:00</published><updated>2026-03-22T07:26:14.604-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core in .NET 11"/><title type='text'>ASP.NET Core in .NET 11 </title><content type='html'>&lt;p&gt;&amp;nbsp;As of the latest .NET 11 Preview releases (March 2026), ASP.NET Core and Blazor have introduced several features focused on developer productivity, cleaner code, and better performance.&lt;/p&gt;&lt;p&gt;Summary of the most significant changes:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Blazor Improvements&lt;/b&gt;&lt;/p&gt;&lt;p&gt;New Components&lt;/p&gt;&lt;p&gt;DisplayName Component: A new built-in component that renders property names directly from metadata attributes like [Display] or [DisplayName]. This brings feature parity with MVC’s @Html.DisplayNameFor().&lt;/p&gt;&lt;p&gt;Label Component: Specifically for forms, this component renders accessible &amp;lt;label&amp;gt; elements and automatically extracts the display name from your model attributes.&lt;/p&gt;&lt;p&gt;EnvironmentBoundary: Allows you to conditionally render content based on the hosting environment (e.g., Development vs. Production) consistently across both Blazor Server and WebAssembly.&lt;/p&gt;&lt;p&gt;BasePath: Automatically renders the &amp;lt;base href=&quot;...&quot;&amp;gt; tag, which is particularly helpful for apps hosted under subpaths (e.g., /dashboard/).&lt;/p&gt;&lt;p&gt;&lt;b&gt;Navigation &amp;amp; Interaction&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Relative Navigation: NavigationManager.NavigateTo and the NavLink component now support a RelativeToCurrentUri parameter. This allows you to navigate relative to the current page path rather than the app&#39;s root.&lt;/p&gt;&lt;p&gt;QuickGrid OnRowClick: The QuickGrid component now has a native OnRowClick event. When used, it automatically applies a pointer cursor to rows and handles the click callback.&lt;/p&gt;&lt;p&gt;Startup &amp;amp; Configuration&lt;/p&gt;&lt;p&gt;Unified Startup Format: The Blazor.start() options object format introduced for Blazor Web Apps in .NET 8 is now supported for standalone Blazor Server and Blazor WebAssembly scripts.&lt;/p&gt;&lt;p&gt;IHostedService in Wasm: Blazor WebAssembly now supports IHostedService, allowing you to run background services directly in the browser.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;ASP.NET Core Core Framework&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Performance &amp;amp; Observability&lt;/p&gt;&lt;p&gt;Native OpenTelemetry Tracing: ASP.NET Core now builds OpenTelemetry semantic attributes directly into HTTP server activities. You no longer need a separate instrumentation package to collect standard trace data.&lt;/p&gt;&lt;p&gt;Kestrel Hardening: The HTTP/1.1 parser has been reworked to handle malformed requests more gracefully, resulting in a 20–40% throughput improvement in high-invalid-traffic scenarios (like port scanning).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;APIs &amp;amp; Tools&lt;/b&gt;&lt;/p&gt;&lt;p&gt;OpenAPI 3.2.0: Support has been updated to the latest specification, though this includes some breaking changes for client generators.&lt;/p&gt;&lt;p&gt;Web Worker Template: A new dotnet new webworker project template allows Blazor Wasm apps to easily offload heavy computations to a background Web Worker.&lt;/p&gt;&lt;p&gt;Metrics &amp;amp; Tracing: New built-in metrics have been added for Blazor WebAssembly to track component render times and performance.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Runtime &amp;amp; SDK&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Runtime-Native Async: .NET 11 introduces &quot;Runtime Async,&quot; which makes asynchronous calls a first-class citizen at the runtime level, leading to cleaner stack traces and lower overhead.&lt;/p&gt;&lt;p&gt;CoreCLR on WebAssembly: Significant progress has been made in migrating Blazor WebAssembly from the Mono runtime to CoreCLR, promising better performance and JIT support in the future.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/573987740927690259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/03/aspnet-core-in-net-11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/573987740927690259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/573987740927690259'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/03/aspnet-core-in-net-11.html' title='ASP.NET Core in .NET 11 '/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-5530043482176763824</id><published>2026-03-08T07:31:00.000-07:00</published><updated>2026-03-08T07:31:29.183-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL 2025 REGEX"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2025 Regular expressions functions"/><title type='text'>SQL Server 2025 Regular expressions functions</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;h3 data-path-to-node=&quot;1&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Core Regex Functions&lt;/span&gt;&lt;/h3&gt;&lt;p data-path-to-node=&quot;2&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;The system provides several functions to search, modify, and analyze strings using patterns:&lt;/span&gt;&lt;/p&gt;&lt;table data-path-to-node=&quot;3&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-bottom: 32px; margin-top: 0px !important;&quot;&gt;&lt;thead style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;tr style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;strong style=&quot;line-height: 1.15 !important; margin-bottom: 0px !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Function&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;strong style=&quot;line-height: 1.15 !important; margin-bottom: 0px !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Purpose&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;tr style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,1,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,1,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;REGEXP_LIKE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,1,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Returns &lt;b data-index-in-node=&quot;8&quot; data-path-to-node=&quot;3,1,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;True&lt;/b&gt; if the text matches the pattern.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,2,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,2,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;REGEXP_REPLACE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,2,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,2,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Modifies&lt;/b&gt; a string by replacing matches with a new value.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,3,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,3,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;REGEXP_SUBSTR&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,3,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,3,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Extracts&lt;/b&gt; a specific occurrence of a matching substring.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,4,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,4,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;REGEXP_INSTR&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,4,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Returns the &lt;b data-index-in-node=&quot;12&quot; data-path-to-node=&quot;3,4,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;position&lt;/b&gt; (start or end) of a match.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,5,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,5,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;REGEXP_COUNT&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,5,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,5,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Counts&lt;/b&gt; how many times a pattern appears.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,6,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,6,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;REGEXP_MATCHES&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,6,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Returns a &lt;b data-index-in-node=&quot;10&quot; data-path-to-node=&quot;3,6,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;table&lt;/b&gt; of all captured substrings.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,7,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,7,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;REGEXP_SPLIT_TO_TABLE&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;border: 1px solid; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span data-path-to-node=&quot;3,7,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3,7,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Splits&lt;/b&gt; a string into a table using the pattern as a delimiter.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3 data-path-to-node=&quot;5&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Syntax and Construction&lt;/span&gt;&lt;/h3&gt;&lt;p data-path-to-node=&quot;6&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Regex patterns are built using &lt;b data-index-in-node=&quot;31&quot; data-path-to-node=&quot;6&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;literal characters&lt;/b&gt; (which match themselves) and &lt;b data-index-in-node=&quot;79&quot; data-path-to-node=&quot;6&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;metacharacters&lt;/b&gt; (which have special logic).&lt;/span&gt;&lt;/p&gt;&lt;ul data-path-to-node=&quot;7&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important; padding-inline-start: 32px;&quot;&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Escaping:&lt;/b&gt; To match a literal metacharacter (like &lt;code data-index-in-node=&quot;49&quot; data-path-to-node=&quot;7,0,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;*&lt;/code&gt; or &lt;code data-index-in-node=&quot;54&quot; data-path-to-node=&quot;7,0,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;?&lt;/code&gt;), you must use a backslash (&lt;code data-index-in-node=&quot;84&quot; data-path-to-node=&quot;7,0,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;\*&lt;/code&gt;).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Concatenation &amp;amp; Alternation:&lt;/b&gt; * &lt;code data-index-in-node=&quot;31&quot; data-path-to-node=&quot;7,1,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;e1 e2&lt;/code&gt; matches &quot;e1&quot; followed by &quot;e2&quot;.&lt;/span&gt;&lt;/p&gt;&lt;ul data-path-to-node=&quot;7,1,1&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important; padding-inline-start: 32px;&quot;&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,1,1,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,1,0,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;e1 | e2&lt;/code&gt; matches either &quot;e1&quot; or &quot;e2&quot;.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,2,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,2,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Repetition Operators:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul data-path-to-node=&quot;7,2,1&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important; padding-inline-start: 32px;&quot;&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,2,1,0,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,2,1,0,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;*&lt;/code&gt;: Zero or more matches.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,2,1,1,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,2,1,1,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;+&lt;/code&gt;: One or more matches.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,2,1,2,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,2,1,2,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;?&lt;/code&gt;: Zero or one match.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;p data-path-to-node=&quot;7,3,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,3,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Precedence:&lt;/b&gt; Operators follow a specific order of strength: &lt;b data-index-in-node=&quot;59&quot; data-path-to-node=&quot;7,3,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Repetition&lt;/b&gt; (strongest) &amp;gt; &lt;b data-index-in-node=&quot;84&quot; data-path-to-node=&quot;7,3,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Concatenation&lt;/b&gt; &amp;gt; &lt;b data-index-in-node=&quot;100&quot; data-path-to-node=&quot;7,3,0&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;Alternation&lt;/b&gt; (weakest). Parentheses &lt;code data-index-in-node=&quot;135&quot; data-path-to-node=&quot;7,3,0&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;()&lt;/code&gt; can be used to override this order.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;let&#39;s assume we are working with a string representing a standard product code: &lt;code data-index-in-node=&quot;190&quot; data-path-to-node=&quot;0&quot;&gt;Item_#1234-Blue&lt;/code&gt;.&lt;/span&gt;&lt;/p&gt;&lt;h3 data-path-to-node=&quot;1&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp;Examples&lt;/span&gt;&lt;/h3&gt;&lt;h3 data-path-to-node=&quot;9&quot; style=&quot;line-height: 1.15 !important; margin-top: 0px !important;&quot;&gt;&lt;ul data-path-to-node=&quot;2&quot;&gt;&lt;li style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important;&quot;&gt;&lt;p data-path-to-node=&quot;2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,0,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,0,0&quot;&gt;REGEXP_LIKE&lt;/code&gt; (The Filter)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul data-path-to-node=&quot;2,0,1&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,0,1,0,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,0,1,0,0&quot;&gt;Goal:&lt;/b&gt; Check if a string contains a 4-digit number.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,0,1,1,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,0,1,1,0&quot;&gt;Pattern:&lt;/b&gt; &lt;code data-index-in-node=&quot;9&quot; data-path-to-node=&quot;2,0,1,1,0&quot;&gt;\d{4}&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,0,1,2,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,0,1,2,0&quot;&gt;Result:&lt;/b&gt; &lt;code data-index-in-node=&quot;8&quot; data-path-to-node=&quot;2,0,1,2,0&quot;&gt;True&lt;/code&gt; (since &lt;code data-index-in-node=&quot;20&quot; data-path-to-node=&quot;2,0,1,2,0&quot;&gt;1234&lt;/code&gt; matches).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important;&quot;&gt;&lt;p data-path-to-node=&quot;2,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,1,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,1,0&quot;&gt;REGEXP_SUBSTR&lt;/code&gt; (The Extractor)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul data-path-to-node=&quot;2,1,1&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,1,1,0,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,1,1,0,0&quot;&gt;Goal:&lt;/b&gt; Pull the color name from the end of the string.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,1,1,1,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,1,1,1,0&quot;&gt;Pattern:&lt;/b&gt; &lt;code data-index-in-node=&quot;9&quot; data-path-to-node=&quot;2,1,1,1,0&quot;&gt;[^-]+$&lt;/code&gt; (Matches characters after the last hyphen).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,1,1,2,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,1,1,2,0&quot;&gt;Result:&lt;/b&gt; &lt;code data-index-in-node=&quot;8&quot; data-path-to-node=&quot;2,1,1,2,0&quot;&gt;Blue&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important;&quot;&gt;&lt;p data-path-to-node=&quot;2,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,2,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,2,0&quot;&gt;REGEXP_REPLACE&lt;/code&gt; (The Cleaner)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;ul data-path-to-node=&quot;2,2,1&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,2,1,0,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,2,1,0,0&quot;&gt;Goal:&lt;/b&gt; Remove the hash symbol (&lt;code data-index-in-node=&quot;30&quot; data-path-to-node=&quot;2,2,1,0,0&quot;&gt;#&lt;/code&gt;).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,2,1,1,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,2,1,1,0&quot;&gt;Pattern:&lt;/b&gt; &lt;code data-index-in-node=&quot;9&quot; data-path-to-node=&quot;2,2,1,1,0&quot;&gt;#&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,2,1,2,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,2,1,2,0&quot;&gt;Replacement:&lt;/b&gt; &lt;code data-index-in-node=&quot;13&quot; data-path-to-node=&quot;2,2,1,2,0&quot;&gt;&#39;&#39;&lt;/code&gt; (Empty string).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,2,1,3,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,2,1,3,0&quot;&gt;Result:&lt;/b&gt; &lt;code data-index-in-node=&quot;8&quot; data-path-to-node=&quot;2,2,1,3,0&quot;&gt;Item_1234-Blue&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important;&quot;&gt;&lt;p data-path-to-node=&quot;2,3,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,3,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,3,0&quot;&gt;REGEXP_COUNT&lt;/code&gt; (The Auditor)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/li&gt;&lt;ul data-path-to-node=&quot;2,3,1&quot; style=&quot;font-family: &amp;quot;Google Sans&amp;quot;, sans-serif !important;&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,3,1,0,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,3,1,0,0&quot;&gt;Goal:&lt;/b&gt; Count how many times a hyphen appears.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,3,1,1,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,3,1,1,0&quot;&gt;Pattern:&lt;/b&gt; &lt;code data-index-in-node=&quot;9&quot; data-path-to-node=&quot;2,3,1,1,0&quot;&gt;-&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;2,3,1,2,0&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2,3,1,2,0&quot;&gt;Result:&lt;/b&gt; &lt;code data-index-in-node=&quot;8&quot; data-path-to-node=&quot;2,3,1,2,0&quot;&gt;1&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style=&quot;font-family: monospace; font-size: small;&quot;&gt;Cheers&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: monospace; font-size: small;&quot;&gt;Samitha&lt;/span&gt;&lt;/div&gt;&lt;/h3&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/5530043482176763824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/03/sql-server-2025-regular-expressions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/5530043482176763824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/5530043482176763824'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/03/sql-server-2025-regular-expressions.html' title='SQL Server 2025 Regular expressions functions'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-892633507307574478</id><published>2026-02-21T05:03:00.000-08:00</published><updated>2026-02-21T05:03:43.027-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GitHub Copilot in SQL Server"/><title type='text'>GitHub Copilot in SQL Server (Preview)</title><content type='html'>&lt;p data-path-to-node=&quot;0&quot;&gt;GitHub Copilot for SQL Server Management Studio (SSMS) integrates AI directly into your database environment to streamline T-SQL development. Here is a summary of how it works and what it offers:&lt;/p&gt;&lt;h3 data-path-to-node=&quot;1&quot;&gt;How it Works&lt;/h3&gt;&lt;p data-path-to-node=&quot;2&quot;&gt;The integration connects your &lt;b data-index-in-node=&quot;30&quot; data-path-to-node=&quot;2&quot;&gt;GitHub Copilot account&lt;/b&gt; to SSMS. When you submit a prompt, SSMS sends it to the selected AI model along with &lt;b data-index-in-node=&quot;138&quot; data-path-to-node=&quot;2&quot;&gt;contextual metadata&lt;/b&gt;—such as your SQL version and database schema—to ensure the generated code is accurate and relevant to your specific environment.&lt;/p&gt;&lt;h3 data-path-to-node=&quot;4&quot;&gt;Key Features&lt;/h3&gt;&lt;ul data-path-to-node=&quot;5&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;Interactive Chat:&lt;/b&gt; Use a dedicated chat window or an &lt;b data-index-in-node=&quot;52&quot; data-path-to-node=&quot;5,0,0&quot;&gt;inline chat view&lt;/b&gt; to ask questions using natural language.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;5,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;T-SQL Assistance:&lt;/b&gt; Generate, fix, or optimize SQL queries on the fly.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;5,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,0&quot;&gt;Slash Commands:&lt;/b&gt; Use quick shortcuts for specific tasks:&lt;/p&gt;&lt;ul data-path-to-node=&quot;5,2,1&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;5,2,1,0,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,1,0,0&quot;&gt;/doc&lt;/code&gt;: Automatically document your code.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;5,2,1,1,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,1,1,0&quot;&gt;Explain&lt;/code&gt;: Get a breakdown of complex queries.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;5,2,1,2,0&quot;&gt;&lt;code data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,1,2,0&quot;&gt;Fix/Optimize&lt;/code&gt;: Improve query performance or resolve errors.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0&quot;&gt;Note:&lt;/b&gt; This feature is currently in &lt;b data-index-in-node=&quot;35&quot; data-path-to-node=&quot;7,0&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/ssms/github-copilot/overview&quot; target=&quot;_blank&quot;&gt;Preview&lt;/a&gt;&lt;/b&gt;. You will need an active GitHub Copilot subscription and the latest SSMS preview installation to use it.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Cheers,&lt;/p&gt;&lt;p&gt;Samitha&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/892633507307574478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/02/github-copilot-in-sql-server-preview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/892633507307574478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/892633507307574478'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/02/github-copilot-in-sql-server-preview.html' title='GitHub Copilot in SQL Server (Preview)'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-288677147030312252</id><published>2026-01-14T21:53:00.000-08:00</published><updated>2026-01-14T21:53:01.510-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="npm run build  issues"/><category scheme="http://www.blogger.com/atom/ns#" term="npm run build  not working"/><title type='text'>npm run build does not work </title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div&gt;If you are experiencing building js files for production follow these steps&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;Make sure you have the correct node version&lt;/li&gt;&lt;/ul&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; execute&amp;nbsp;node -v in PowerShell / Command Prompt / VS Code terminal&lt;div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Delete node_modules&amp;nbsp;&lt;/li&gt;&lt;li&gt;Delete&amp;nbsp;package-lock.json&lt;/li&gt;&lt;li&gt;Install correct node version&lt;/li&gt;&lt;li&gt;Restart the Terminal (This step is required on Windows so PATH updates correctly)&lt;/li&gt;&lt;li&gt;execute npm install in PowerShell / Command Prompt / VS Code terminal&lt;/li&gt;&lt;li&gt;execute&amp;nbsp;npm run dev in PowerShell / Command Prompt / VS Code terminal&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers&lt;/div&gt;&lt;div&gt;Samitha&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/288677147030312252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2026/01/npm-run-build-does-not-work.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/288677147030312252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/288677147030312252'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2026/01/npm-run-build-does-not-work.html' title='npm run build does not work '/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-6331853889007630148</id><published>2025-12-29T16:25:00.000-08:00</published><updated>2025-12-29T16:25:16.191-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fuzzy string"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server 2025 fuzzy string matching"/><title type='text'>SQL Server 2025 fuzzy string matching(preview)</title><content type='html'>&lt;p&gt;&amp;nbsp;Fuzzy (approximate) string matching compares two strings Chto determine how similar they are and to measure their differences. It is used to identify strings that may vary due to character corruption, such as spelling mistakes, transposed or missing characters, or the use of abbreviations. This technique relies on algorithms that detect similarity based on character patterns or phonetic likeness, enabling the matching of strings that sound alike or are nearly identical despite minor variations.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Check &lt;a href=&quot;https://learn.microsoft.com/en-us/sql/relational-databases/fuzzy-string-match/overview?view=fabric-sqldb&amp;amp;viewFallbackFrom=sql-server-ver17&quot; target=&quot;_blank&quot;&gt;here &lt;/a&gt;for samples&lt;/p&gt;&lt;p&gt;Samitha&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/6331853889007630148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2025/12/sql-server-2025-fuzzy-string.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/6331853889007630148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/6331853889007630148'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2025/12/sql-server-2025-fuzzy-string.html' title='SQL Server 2025 fuzzy string matching(preview)'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3130554371420344199.post-6237715602967997892</id><published>2025-12-20T20:52:00.000-08:00</published><updated>2025-12-20T20:52:27.740-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="LAG() Function.SQL Server LAG() Function"/><title type='text'>SQL Server LAG() Function</title><content type='html'>&lt;p&gt;&amp;nbsp;The SQL &lt;code data-end=&quot;15&quot; data-start=&quot;8&quot;&gt;LAG()&lt;/code&gt; function is a window function used to access a column’s value from a previous row within a defined partition and order. Unlike aggregate functions, it does not reduce the number of rows; instead, it returns a corresponding value for each row. By specifying a partition (e.g., by organisation) and an order (e.g., by year), &lt;code data-end=&quot;346&quot; data-start=&quot;339&quot;&gt;LAG()&lt;/code&gt; enables row-by-row comparisons, such as comparing current values with prior-period values&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;E.g&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;SELECT&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Department,&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Employee,&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; SalaryMonth,&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Salary,&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; LAG(Salary, 1, 0)&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OVER (PARTITION BY Department ORDER BY SalaryMonth) AS PrevMonthSalary&lt;/p&gt;&lt;p&gt;FROM EmployeeSalary&lt;/p&gt;&lt;p&gt;ORDER BY Department, SalaryMonth&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;span&gt;&lt;/span&gt;&lt;div&gt;&lt;h3 data-end=&quot;503&quot; data-start=&quot;493&quot;&gt;Result&lt;/h3&gt;
&lt;div class=&quot;TyagGW_tableContainer&quot;&gt;&lt;div class=&quot;group TyagGW_tableWrapper flex w-fit flex-col-reverse&quot; tabindex=&quot;-1&quot;&gt;&lt;table class=&quot;w-fit min-w-(--thread-content-width)&quot; data-end=&quot;1040&quot; data-start=&quot;505&quot;&gt;&lt;thead data-end=&quot;571&quot; data-start=&quot;505&quot;&gt;&lt;tr data-end=&quot;571&quot; data-start=&quot;505&quot;&gt;&lt;th data-col-size=&quot;sm&quot; data-end=&quot;518&quot; data-start=&quot;505&quot;&gt;Department&lt;/th&gt;&lt;th data-col-size=&quot;sm&quot; data-end=&quot;529&quot; data-start=&quot;518&quot;&gt;Employee&lt;/th&gt;&lt;th data-col-size=&quot;sm&quot; data-end=&quot;543&quot; data-start=&quot;529&quot;&gt;SalaryMonth&lt;/th&gt;&lt;th data-col-size=&quot;sm&quot; data-end=&quot;552&quot; data-start=&quot;543&quot;&gt;Salary&lt;/th&gt;&lt;th data-col-size=&quot;sm&quot; data-end=&quot;571&quot; data-start=&quot;552&quot;&gt;PrevMonthSalary&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody data-end=&quot;1040&quot; data-start=&quot;639&quot;&gt;&lt;tr data-end=&quot;705&quot; data-start=&quot;639&quot;&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;652&quot; data-start=&quot;639&quot;&gt;IT&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;663&quot; data-start=&quot;652&quot;&gt;John&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;677&quot; data-start=&quot;663&quot;&gt;2024-01&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;686&quot; data-start=&quot;677&quot;&gt;120000&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;705&quot; data-start=&quot;686&quot;&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr data-end=&quot;772&quot; data-start=&quot;706&quot;&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;719&quot; data-start=&quot;706&quot;&gt;IT&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;730&quot; data-start=&quot;719&quot;&gt;John&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;744&quot; data-start=&quot;730&quot;&gt;2024-02&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;753&quot; data-start=&quot;744&quot;&gt;125000&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;772&quot; data-start=&quot;753&quot;&gt;120000&lt;/td&gt;&lt;/tr&gt;&lt;tr data-end=&quot;839&quot; data-start=&quot;773&quot;&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;786&quot; data-start=&quot;773&quot;&gt;IT&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;797&quot; data-start=&quot;786&quot;&gt;John&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;811&quot; data-start=&quot;797&quot;&gt;2024-03&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;820&quot; data-start=&quot;811&quot;&gt;130000&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;839&quot; data-start=&quot;820&quot;&gt;125000&lt;/td&gt;&lt;/tr&gt;&lt;tr data-end=&quot;906&quot; data-start=&quot;840&quot;&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;853&quot; data-start=&quot;840&quot;&gt;HR&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;864&quot; data-start=&quot;853&quot;&gt;Mary&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;878&quot; data-start=&quot;864&quot;&gt;2024-01&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;887&quot; data-start=&quot;878&quot;&gt;90000&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;906&quot; data-start=&quot;887&quot;&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr data-end=&quot;973&quot; data-start=&quot;907&quot;&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;920&quot; data-start=&quot;907&quot;&gt;HR&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;931&quot; data-start=&quot;920&quot;&gt;Mary&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;945&quot; data-start=&quot;931&quot;&gt;2024-02&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;954&quot; data-start=&quot;945&quot;&gt;92000&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;973&quot; data-start=&quot;954&quot;&gt;90000&lt;/td&gt;&lt;/tr&gt;&lt;tr data-end=&quot;1040&quot; data-start=&quot;974&quot;&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;987&quot; data-start=&quot;974&quot;&gt;HR&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;998&quot; data-start=&quot;987&quot;&gt;Mary&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1012&quot; data-start=&quot;998&quot;&gt;2024-03&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1021&quot; data-start=&quot;1012&quot;&gt;95000&lt;/td&gt;&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1040&quot; data-start=&quot;1021&quot;&gt;92000&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ssenarath.blogspot.com/feeds/6237715602967997892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ssenarath.blogspot.com/2025/12/sql-server-lag-function.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/6237715602967997892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3130554371420344199/posts/default/6237715602967997892'/><link rel='alternate' type='text/html' href='http://ssenarath.blogspot.com/2025/12/sql-server-lag-function.html' title='SQL Server LAG() Function'/><author><name>Samitha</name><uri>http://www.blogger.com/profile/15102618486273075770</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>