<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Benjamin Fadina</title>
    <description>The latest articles on DEV Community by Benjamin Fadina (@benjaminsqlserver).</description>
    <link>https://dev.to/benjaminsqlserver</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F664007%2F026a7bf5-c946-4517-b104-35811614228d.jpeg</url>
      <title>DEV Community: Benjamin Fadina</title>
      <link>https://dev.to/benjaminsqlserver</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/benjaminsqlserver"/>
    <language>en</language>
    <item>
      <title>Building a Shapes Learning Exercise in Blazor with Radzen Components</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Thu, 09 Oct 2025 09:02:55 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/building-a-shapes-learning-exercise-in-blazor-with-radzen-components-hfc</link>
      <guid>https://dev.to/benjaminsqlserver/building-a-shapes-learning-exercise-in-blazor-with-radzen-components-hfc</guid>
      <description>&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/3Z_B8UlnXN4"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;🎓 Build an Interactive Shapes Learning Exercise with Blazor WebAssembly &amp;amp; Radzen Components&lt;br&gt;
Welcome to this comprehensive youtube tutorial where we'll build a fully functional Shapes Learning Exercise application using Blazor WebAssembly, Radzen Blazor Components, and Microsoft SQL Server!&lt;br&gt;
🎯 What You'll Learn&lt;br&gt;
In this tutorial, you'll discover how to create an engaging educational application that allows students to:&lt;/p&gt;

&lt;p&gt;✅ Identify geometric shapes through interactive visual exercises&lt;br&gt;
✅ Submit answers and receive instant feedback&lt;br&gt;
✅ Track their progress with score history&lt;br&gt;
✅ See their best performance highlighted with alerts and badges&lt;/p&gt;

&lt;p&gt;🛠️ Technologies Covered&lt;/p&gt;

&lt;p&gt;Blazor WebAssembly - Microsoft's client-side web framework&lt;br&gt;
Radzen Blazor Components - Professional-grade UI components&lt;br&gt;
Microsoft SQL Server - Database for storing student data and results&lt;br&gt;
SVG Graphics - Dynamically generated vector graphics&lt;br&gt;
Authentication &amp;amp; Authorization - Securing pages with [Authorize] attribute&lt;/p&gt;

&lt;p&gt;📚 Key Features&lt;/p&gt;

&lt;p&gt;Dynamic Shape Rendering - 18 different geometric shapes using SVG&lt;br&gt;
User Input Validation - Case-insensitive answer checking&lt;br&gt;
Score Tracking System - Store and retrieve student results&lt;br&gt;
High Score Display - Show best performance with percentages&lt;br&gt;
Responsive Grid Layout - Works on desktop, tablet, and mobile&lt;br&gt;
Visual Feedback - Color-coded results (green/red borders)&lt;br&gt;
Notification System - Celebrate new high scores&lt;/p&gt;

&lt;p&gt;📥 GitHub Resources&lt;br&gt;
Starting Database Schema:&lt;br&gt;
👉 &lt;a href="https://github.com/benjaminsqlserver/LearningAppStartingDB" rel="noopener noreferrer"&gt;https://github.com/benjaminsqlserver/LearningAppStartingDB&lt;/a&gt;&lt;br&gt;
Final Database Schema:&lt;br&gt;
👉 &lt;a href="https://github.com/benjaminsqlserver/LearningAppDB" rel="noopener noreferrer"&gt;https://github.com/benjaminsqlserver/LearningAppDB&lt;/a&gt;&lt;br&gt;
Complete Source Code:&lt;br&gt;
👉 &lt;a href="https://github.com/benjaminsqlserver/LearningApp" rel="noopener noreferrer"&gt;https://github.com/benjaminsqlserver/LearningApp&lt;/a&gt;&lt;br&gt;
🎨 Radzen Components Used&lt;br&gt;
RadzenCard, RadzenText, RadzenAlert, RadzenTextBox, RadzenButton, RadzenBadge, RadzenRow, RadzenColumn, RadzenStack&lt;br&gt;
🎬 Perfect For&lt;/p&gt;

&lt;p&gt;C# developers learning Blazor WebAssembly&lt;br&gt;
Educators building interactive learning applications&lt;br&gt;
Developers exploring Radzen Blazor components&lt;br&gt;
Teams implementing score tracking systems&lt;/p&gt;

&lt;p&gt;🔔 Don't Forget To&lt;br&gt;
👍 Like | 💬 Comment | 🔔 Subscribe | 📤 Share&lt;/p&gt;

&lt;h1&gt;
  
  
  BlazorWebAssembly #Blazor #CSharp #RadzenBlazor #SQLServer #WebDevelopment #DotNet #EducationalAppRetry
&lt;/h1&gt;

</description>
      <category>radzen</category>
      <category>shapes</category>
      <category>svg</category>
      <category>blazor</category>
    </item>
    <item>
      <title>LESSON 6: CREATION OF ALL LAYERS OF COURSE MANAGEMENT MICROSERVICE USING WRAPT</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Tue, 23 Jul 2024 10:50:59 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/lesson-5-creation-of-all-layers-of-course-management-microservice-using-wrapt-552a</link>
      <guid>https://dev.to/benjaminsqlserver/lesson-5-creation-of-all-layers-of-course-management-microservice-using-wrapt-552a</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/rRBfvTFGnbA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Source code can be found at &lt;a href="https://github.com/benjaminsqlserver/AddCourseMgtMicroservice" rel="noopener noreferrer"&gt;https://github.com/benjaminsqlserver/AddCourseMgtMicroservice&lt;/a&gt;&lt;br&gt;
Steps&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We are going to start by creating a yaml file to describe the Course Management Microservice.&lt;/li&gt;
&lt;li&gt;I am going to save the yaml file for the Course Management Microservice in the same folder where I saved the yaml file for the Student Management Microservice&lt;/li&gt;
&lt;li&gt;I am now going to get the full object name of the yaml file for Course Management Microservice. I will copy the full object name.&lt;/li&gt;
&lt;li&gt;I will now paste that full object name into an empty Sublime Text file.&lt;/li&gt;
&lt;li&gt;I will add the craftsman add bc command&lt;/li&gt;
&lt;li&gt;I will now open the folder where the Visual Studio solution file is. I will run the command I formulated in step 5 there. &lt;/li&gt;
&lt;li&gt;I will now open the updated Visual Studio Solution.&lt;/li&gt;
&lt;li&gt;I will now go to Solution Explorer&lt;/li&gt;
&lt;li&gt;I will set CourseManagement as startup project in Solution Explorer&lt;/li&gt;
&lt;li&gt;I will now update database connection string in appsetting.development.json file of CourseManagement Microservice to point to the default instance of SQL SERVER on my PC.&lt;/li&gt;
&lt;li&gt;I will now open Package Manager Console&lt;/li&gt;
&lt;li&gt;Please ensure your default project is set to Course Management in Package Manager Console&lt;/li&gt;
&lt;li&gt;Type the command Add-Migration GenerateDb and press Enter.&lt;/li&gt;
&lt;li&gt;Let us take some time to examine generated migration file.&lt;/li&gt;
&lt;li&gt;Let us now update the database&lt;/li&gt;
&lt;li&gt;Let us run the Course Management Microservice for the first time&lt;/li&gt;
&lt;li&gt;Thank you for watching.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>wrapt</category>
      <category>webapi</category>
      <category>microservices</category>
      <category>webdev</category>
    </item>
    <item>
      <title>LESSON 5: CREATION OF ALL LAYERS OF STUDENT MANAGEMENT MICROSERVICE USING WRAPT</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Sat, 20 Jul 2024 05:28:17 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/lesson-5-creation-of-all-layers-of-student-management-microservice-using-wrapt-4edn</link>
      <guid>https://dev.to/benjaminsqlserver/lesson-5-creation-of-all-layers-of-student-management-microservice-using-wrapt-4edn</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/YISvG4oP4wQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;In this video, I create all layers of StudentManagement Microservice using wrapt.&lt;br&gt;
YAML FILE:&lt;br&gt;
DomainName: UniversityAdministrationPortal&lt;br&gt;
BoundedContexts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ProjectName: StudentManagement
Port: 5001
DbContext:
  ContextName: StudentManagementDbContext
  DatabaseName: StudentManagement
  Provider: sqlserver
Entities:

&lt;ul&gt;
&lt;li&gt;Name: Student
Features:

&lt;ul&gt;
&lt;li&gt;Type: AddRecord&lt;/li&gt;
&lt;li&gt;Type: GetRecord&lt;/li&gt;
&lt;li&gt;Type: GetList&lt;/li&gt;
&lt;li&gt;Type: UpdateRecord&lt;/li&gt;
&lt;li&gt;Type: DeleteRecord
Properties:&lt;/li&gt;
&lt;li&gt;Name: MatriculationNumber
Type: string&lt;/li&gt;
&lt;li&gt;Name: FirstName
Type: string&lt;/li&gt;
&lt;li&gt;Name: LastName
Type: string&lt;/li&gt;
&lt;li&gt;Name: DateOfBirth
Type: DateTime&lt;/li&gt;
&lt;li&gt;Name: GenderId
Type: guid&lt;/li&gt;
&lt;li&gt;Name: Email
Type: string&lt;/li&gt;
&lt;li&gt;Name: PhoneNumber
Type: string&lt;/li&gt;
&lt;li&gt;Name: StudentContactInformations
Relationship: 1tomany
ForeignEntityName: StudentContactInformation
ForeignEntityPlural: StudentContactInformations&lt;/li&gt;
&lt;li&gt;Name: StudentNextOfKins
Relationship: 1tomany
ForeignEntityName: StudentNextOfKin
ForeignEntityPlural: StudentNextOfKins&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Name: StudentContactInformation
Features:

&lt;ul&gt;
&lt;li&gt;Type: AddRecord&lt;/li&gt;
&lt;li&gt;Type: GetRecord&lt;/li&gt;
&lt;li&gt;Type: GetList&lt;/li&gt;
&lt;li&gt;Type: UpdateRecord&lt;/li&gt;
&lt;li&gt;Type: DeleteRecord
Properties:&lt;/li&gt;
&lt;li&gt;Name: HouseAddress
Type: string&lt;/li&gt;
&lt;li&gt;Name: City
Type: string&lt;/li&gt;
&lt;li&gt;Name: State
Type: string&lt;/li&gt;
&lt;li&gt;Name: ZipCode
Type: string&lt;/li&gt;
&lt;li&gt;Name: CountryID
Type: guid&lt;/li&gt;
&lt;li&gt;Name: StudentID
Type: guid&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Name: StudentNextOfKin
Features:

&lt;ul&gt;
&lt;li&gt;Type: AddRecord&lt;/li&gt;
&lt;li&gt;Type: GetRecord&lt;/li&gt;
&lt;li&gt;Type: GetList&lt;/li&gt;
&lt;li&gt;Type: UpdateRecord&lt;/li&gt;
&lt;li&gt;Type: DeleteRecord
Properties:&lt;/li&gt;
&lt;li&gt;Name: FirstName
Type: string&lt;/li&gt;
&lt;li&gt;Name: LastName
Type: string&lt;/li&gt;
&lt;li&gt;Name: DateOfBirth
Type: DateTime&lt;/li&gt;
&lt;li&gt;Name: GenderId
Type: guid&lt;/li&gt;
&lt;li&gt;Name: Email
Type: string&lt;/li&gt;
&lt;li&gt;Name: PhoneNumber
Type: string&lt;/li&gt;
&lt;li&gt;Name: StudentID
Type: guid&lt;/li&gt;
&lt;li&gt;Name: RelationshipID
Type: guid&lt;/li&gt;
&lt;li&gt;Name: NextOfKinContactInformations
Relationship: 1tomany
ForeignEntityName: NextOfKinContactInformation
ForeignEntityPlural: NextOfKinContactInformations&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Name: NextOfKinContactInformation
Features:

&lt;ul&gt;
&lt;li&gt;Type: AddRecord&lt;/li&gt;
&lt;li&gt;Type: GetRecord&lt;/li&gt;
&lt;li&gt;Type: GetList&lt;/li&gt;
&lt;li&gt;Type: UpdateRecord&lt;/li&gt;
&lt;li&gt;Type: DeleteRecord
Properties:&lt;/li&gt;
&lt;li&gt;Name: HouseAddress
Type: string&lt;/li&gt;
&lt;li&gt;Name: City
Type: string&lt;/li&gt;
&lt;li&gt;Name: State
Type: string&lt;/li&gt;
&lt;li&gt;Name: ZipCode
Type: string&lt;/li&gt;
&lt;li&gt;Name: CountryID
Type: guid&lt;/li&gt;
&lt;li&gt;Name: NextOfKinID
Type: guid&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Name: Gender
Features:

&lt;ul&gt;
&lt;li&gt;Type: AddRecord&lt;/li&gt;
&lt;li&gt;Type: GetRecord&lt;/li&gt;
&lt;li&gt;Type: GetList&lt;/li&gt;
&lt;li&gt;Type: UpdateRecord&lt;/li&gt;
&lt;li&gt;Type: DeleteRecord
Properties:&lt;/li&gt;
&lt;li&gt;Name: GenderName
Type: string&lt;/li&gt;
&lt;li&gt;Name: Students
Relationship: 1tomany
ForeignEntityName: Student
ForeignEntityPlural: Students&lt;/li&gt;
&lt;li&gt;Name: StudentNextOfKins
Relationship: 1tomany
ForeignEntityName: StudentNextOfKin
ForeignEntityPlural: StudentNextOfKins&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Name: Country
Features:

&lt;ul&gt;
&lt;li&gt;Type: AddRecord&lt;/li&gt;
&lt;li&gt;Type: GetRecord&lt;/li&gt;
&lt;li&gt;Type: GetList&lt;/li&gt;
&lt;li&gt;Type: UpdateRecord&lt;/li&gt;
&lt;li&gt;Type: DeleteRecord
Properties:&lt;/li&gt;
&lt;li&gt;Name: CountryName
Type: string&lt;/li&gt;
&lt;li&gt;Name: StudentContactInformations
Relationship: 1tomany
ForeignEntityName: StudentContactInformation
ForeignEntityPlural: StudentContactInformations&lt;/li&gt;
&lt;li&gt;Name: NextOfKinContactInformations
Relationship: 1tomany
ForeignEntityName: NextOfKinContactInformation
ForeignEntityPlural: NextOfKinContactInformations&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Name: Relationship
Features:

&lt;ul&gt;
&lt;li&gt;Type: AddRecord&lt;/li&gt;
&lt;li&gt;Type: GetRecord&lt;/li&gt;
&lt;li&gt;Type: GetList&lt;/li&gt;
&lt;li&gt;Type: UpdateRecord&lt;/li&gt;
&lt;li&gt;Type: DeleteRecord
Properties:&lt;/li&gt;
&lt;li&gt;Name: RelationshipName
Type: string&lt;/li&gt;
&lt;li&gt;Name: StudentNextOfKins
Relationship: 1tomany
ForeignEntityName: StudentNextOfKin
ForeignEntityPlural: StudentNextOfKins
Source code for this lesson can be found at &lt;a href="https://github.com/benjaminsqlserver/StudentManagementMicroservice" rel="noopener noreferrer"&gt;https://github.com/benjaminsqlserver/StudentManagementMicroservice&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>wrapt</category>
      <category>webapi</category>
      <category>microservices</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Lesson 2: Identifying Microservices for University Administration Portal</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Sat, 20 Jul 2024 05:26:02 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/lesson-2-identifying-microservices-for-university-administration-portal-36ab</link>
      <guid>https://dev.to/benjaminsqlserver/lesson-2-identifying-microservices-for-university-administration-portal-36ab</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/EmDE-him-aA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Lesson 2: Identifying Microservices for University Administration Portal&lt;/p&gt;

&lt;p&gt;Introduction&lt;br&gt;
This lesson delves into the microservices necessary for a university administration portal. Unlike monolithic architectures, microservices break applications into smaller, independent services that can be developed, deployed, and scaled independently.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Student Management Microservice&lt;/li&gt;
&lt;li&gt;Overview: Central to the portal, managing student information from enrollment to academic records.&lt;/li&gt;
&lt;li&gt;Key Features: 

&lt;ul&gt;
&lt;li&gt;Student Information Management&lt;/li&gt;
&lt;li&gt;Enrollment Management&lt;/li&gt;
&lt;li&gt;Academic Records&lt;/li&gt;
&lt;li&gt;Notifications&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Data Model: Includes entities such as Student, Enrollment, Course, Grade, and Notification.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration Points: Interfaces with Course Management, Examination and Grading, and Financial Management Microservices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Course Management Microservice&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overview: Manages the creation, scheduling, and management of courses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Key Features: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Course Creation and Management&lt;/li&gt;
&lt;li&gt;Scheduling&lt;/li&gt;
&lt;li&gt;Enrollment Management&lt;/li&gt;
&lt;li&gt;Resource Allocation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Model: Key entities include Course, Schedule, Instructor, Classroom, and Enrollment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration Points: Works with Student Management, Faculty Management, and Communication Microservices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Faculty Management Microservice&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overview: Handles information related to faculty members.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Key Features: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Faculty Information Management&lt;/li&gt;
&lt;li&gt;Assignment Management&lt;/li&gt;
&lt;li&gt;Schedule Management&lt;/li&gt;
&lt;li&gt;Performance Tracking&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Model: Entities include Faculty, Course Assignment, Schedule, and Evaluation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration Points: Connects with Course Management, Examination and Grading, and Communication Microservices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Examination and Grading Microservice&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overview: Manages examination schedules, grade recording, and transcript generation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Key Features: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exam Scheduling&lt;/li&gt;
&lt;li&gt;Grade Management&lt;/li&gt;
&lt;li&gt;Transcript Generation&lt;/li&gt;
&lt;li&gt;Notifications&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Model: Entities include Exam, Grade, Transcript, and Notification.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration Points: Integrates with Student Management, Faculty Management, and Communication Microservices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Financial Management Microservice&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overview: Manages financial transactions, including tuition payments and scholarships.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Key Features: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Payment Processing&lt;/li&gt;
&lt;li&gt;Scholarship Management&lt;/li&gt;
&lt;li&gt;Financial Records&lt;/li&gt;
&lt;li&gt;Billing and Invoicing&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Model: Entities include Payment, Scholarship, Financial Record, and Invoice.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration Points: Links with Student Management and Communication Microservices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Communication Microservice&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overview: Manages announcements and messaging within the university.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Key Features: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Announcements&lt;/li&gt;
&lt;li&gt;Messaging&lt;/li&gt;
&lt;li&gt;Notifications&lt;/li&gt;
&lt;li&gt;Feedback and Surveys&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Model: Entities include Announcement, Message, Notification, and Survey.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration Points: Integrates with all other microservices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authentication and Authorization Microservice&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Overview: Manages user authentication and role-based access control.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Key Features: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User Authentication&lt;/li&gt;
&lt;li&gt;Role Management&lt;/li&gt;
&lt;li&gt;Access Control&lt;/li&gt;
&lt;li&gt;Audit Logs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Model: Entities include User, Role, Permission, and Audit Log.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration Points: Interfaces with all other microservices for secure access control.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Conclusion&lt;br&gt;
The lesson outlines essential microservices for a university administration portal, each designed for specific functions to ensure efficient management. Adopting a microservices architecture enhances scalability, flexibility, and maintainability in university operations.&lt;/p&gt;

</description>
      <category>microservices</category>
      <category>webapi</category>
      <category>csharp</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Lesson 1: Introduction to University Administration Portal</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Sat, 20 Jul 2024 05:23:04 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/lesson-1-introduction-to-university-administration-portal-no1</link>
      <guid>https://dev.to/benjaminsqlserver/lesson-1-introduction-to-university-administration-portal-no1</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/_fxQGguZQ-E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Lesson 1: Introduction to University Administration Portal&lt;/p&gt;

&lt;p&gt;Table of Contents&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Overview&lt;/li&gt;
&lt;li&gt;Importance of University Administration Portals&lt;/li&gt;
&lt;li&gt;Technologies Used&lt;/li&gt;
&lt;li&gt;Understanding ASP.NET Web API&lt;/li&gt;
&lt;li&gt;Introduction to Microservices&lt;/li&gt;
&lt;li&gt;Overview of Blazor&lt;/li&gt;
&lt;li&gt;Using Radzen Blazor Components&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Overview&lt;br&gt;
University administration portals streamline administrative tasks, enhance communication, and provide seamless access to information for students, faculty, and staff. In this Lesson, we'll explore the significance of these portals, the technologies we'll be using, and how they integrate to create an efficient system.&lt;/p&gt;

&lt;p&gt;Importance of University Administration Portals&lt;br&gt;
University administration portals serve as a centralized platform to manage various administrative functions. They provide:&lt;/p&gt;

&lt;p&gt;Efficiency: Automating administrative tasks reduces manual effort and errors.&lt;br&gt;
Accessibility: Easy access to information for students, faculty, and staff.&lt;br&gt;
Communication: Enhanced communication channels between different stakeholders.&lt;br&gt;
Data Management: Centralized data management ensures data consistency and integrity.&lt;/p&gt;

&lt;p&gt;Technologies Used&lt;br&gt;
This Lesson will guide you through building a university administration portal using the following technologies:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ASP.NET Web API: For creating robust and scalable backend services.&lt;/li&gt;
&lt;li&gt;Microservices Architecture: For breaking down the application into smaller, independently deployable services.&lt;/li&gt;
&lt;li&gt;Blazor: For building interactive web UIs using C# instead of JavaScript.&lt;/li&gt;
&lt;li&gt;Radzen Blazor Components: For rapid application development using pre-built Blazor components.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Understanding ASP.NET Web API&lt;br&gt;
ASP.NET Web API is a framework for building HTTP services that can be consumed by various clients, including browsers and mobile devices. It is built on top of the .NET framework and provides a simple way to create RESTful services.&lt;/p&gt;

&lt;p&gt;Key Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scalability: Supports the creation of scalable services.&lt;/li&gt;
&lt;li&gt;Flexibility: Can be consumed by different types of clients.&lt;/li&gt;
&lt;li&gt;Interoperability: Easily integrates with other technologies and platforms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Introduction to Microservices&lt;br&gt;
Microservices architecture is a design pattern that structures an application as a collection of loosely coupled services. Each service is responsible for a specific business functionality and can be developed, deployed, and scaled independently.&lt;/p&gt;

&lt;p&gt;Benefits&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scalability: Each service can be scaled independently based on demand.&lt;/li&gt;
&lt;li&gt;Flexibility: Allows using different technologies best suited for each service.&lt;/li&gt;
&lt;li&gt;Resilience: Failure in one service does not affect the entire system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overview of Blazor&lt;br&gt;
Blazor is a framework for building interactive web applications using C#. It allows developers to create rich web UIs using .NET and run them in the browser using WebAssembly.&lt;/p&gt;

&lt;p&gt;Key Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Component-based Architecture: Build UIs as a collection of reusable components.&lt;/li&gt;
&lt;li&gt;Server-side and Client-side Hosting Models: Supports both server-side and client-side hosting.&lt;/li&gt;
&lt;li&gt;Full-stack Development: Use C# for both client and server code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using Radzen Blazor Components&lt;br&gt;
Radzen Blazor Components is a library of UI components for Blazor. It provides pre-built components that help in rapid application development.&lt;/p&gt;

&lt;p&gt;Key Features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rich Set of Components: Includes components for forms, data presentation, navigation, and more.&lt;/li&gt;
&lt;li&gt;Customization: Highly customizable to fit various design requirements.&lt;/li&gt;
&lt;li&gt;Integration: Seamlessly integrates with Blazor applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conclusion&lt;br&gt;
This Lesson provided an overview of the technologies and concepts that will be used to build a university administration portal. In the following Lessons, we will dive deeper into each technology and guide you through the development process step-by-step.&lt;/p&gt;

</description>
      <category>microservices</category>
      <category>webapi</category>
      <category>blazor</category>
      <category>radzen</category>
    </item>
    <item>
      <title>Migrating MySQL database to SQL Server Using Radzen Blazor Studio.</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Wed, 10 Apr 2024 14:25:07 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/migrating-mysql-database-to-sql-server-using-radzen-blazor-studio-1im5</link>
      <guid>https://dev.to/benjaminsqlserver/migrating-mysql-database-to-sql-server-using-radzen-blazor-studio-1im5</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/V9nJX383Ivo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Source code can be pulled from &lt;a href="https://github.com/benjaminsqlserver/MigratingMySQLToSQLServerUsingRadzenBlazorStudio"&gt;https://github.com/benjaminsqlserver/MigratingMySQLToSQLServerUsingRadzenBlazorStudio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Video Steps:-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connection is made to MySQL.&lt;/li&gt;
&lt;li&gt;Database ProductCatalogue is created with 2 tables ProductCategory and Products. A one to many relationship is also created between the 2 tables. Dummy data is also inserted into the 2 tables.&lt;/li&gt;
&lt;li&gt;A Radzen Blazor app is then created which connects to the MySQL database.&lt;/li&gt;
&lt;li&gt;The data in the two tables are then backed up as csv files via the Radzen app.&lt;/li&gt;
&lt;li&gt; A copy of the app is then pasted into the Converter folder where it is opened with Visual Studio. &lt;/li&gt;
&lt;li&gt;MySql related packages are then removed from the copy. &lt;/li&gt;
&lt;li&gt;Sql Server related packages as well as Microsoft.Entityframeworkcore.Tools packages are then added. &lt;/li&gt;
&lt;li&gt;The class BlankTriggerAddingConvention is removed from the Data folder and references to it are also removed from ConDataContext class.&lt;/li&gt;
&lt;li&gt;The appsettings.json and appsettings.development.json files are also updated to point to an instance of SQL Server.&lt;/li&gt;
&lt;li&gt;Program.cs file is also modified so that ConDataContext is initialized using SQLServer instead of Mysql.
11.Migrations for SQL SERVER are then generated using Package Manager Console.&lt;/li&gt;
&lt;li&gt;The database is then generated in SQL SERVER using update-database command
13.The converted app is then run.&lt;/li&gt;
&lt;li&gt;Data in the csv files are imported into SQL SERVER&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The script used to create the initial MySQL database is as follows:-&lt;/p&gt;

&lt;p&gt;-- Create the ProductCatalogue database&lt;br&gt;
CREATE DATABASE IF NOT EXISTS ProductCatalogue;&lt;/p&gt;

&lt;p&gt;-- Switch to the ProductCatalogue database&lt;br&gt;
USE ProductCatalogue;&lt;/p&gt;

&lt;p&gt;-- Create the ProductCategory table&lt;br&gt;
CREATE TABLE IF NOT EXISTS ProductCategory (&lt;br&gt;
    category_id INT AUTO_INCREMENT PRIMARY KEY,&lt;br&gt;
    category_name VARCHAR(50) NOT NULL&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;-- Create the Product table&lt;br&gt;
CREATE TABLE IF NOT EXISTS Product (&lt;br&gt;
    product_id INT AUTO_INCREMENT PRIMARY KEY,&lt;br&gt;
    product_name VARCHAR(100) NOT NULL,&lt;br&gt;
    price DECIMAL(10, 2) NOT NULL,&lt;br&gt;
    category_id INT,&lt;br&gt;
    FOREIGN KEY (category_id) REFERENCES ProductCategory(category_id)&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;-- Insert sample data into ProductCategory table&lt;br&gt;
INSERT INTO ProductCategory (category_name) VALUES&lt;br&gt;
    ('Electronics'),&lt;br&gt;
    ('Clothing'),&lt;br&gt;
    ('Books'),&lt;br&gt;
    ('Home &amp;amp; Kitchen'),&lt;br&gt;
    ('Toys');&lt;/p&gt;

&lt;p&gt;-- Insert sample data into Product table&lt;br&gt;
INSERT INTO Product (product_name, price, category_id) VALUES&lt;br&gt;
    ('Smartphone', 599.99, 1),&lt;br&gt;
    ('Laptop', 999.99, 1),&lt;br&gt;
    ('T-Shirt', 19.99, 2),&lt;br&gt;
    ('Jeans', 39.99, 2),&lt;br&gt;
    ('Python Programming for Beginners', 29.99, 3),&lt;br&gt;
    ('The Great Gatsby', 9.99, 3),&lt;br&gt;
    ('Coffee Maker', 49.99, 4),&lt;br&gt;
    ('Blender', 39.99, 4),&lt;br&gt;
    ('LEGO Set', 59.99, 5),&lt;br&gt;
    ('Doll', 24.99, 5),&lt;br&gt;
    ('Tablet', 299.99, 1),&lt;br&gt;
    ('Headphones', 79.99, 1),&lt;br&gt;
    ('Dress', 29.99, 2),&lt;br&gt;
    ('Sneakers', 49.99, 2),&lt;br&gt;
    ('Data Science Handbook', 49.99, 3),&lt;br&gt;
    ('Cookbook', 19.99, 3),&lt;br&gt;
    ('Microwave', 99.99, 4),&lt;br&gt;
    ('Toaster', 29.99, 4),&lt;br&gt;
    ('Board Game', 34.99, 5),&lt;br&gt;
    ('Action Figure', 14.99, 5);&lt;/p&gt;

</description>
      <category>database</category>
      <category>migration</category>
      <category>blazor</category>
      <category>radzen</category>
    </item>
    <item>
      <title>CREATING DOT NET APIS AND MICROSERVICES USING CRAFTSMAN (WRAPT) LESSON ONE CREATING BASIC .NET WEB API WITH CRAFTSMAN</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Sun, 17 Dec 2023 00:54:28 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/creating-dot-net-apis-and-microservices-using-craftsman-wrapt-lesson-one-creating-basic-net-web-api-with-craftsman-23m2</link>
      <guid>https://dev.to/benjaminsqlserver/creating-dot-net-apis-and-microservices-using-craftsman-wrapt-lesson-one-creating-basic-net-web-api-with-craftsman-23m2</guid>
      <description>&lt;p&gt;In this video, I introduce you to &lt;strong&gt;Craftsman&lt;/strong&gt;, a powerful web API creation tool developed by &lt;strong&gt;Paul Devito&lt;/strong&gt;. Let's dive into the details:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;: You can find the Craftsman GitHub repository at &lt;a href="https://github.com/pdevito3/craftsman"&gt;this link&lt;/a&gt;. Paul Devito actively maintains it, and it's a great resource for exploring the tool.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Craftsman Documentation&lt;/strong&gt;: The official website for Craftsman hosts comprehensive documentation. It covers everything you need to know about using Craftsman effectively. &lt;a href="https://wrapt.dev/docs/how-it-works"&gt;https://wrapt.dev/docs/how-it-works&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Creating a RecipeManagement Web API&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We start by defining the domain, entity, and entity properties in a &lt;strong&gt;YAML file&lt;/strong&gt;. This structured approach ensures clarity and consistency.&lt;/li&gt;
&lt;li&gt;Next, we run the Craftsman command to create the web API. Craftsman streamlines the process, making it efficient and straightforward.&lt;/li&gt;
&lt;li&gt;Once the API is generated, we open the solution file in &lt;strong&gt;Visual Studio&lt;/strong&gt;. The solution comprises the web API project, which adheres to the &lt;strong&gt;CQRS (Command Query Responsibility Segregation)&lt;/strong&gt; principle, and the associated test project.&lt;/li&gt;
&lt;li&gt;To ensure data integrity, we generate migrations for the database.&lt;/li&gt;
&lt;li&gt;Finally, we test the API using &lt;strong&gt;Swagger&lt;/strong&gt;, a powerful tool for API exploration and testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Accessing the Completed Solution&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can find the completed solution files on GitHub: &lt;a href="https://github.com/benjaminsqlserver/MuyikRecipeManagement"&gt;MuyikRecipeManagement&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Craftsman simplifies web API development, and with this walkthrough, you'll be well-equipped to create robust APIs. Happy coding! 🚀🔧&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/rcRPvOh-q_8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>webapi</category>
      <category>dotnet</category>
    </item>
    <item>
      <title>HOW TO GENERATE COMMA SEPERATED STRING USING STUFF FUNCTION IN TRANSACT-SQL</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Wed, 24 May 2023 06:23:49 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/how-to-generate-comma-seperated-string-using-stuff-function-in-transact-sql-1h4c</link>
      <guid>https://dev.to/benjaminsqlserver/how-to-generate-comma-seperated-string-using-stuff-function-in-transact-sql-1h4c</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Jrs4sjCCeUw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Concepts Covered In This Video Include:-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How To Connect To SQL SERVER using management studio.
2.How to create a new database using management studio.
3.How to create tables using management studio
4.How to create relationship between 2 tables using management studio
5.How to insert data into tables using management studio
6.How to create new stored procedures
7.How to use STUFF Transact-SQL function to generate comma separated strings
8.How to execute stored procedures from management studio
9.How to pass new set of parameters to a recently executed stored procedure in management studio&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;TRANSACT SQL QUERY FOR THE ENTIRE EXERCISE CAN BE FOUND BELOW&lt;/p&gt;

&lt;p&gt;USE [master]&lt;br&gt;
GO&lt;br&gt;
/****** Object:  Database [ProductCatalogueDB]    Script Date: 5/24/2023 6:40:17 AM ******/&lt;br&gt;
CREATE DATABASE [ProductCatalogueDB]&lt;/p&gt;

&lt;p&gt;GO&lt;/p&gt;

&lt;p&gt;USE [ProductCatalogueDB]&lt;br&gt;
GO&lt;br&gt;
/****** Object:  Table [dbo].[ProductCategories]    Script Date: 5/24/2023 6:40:17 AM ***&lt;strong&gt;&lt;em&gt;/&lt;br&gt;
SET ANSI_NULLS ON&lt;br&gt;
GO&lt;br&gt;
SET QUOTED_IDENTIFIER ON&lt;br&gt;
GO&lt;br&gt;
CREATE TABLE [dbo].&lt;a href="https://dev.to[CategoryID]%20[int]%20IDENTITY(1,1)%20NOT%20NULL,&amp;lt;br&amp;gt;%0A%20[CategoryName]%20[nvarchar](50)%20NOT%20NULL,&amp;lt;br&amp;gt;%0A%20CONSTRAINT%20[PK_ProductCategories]%20PRIMARY%20KEY%20CLUSTERED%20&amp;lt;br&amp;gt;%0A(&amp;lt;br&amp;gt;%0A%20[CategoryID]%20ASC&amp;lt;br&amp;gt;%0A)WITH%20(PAD_INDEX%20=%20OFF,%20STATISTICS_NORECOMPUTE%20=%20OFF,%20IGNORE_DUP_KEY%20=%20OFF,%20ALLOW_ROW_LOCKS%20=%20ON,%20ALLOW_PAGE_LOCKS%20=%20ON,%20OPTIMIZE_FOR_SEQUENTIAL_KEY%20=%20OFF)%20ON%20[PRIMARY]"&gt;ProductCategories&lt;/a&gt; ON [PRIMARY]&lt;br&gt;
GO&lt;br&gt;
/&lt;/em&gt;&lt;/strong&gt;*** Object:  Table [dbo].[Products]    Script Date: 5/24/2023 6:40:17 AM ***&lt;strong&gt;&lt;em&gt;/&lt;br&gt;
SET ANSI_NULLS ON&lt;br&gt;
GO&lt;br&gt;
SET QUOTED_IDENTIFIER ON&lt;br&gt;
GO&lt;br&gt;
CREATE TABLE [dbo].&lt;a href="https://dev.to[ProductID]%20[bigint]%20IDENTITY(1,1)%20NOT%20NULL,&amp;lt;br&amp;gt;%0A%20[ProductName]%20[nvarchar](70)%20NOT%20NULL,&amp;lt;br&amp;gt;%0A%20[UnitPrice]%20[decimal](18,%202)%20NOT%20NULL,&amp;lt;br&amp;gt;%0A%20[CategoryID]%20[int]%20NOT%20NULL,&amp;lt;br&amp;gt;%0A%20CONSTRAINT%20[PK_Products]%20PRIMARY%20KEY%20CLUSTERED%20&amp;lt;br&amp;gt;%0A(&amp;lt;br&amp;gt;%0A%20[ProductID]%20ASC&amp;lt;br&amp;gt;%0A)WITH%20(PAD_INDEX%20=%20OFF,%20STATISTICS_NORECOMPUTE%20=%20OFF,%20IGNORE_DUP_KEY%20=%20OFF,%20ALLOW_ROW_LOCKS%20=%20ON,%20ALLOW_PAGE_LOCKS%20=%20ON,%20OPTIMIZE_FOR_SEQUENTIAL_KEY%20=%20OFF)%20ON%20[PRIMARY]"&gt;Products&lt;/a&gt; ON [PRIMARY]&lt;br&gt;
GO&lt;br&gt;
SET IDENTITY_INSERT [dbo].[ProductCategories] ON &lt;br&gt;
GO&lt;br&gt;
INSERT [dbo].&lt;a href="https://dev.to[CategoryID],%20[CategoryName]"&gt;ProductCategories&lt;/a&gt; VALUES (1, N'Sport Equipment')&lt;br&gt;
GO&lt;br&gt;
INSERT [dbo].&lt;a href="https://dev.to[CategoryID],%20[CategoryName]"&gt;ProductCategories&lt;/a&gt; VALUES (2, N'Music Equipment')&lt;br&gt;
GO&lt;br&gt;
SET IDENTITY_INSERT [dbo].[ProductCategories] OFF&lt;br&gt;
GO&lt;br&gt;
SET IDENTITY_INSERT [dbo].[Products] ON &lt;br&gt;
GO&lt;br&gt;
INSERT [dbo].&lt;a href="https://dev.to[ProductID],%20[ProductName],%20[UnitPrice],%20[CategoryID]"&gt;Products&lt;/a&gt; VALUES (2, N'FIFA U-17 2022 World Cup Match Ball', CAST(456.22 AS Decimal(18, 2)), 1)&lt;br&gt;
GO&lt;br&gt;
INSERT [dbo].&lt;a href="https://dev.to[ProductID],%20[ProductName],%20[UnitPrice],%20[CategoryID]"&gt;Products&lt;/a&gt; VALUES (3, N'YAMAHA PSR-570 Keyboard', CAST(3456.57 AS Decimal(18, 2)), 2)&lt;br&gt;
GO&lt;br&gt;
INSERT [dbo].&lt;a href="https://dev.to[ProductID],%20[ProductName],%20[UnitPrice],%20[CategoryID]"&gt;Products&lt;/a&gt; VALUES (4, N'Shure Microphone', CAST(872.12 AS Decimal(18, 2)), 2)&lt;br&gt;
GO&lt;br&gt;
INSERT [dbo].&lt;a href="https://dev.to[ProductID],%20[ProductName],%20[UnitPrice],%20[CategoryID]"&gt;Products&lt;/a&gt; VALUES (5, N'FIBA 2021 Men''s World Cup Basketball', CAST(762.12 AS Decimal(18, 2)), 1)&lt;br&gt;
GO&lt;br&gt;
SET IDENTITY_INSERT [dbo].[Products] OFF&lt;br&gt;
GO&lt;br&gt;
ALTER TABLE [dbo].[Products]  WITH CHECK ADD  CONSTRAINT [FK_Products_ProductCategories] FOREIGN KEY([CategoryID])&lt;br&gt;
REFERENCES [dbo].&lt;a href="https://dev.to[CategoryID]"&gt;ProductCategories&lt;/a&gt;&lt;br&gt;
GO&lt;br&gt;
ALTER TABLE [dbo].[Products] CHECK CONSTRAINT [FK_Products_ProductCategories]&lt;br&gt;
GO&lt;br&gt;
/&lt;/em&gt;&lt;/strong&gt;*** Object:  StoredProcedure [dbo].[CommaSeparatedListsOfProductsByCategoryID]    Script Date: 5/24/2023 6:40:18 AM ******/&lt;br&gt;
SET ANSI_NULLS ON&lt;br&gt;
GO&lt;br&gt;
SET QUOTED_IDENTIFIER ON&lt;br&gt;
GO&lt;br&gt;
CREATE PROCEDURE [dbo].[CommaSeparatedListsOfProductsByCategoryID]&lt;br&gt;
@CategoryID int&lt;br&gt;
AS&lt;br&gt;
SELECT Products = STUFF((&lt;br&gt;
         SELECT ',' + ProductName&lt;br&gt;
            FROM Products&lt;br&gt;
   WHERE        (CategoryID = @CategoryID)&lt;br&gt;
            FOR XML PATH('')&lt;br&gt;
         ), 1, 1, '')&lt;br&gt;
GO&lt;br&gt;
USE [master]&lt;br&gt;
GO&lt;br&gt;
ALTER DATABASE [ProductCatalogueDB] SET  READ_WRITE &lt;br&gt;
GO&lt;/p&gt;

</description>
      <category>transactsql</category>
      <category>sql</category>
      <category>sqlserver</category>
    </item>
    <item>
      <title>How To Implement MultiTenancy In Server-Side Blazor Using Database Per Tenant Strategy</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Sun, 16 Apr 2023 06:17:28 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/how-to-implement-multitenancy-in-server-side-blazor-using-database-per-tenant-strategy-g73</link>
      <guid>https://dev.to/benjaminsqlserver/how-to-implement-multitenancy-in-server-side-blazor-using-database-per-tenant-strategy-g73</guid>
      <description>&lt;p&gt;This Video Demonstrates How To Implement MultiTenancy In Server-Side Blazor Using Database Per Tenant Strategy. Source Code can be pulled from &lt;a href="https://github.com/benjaminsqlserver/BlazorDatabasePerTenantStrategy"&gt;https://github.com/benjaminsqlserver/BlazorDatabasePerTenantStrategy&lt;/a&gt;&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gflYubkZNHg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>blazor</category>
      <category>multitenant</category>
      <category>multitenancy</category>
      <category>databasepertenantstrategy</category>
    </item>
    <item>
      <title>HOW TO CREATE SWAGGER ENABLED ODATA APIS USING RADZEN</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Thu, 09 Mar 2023 04:45:42 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/how-to-create-swagger-enabled-odata-apis-using-radzen-1lie</link>
      <guid>https://dev.to/benjaminsqlserver/how-to-create-swagger-enabled-odata-apis-using-radzen-1lie</guid>
      <description>&lt;p&gt;In this video, I show you how to create swagger enabled odata APIS using RADZEN.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NdF8DuVKqRA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Source code for this video can be cloned from &lt;a href="https://github.com/benjaminsqlserver/NotableAthletesODataAPI"&gt;https://github.com/benjaminsqlserver/NotableAthletesODataAPI&lt;/a&gt;&lt;/p&gt;

</description>
      <category>odata</category>
      <category>radzen</category>
      <category>api</category>
    </item>
    <item>
      <title>Send Email Using Server Side Blazor,ASP.NET Core, MailKit and RADZEN</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Sat, 11 Jun 2022 03:26:52 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/send-email-using-server-side-blazoraspnet-core-mailkit-and-radzen-5g8i</link>
      <guid>https://dev.to/benjaminsqlserver/send-email-using-server-side-blazoraspnet-core-mailkit-and-radzen-5g8i</guid>
      <description>&lt;p&gt;In response to a request from one of my colleague on the RADZEN forum, I recorded this video tutorial.&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/wW2cQk2JaH8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>blazor</category>
      <category>mailkit</category>
      <category>radzen</category>
      <category>aspnetcore</category>
    </item>
    <item>
      <title>CREATING CRUD PAGES WITH SQL SERVER, ASP NET WEB API, ANGULAR AND RADZEN</title>
      <dc:creator>Benjamin Fadina</dc:creator>
      <pubDate>Sat, 07 May 2022 19:35:40 +0000</pubDate>
      <link>https://dev.to/benjaminsqlserver/creating-crud-pages-with-sql-server-asp-net-web-api-angular-and-radzen-24ah</link>
      <guid>https://dev.to/benjaminsqlserver/creating-crud-pages-with-sql-server-asp-net-web-api-angular-and-radzen-24ah</guid>
      <description>&lt;p&gt;Source code and database script can be found at &lt;a href="https://github.com/benjaminsqlserver/BookStoreAngularWithWebAPI"&gt;https://github.com/benjaminsqlserver/BookStoreAngularWithWebAPI&lt;/a&gt;&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/8U1TzZihvSI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>webapi</category>
      <category>angular</category>
      <category>radzen</category>
      <category>sqlserver</category>
    </item>
  </channel>
</rss>
