Skip to content

NATKazakhstan/AspWebGen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AspWebGen

ASP.NET Web Form generation framework

Введение

Данный проект предназначен для упрощения разработки ПО, при использовании ASP.NET WebForms, MS SQL и компонент Ext.Net. Разработан и используется на нескольких проектах компании.

Выполняется проектирование БД в PowerDesigner, на выходе получаются скрипты для БД и генерируются исходные коды для работы с таблицами и представлениями. Формируются разные поля в соответствии с типами колонок и ссылками на другие таблицы/представления.

Для PowerDesigner 16.5 разработано расширение, которое добавляет таблицам, представлениям, колонкам и другим объектам дополнительные атрибуты, на основании этого генерируются исходные коды. Для реализации логики используются partial методы, внедренные в нужные места генерируемого кода. Справочные таблицы обычно не содержат дополнительной логики.

Пример приложения: https://GitHub.com/NATKazakhstan/AspWebGenSample

Wiki: https://github.com/NATKazakhstan/AspWebGen/wiki

Getting Started in Visual Studio

Необходимые шаги:

  • Установить Visual Studio 2017 с компонентами "ASP.NET и разработка Web-приложений", "Инструменты LINQ to SQL" (вкладка отдельные компоненты)
  • Клонировать репозиторий AspWebGen в отдельную папку решения, например, AspWebGen.
  • Скомпилировать Core.sln во Visual Studio 2017.
  • Скомпилировать Tools.sln во Visual Studio 2017.
  • Создать проект "Веб приложение ASP.NET (.NET Framework)" - .NET Framework 4.0 или выше.

В созданном проекте:

  • Добавить ссылки на все проекты из Core.sln.
  • Добавить ссылку на Microsoft.JScript.
  • Установить nuget пакет Ext.NET 2.5.3.1 (совместимость с более старшей версией 3, 4 не производилась).
  • Добавить модель LINQ to SQL с названием файла "DB.dbml".
  • Скопировать из примера приложения файлы EmptyPage.aspx, MainPage.aspx, IFrameSite.Master, AutoCompleteHandler.ashx, DataSourceViewHandler.ashx, LinqToJavaScriptHandler.ashx.
  • Скопировать из примера приложения настройки файла Web.Config, разделы: configSections, assemblyBinding, Nat.SqlDbInitializer, Nat.Initializer, Nat.WebReportManager.

После генерации исходных кодов из PowerDesigner включить новые файлы в проект, за исключением файлов из папок с названием, начинающимся с символа "_", они являются шаблонами.

Для использования файлов с расширением ".SDBML", которые обновляют модель данных DB.dbml в соответствии с генерированной моделью из PowerDesigner:

  • В контекстном меню нажать "открыть с помощью"
  • В открывшемся окне нажать "добавить"
  • Указать программу AspWebGen\BuildTools\SyncDbmlByScript\SyncDbmlByScript.exe, нажать ОК
  • Нажать "По умолчанию", ОК

После внесения изменений в модель и генерации исходных кодов для актуализации модели данных DB.dbml достаточно запустить файл с расширением ".SDBML" либо в папке с проектом на все таблицы/представления, либо с именем нужной таблицы/представления.

Getting Started in PowerDesigner (PD)

Необходимые шаги:

  • Установить PowerDesigner 16.5
  • Добавить расширения. Скопировать из директории репозитория "Extended Model Definitions" в установленную папку PD "C:\Program Files (x86)\Sybase\PowerDesigner 16\Resource Files\Extended Model Definitions" (предварительно PD закрыть, запускать от имени администратора)
  • Создать модель "Physical Data Model" (PDM) и добавить расширение "UserControlsGenerator" - в меню Model/Extensions нажать "Attach an Extension", поставить галочку для "UserControlsGenerator".
  • Создать Package, указать Code и Comment
  • В нем создать таблицу, указать Code и Comment.
  • Добавить необходимые колонки с указанием Code, Comment, DataType, Mandatory, ...
  • У таблицы на вкладке "Генерация UserControls" выбрать одно из обязательных полей в атрибуте NameColumn.
  • Обязательно добавить колонку RowVersion, тип данных timestamp, на вкладке "Генерация UserControls" убрать галочки GridViewVisible, DetailsViewVisible, FilterVisible, Логирование поля.
  • У таблицы обычно и по умолчанию используется колонка id - идентификатор, инкрементируется базой данных, т.е. identity, и обычно не отображается, т.е. сняты галочки GridViewVisible, DetailsViewVisible, FilterVisible.

Code используется как название поля, проекта, класса и др. Comment и Name - названия для пользователей.

Генерировать исходные коды можно несколькими путями:

  • Можно пользоваться стандартным вызовом из меню - Tools/Extended Generation, выбрать нужный пакет (Package) или таблицу/представление, указать путь к папке решения и OK.
  • Или же в контекстном меню у таблицы/представления или пакета "Генерировать UserControls", указать путь к папке решения и ОК.

Пример созданой модели: https://GitHub.com/NATKazakhstan/AspWebGenSample

About

ASP.NET Web Form generation framework

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages