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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

5回答

5111閲覧

C# ASP.NET MVC

ikasoumen

総合スコア110

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/07/13 15:08

###前提・実現したいこと
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で構築したい
安く抑えたい

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

まず

  • 片手間でやるのか本業(専業)でやるのか?
  • 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/13 21:16

編集2016/07/13 21:18
dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikasoumen

2016/07/14 14:04

WindowsForm>ASP.Net という順で得意です。 WinFormから移行を見越した作りにしておくというのはいいですね。 C#提案できないと、VBAの糞コードをメンテしなければならなくなるので絶対嫌なんです。。しかも、複数人数で開発するとか言っているので。。 でも、C#の開発者なんているのか?とか言われました。 確かに、僕もVBA以外のプログラマにあったことがない。。
dojikko

2016/07/14 18:56

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

2016/07/22 14:48

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

0

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/16 01:04

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikasoumen

2016/07/22 14:42

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

0

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

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

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

投稿2016/07/14 06:32

len_souko

総合スコア1348

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikasoumen

2016/07/14 13:51

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

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/13 23:01

編集2016/07/13 23:03
daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikasoumen

2016/07/14 13:55

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

0

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

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

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

投稿2016/07/13 15:53

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikasoumen

2016/07/14 14:17

既存のツールはバグだらけ(Excel VBA)でよくもまぁこんな工数かけて、しょうもないの作ったなぁという感想です。 重要度はものすごく高いです。 システム構築のための効率化図るためのシステムで、これがこけると、プロジェクトがこけますw WEBでないならEXCEL ACCESS WinFormなどが選択肢になります。
iwamoto_takaaki

2016/07/16 00:10

>システム構築のための効率化図るためのシステムで、これがこけると、プロジェクトがこけますw それでは、コード管理やテストがしっかり出来る.netの方が良さそうですね。不具合を起こした際のリカバリは一番やりやすいはずです。開発プロジェクトに帳票出力が必須というのは、ワークフロー的に硬すぎる気がしますが。。。(図面などかな) また、顕在化していないリスクに対して安全策を講じるために費用をかけるのはおかしくはありませんので、ある程度費用がかかる点は説得できるのでは無いでしょうか。 Excelは管理しづらいかもしれませんが、Accessなら更新がほどんどないという&日時バックアップで問題無いというなら、ありだと思います。WindowsFormは共有フォルダから突っついて動かすならありだと思いますが、個人的にはWebの方が使い回しが良い気がします。
ikasoumen

2016/07/22 14:48

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問