.NET Conf 2023
.NET Conf 2023 is the largest .NET event hosted online! Co-organized by the .NET community and Microsoft and backed by the support of the .NET Foundation and ecosystem partners, it's your ticket to learning and finding inspiration for your upcoming software projects. Dive into the world of web, mobile, cloud, desktop, gaming, IoT, AI, and beyond, all powered by .NET. Whether you're just starting your coding journey or you're a seasoned pro, these sessions are tailored for everyone. Be prepared for presentations covering the exciting new features of .NET 8, C# 12, Azure, Visual Studio, and so much more. Tune in to learn about the fastest release of .NET yet!
Web Development with ASP.NET Core Razor Pages || FULL COURSE || Trevoir Williams
00:00 Introduction
1:00 Lesson 1: Setting Up
4:36 Lesson 2: Folder Tour
23:33 Lesson 3: Understanding Razor Syntax
35:52 Lesson 4: Message From Settings
43:44 Lesson 5: Adding Entity Framework Core
55:48 Lesson 6: Connect to Database with Entity Framework Core
1:10:20 Lesson 7: Scaffolding Database Tables as Classes
1:23:26 Lesson 8: GitHub Commit 1
1:32:50 Lesson 9: Create Page
1:54:32 Lesson 10: Update Page
2:18:25 Lesson 11: Details Page
2:23:56 Lesson 12: Delete Page
2:46:26 Lesson 13: UI Enhancements
3:19:38 Lesson 14: Check-In Module
3:21:04 Lesson 15: Added New Table
3:43:19 Lesson 16: Enhance Forms
4:07:40 Lesson 17: Further Form Enhancements
4:20:00 Lesson 18: Adding More Requirements
4:46:35 Lesson 19: Adding More Requirements Continued
5:05:23 Lesson 20: Add Cascading Dropdown
5:29:26 Lesson 21: Finish Cascading Dropdown
5:45:59 Lesson 22: Cleanup Labels
5:52:42 Lesson 23: Finish Interface Cleanup
6:23:57 Lesson 24: Setup Repositories
6:49:54 Lesson 25: Add First Repository Code
7:06:41 Lesson 26: Refactoring Pages
7:21:02 Lesson 27: Complete Repositories
7:42:27 Lesson 28: Section Conclusion
7:52:14 Lesson 29: User Authentication Setup
8:03:08 Lesson 30: Extend Users Table
8:08:01 Lesson 31: Setup Registration Page
8:28:27 Lesson 32: Setup Login
8:38:12 Lesson 33: Setup Authorization
8:47:47 Lesson 34: Add Authorization
namespace MyNewsWCFLibrary { using System; using System.Collections.Generic; public partial class tblNews { public int tblNewsId { get; set; } public int tblCategoryId { get; set; } public string Title { get; set; } public string Description { get; set; } public System.DateTime RegDate { get; set; } public Nullable<bool> IsDeleted { get; set; } public virtual tblCategory tblCategory { get; set; } } }
using System.Runtime.Serialization; namespace MyNewsWCFLibrary { using System; using System.Collections.Generic; [DataContract] public partial class tblNews { [DataMember] public int tblNewsId { get; set; } [DataMember] public int tblCategoryId { get; set; } [DataMember] public string Title { get; set; } [DataMember] public string Description { get; set; } [DataMember] public System.DateTime RegDate { get; set; } [DataMember] public Nullable<bool> IsDeleted { get; set; } public virtual tblCategory tblCategory { get; set; } } }
namespace MyNewsWCFLibrary { using System; using System.Collections.Generic; using System.Runtime.Serialization; [DataContract] public partial class tblCategory { public tblCategory() { this.tblNews = new HashSet<tblNews>(); } [DataMember] public int tblCategoryId { get; set; } [DataMember] public string CatName { get; set; } [DataMember] public bool IsDeleted { get; set; } public virtual ICollection<tblNews> tblNews { get; set; } } }
BEGIN TRANSACTION GO ALTER TABLE dbo.tblNews DROP CONSTRAINT FK_tblNews_tblCategory GO ALTER TABLE dbo.tblCategory SET (LOCK_ESCALATION = TABLE) GO COMMIT BEGIN TRANSACTION GO CREATE TABLE dbo.Tmp_tblNews ( tblNewsId int NOT NULL IDENTITY (1, 1), tblCategoryId int NOT NULL, Title nvarchar(50) NOT NULL, Description nvarchar(MAX) NOT NULL, RegDate datetime NOT NULL, IsDeleted bit NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE dbo.Tmp_tblNews SET (LOCK_ESCALATION = TABLE) GO ALTER TABLE dbo.Tmp_tblNews ADD CONSTRAINT DF_tblNews_IsDeleted DEFAULT 0 FOR IsDeleted GO SET IDENTITY_INSERT dbo.Tmp_tblNews ON GO IF EXISTS(SELECT * FROM dbo.tblNews) EXEC('INSERT INTO dbo.Tmp_tblNews (tblNewsId, tblCategoryId, Title, Description, RegDate, IsDeleted) SELECT tblNewsId, tblCategoryId, Title, Description, RegDate, IsDeleted FROM dbo.tblNews WITH (HOLDLOCK TABLOCKX)') GO SET IDENTITY_INSERT dbo.Tmp_tblNews OFF GO DROP TABLE dbo.tblNews GO EXECUTE sp_rename N'dbo.Tmp_tblNews', N'tblNews', 'OBJECT' GO ALTER TABLE dbo.tblNews ADD CONSTRAINT PK_tblNews PRIMARY KEY CLUSTERED ( tblNewsId ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO ALTER TABLE dbo.tblNews ADD CONSTRAINT FK_tblNews_tblCategory FOREIGN KEY ( tblCategoryId ) REFERENCES dbo.tblCategory ( tblCategoryId ) ON UPDATE NO ACTION ON DELETE NO ACTION GO COMMIT
SQL Instance
برای اتصال به این نسخهها باید در بخش آدرس سرور، از ترکیب نام سیستم و نام Instance به این شکل استفاده کرد: SystemName\Instance
بعضی مواقع لازم است که لیست Instanceهای نصب شده روی سیستم کاربر را به دست آوریم. ADO.NET کلاسی به همین منظور تعبیه کرده که شبکه را جستجو کرده و SQL Instanceهای مختلف را که قابل دسترسی هستند را برای شما لیست میکند. استفاده از این کلاس بسیار ساده است:
using System.Data.Sql; class Program { static void Main() { // Retrieve the enumerator instance and then the data. SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance; System.Data.DataTable table = instance.GetDataSources(); // Display the contents of the table. DisplayData(table); Console.WriteLine("Press any key to continue."); Console.ReadKey(); } private static void DisplayData(System.Data.DataTable table) { foreach (System.Data.DataRow row in table.Rows) { foreach (System.Data.DataColumn col in table.Columns) { Console.WriteLine("{0} = {1}", col.ColumnName, row[col]); } Console.WriteLine("============================"); } } }
البته با توجه به اینکه شبکه را جستجو میکند در نرم افزار شما وقفه خواهد انداخت. خوب اگه بخواهیم Instanceهای نصب شده روی سیستم کاربر را پیدا کنیم چی؟ سادهترین و سریعترین راه استفاده از رجیستری سیستم است. نام Instanceها در رجیستری ویندوز در آدرس زیر قابل دسترسی است:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names
برای استفاده از این کلید در c# میتوان از کد زیر کمک بگیرید:
var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names"); foreach (string sk in key.GetSubKeyNames()) { var rkey = key.OpenSubKey(sk); foreach (string s in rkey.GetValueNames()) { MessageBox.Show("Sql instance name:" + s); } }
نکته: Default Instance در SQL مقدار MSSQLSERVER میباشد.