A Brief Summary of My Blog System

本文记录了一位初学者从零开始使用Visual Studio 2008搭建ASP.NET C#博客系统的经历,分享了安装配置过程中的挑战及解决办法,并表达了对C#语言的喜爱。

A Brief Summary of My Blog System

By void main

 

My sincere thanks to Yuki for her support, to Zhang shuai && Wan Lipeng for the homework that they left to us.

 

Prelude

After kind of a month, my Blog System is finally PAUSED. Instead of FINISHED, I’d rather use PAUSED simply because there are still so many defects to be removed, so many functions to be improved. But anyway, I’ve finished most of the system. Frankly speaking, this is the first time for me to build such a system. A WEB System. So, at the beginning, everything was extremely tough. What the hell is IIS? Why should I setup it first? How to use Visual Studio? How to configure it? And there are even more obstacles standing right in front of me. So what? First lesson that I learnt during the project, not a lesson on technique, is if you want to learn something, set your heart down. You may have to read 300 to 400 pages of books to understand some concept that can help you with your work. And I think by the time I learn Java, OS or anything else, this lesson will help me a lot!

So like a month ago, I started my preparation work for the site, and today, I finally finished it. This is the exactly reason for me to write this summary. If you are an expert in ASP.NET based on C#, I really appreciate it if you could spend some time, read this ugly passage and spend some time guiding me to further development in this area. If you, like me, are a beginner of this area, I would like to contact you so that we can communicate and develop!If you have no interest in this area, well, thank God, you have saved your time by avoiding reading such a boring passage!

As the last word before the main part of the passage, I’d quote the famous saying “Good good study, day day up!”. Wish you’d like this essay. So that’s all, let’s get started!

 

I : Getting to Know Visual Studio 2008

I confess that VS2008 is the largest program that I have ever tried to download from Internet with my poor 1MB/s broadband at home. Downloading it from the Net cost me 2days, not to mention the time spent on installing it on my laptop.(for my defense, I downloaded it for about 8 hours a day, not 24hours…)

 

Figure1 Visual Studio 2008

Downloading this cost me 2 days…

Well, I have to commit that the 2 days’ time is really of great value.After a few trials, I found out that Visual Studio 2008 is a very simple, compact, convient and beautiful IDE(short for Intergrated Development Environment). First of all, VS2008 is very convient. Here’s an example to illustrate this. Look at figure2 below:

 

Figure2 Create an Windows Application project with C# in VS2008

 

By a few clicks on the left button of the mouse, Visual Studio generates a windows form application all of itself. Without writing even a line of code, we can build and run it, what you will get is a resizable, movable form. This is an aspect of VS2008’s convinence. Besides, VS2008 is also very beautiful! I mean, look at the layout and the color of the IDE, don’t you think it very beautiful? At least, I think it is! That is why I have such great fun writing codes with it!

Getting familiar with Visual Studio 2008 is such a pleasure for me. By draging some controls, I can work out a perfect layout of a web page, or a windows form. At the same time, I also planned to study Java. Because of time, I haven’t read much on Java. But in order to write something, I have to choose a IDE. According to the Bible-like book Core Java, I decided to try my hand on Eclipse. But in my own opinion, Eclipse is to ugly to be used compared to Visual Studio 2008. Well, I have to say that since I’m not used to Eclipse right now, so my view may be changed if I could get a more detailed view of Eclipse, but at this very moment, I have to say that VS2008 is really really beautiful, especially when you compare it to other IDEs!

 

II: C# as My Love

Some of my friends has kept asking me the question, “Hey, there!Which programming language have you decided to choose are your major programming language?” And my answer has always been “Sorry, I don’t know…” But today, I have a firm answer to that question, that is C#! Yes, I love C#!

First of all, I’d like to show you a figure:

 

Figure3  A C# program

Look at the figure, all you get is a class named as INeverUseFuckYouAsClassName, and three gray rectangles with “Field”, “Property”, “Methods”. So, when you write C# programs, all you need to do is draw three rectangles and type in the three magical words Field, Property and Methods, the brilliant IDE will generate the perfect codes for you? Definitly NOT! This is not April 4th!! Look carefully at the right bottom corner of the figure above, it shows that this program has 45 lines of code? Why all that you see is 3 lines of codes in a class? Actually, those are not codes! Those are Regions. I love C#, because it allows us programmers to set out own Regions! This is such a strong function! (To be continue…)

求解器介绍 1.Eigen求解器学习和介绍               Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. It supports all matrix sizes, from small fixed-size matrices to arbitrarily large dense matrices, and even sparse matrices. It supports all standard numeric types, including std::complex, integers, and is easily extensible to custom numeric types. It supports various matrix decompositions and geometry features. Its ecosystem of unsupported modules provides many specialized features such as non-linear optimization, matrix functions, a polynomial solver, FFT, and much more. Eigen仓库:https://gitlab.com/libeigen/eigen/ https://en.wikipedia.org/wiki/Eigen_(C%2B%2B_library) https://gitcode.com/yantuguiguziPGJ/TestEigenAXEqualB/overview?utm_source=csdn_user_project_gitcode&null 2.osqp求解器学习和介绍    The linear system solver is a core part of the OSQP algorithm. Depending on the problem instance, different linear system solvers can greatly speedup or reduce the computation time of OSQP.  osqp仓库:https://osqp.org/docs/get_started/linear_system_solvers.html https://github.com/osqp/osqp 3.Ceres求解器学习和介绍      Ceres Solver  is an open source C++ library for modeling and solving large, complicated optimization problems. It can be used to solve Non-linear Least Squares problems with bounds constraints and general unconstrained optimization problems. It is a mature, feature rich, and performant library that has been used in production at Google since 2010.  Ceres仓库:https://github.com/ceres-solver/ceres-solver 4.gurobi求解器学习和介绍    With our powerful algorithms, you can add complexity to your model to better represent the real world, and still solve your model within the available time. The performance gap grows as model size and difficulty increase. Gurobi has a history of making continual improvements across a range of problem types, with a more than 75x speedup on MILP since version 1.1. Gurobi is tuned to optimize performance over a wide range of instances. Gurobi is tested thoroughly for numerical stability and correctness using an internal library of over 10,000 models from industry and academia. gurobi仓库:https://www.gurobi.com/ 5.MKL求解器学习和介绍    Intel® Math Kernel Library (Intel® MKL) is a highly optimized, extensively threaded, and thread-safe library of mathematical functions for engineering, scientific, and financial applications that require maximum performance. Intel MKL 11.3 Update 3 packages are now ready for download. Intel MKL is available as part of the Intel® Parallel Studio XE and Intel® System Studio .  MKL仓库:https://github.com/oneapi-src/oneMKL https://www.intel.cn/content/www/cn/zh/developer/articles/guide/intel-math-kernel-library-intel-mkl-2019-getting-started.html 6.suitesparse求解器学习和介绍      SuiteSparse is a suite of sparse matrix algorithms, including: •GraphBLAS: graph algorithms in the language of linear algebra •Mongoose: graph partitioning •ssget: MATLAB and Java interface to the SuiteSparse Matrix Collection •UMFPACK: multifrontal LU factorization.  Appears as LU and x=A\b in MATLAB. •CHOLMOD: supernodal Cholesky.  Appears as CHOL and x=A\b in MATLAB.  Now with CUDA acceleration, in collaboration with NVIDIA. •SPQR: multifrontal QR.  Appears as QR and x=A\b in MATLAB, with CUDA acceleration. •KLU and BTF:  sparse LU factorization, well-suited for circuit simulation.  •Ordering methods (AMD, CAMD, COLAMD, and CCOLAMD).  AMD and COLAMD appear in MATLAB. •CSparse and CXSparse: a concise sparse Cholesky factorization package for my SIAM book. •spqr_rank: a MATLAB package for reliable sparse rank detection, null set bases, pseudoinverse solutions, and basic solutions. •Factorize: an object-oriented solver for MATLAB (a reusable backslash). •SSMULT and SFMULT: sparse matrix multiplication.  Appears as the built-in C=A*B operator in MATLAB. •... and many other packages.  suitesparse仓库:https://github.com/DrTimothyAldenDavis/SuiteSparse https://people.engr.tamu.edu/davis/suitesparse.html 7.Spectra求解器学习和介绍    Spectra stands for Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK. It is a C++ library for large scale eigenvalue problems, built on top of Eigen, an open source linear algebra library. Spectra is implemented as a header-only C++ library, whose only dependency, Eigen, is also header-only. Hence Spectra can be easily embedded in C++ projects that require calculating eigenvalues of large matrices. Spectra仓库:https://github.com/yixuan/spectra/ 8.COPT求解器学习和介绍  COPT (Cardinal Optimizer) is a mathematical optimization solver for large-scale optimization problems. It is independently developed by Cardinal Operations, and it includes high-performance solvers for LP, MIP, SDP, (MI)SOCP, convex (MI)QP, convex (MI)QCP and exponential cone programming. The optimizer supports all major operating systems (64-bit), including Windows, Linux, and MacOS. It also supports ARM64 and Apple Silicon platforms. COPT supports interfaces to Python, PuLP, Pyomo, CVXPY, Linopy, C, C++, C#, Julia, Java, AIMMS, AMPL and GAMS. COPT has also been integrated into RSOME, PyEPO, PyPSA and PyOptInterface by optimization community. COPT仓库:https://shanshu.ai/solver 9.scs求解器学习和介绍      SCS (splitting conic solver) is a numerical optimization package for solving large-scale convex cone problems. The current version is 3.2.7. scs仓库:https://github.com/cvxgrp/scs 10.CppAD求解器学习和介绍  We refer to the automatic creation of an algorithm that computes derivative values from an algorithm that computes function values as Algorithmic Differentiation , also referred to as Automatic Differentiation or just AD. A brief introduction to AD can be found in wikipedia. The web site autodiff.org is dedicated to research about, and promoting the use of, AD. CppAD仓库:https://github.com/coin-or/CppAD 11.clarbel求解器学习和介绍      Clarabel.rs is a Rust implementation of an interior point numerical solver for convex optimization problems using a novel homogeneous embedding. clarbel仓库:https://github.com/oxfordcontrol/Clarabel.rs 12.COPT7.2介绍    COPT (Cardinal Optimizer) is a mathematical optimization solver for large-scale optimization problems. It is independently developed by Cardinal Operations, and it includes high-performance solvers for LP, MIP, SDP, (MI)SOCP, convex (MI)QP, convex (MI)QCP and exponential cone programming. The optimizer supports all major operating systems (64-bit), including Windows, Linux, and MacOS. It also supports ARM64 and Apple Silicon platforms. COPT supports interfaces to Python, PuLP, Pyomo, CVXPY, Linopy, C, C++, C#, Julia, Java, AIMMS, AMPL and GAMS. COPT has also been integrated into RSOME, PyEPO, PyPSA and PyOptInterface by optimization community. COPT仓库:https://shanshu.ai/solver 13.Ipopt求解器学习和介绍    Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software package for large-scale nonlinear optimization. Ipopt仓库:https://github.com/coin-or/Ipopt https://coin-or.github.io/Ipopt/ 14.MOSEK 求解器学习和介绍      Our solver is the answer for all your LPs, QPs, SOCPs, SDPs, and MIPs. Includes interfaces to C, C++, Java, MATLAB, .NET, Python, Julia, Rust and R. MOSEK 仓库:https://www.mosek.com/downloads/ https://www.mosek.com/ 15.G2o求解器学习和介绍          g2o is an open-source C++ framework for optimizing graph-based nonlinear error functions. g2o has been designed to be easily extensible to a wide range of problems and a new problem typically can be specified in a few lines of code. The current implementation provides solutions to several variants of SLAM and BA. G2o仓库:https://github.com/RainerKuemmerle/g2o 16.CVXPY求解器学习和介绍        CVXPY is an open source Python-embedded modeling language for convex optimization problems. It lets you express your problem in a natural way that follows the math, rather than in the restrictive standard form required by solvers. CVXPY仓库:https://github.com/cvxpy/cvxpy/ https://www.cvxpy.org/ 17.ifopt求解器学习和介绍   A modern, light-weight, Eigen-based C++ interface to Nonlinear Programming solvers, such as Ipopt and Snopt. ifopt仓库: https://github.com/ethz-adrl/ifopt 18.CppNumericalSolvers求解器学习和介绍    a lightweight header-only C++17 library of numerical optimization methods for nonlinear functions based on Eigen CppNumericalSolvers仓库:https://github.com/PatWie/CppNumericalSolvers 19.CPLEX求解器学习和介绍     CPLEX is a high-performance mathematical programming solver for linear programming, mixed integer programming, and quadratic programming CPLEX仓库:https://ibmdecisionoptimization.github.io/docplex-doc/mp.html https://www.ibm.com/products/ilog-cplex-optimization-studio/cplex-optimizer 20.xpress求解器学习和介绍       Enable business users to solve complex problems in minutes, processing millions of variables at great speed and scalability. xpress仓库:https://pypi.org/project/xpress/ https://www.fico.com/en/products/fico-xpress-optimization 21.Mindopt求解器学习和介绍         Enable business users to solve complex problems in minutes, processing millions of variables at great speed and scalability. Mindopt仓库:https://github.com/aliyun/mindoptj https://opt.aliyun.com/portal 22.OptVerse求解器学习和介绍         支持常见的数学规划问题LP和MIP及特定价值场景应用的QP/QCP 支持多数主流编程接口等SDK方式及云服务API调用等多种集成方式,用户可以快速适配开发,满足自身的开发需求 提供丰富的模型库和接口,已适配诸如生产排程、切割、路径规划等多种工业引擎,满足不同行业场景诉求,为企业提供多种决策优化解决方案 OptVerse仓库:https://github.com/VMaia77/optverse https://www.huaweicloud.com/intl/en-us/cases/tjg.html 23.LeOPT求解器学习和介绍         LeOPT, also known as Lenovo Optimization Solver, is an optimization software that currently supports solving linear programming and mixed-integer linear programming problems. It has been proven efficient in Lenovo's supply chain scenarios. LeOPT仓库:http://www.leopt.cn/ 24.Coin-OR求解器学习和介绍       A Package for Automatic Differentiation of Algorithms Written in C/C++ Coin-OR仓库:https://github.com/coin-or/ADOL-C https://en.wikipedia.org/wiki/COIN-OR https://www.coin-or.org/projects/ 25.Baron求解器学习和介绍         BARON is a global optimization solver that uses a branch-and-reduce algorithm to solve MINLP problems. Our worldwide developers have, on average, doubled MINLP performance with each major BARON release over the last 20 years. BARON is recognized as the best global optimization software available and is a key product used by Fortune 500 companies, national research labs, universities, and more. Learn more about BARON in our Company Brochure. Baron仓库:https://github.com/jump-dev/BARON.jl https://minlp.com/baron-solver 26.GLOP求解器学习和介绍       GLOP (the Google Linear Optimization Package) is Google's open source linear programming solver, created by Google's Operations Research Team. It is written in C++ and was released to the public as part of Google's OR-Tools software suite in 2014. GLOP仓库:https://github.com/google/or-tools/tree/stable/ortools/glop https://en.wikipedia.org/wiki/GLOP 27.Cbc求解器学习和介绍   Cbc (Coin-or branch and cut) is an open-source mixed integer linear programming solver written in C++. It can be used as a callable library or using a stand-alone executable. It can be used in a wide variety of ways through various modeling systems, packages, etc. Cbc仓库:https://github.com/coin-or/Cbc 28.HiGHS求解器学习和介绍             HiGHS is high performance serial and parallel software for solving large-scale sparse linear programming (LP), mixed-integer programming (MIP) and quadratic programming (QP) models, developed in C++11, with interfaces to C, C#, FORTRAN, Julia and Python. HiGHS仓库: https://github.com/ERGO-Code/HiGHS.git https://highs.dev/ 29.GLPK 求解器学习和介绍       The GLPK (GNU Linear Programming Kit) package is intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the form of a callable library. GLPK supports the GNU MathProg modeling language, which is a subset of the AMPL language. GLPK 仓库:http://ftp.gnu.org/gnu/glpk/ https://winglpk.sourceforge.net/ 30.scip求解器学习和介绍         Welcome to what is currently one of the fastest academically developed solvers for mixed integer programming (MIP) and mixed integer nonlinear programming (MINLP). In addition, SCIP provides a highly flexible framework for constraint integer programming and branch-cut-and-price. It allows for total control of the solution process and the access of detailed information down to the guts of the solver. scip仓库:https://github.com/scipopt/scip 31.SoPlex求解器学习和介绍       SoPlex is an optimization package for solving linear programming problems (LPs) based on an advanced implementation of the primal and dual revised simplex algorithm. It provides special support for the exact solution of LPs with rational input data. It can be used as a standalone solver reading MPS or LP format files via a command line interface as well as embedded into other programs via a C++ class library. SoPlex仓库:https://github.com/scipopt/soplex https://soplex.zib.de/ 32.CMIP求解器学习和介绍           CMIP整数规划求解器采用了一种广义系数缩紧割平面(GCSC)的技术。该割平面技术由CMIP团队自主提出,对于一般的整数规划问题具有一定的改善效果,尤其对于网络设计问题效果显著。通过MIPLIB2010国际公认标准整数规划测试库的测试对比,CMIP求解器的性能已经超过传统的求解器GLPK(俄国2000,Google Optimization Tools中的整数规划求解器)以及LPSOLVE(芬兰2004,GAMS高级建模系统调用其解决整数规划问题)。 CMIP仓库:https://lsec.cc.ac.cn/~dyh/software.html https://zhuanlan.zhihu.com/p/35354471 33.LEAVES求解器学习和介绍         LEAVES is an open-source platform that provide mathematical programming solvers, machine learning tools(LEMO), and the access to a bunch of commercial applications (LAOR). So far, its mathematical solvers support the solution of Linear Programming, Semi-Definite Programming, Geometric Programming, Linearly Constrained Convex Programming, etc. LEAVES仓库:https://github.com/leavesgrp/ABIP https://guide.coap.online/solvers/list/LEAVES.html https://www.36kr.com/p/1721925189633 git clone https://github.com/ceres-solver/ceres-solver --recursive git clone https://github.com/coin-or/CppAD.git --recursive git clone https://github.com/osqp/osqp --recursive git clone https://github.com/oneapi-src/oneMKL --recursive git clone https://github.com/DrTimothyAldenDavis/SuiteSparse --recursive git clone https://github.com/yixuan/spectra/ --recursive git clone https://github.com/cvxgrp/scs --recursive git clone https://github.com/oxfordcontrol/Clarabel.rs --recursive git clone https://github.com/cvxpy/cvxpy/ --recursive git clone https://github.com/ethz-adrl/ifopt --recursive git clone https://github.com/PatWie/CppNumericalSolvers --recursive git clone https://github.com/RainerKuemmerle/g2o --recursive git clone https://gitlab.com/libeigen/eigen.git --recursive git clone https://github.com/google/or-tools.git --recursive git clone https://github.com/aliyun/mindoptj --recursive git clone https://github.com/VMaia77/optverse --recursive git clone https://github.com/coin-or/ADOL-C --recursive git clone https://github.com/jump-dev/BARON.jl --recursive git clone https://github.com/coin-or/Cbc --recursive git clone https://github.com/ERGO-Code/HiGHS.git --recursive git clone https://github.com/scipopt/scipt --recursive git clone https://github.com/scipopt/soplex --recursive git clone https://github.com/leavesgrp/ABIP --recursive git clone https://github.com/coin-or/Ipopt --recursive
05-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值