質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.37%

C# ASP.NET MVC

解決済

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 3,091

ikasoumen

score 107

前提・実現したいこと

C# ASP.NETを利用して
100人程度利用想定の社内WEBシステムを構築したいと思っております。
社内用ちょっとしたアプリなのでロードバランサとかたいそうなものは考えておりません。
サーバは余ってたら使わせてもらえます。

主に、データベースへのアクセスし帳票を出力するのですが、
データベースはSQL SERVER EXPRESSで事足りるでしょうか?

データベースの規模は100MB~300MBぐらいに収まるのではないかと思ってます。

常時100人が接続するわけではないのですが、
Expressで利用できるメモリが1GBとなっていたので、
データの帳票出力があるのでアクセスが集中がすると厳しそうです。

Windows on MySQLとかの方がいいでしょうか?

正直、利用人数規模も見えていなくて、ものすごい漠然としてますが、
俺ならこういう構成組むっていうのがあれば教えていただきたいです。

ちなみに、なぜC#なのかというと自分が得意だからです。
ネックはWindows使うのにお金がかかるので、説得できるなにかも考えないといけないのですが。
LAMPとかに比べたら敷居高いですかね。。。

WEBアプリケーションを公開する場合、
Windows WEB Serverというのを買った方がいいのでしょうか?

商品体系についてもよくわかっていません。。。

まとめ

100人程度の利用規模でちょっとしたWEBアプリを社内用に公開したい
データベースのサイズは50MB~300MB程度を想定
C# ASP.NETで構築したい
安く抑えたい

サーバやデータベースは何を選定したらいいか?

以上、よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

checkベストアンサー

+2

まず

  • 片手間でやるのか本業(専業)でやるのか?
  • C#が得意とありますが、ASP.Net、WindowsForm、WPFのどれが得意なのか?

は押さえておいた方がいいです

自身が公言されているのでC#は得意なんでしょうが、ASP.Netは初めてなんでしょうかね
C#が得意でASP.Netをバリバリやっていたらこういう質問にならないので、多分そういうことなんでしょう

もし片手間でやるのなら、できるだけ得意なフィールドに持ち込んでやるようにしないと後で泣くことになります
当たり前ですが業務アプリケーションはトラブル起こすと業務が止まってしまいます
お金が絡むことでは会社に致命的な損害を与えることもあります
それは片手間であろうが、専業であろうが同じです
いざ業務が止まれば「あいつが片手間でやってくれているのだから(業務が止まっても)仕方ないね」とは絶対になりません
社外の人間であれ社内の人間であれ業務アプリケーションを開発するということはそういうことです

稼働プラットフォームがWindowsオンリーで帳票が絡むならWindowsFormかWPFの得意な方で取り組んでみる
ちゃんと実現できて、かつそれでもWeb化の意向があるようなら、作成したものをベースにWeb化を考えられた方が負担は小さいかと
もしくは個人的にASP.Netを取り組んでみた上で、その実績を元に取り組む
未習熟のテクノロジーをぶっつけでとか怖すぎます

データベースの規模は100MB~300MBぐらいに収まるのではないかと思ってます
Expressで利用できるメモリが1GBとなっていたので、 
データの帳票出力があるのでアクセスが集中がすると厳しそうです

その規模だとデータがオンメモリで処理できそうなので全く問題ないのでは?

Windows on MySQLとかの方がいいでしょうか?

たぶん止めておいた方がいいです
マメに情報をフォローできる環境でないと..
MySQL Connectorの動向にも目を配らないといけなくなります
慣れない環境では、うまく動かないときに自分のコードが悪いのか他(環境、フレームワーク、コンポーネント)が悪いのか見分けがつかないことが多いので、慣れるまではリファレンス環境で取り組みましょう
個人的な体験ですと、さんざん試行錯誤しても動かせず、結果DBコネクタのバグ(その時はOr*cleでしたが)ということもありました
特に業務アプリケーション開発でオープンソースのものを取り入れる際には注意が必要です
Web開発界隈では、業務環境にもオープンソースプロジェクトを流行り廃りでとっかえひっかえ取り入れているみたいですが、私には理解しがたいものがありますね(それだけ考え方が古いってことなんでしょうが)

俺ならこういう構成組むっていうのがあれば教えていただきたいです

こういうステップでステップアップしていく計画を立てます

  1. SQLServer+WindowsAppの構成でまず完成させる
  2. SQLServer+Webサービス(WebAPIでもWCFでも:対WindowsAppはWCFが楽ですけど)+WindowsAppに進化させる
  3. SQLServer+Webサービス+ASP.Net MVCに進化させる

まあ社内業務アプリケーションなら、1が完成した時点でそれを進化させることはあっても、2や3に進むことはまずないと思いますが..

あともっと根本的な話ですが、その業務システムは本当にコード書かなきゃダメですか?
よく分析してみて、今世の中に存在するプロダクト、サービスで間に合いませんか?
究極のところ矛盾しているかもしれませんが「コード書いたら負け」ってこともありますよ

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/14 23:04

    WindowsForm>ASP.Net という順で得意です。
    WinFormから移行を見越した作りにしておくというのはいいですね。

    C#提案できないと、VBAの糞コードをメンテしなければならなくなるので絶対嫌なんです。。しかも、複数人数で開発するとか言っているので。。

    でも、C#の開発者なんているのか?とか言われました。
    確かに、僕もVBA以外のプログラマにあったことがない。。

    キャンセル

  • 2016/07/15 03:56

    そういう用向きですとVSTO(Visual Studio Tools for Office)で開発するという方法もアリかもしれません
    個人的には業務アプリケーションを型定義の無い言語環境で取り組むのはもう無い話じゃないかなと

    キャンセル

  • 2016/07/22 23:48

    ありがとうございます。
    費用とか色々問題があってcent OSにWEBアプリを組むことになりそうです。。。

    キャンセル

+1

C#がバリバリに使えて、WebとかMVCとかそういうことはわかっている!といことが無いのであれば、専門のプログラマーでなくてもなるべく作れるようなWebアプリ作成ツール、例えばFileMakerForgancyの方が良いかもしれません。

また、お金をかけたくないというのであれば、Accessで作ってしまうのも一つです(Office ProPlusなどで全台Accessをすでに導入済みである事が前提ですが、Excel VBAよりは遥かにマシなものが作れます)。Webでは無くなりますが、共通のファイルサーバ(TeraStationでもいい)に置いておくだけで使えますので、サーバー構築の手間や費用が大幅に削減できると思います。難点は、Accessのバージョン間の互換性が結構低くてバージョン上がる度に改修しないと動かない場合が多いと言うところでしょうか。

さて、否定するところから入ってしまいましたが、別に悪い選択だとは思いません。SQL Server Expressの制限(RAM:1GB、データ:10GBまで)に引っかからず、特にパフォーマンスを求めていなければ十分だと思います。注意点としては、実際にWindows Serverに設置するときはWindows Server CALに気をつけてください。すでにADとか運用していて全員(または全台)分のCALを購入していれば良いですが、もし購入していなければ、使用する予定のユーザー数分(またはクライアント台数分、少ない方を選択可)のCALが必要になりますので気をつけてください。
※ IISだけではCALが不要になる場合があるのですが、Windowsの認証を使用したり、SQL Server Expressを使用したりする場合はCALは必要になります。SQL ServerのCALの数え方は間接接続であることに注意してください。直接SQL Server Expressを使わなくても、IISを通じて間接的に使っているユーザー数(または台数)を数えます

なお、Windows WEB ServerはインターネットなどにWeb公開するときに特定の条件でCALを不要にするためにありましたが、2012からCALの考え方がまた変わったため、2012以降はWidows Web Serverは用意されていません。ここら辺は複雑なこともあり、購入する前に購入予定の業者に問い合わせてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/22 23:42

    ありがとうございます。
    CALという概念を知らなかったので参考になります。

    キャンセル

0

前に社内SEやっていました。
社内システムは重要度に合わせて構築することが大事です。
出来るかぎり既存のツールを使って最小限度の機能のものを素早く作るのが大事だと思います。

ユーザー100人程度で目的が、帳票(PDF?)ならば私ならファイルサーバに権限設定をして、帳票はそこに直接置きます。そうすれば、DBはなんであっても(更新が少なければ例えばXMLファイルでも)問題無いし、その分手間が減ります。

あと安く仕上げるためのヒント?
Webでやらなければいけない理由orその他のアプリではいけませんか?
社内ポータルサイトの掲示板機能ではダメですか?
WindowsServerが社内にあるなら相乗りを交渉してみては?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/14 23:17

    既存のツールはバグだらけ(Excel VBA)でよくもまぁこんな工数かけて、しょうもないの作ったなぁという感想です。

    重要度はものすごく高いです。

    システム構築のための効率化図るためのシステムで、これがこけると、プロジェクトがこけますw

    WEBでないならEXCEL ACCESS WinFormなどが選択肢になります。

    キャンセル

  • 2016/07/16 09:10

    >システム構築のための効率化図るためのシステムで、これがこけると、プロジェクトがこけますw

    それでは、コード管理やテストがしっかり出来る.netの方が良さそうですね。不具合を起こした際のリカバリは一番やりやすいはずです。開発プロジェクトに帳票出力が必須というのは、ワークフロー的に硬すぎる気がしますが。。。(図面などかな)

    また、顕在化していないリスクに対して安全策を講じるために費用をかけるのはおかしくはありませんので、ある程度費用がかかる点は説得できるのでは無いでしょうか。

    Excelは管理しづらいかもしれませんが、Accessなら更新がほどんどないという&日時バックアップで問題無いというなら、ありだと思います。WindowsFormは共有フォルダから突っついて動かすならありだと思いますが、個人的にはWebの方が使い回しが良い気がします。

    キャンセル

  • 2016/07/22 23:48

    ありがとうございます。
    費用とか色々問題があってcent OSにWEBアプリを組むことになりそうです。。。

    キャンセル

0

かっこいい画面とかを求めない
社内システムでコストかけられない
であれば、あまり事例が公開されていませんが、
VS20xx にある、LightSwitch を使ってみる手もあるのでは?

データベースのメンテナンス用途などでは、
テーブルが用意できていれば、
ちゃらやらっと、画面が作れてしまったりします。
⇒私の用途としては、LAN内 WEB / Local Desktop です。

検索ワード例
liteswitch web
https://www.google.co.jp/search?hl=ja&q=liteswitch+web&lr=lang_ja&gws_rd=ssl

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/14 22:55

    LightSwitch は初めて知りました。
    今回は無理ですが、今度試してみたいと思います。

    キャンセル

0

>敷居高い・・・意味が違います
あと、言語はC#が得意とありますが、ASP.NET・ASP.NET MVC・Form・WPFなど色々使える技術はありますが、どれが得意なのでしょうか?
またFormやWPFだとクラサバ型にするのかWebAPIを使ってサーバー側を作るのかなどいろんな手は取れますが、システム開発やメンテナンスに専念できるのであれば一番いいものをというのも可能でしょうが、片手間程度しか無理という場合は得意なものでなるべく習得すべき技術は少ない方が良いかもしれません

>サーバは余ってたら使わせてもらえます
ということから使えるかどうかも判断基準になりそうなので確認して使えるのかどうかも書いた方が良いかと思います

ちなみに自分の場合はASP.NET MVCでDBはSQLServerの・・Expressでも大丈夫だと思う

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/14 22:51

    Unityが得意です。
    時点でWinForm ASP.NETというところでしょうか。

    ASP.NETは基礎的なことは学習しましたが、
    特にサービスを公開したわけでも、頻繁に触ってるわけでもないです。
    でも、基礎的なことでだいたいこと足りるんじゃないかなぁという感覚です。
    html側(lazor)は要員を募集しようと思いますが、技術者がいるか不安です。
    htmlやってる人なら応できるかな、、、

    システム開発には専念できる予定です。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る