Framework Demo
This demo, based on SqlServer, is meant to show the versatility of the WYSE framework and the freedom that goes wit it. Combining .NET with SQL to create something that is more and better than the sum of the two parts. The following are examples of how better database interaction could take shape, but should not be considered as 'this is how you should do it'. WYSE is built to offer the freedom to do it the way you want. The idea is to be able to code without having to make code quality damaging compromises.
...and since code speaks louder than words demo code (stack trace) and database results are shown in a developer-tools-like panel as you interact with the server.
Advanced Language Features
The framework supports several ways of building queries and also facilitates dynamic SQL statements decoration. The latter enables to statements to be modified, which in turn offers the possibility to neatly encapsulate query building code centrally.
Building on the previous example featuring custom Selects... The following examples feature a shared/generic repository base that implements basic CRUD operations.
This repository base uses a centralized custom QueryBackbone that can decorate a query in a way that paging is added.
The small window you are using greatly diminishes your demo experience. Please consider viewing using a larger window.
Command Text:
DECLARE @UserDivisionIds AS TABLE (
[DivisionId] uniqueidentifier NOT NULL
);
INSERT INTO @UserDivisionIds
([DivisionId])
SELECT [56154_FrameworkDemoSystems_dbo_GetDescendants].[DivisionId] [DivisionId_1]
FROM [56154_FrameworkDemoSystems].[dbo].[GetDescendants]('11111111-1111-1111-1111-111111111111') [56154_FrameworkDemoSystems_dbo_GetDescendants];
SELECT
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_FullName] [_StringFunnel_1],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_DivisionId] [_GuidFunnel_1],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_HomeAddressId] [_GuidFunnel_2],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_BillingAddressId] [_NullableGuidFunnel_1],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_Id] [_GuidFunnel_3],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_Created] [_DateTimeFunnel_1],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_LastModified] [_DateTimeFunnel_2],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_IsDeleted] [_BooleanFunnel_1],
[_CustomerSubselect].[_Count] [_NumberFunnel],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_Town_1] [_StringFunnel_2],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_Id_1] [_GuidFunnel_4],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_Created_1] [_DateTimeFunnel_3],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_LastModified_1] [_DateTimeFunnel_4],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_IsDeleted_1] [_BooleanFunnel_2],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_Town_2] [_StringFunnel_3],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_Id_2] [_GuidFunnel_5],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_Created_2] [_DateTimeFunnel_5],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_LastModified_2] [_DateTimeFunnel_6],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_IsDeleted_2] [_BooleanFunnel_3]
FROM
(
SELECT
[56154_FrameworkDemoCustomers_demo_Customer].[FullName] [56154_FrameworkDemoCustomers_demo_Customer_FullName],
[56154_FrameworkDemoCustomers_demo_Customer].[DivisionId] [56154_FrameworkDemoCustomers_demo_Customer_DivisionId],
[56154_FrameworkDemoCustomers_demo_Customer].[HomeAddressId] [56154_FrameworkDemoCustomers_demo_Customer_HomeAddressId],
[56154_FrameworkDemoCustomers_demo_Customer].[BillingAddressId] [56154_FrameworkDemoCustomers_demo_Customer_BillingAddressId],
[56154_FrameworkDemoCustomers_demo_Customer].[Id] [56154_FrameworkDemoCustomers_demo_Customer_Id],
[56154_FrameworkDemoCustomers_demo_Customer].[Created] [56154_FrameworkDemoCustomers_demo_Customer_Created],
[56154_FrameworkDemoCustomers_demo_Customer].[LastModified] [56154_FrameworkDemoCustomers_demo_Customer_LastModified],
[56154_FrameworkDemoCustomers_demo_Customer].[IsDeleted] [56154_FrameworkDemoCustomers_demo_Customer_IsDeleted],
COUNT([56154_FrameworkDemoCustomers_demo_Customer].[Id]) OVER() [_Count]
FROM [56154_FrameworkDemoCustomers].[demo].[Customer] [56154_FrameworkDemoCustomers_demo_Customer]
INNER JOIN
(
SELECT [UserDivisionIds].[DivisionId] [UserDivisionIds_DivisionId]
FROM @UserDivisionIds [UserDivisionIds]
) [_Select_2] ON ([56154_FrameworkDemoCustomers_demo_Customer].[DivisionId] = [_Select_2].[UserDivisionIds_DivisionId])
WHERE ([56154_FrameworkDemoCustomers_demo_Customer].[IsDeleted] = @IsDeleted1)
) [_CustomerSubselect]
INNER JOIN
(
SELECT
[56154_FrameworkDemoCustomers_demo_Address_1].[Town] [56154_FrameworkDemoCustomers_demo_Address_Town_1],
[56154_FrameworkDemoCustomers_demo_Address_1].[Id] [56154_FrameworkDemoCustomers_demo_Address_Id_1],
[56154_FrameworkDemoCustomers_demo_Address_1].[Created] [56154_FrameworkDemoCustomers_demo_Address_Created_1],
[56154_FrameworkDemoCustomers_demo_Address_1].[LastModified] [56154_FrameworkDemoCustomers_demo_Address_LastModified_1],
[56154_FrameworkDemoCustomers_demo_Address_1].[IsDeleted] [56154_FrameworkDemoCustomers_demo_Address_IsDeleted_1]
FROM [56154_FrameworkDemoCustomers].[demo].[Address] [56154_FrameworkDemoCustomers_demo_Address_1]
WHERE ([56154_FrameworkDemoCustomers_demo_Address_1].[IsDeleted] = @IsDeleted2)
) [_AddressSubselect_1] ON ([_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_HomeAddressId] = [_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_Id_1])
LEFT JOIN
(
SELECT
[56154_FrameworkDemoCustomers_demo_Address_2].[Town] [56154_FrameworkDemoCustomers_demo_Address_Town_2],
[56154_FrameworkDemoCustomers_demo_Address_2].[Id] [56154_FrameworkDemoCustomers_demo_Address_Id_2],
[56154_FrameworkDemoCustomers_demo_Address_2].[Created] [56154_FrameworkDemoCustomers_demo_Address_Created_2],
[56154_FrameworkDemoCustomers_demo_Address_2].[LastModified] [56154_FrameworkDemoCustomers_demo_Address_LastModified_2],
[56154_FrameworkDemoCustomers_demo_Address_2].[IsDeleted] [56154_FrameworkDemoCustomers_demo_Address_IsDeleted_2]
FROM [56154_FrameworkDemoCustomers].[demo].[Address] [56154_FrameworkDemoCustomers_demo_Address_2]
WHERE ([56154_FrameworkDemoCustomers_demo_Address_2].[IsDeleted] = @IsDeleted3)
) [_AddressSubselect_2] ON ([_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_BillingAddressId] = [_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_Id_2])
ORDER BY 1 ASC
OFFSET 0 ROWS
FETCH NEXT 20 ROWS ONLY;
Command Parameters:
@IsDeleted1 | : | False |
@IsDeleted2 | : | False |
@IsDeleted3 | : | False |
Command Text:
DECLARE @UserDivisionIds AS TABLE (
[DivisionId] uniqueidentifier NOT NULL
);
INSERT INTO @UserDivisionIds
([DivisionId])
SELECT [56154_FrameworkDemoSystems_dbo_GetDescendants].[DivisionId] [DivisionId_1]
FROM [56154_FrameworkDemoSystems].[dbo].[GetDescendants]('11111111-1111-1111-1111-111111111111') [56154_FrameworkDemoSystems_dbo_GetDescendants];
SELECT
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_FullName] [_StringFunnel_1],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_DivisionId] [_GuidFunnel_1],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_HomeAddressId] [_GuidFunnel_2],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_BillingAddressId] [_NullableGuidFunnel_1],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_Id] [_GuidFunnel_3],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_Created] [_DateTimeFunnel_1],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_LastModified] [_DateTimeFunnel_2],
[_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_IsDeleted] [_BooleanFunnel_1],
[_CustomerSubselect].[_Count] [_NumberFunnel],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_Town_1] [_StringFunnel_2],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_Id_1] [_GuidFunnel_4],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_Created_1] [_DateTimeFunnel_3],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_LastModified_1] [_DateTimeFunnel_4],
[_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_IsDeleted_1] [_BooleanFunnel_2],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_Town_2] [_StringFunnel_3],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_Id_2] [_GuidFunnel_5],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_Created_2] [_DateTimeFunnel_5],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_LastModified_2] [_DateTimeFunnel_6],
[_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_IsDeleted_2] [_BooleanFunnel_3]
FROM
(
SELECT
[56154_FrameworkDemoCustomers_demo_Customer].[FullName] [56154_FrameworkDemoCustomers_demo_Customer_FullName],
[56154_FrameworkDemoCustomers_demo_Customer].[DivisionId] [56154_FrameworkDemoCustomers_demo_Customer_DivisionId],
[56154_FrameworkDemoCustomers_demo_Customer].[HomeAddressId] [56154_FrameworkDemoCustomers_demo_Customer_HomeAddressId],
[56154_FrameworkDemoCustomers_demo_Customer].[BillingAddressId] [56154_FrameworkDemoCustomers_demo_Customer_BillingAddressId],
[56154_FrameworkDemoCustomers_demo_Customer].[Id] [56154_FrameworkDemoCustomers_demo_Customer_Id],
[56154_FrameworkDemoCustomers_demo_Customer].[Created] [56154_FrameworkDemoCustomers_demo_Customer_Created],
[56154_FrameworkDemoCustomers_demo_Customer].[LastModified] [56154_FrameworkDemoCustomers_demo_Customer_LastModified],
[56154_FrameworkDemoCustomers_demo_Customer].[IsDeleted] [56154_FrameworkDemoCustomers_demo_Customer_IsDeleted],
COUNT([56154_FrameworkDemoCustomers_demo_Customer].[Id]) OVER() [_Count]
FROM [56154_FrameworkDemoCustomers].[demo].[Customer] [56154_FrameworkDemoCustomers_demo_Customer]
INNER JOIN
(
SELECT [UserDivisionIds].[DivisionId] [UserDivisionIds_DivisionId]
FROM @UserDivisionIds [UserDivisionIds]
) [_Select_2] ON ([56154_FrameworkDemoCustomers_demo_Customer].[DivisionId] = [_Select_2].[UserDivisionIds_DivisionId])
WHERE ([56154_FrameworkDemoCustomers_demo_Customer].[IsDeleted] = @IsDeleted1)
) [_CustomerSubselect]
INNER JOIN
(
SELECT
[56154_FrameworkDemoCustomers_demo_Address_1].[Town] [56154_FrameworkDemoCustomers_demo_Address_Town_1],
[56154_FrameworkDemoCustomers_demo_Address_1].[Id] [56154_FrameworkDemoCustomers_demo_Address_Id_1],
[56154_FrameworkDemoCustomers_demo_Address_1].[Created] [56154_FrameworkDemoCustomers_demo_Address_Created_1],
[56154_FrameworkDemoCustomers_demo_Address_1].[LastModified] [56154_FrameworkDemoCustomers_demo_Address_LastModified_1],
[56154_FrameworkDemoCustomers_demo_Address_1].[IsDeleted] [56154_FrameworkDemoCustomers_demo_Address_IsDeleted_1]
FROM [56154_FrameworkDemoCustomers].[demo].[Address] [56154_FrameworkDemoCustomers_demo_Address_1]
WHERE ([56154_FrameworkDemoCustomers_demo_Address_1].[IsDeleted] = @IsDeleted2)
) [_AddressSubselect_1] ON ([_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_HomeAddressId] = [_AddressSubselect_1].[56154_FrameworkDemoCustomers_demo_Address_Id_1])
LEFT JOIN
(
SELECT
[56154_FrameworkDemoCustomers_demo_Address_2].[Town] [56154_FrameworkDemoCustomers_demo_Address_Town_2],
[56154_FrameworkDemoCustomers_demo_Address_2].[Id] [56154_FrameworkDemoCustomers_demo_Address_Id_2],
[56154_FrameworkDemoCustomers_demo_Address_2].[Created] [56154_FrameworkDemoCustomers_demo_Address_Created_2],
[56154_FrameworkDemoCustomers_demo_Address_2].[LastModified] [56154_FrameworkDemoCustomers_demo_Address_LastModified_2],
[56154_FrameworkDemoCustomers_demo_Address_2].[IsDeleted] [56154_FrameworkDemoCustomers_demo_Address_IsDeleted_2]
FROM [56154_FrameworkDemoCustomers].[demo].[Address] [56154_FrameworkDemoCustomers_demo_Address_2]
WHERE ([56154_FrameworkDemoCustomers_demo_Address_2].[IsDeleted] = @IsDeleted3)
) [_AddressSubselect_2] ON ([_CustomerSubselect].[56154_FrameworkDemoCustomers_demo_Customer_BillingAddressId] = [_AddressSubselect_2].[56154_FrameworkDemoCustomers_demo_Address_Id_2])
ORDER BY 1 ASC
OFFSET 0 ROWS
FETCH NEXT 20 ROWS ONLY;