Разработка CMS системы на основе технологии ASP.NET
Проект программного продукта, представляющего собой веб-приложение в виде системы управления веб-контентом и предназначенного для быстрого создания простых сайтов. Функциональные требования в рамках языка UML. Разработка визуальных интерфейсов системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 11.07.2012 |
Размер файла | 5,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
руб.;
Амортизационные отчисления в год рассчитываются по формуле (9.11):
, |
(9.11) |
где - затраты на амортизационные отчисления;
- стоимость персонального компьютера ( руб.);
- процент отчисления на амортизацию.
Процент отчисления на амортизацию рассчитывается согласно методике, отраженной в статье 259.1 НК РФ. Согласно постановлению правительства РФ от 1 января 2002 под № 1 «О классификации основных средств, включаемых в амортизационные группы», срок использования основных средств составляет от 2 до 3 лет. В рамках дипломного проекта установим срок полезного использования 2 года.
Определим процент отчисления на амортизацию:
.
Произведем расчет амортизационных отчислений по формуле (9.11)
руб./год.
Прочие расходы составляют 5 % от общей суммы затрат. Они рассчитываются по формуле (9.12):
. |
(9.12) |
По формуле (9.12) находим:
руб./год.
Зная все данные, подсчитаем стоимость одного часа машинного времени по формуле (9.9):
руб.
Рассчитаем себестоимость программного продукта по формуле (9.8):
руб.
Цена программного продукта рассчитывается по формуле (9.13):
, |
(9.13) |
Где
- цена программного продукта;
- себестоимость программного продукта;
- рентабельность программного продукта.
Рентабельность программного продукта примем:
По формуле (9.13) находим:
руб.
Цена программного продукта с учетом НДС рассчитывается по формуле (9.14):
, |
(10.14) |
где - цена программного продукта с НДС;
- цена программного продукта;
- составляет 18% от цены программного продукта согласно статье 164 из 21 главы НК РФ.
По формуле (9.14) вычисляется цена программного продукта с учетом НДС:
руб.
Итого стоимость данного программного продукта на рынке будет 155269,36 руб.
Однако оценить экономический эффект данного программного продукта в денежном эквиваленте достаточно трудно. Чтобы оценить эффект данного программного продукта, обратимся к его достоинствам.
Ключевым достоинством системы является отсутствие базы данных. Для небольших сайтов это является лучшим решением. Основные преимущества такого подхода в том, что исключаются проблемы функционирования сайта при сбоях сервера базы данных на веб-сервере, и в более простой настройке самой CMS-системы. Кроме того, это значительно упрощает процесс переноса сайта с локального сервера на хостинг в Интернете.
Одним из главных достоинств разработанной системы является удобный и интуитивно понятный интерфейс. Это позволяет быстро освоиться в системе и затратить максимально короткое время на разработку сайта с помощью нее.
Еще одним из основных достоинств системы является встроенный текстовый редактор статей. В редактор включены основные возможности форматирования текста, такие как задание стиля шрифта, размер шрифта и основные функции форматирования начертания: жирный, курсив, подчеркнутый. Эта возможность позволяет создавать более интересное оформление текста на странице.
Функция гибкой настройки шаблонов оформления страниц будет полезна для пользователей CMS, знакомых с CSS. Это позволяет изменять шаблон оформления страницы по своему желанию.
Возможность добавления нескольких пользователей в систему позволяет вести командную разработку сайта.
Заключение
В рамках дипломного проекта был разработан программный продукт, представляющий собой веб-приложение в виде системы управления веб-контентом и предназначенный для быстрого создания простых сайтов за короткий срок. Было пройдено несколько этапов, на каждом из которых получены результаты:
1. Была рассмотрена предметная область и существующие CMS системы в классе lite.
2. Были сформулированы функциональные требования в рамках языка UML. Это позволило перед началом разработки четко задать разграничение доступных действий авторизованных и неавторизованных пользователей.
3. Проведено проектирование общей архитектуры приложения на основе технологии ASP.NET и архитектурного шаблона MVC.
4. Проведено прототипирование визуальных интерфейсов системы, в процессе чего был продуман максимально простой и удобный пользовательский интерфейс.
5. Успешно проведена апробация на проекте создания сайта автомастерской. Был создан рабочий сайт с красивым дизайном, содержащий на страницах статьи и изображения.
В результате проделанной работы, я получила опыт создания веб-приложений на основе технологии .NET (C#) и ASP.NET MVC 3 Framework.
Библиография
1. Полубояров В. В. Введение в технологии создания веб-узлов. - М.: БИНОМ, 2009. - с. 24
2. Сайт проекта FreeBSD [Электронный ресурс] URL: http://www.freebsd.org/ (дата обращения 04.03.2011)
3. Сайт проекта Debian [Электронный ресурс] URL: http://www.debian.org (дата обращения 04.03.2011)
4. Сайт Windows Server [Электронный ресурс] URL: http://www.microsoft.com/windowsserver2008/ru/ru/default.aspx (дата обращения 04.03.2011)
5. Сайт проекта Apache [Электронный ресурс] URL: http://www.apache.org/ (дата обращения 04.03.2011)
6. Сайт IIS [Электронный ресурс] URL: http://www.iis.net/ (дата обращения 04.03.2011)
7. MSDN Magazine [Электронный ресурс] URL:http://msdn.microsoft.com/ru-ru/magazine/ (дата обращения 04.03.2011)
8. Сайт ASP.NET [Электронный ресурс] URL: http://www.asp.net/ (дата обращения 05.03.2011)
9. MSDN [Электронный ресурс] URL: http://msdn.microsoft.com/en-us/library/aa286483.aspx (дата обращения 05.03.2011)
10. Сайт CGI [Электронный ресурс] URL: http://www.cgi.com/ (дата обращения 05.03.2011)
11. Официальный сайт Silverlight [Электронный ресурс] URL: http://www.silverlight.net/ (дата обращения 05.03.2011)
12. Официальный сайт Rumba CMS [Электронный ресурс] URL:
http://rumbacms.com (дата обращения 10.03.2011)
13. Сайт русскоязычной поддержки Rumba CMS [Электронный ресурс] URL: http://rumba.net.ru (дата обращения 10.03.2011)
14. Хостинг Народ от Яндекс [Электронный ресурс] URL: http://narod.yandex.ru/ (дата обращения 10.03.2011)
15. Официальный сайт MadeSimple CMS [Электронный ресурс] URL: http://www.cmsmadesimple.org (дата обращения 10.03.2011)
16. Сайт русскоязычной поддержки MadeSimple CMS [Электронный ресурс] URL: http://www.cmsmadesimple.ru/ (дата обращения 10.03.2011)
17. Сайт разработчиков Kandidat CMS [Электронный ресурс] URL: http://www.kan-studio.ru/ (дата обращения 12.03.2011)
18. Официальный сайт Zimplit CMS [Электронный ресурс]URL: http://www.zimplit.com/index.html (дата обращения 12.03.2011)
19. Официальный сайт GetSimple CMS [Электронный ресурс] URL: http://get-simple.info/ (дата обращения 12.03.2011)
20. Сайт русскоязычной поддержки GetSimple CMS [Электронный ресурс] URL: http://get-simple.info/ (дата обращения 12.03.2011)
21. Сайт Visual Studio [Электронный ресурс] URL: http://www.microsoft.com/visualstudio/ (дата обращения 29.03.2011)
22. Сайт MSDN о Visual C# [Электронный ресурс] URL: http://msdn.microsoft.com/ru-ru/vcsharp/default.aspx (дата обращения 29.03.2011)
23. Официальный сайт ASP.NET [Электронный ресурс] URL: http://www.asp.net/ (дата обращения 29.03.2011)
24. Сайт ASP.NET [Электронный ресурс] URL: http://www.asp.net/mvc/mvc3 (дата обращения 29.03.2011)
25. Роб Камерон, Дэйл Михалк ASP.NET 3.5, компоненты AJAX и серверные элементы управления для профессионалов = Pro ASP.NET 3.5 Server Controls with AJAX Components. -- М.: «Вильямс», 2009. -- с. 608
26. Страница Razor на сайте Microsoft [Электронный ресурс] URL: http://www.microsoft.com/web/category/razor (дата обращения 03.04.2011)
27. Тренинг ASP.NET MVC 3 [Электронный ресурс] URL: http://www.techdays.ru/videos/3307.html (дата обращения 3.04.2011)
28. Сайт Enode [Электронный ресурс] URL: http://www.enode.com/x/markup/tutorial/mvc.html (дата обращения 3.04.2011)
29. RSDN [Электронный ресурс] URL: http://www.rsdn.ru/ (дата обращения 3.04.2011)
30. Сайт Консорциума всемирной паутины [Электронный ресурс] URL: http://www.w3.org/ (дата обращения 3.04.2011)
31. Сайт ARGO UML [Электронный ресурс] URL: http://www.argouml.tigrus.org (дата обращения 7.04.2011)
32. Официальный сайт Expression Studio [Электронный ресурс] URL: http://www.microsoft.com/expression/ (дата обращения 25.04.2011)
33. Магдануров Г. И., Юнев В. А. ASP.NET MVC Framework . - СПб.: БХВ-Петербург, 2010 - c. 20
34. Сайт шаблонов CSS [Электронный ресурс] URL: http://free-flash-templates.com (дата обращения 25.05.2011)
Приложение А
Наиболее употребляемые текстовые сокращения
СибГУТИ - Сибирский государственный университет телекоммуникаций и информатики
ПЗ - пояснительная записка
HTTP (HyperText Transfer Protocol) - протокол прикладного уровня передачи данных
Www (World Wide Web) - Всемирная паутина
CMS (Content Management System) - система управления контентом
HTML (HyperText Markup Language) - стандартный язык разметки документов во Всемирной паутине
CSS (Cascading Style Sheets) - каскадные таблицы стилей, формальный язык описания внешнего вида документа
URL (Uniform Resource Locator) - стандартизированный способ записи адреса ресурса в сети Интернет
UML (Unified Modeling Language) - унифицированный язык моделирования.
Приложение Б
Листинг исходного кода программного средства
Home (Index.cshtml)
@model XCMS.Models.MenuItemModel
@section Style{
<link href="@Url.Content(ViewBag.StylePath)" rel="stylesheet" type="text/css" media="screen" />
}
<div id="container">
<div id="header">
<div class="logo">
<h1>@ViewBag.Title</h1>
<h2>@ViewBag.Description</h2>
</div>
<div id="navcontainer">
<ul id="navlist">
@foreach (var @item in ViewBag.MenuList){
<li>@Html.ActionLink(
(string)item.name,
"Index",
"Home",
new{cat = item.cat},
null)
@{if (item.sub.Count > 0){
<ul>
@foreach (var @it in item.sub){
<li>@Html.ActionLink(
(string)it.name,
"Index",
"Home",
new{cat = it.cat},
null)
</li>
}
</ul>
}
}
</li>
}
</ul>
</div>
</div>
</div>
<div id="mainContent">
<h2>@ViewBag.PageName</h2>
@if (@ViewBag.Art.Count > 0){
foreach (var it in ViewBag.Art){
<p>
@if (@ViewBag.Art.Count > 1){
<h3>@it.name</h3>
}
@it.text
</p>
}}
</div>
HomeController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Xml.Linq;
using XCMS.Models;
using System.IO;
namespace XCMS.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
publicstring title;
public List<string> text;
public List<StructDataModel> GetMainMenu(List<StructDataModel> data)
{
List<StructDataModel> MainMenuList =
data.FindAll(delegate(StructDataModel item)
{ return item.parrent.Equals("");});
return MainMenuList;
}
// Меню подраздела
public List<StructDataModel> GetSectionMenu(List<StructDataModel> data,string parrent)
{
List<StructDataModel> SectionMenu =
data.FindAll(delegate(StructDataModel item)
{ return item.parrent.Equals(parrent);});
return SectionMenu;
}
// получаем путь до главного файла
privatestring GetStylePath()
{
string path;
string fileName =
AppDomain.CurrentDomain.BaseDirectory +
"\\Data\\main.xml";
XDocument doc = XDocument.Load(fileName);
string styleName ="";
foreach (XElement el in doc.Root.Elements())
{
styleName =
el.Attribute("style").Value.ToString();
}
return (path =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Styles\\" +styleName +
"\\style.css");
}
privatestring GetSiteName()
{
string sitename = "no site name";
string fileName =
AppDomain.CurrentDomain.BaseDirectory +
"\\Data\\main.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
sitename =
el.Attribute("sitename").Value.ToString();
}
return sitename;
}
privatestring GetDescription()
{
string description = "";
string fileName =
AppDomain.CurrentDomain.BaseDirectory +
"\\Data\\main.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
description =
el.Attribute("description").Value.ToString();
}
return description;
}
private void GetMainPage()
{
string path =
AppDomain.CurrentDomain.BaseDirectory +
"\\Data\\mp.xml";
XDocument doc = XDocument.Load(path);
bool fl = true;
foreach (XElement el in doc.Root.Elements())
{
text.Clear();
if (fl)
{
title = el.Attribute("title").Value.ToString();
fl = false;
}
foreach (XElement element in el.Elements())
{
text.Add(element.Value);
}
}
}
// Получаем данные для страницы
private void GetChapter(string alias)
{
string filePath =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\" + alias+".xml";
if (System.IO.File.Exists(filePath))
{
XDocument doc = XDocument.Load(filePath);
bool fl = true;
foreach (XElement el in doc.Root.Elements())
{
if (fl)
{
title = el.Attribute("title").Value.ToString();
fl = false;
}
foreach (XElement element in el.Elements())
{
text.Add(element.Value);
}
}
}
else
{
//ViewBag.SectionMenu = "";
title = "White Page";
text.Clear();
}
}
// главный контрол
public ActionResult Index()
{
List<MenuItemModel> listOfItems = new List<MenuItemModel>();
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\struct.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
MenuItemModel temp = new MenuItemModel(el);
foreach (XElement elem in el.Elements())
{
MenuItemModel temp2 = new MenuItemModel(elem);
temp.sub.Add(temp2);
}
listOfItems.Add(temp);
}
ViewBag.MenuList = listOfItems;
// ViewBag.SubMenu = subList;
ViewBag.PageName = "";
ViewBag.StylePath = GetStylePath();
ViewBag.Title = GetSiteName();
ViewBag.Description = GetDescription();
// ввод страницы
List<ArticleModel> ArtStruct = new List<ArticleModel>();
if (Request["cat"] != null)
{
string CatfileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\cat.xml";
XDocument catdoc = XDocument.Load(CatfileName);
foreach (XElement el in catdoc.Root.Elements())
{
if (el.Attribute("name").Value.Equals(Request["cat"]))
{
ViewBag.PageName = Request["cat"];
foreach (XElement elem in el.Elements())
{
string artname = elem.Attribute("name").Value;
string artfileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\articles.xml";
XDocument artdoc = XDocument.Load(artfileName);
foreach (XElement elm in artdoc.Root.Elements())
{
if (artname.Equals(elm.Attribute("name").Value))
{
ArtStruct.Add(new ArticleModel{ name = elm.Attribute("name").Value, text = elm.Value});
break;
}
}
}
}
}
}
ViewBag.Art = ArtStruct;
//ViewBag.Text = text;
return View();
}
}
}
MenuItemModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Xml.Linq;
namespace XCMS.Models
{
public class MenuItemModel
{
publicstring alias{ get; set;}
publicstring name{ get; set;}
publicstring cat{ get; set;}
public List<MenuItemModel> sub{ get; set;}
public MenuItemModel()
{
name = "";
alias = "";
cat = "";
sub = new List<MenuItemModel>();
}
public MenuItemModel(XElement xe)
{
name = xe.Attribute("name").Value;
alias = xe.Attribute("alias").Value;
cat = xe.Attribute("cat").Value;
sub = new List<MenuItemModel>();
}
}
}
MenuEditor.cshtml
@model XCMS.Models.MenuItemModel
@{
ViewBag.PageMenu = "selected";
Layout = "~/Views/Shared/_AdminLayout.cshtml";
ViewBag.Title = "MenuEditor";
}
<link href="@Url.Content("~/Content/adminstyle/menueditor.css")" rel="stylesheet" type="text/css" media="screen" />
<h2>Меню</h2>
<div id="content">
<div id="list5">
<table>
@foreach(XCMS.Models.MenuItemModel item in ViewBag.MenuList)
{
<tr class="outs">
<td>@item.name</td>
<td><div class="small button blue">
@Html.ActionLink(
"Переименовать",
"RenameMenu",
"Admin",
new{rename = item.name},
null)
</div></td>
<td><div class="small button red">
@Html.ActionLink(
"Удалить",
"DeleteItemMenu",
"Admin",
new{ del = item.name},
null)
</div>
</td>
</tr>
<tr>
<td>
@if (item.sub.Count > 0)
{
<ol>
@foreach (XCMS.Models.MenuItemModel item2 in item.sub)
{
<li>@item2.name</li>
}
</ol>
}
</td>
@if (item.sub.Count > 0)
{
<td>
@foreach (XCMS.Models.MenuItemModel item2 in item.sub){
<div class="small button blue">
@Html.ActionLink(
"Переименовать",
"RenameMenu",
"Admin",
new{ rename = item2.name},
null)
</div>
}
</td>
}
@if (item.sub.Count > 0)
{
<td>
@foreach (XCMS.Models.MenuItemModel item2 in item.sub){
<div class="small button red">
@Html.ActionLink(
"Удалить",
"DeleteItemMenu",
"Admin",
new{ del = item2.name},
null)
</div>
}
</td>
}
</tr>
}
<tr>
<td>
<div class="small button green">
@Html.ActionLink(
"Добавить",
"AddMenu",
"Admin",
null,
null)
</div>
</td>
</tr>
</table>
</div>
</div>
EditCat.cshtml
@{
ViewBag.Title = "Статьи раздела";
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
<link href="@Url.Content("~/Content/adminstyle/styles.css")" rel="stylesheet" type="text/css" media="screen" />
<h2>Настройка раздела @ViewBag.CatName</h2>
<br />
<div>
<h3 style="margin-left:30px">Связывание с элементом меню:</h3>
@using (Html.BeginForm("ConnectToMenu", "Admin", FormMethod.Post))
{
<input type="hidden" name="catname" value="@ViewBag.CatNam" />
<select name="itemattach" style="margin-left:20px">
@foreach (var item in ViewBag.MenuList)
{
<option value="@item.name">@item.name</option>
}
</select>
<input type="submit" value="ОК" />
}
</div>
<input type="hidden" id="selname" value="#" />
<div>
<h3 style="margin-left:30px">Основная статья</h3>
<p style="margin-left:30px">(будет отображена под логотипом)</p>
@using (Html.BeginForm("MainSheet", "Admin", FormMethod.Post))
{
<input type="hidden" name="catname" value="@ViewBag.CatNam" />
<select name="mainart" style="margin-left:20px">
@foreach (var item in ViewBag.Artlist)
{
<option value="@item">@item</option>
}
</select>
<input type="submit" value="ОК" />
}
</div>
<br />
<br />
<br />
<div>
<h3 style="margin-left:30px">Дополнительные статьи</h3>
<table>
<input type="hidden" name="catname" value="@ViewBag.CatNam" />
@foreach (var iten in ViewBag.Enabl)
{ <tr>
<td>@iten</td><td></td><td><input type=submit value="Удалить"></td>
</tr>
}
<tr>
@using (Html.BeginForm("AddToCat", "Admin", FormMethod.Post))
{
<td>
<input type="hidden" name="catname" value="@ViewBag.CatNam" />
<select name="add" style="margin-left:20px">
@foreach (var item in ViewBag.Artlist)
{
<option>@item</option>
}
</select></td><td><input type="submit" value="ОК" />
</td>}</div><td></td>
</tr>
<tr><td></td></tr>
</table>
</div>
MainTools.cshtml
@{
ViewBag.PageMainTools = "selected";
ViewBag.Title = "MainTools";
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
<link href="@Url.Content("~/Content/adminstyle/maintools.css")" rel="stylesheet" type="text/css" media="screen" />
<div id="sideLeft">
<div class="box">
<div class="innerBox">
<h3>Общие настройки</h3>
@using(Html.BeginForm("ChangeMains","Admin",FormMethod.Post))
{
<div>
<table border="0">
<tr>
<td>Название сайта:</td>
<td><input type="text" name="sitename" size="30" value="@ViewBag.SiteName" /></td>
</tr>
<tr>
<td class="atvo">Описание: </td>
<td><textarea cols="25" rows="3" name="descript">@ViewBag.Desc</textarea></td>
</tr>
<tr>
<td colspan="2" align="right">
<input type="submit" value="Сохранить" name="Save" />
</td>
</tr>
</table>
</div>
}
</div>
</div>
</div>
EditStyle.cshtml
@{
ViewBag.Title = "EditStyle";
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
<link href="@Url.Content("~/Content/adminstyle/styles.css")" rel="stylesheet" type="text/css" media="screen" />
<h2>Изменение стиля <strong>RC</strong></h2>
<div>
@using(Html.BeginForm("EditStyle","Admin",FormMethod.Post))
{
<input type="hidden" name="edit" value="@ViewBag.StyleName" />
<textarea rows="20" cols="100" name="cssstyle" id="cssstyle">
@ViewBag.StyleEdit
</textarea>
<br />
<div style="margin-left : 30px; margin-bottom: 10px">
<input type="submit" value="Сохранить" />
</div>
}
</div>
AddMenu.cshtml
@{
ViewBag.PageMainTools = "selected";
ViewBag.Title = "MainTools";
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
<link href="@Url.Content("~/Content/adminstyle/maintools.css")" rel="stylesheet" type="text/css" media="screen" />
<div id="sideLeft">
<div class="box">
<div class="innerBox">
<h3>Добавить элемент меню</h3>
@using(Html.BeginForm("AddMenuItem","Admin",FormMethod.Get))
{
<div>
<table border="0">
<tr>
<td>Название:</td>
<td><input type="text" name="menuitemname" size="30" /></td>
</tr>
<tr>
<td class="atvo">Родительский элемент: </td>
<td><select name="parrent">
<option value="">Нет</option>
@foreach (var it in ViewBag.Menu)
{
<option value="@it.name">@it.name</option>
}
</select></td>
</tr>
<tr>
<td colspan="2" align="right">
<input type="submit" value="Сохранить" name="Save" >
</td>
</tr>
</table>
</div>
}
</div>
</div>
</div>
AdminController.cshtml
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO;
using XCMS.Models;
using System.Xml.Linq;
using System.ComponentModel;
namespace XCMS.Controllers
{
public class AdminController : Controller
{
//
// GET: /Admin/
public ActionResult AddToCat()
{
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\cat.xml";
XDocument doc = XDocument.Load(fileName);
XElement art = new XElement("art",
new XAttribute("name", Request["add"])
);
foreach (XElement el in doc.Root.Elements())
{
string ttt = Request["catname"];
if (el.Attribute("name").Value.Equals(Request["catname"]))
{
el.Add(art);
break;
}}
doc.Save(fileName);
return RedirectToAction("EditCat");
}
public ActionResult ConnectToMenu()
{
string fileNamee =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\struct.xml";
XDocument doce = XDocument.Load(fileNamee);
foreach (XElement el in doce.Root.Elements())
{
if (el.Attribute("name").Value.Equals(Request["itemattach"]))
{
el.Attribute("cat").SetValue(Request["catname"]);
break;
}
foreach (XElement elem in el.Elements())
{
if (elem.Attribute("name").Value.Equals(Request["itemattach"]))
{
elem.Attribute("cat").SetValue(Request["catname"]);
break;
}
}
}
doce.Save(fileNamee);
return RedirectToAction("EditCat");
}
public ActionResult AddCat()
{
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\cat.xml";
XDocument doc = XDocument.Load(fileName);
XElement cat = new XElement("cat",
new XAttribute("name", Request["catname"]));
doc.Root.Add(cat);
doc.Save(fileName);
return RedirectToAction("Categories");
}
public ActionResult RenameMenu()
{
ViewBag.Change = "«"+Request["rename"]+"»";
ViewBag.Chan = Request["rename"];
return View();
}
public ActionResult AddMenuItem()
{
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\struct.xml";
XDocument doc = XDocument.Load(fileName);
XElement dat = new XElement("dat",
new XAttribute("name", Request["menuitemname"]),
new XAttribute("alias", ""),
new XAttribute("cat", Request["parrent"])
);
string ttt = Request["parrent"];
if (Request["parrent"].Equals(""))
doc.Root.Add(dat);
else
{
foreach (XElement el in doc.Root.Elements())
{
string str = el.Attribute("name").Value;
if (str == ttt)
{
el.Add(dat);
break;
}
}
}
doc.Save(fileName);
return RedirectToAction("MenuEditor");
}
public ActionResult AddMenu()
{
List<MenuItemModel> listOfItems = new List<MenuItemModel>();
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\struct.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
MenuItemModel temp = new MenuItemModel(el);
foreach (XElement elem in el.Elements())
{
MenuItemModel temp2 = new MenuItemModel(elem);
temp.sub.Add(temp2);
}
listOfItems.Add(temp);
}
ViewBag.Menu = listOfItems;
return View();
}
// главный контрол
public ActionResult Index()
{
return View();
//return RedirectToAction("Auth");
}
//
[HttpPost]
public ActionResult ChangeMains()
{
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\main.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
el.Attribute("sitename").SetValue(Request["sitename"]);
el.Attribute("description").SetValue(Request["descript"]);
}
doc.Save(fileName);
return RedirectToAction("Index");
}
// контрол "Смена стиля"
public ActionResult EditStyle(string editPath)
{
string path =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Styles\\" + Request["edit"] + "\\style.css";
if (Request["cssstyle"] != null)
{
StreamWriter write = new StreamWriter(new FileStream(path, FileMode.Open, FileAccess.Write));
write.Write(Request["cssstyle"]);
write.Close();
return RedirectToAction("Styles");
}
else
{
DirectoryInfo dir = new DirectoryInfo(path);
StreamReader read = new StreamReader(path);
ViewBag.StyleEdit = read.ReadToEnd();
read.Close();
}
ViewBag.StyleName = Request["edit"];
return View();
}
// Удаляем пункт меню
public ActionResult DeleteItemMenu()
{
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\struct.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
if (el.Attribute("name").Value.Equals(Request["del"]))
{
el.Remove();
break;
}
foreach (XElement elem in el.Elements())
{
if (elem.Attribute("name").Value.Equals(Request["del"]))
{
elem.Remove();
break;
}
}
}
doc.Save(fileName);
return RedirectToAction("MenuEditor");
}
// Редактируем элемент меню
[HttpGet]
public ActionResult EditMenuItem()
{
List<string> text = new List<string>();
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\struct.xml";
XDocument doc = XDocument.Load(fileName);
List<StructDataModel> listOfData = new List<StructDataModel>();
foreach(XElement el in doc.Root.Elements())
{
listOfData.Add(new StructDataModel{
id = int.Parse(el.Attribute("id").Value),
parrent = el.Attribute("parrent").Value,
alias = el.Attribute("alias").Value,
menuItem = el.Attribute("menu").Value,
dop = el.Attribute("dop").Value,
vetv = el.Attribute("vetv").Value});
}
ViewBag.ItemEdited = listOfData.Find(delegate(StructDataModel item)
{ return item.menuItem.Equals(Request["name"]);});
return View();
}
[HttpPost]
public ActionResult EditMenuItem(object r,string it)
{
List<string> text = new List<string>();
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\struct.xml";
XDocument doc = XDocument.Load(fileName);
List<string> listOfData = new List<string>();
foreach (XElement el in doc.Root.Elements())
{
if (el.Attribute("menu").Value.Equals(Request["MenuItemAddress"].ToString()))
el.Attribute("menu").SetValue(Request["MenuItemEdit"]);
}
doc.Save(fileName);
return RedirectToAction("MenuEditor");
}
// контрол "Редактирование пользователя"
public ActionResult Editusers()
{
return View();
}
// Получаем список стилей
public List<StylesModel> GetStyles()
{
// Возвращаем список стилей
string path =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Styles\\";
DirectoryInfo dir = new DirectoryInfo(path);
List<StylesModel> StylesList = new List<StylesModel>();
int ind = 0;
foreach (var item in dir.GetDirectories())
{
StylesList.Add(new StylesModel{
id = ind++, name = item.Name});
}
return StylesList;
}
// Удаляем стиль
public void RemoveStyle(string delPath)
{
string path =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Styles\\" + delPath+ "\\";
DirectoryInfo dir = new DirectoryInfo(path);
dir.Delete(true);
}
// Применяем стиль
public void UseStyle(string usePath)
{
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\main.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
el.Attribute("style").SetValue(usePath);
}
doc.Save(fileName);
}
// контрол Styles
public ActionResult Styles()
{
// Удаление стиля
if (Request["del"] != null)
RemoveStyle(Request["del"]);
// Применение стиля
if (Request["use"] != null)
UseStyle(Request["use"]);
List<StylesModel> styles = GetStyles();
ViewBag.Styles = styles;
return View();
}
// контрол MainTools
public ActionResult MainTools()
{
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\main.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
ViewBag.SiteName = el.Attribute("sitename").Value;
ViewBag.Desc = el.Attribute("description").Value;
}
return View();
}
// контрол MenuEditor
public ActionResult MenuEditor()
{
List<MenuItemModel> listOfItems = new List<MenuItemModel>();
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\struct.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
MenuItemModel temp = new MenuItemModel(el);
foreach (XElement elem in el.Elements())
{
MenuItemModel temp2 = new MenuItemModel(elem);
temp.sub.Add(temp2);
}
listOfItems.Add(temp);
}
ViewBag.MenuList = listOfItems;
return View();
}
// контрол Categories
public ActionResult Categories()
{
List<CategoryModel> catList = new List<CategoryModel>();
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\cat.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
CategoryModel temp = new CategoryModel(el);
foreach (XElement elem in el.Elements())
{
string temp2 = elem.ToString();
temp.articles.Add(temp2);
}
catList.Add(temp);
}
ViewBag.CatList = catList;
return View();
}
// контрол Articles
public ActionResult Articles()
{
List<string> artList = new List<string>();
string fileName =
AppDomain.CurrentDomain.BaseDirectory
+ "\\Data\\articles.xml";
XDocument doc = XDocument.Load(fileName);
foreach (XElement el in doc.Root.Elements())
{
artList.Add(el.Attribute("name").Value);
}
ViewBag.Artlist = artList;
return View();
}
}
}
1. Размещено на www.allbest.ru
Подобные документы
Современные тенденции разработки и принципы классификации web-сайтов. Сайт как средство развития бизнеса. Технологии, применяемые при разработке web-сайтов, системы управления контентом. Разработка web-сайта для ЗАО "Кондитерская фабрика "Саратовская".
дипломная работа [4,1 M], добавлен 01.10.2012Разработка приложения, представляющего собой графический многопользовательский чат с передачей данных в закодированном виде. Алгоритмы обработки данных. Графические диалоговые системы. Тестирование и анализ результатов. Алгоритм декодирования сообщений.
курсовая работа [830,1 K], добавлен 12.03.2014Описание файловой системы Unix. Работа основных команд ls, cmp, comm, их ключей. Разработка программного продукта, работающего в среде Windows и представляющего собой эмулятора командного процессора операционной системы Unix. Выбор средств реализации.
курсовая работа [183,0 K], добавлен 29.04.2015Создание программного продукта, предназначенного для автоматизированного учета гостиничных номеров, упрощения работы с базой данных, обеспечения быстрого поиска. Автоматизация резервирования номеров и регистрация постояльцев. Разработка экранных форм.
курсовая работа [1,8 M], добавлен 08.01.2014Принципы построения распределенных информационных приложений. Распределенное трех уровневое приложение. Необходимость использования приложений в средней школе. Системы управления контентом для создания сайта. Анализ сайтов учителей начальных классов.
дипломная работа [2,1 M], добавлен 26.05.2014Преимущества и недостатки статических и динамических сайтов. Эволюция и классификация web-приложений. Требования, предъявляемые к системам управления контентом (CMS). Создание структуры сайта, информационное наполнение страниц. Разработка базы данных CMS.
дипломная работа [856,2 K], добавлен 27.06.2012Разработка сайта, предназначенного для купли-продажи средств передвижения. Характеристика объекта программирования. Требования к исходным текстам и языкам программирования. Интерфейс информационной системы. Проект модуля управления записями о товаре.
курсовая работа [35,7 K], добавлен 30.01.2016Изучение возможностей среды создания анимированного приложения при помощи Macromedia Flash 8. Разработка автоматизированной системы обучения - программного продукта "Обучающая программа" для быстрого усвоения учащимися принципа сборки системного блока.
дипломная работа [58,5 M], добавлен 21.11.2010Структура, функциональные возможности программного обеспечения, предназначенного для решения задач синхронизации, анализа и оптимизации выпуска продукции в рамках производства. Программные продукты системы MES. Назначение и функции системы Teamcenter.
контрольная работа [24,8 K], добавлен 24.11.2013Описание системы управления реляционными базами данных MySQL. Изучение факторов влияющих на пропускную способность в беспроводных сетях. Особенности применения языка Java Script. Методы тестирования web-приложений. Разработка пользовательского интерфейса.
дипломная работа [2,1 M], добавлен 24.06.2015