3 архитектуры уровня по сравнению с 2 архитектурой уровня

Это проверит имя службы вашей системы и имя нужного вам сервиса, которое вы можете указать в параметре

namespace ServiceName
{
using System;
using System.ServiceProcess;

class Service
{

public static bool IsServiceInstalled(string serviceName)
{

 ServiceController[] services = ServiceController.GetServices();

 foreach (ServiceController service in services)
 {
   if (service.ServiceName == serviceName)
     return true;
 }
 return false;
   }
 }
 }
10
задан Rachel 25 October 2009 в 15:40
поделиться

4 ответа

Я предполагаю, что вы имеете в виду многоуровневую (логические единицы разделения), а не многоуровневую (физические единицы разделения / развертывания). Примером многоуровневой системы может быть веб-сервер (1 уровень), доставляющий веб-страницы (другой уровень), который использует данные из базы данных (3-й уровень).

Обычная цель многоуровневой архитектуры - разделить обязанности. У этого есть два ключевых преимущества (среди прочего).

Прежде всего, ваш дизайн будет более ясным, поскольку обязанности не будут запутаны, и, следовательно, код будет легче читать, понимать и поддерживать.

Во-вторых, скорее всего, вы »

6
ответ дан 4 December 2019 в 01:31
поделиться

Что ж, если у вас есть веб-сайт ... Вероятно, у вас есть какой-то код Javascript, так что это один раз, у вас есть бизнес-логика на сервере и у вас есть база данных для хранения вещей. На мой взгляд, это три уровня. Конечно, вы можете использовать сохраненные процессы в базе данных и пропустить уровень бизнес-логики, поэтому при желании можно создать веб-сайт с двумя уровнями, но если вы не хотите использовать сохраненные процессы, у вас будет три уровня.

-1
ответ дан 4 December 2019 в 01:31
поделиться

Спасибо FinnNk, но позвольте мне дать вам пример того, что происходит, когда вы не разделяете свои уровни. Я уже много лет работаю над проектом, с которым плохо разошлись при рождении. Все три уровня - даже больше, если верить тому, что сказал Tuinstoel - объединены в отдельные страницы JSP. Я уверен, что в то время это казалось умным решением (быстрее писать код, когда вы только начинаете), но это чудовище росло и росло, и никто не нашел времени на рефакторинг.

Теперь у нас есть 2000+ JSP страниц, с разбросанным по всей площади повторяющимся кодом. Внесение изменения в схему требует тщательного поиска с возвратом, чтобы выяснить, какие страницы могут быть затронуты, и индивидуального тестирования каждой из этих страниц. Никто из руководителей не считает достаточно важным тратить время на то, чтобы исправить это - краткосрочные выгоды, долгосрочные убытки.

Делайте. Не. Идти. Эта. Маршрут.

Разделение уровней приводит к лучшему, более быстрому, более тестируемому и более модульному коду. Вы будете благодарить себя за это, и (что более важно) люди, которые придут после вас, будут вам благодарны за это.

3
ответ дан 4 December 2019 в 01:31
поделиться

Некоторые базы данных открывают интерфейс rest для внешнего мира, например базы данных NoSQL CouchDB и RavenDB. Это означает, что Javascript, работающий в вашем браузере, может обращаться к базе данных без промежуточного уровня.

См., например: http://www.infoq.com/news/2010/06/couchdb

«Хорошо работающий интерфейс HTTP/REST и API Чистый и простой двухуровневый приложения (html+javascript в браузер + диван + javascript в качестве сервера)"

Oracle имеет веб-сервер внутри, вы можете использовать хранимые процедуры, которые также открывают остальной интерфейс для внешнего мира. Таким образом, JavaScript в вашем браузере также может вызывать базу данных Oracle без промежуточного

Вам всегда нужен средний уровень, когда все, что вам нужно, это получить некоторые данные из базы данных? Я сомневаюсь в этом.

(TTT, ранее известный как Tuinstoel)

2
ответ дан 4 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: