.net是什么

.net是什么,第1张

首先 nihaide11这位仁兄不要误导 net不是一门语言 也不是一门技术 net是一个框架 在net框架下有很多种语言 而且不论哪种语言 它们对应的数据库也不是一定的 java同样可以使用mysql,msSql,access,oracle这些数据库 不同的数据库 只是它们本身做的工作不同而已

mysql是开源的 但承载的性能和吞吐量比不上msSql和oracle

msSql是微软开发的 在世界范围中应用十分广泛 其好坏由不得我们来评价

access是轻量级 文件形式的数据库 只针对小型软件的应用

oracle是当前最强大的数据库 超大型的工程 和十分复杂的工程 往往都会选择oracle

Q: net是什么呢,听说是用来连接静态页面和数据库之间关系的语言?

A: net是由微软开发的一个框架集 Visual Stutio就是针对这个框架集的API

net中的adonet是用来进行数据库的读写等交互 而net与静态页这种概念没有任何关系

net主要包括VBnet C#net J#net等等语系 亦集成了C++等语系 不过net中最常用也最强大的语言是C#

Q: net与ASP PHP 这些有什么关系,是各用于不同的地方,相互协作吗。

A: 没有任何关系 net是一个框架 ASP和PHP是web技术 可以说net中的aspnet与asp和php是对等的关系 但在性质上又有很大的区别 aspnet是事件驱动机制的 aspnet可以由C#或者VBnet语系来编写 而C#和VBnet都是面向对象的语言 asp与php是轻量级的 aspnet更为先进 而aspnet是被包含在net框架下的 net asp php 不是一种东西 所以更提不到相互协作

Q: net与sql的关系

A: 可以说没有任何关系 net不是语言 而是一种框架 net不依赖于数据库 并且adonet提供了多种数据连接机制 net制作的程序可以使用mysql,sql,access,oracle 甚至是excel来作为数据库

不过两者之间也存在另一层关系 如果LZ使用过sql2005的话 一定会发现sql2005在安装时需要安装一个插件 叫framework20 这个插件是为net框架语言开发的程序准备的 也就是说 sql2005有一部分功能是用 net开发的

最后补充一下 ASP+SQL 我想应该是 ASPNET+SQL吧

javaDB其实就是Derby,它并不是一个新的数据库产品,它是由IBM捐献给Apache的DB项目的一个纯Java数据库,JDK60里面带的这个Derby的版本是 10217,支持存储过程和触发器;有两种运行模式,一种是作为嵌入式数据库,另一种是作为网络数据库,前者的数据库服务器和客户端都在同一个 JVM里面运行,后者允许数据库服务器端和客户端不在同一个JVM里面,而且允许这两者在不同的物理机器上值得注意的是JDK6里面的这个Derby支持JDK6的新特性JDBC 40规范(JSR 221),现在我们如果要练习JDBC的用法,没有必要单独装一个数据库产品了,直接用Derby就行

1、本身没有 *** 作界面,可以用第三方工具来管理(也就是你说的 *** 作界面),Aqua Data Studio 具备管理功能的用于 Apache Derby 关系数据库的管理工具和数据库查询工具。直观管理功能让用户能够浏览和修改数据库结构,包括架构对象和数据库存储,以及维护数据库安全。集成查询工具让您能够迅速创建、编辑和执行 SQL 查询与脚本。Aqua Data Studio 进一步提供导入与导出工具,从而轻松地将数据移入和移出不同的数据格式及 Apache Derby 数据库。集成在这些工具内的是库浏览器 (Repository Browser),拥有 CVS 和 Subversion (SVN) 的完整来源控制客户端。

2、两者的区别,简单的说,就是javaDB是一个简化轻量级数据库,适合小型系统的小规模测试用,完全可以跑在内存里的数据库,它只有3M大小,而MySQL则是可以应用部署大型系统的数据库,功能更多更全,也更稳定,是用范围更广。

3、下面是个使用derby的简单例子:

首先导入JAR包:derbyjar,如果你装的是JDK6,在C:\Program Files\Sun\JavaDB\lib目录下就可以找到

然后就要创建数据库了:

代码

private Connection getConnection() throws SQLException {

Connection connection = DriverManager

getConnection("jdbc:derby:userDB;create=true;user=test;password=test");

connectionsetAutoCommit(false);

return connection;

}

其中userDB是要连接数据库的名字,create=true表示如果该数据库不存在,则创建该数据库,如果数据库存在,则用用户user=test;密码password=test连接数据库

有了数据库,接下来该建表了:

代码

private void createTable(Connection connection) throws SQLException {

Statement statement = connectioncreateStatement();

String sql = "create table USERS("

+ " ID BIGINT not null generated by default as identity,"

+ " USER_NAME VARCHAR(20) not null,"

+ " PASSWORD VARCHAR(20),"

+ " constraint P_KEY_1 primary key (ID))";

statementexecute(sql);

sql = "create unique index USER_NAME_INDEX on USERS ("

+ " USER_NAME ASC)";

statementexecute(sql);

statementclose();

}

创建了 USERS表,包括ID,USER_NAME,PASSWORD三个列,其中ID是主键,其中generated by default as identity 的作用类似sequence,identity是定义自动加一的列,

GENERATED BY ALWAYS AS IDENTITY

GENERATED BY DEFAULT AS IDENTITY

By always和by default是说明生成这个IDENTITY的方式。

By always是完全由系统自动生成。

by default是可以由用户来指定一个值。

编写与USERS表对应的javabean(这个就不多说了),:

代码

public class User implements Serializable {

/

/

private static final long serialVersionUID = 1L;

private Long id;

private String userName;

private String password;

public Long getId() {

return id;

}

public void setId(Long id) {

thisid = id;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

thisuserName = userName;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

thispassword = password;

}

}

接下来就可以就数据库进行增删改查的 *** 作了:

插入数据:

代码

private void create(User user) {

Connection connection = null;

try {

connection = thisgetConnection();

PreparedStatement statement = connection

prepareStatement("insert into users (user_name,password) values(,)");

int index = 1;

statementsetString(index++, usergetUserName());

statementsetString(index++, usergetPassword());

statementexecute();

usersetId(thisgetId(connection));

connectioncommit();

} catch (SQLException e) {

rollback(connection);

throw new RuntimeException(e);

} finally {

if (connection != null) {

close(connection);

}

}

}

代码

private Long getId(Connection connection) throws SQLException {

CallableStatement callableStatement = connection

prepareCall("values identity_val_local()");

ResultSet resultSet = callableStatementexecuteQuery();

resultSetnext();

Long id = resultSetgetLong(1);

resultSetclose();

callableStatementclose();

return id;

}

getId方法是获得系统默认的id值,是通过 identity_val_local()获得的,而函数IDENTITY_VAL_LOCAL()则可以在INSERT语句执行之后,为我们返回刚才系统为id所产生的值感觉还是有点想sequence的curr_val

修改数据:

代码

private void update(User user) {

Connection connection = null;

try {

connection = thisgetConnection();

PreparedStatement statement = connection

prepareStatement("update users set user_name=,password= where id=");

int index = 1;

statementsetString(index++, usergetUserName());

statementsetString(index++, usergetPassword());

statementsetLong(index++, usergetId());

statementexecute();

connectioncommit();

} catch (SQLException e) {

rollback(connection);

throw new RuntimeException(e);

} finally {

if (connection != null) {

close(connection);

}

}

}

删除数据:

代码

public void delete(Long id) {

Connection connection = null;

try {

connection = thisgetConnection();

PreparedStatement statement = connection

prepareStatement("delete from users where id=");

statementsetLong(1, id);

statementexecute();

connectioncommit();

} catch (SQLException e) {

rollback(connection);

throw new RuntimeException(e);

} finally {

if (connection != null) {

close(connection);

}

}

}

查询数据:

代码

public User findById(Long id) {

Connection connection = null;

try {

connection = thisgetConnection();

PreparedStatement statement = connection

prepareStatement("select user_name,password from users where id=");

statementsetLong(1, id);

ResultSet resultSet = statementexecuteQuery();

User user = null;

if (resultSetnext()) {

user = new User();

usersetId(id);

usersetUserName(resultSetgetString("user_name"));

usersetPassword(resultSetgetString("password"));

}

resultSetclose();

statementclose();

connectioncommit();

return user;

} catch (SQLException e) {

throw new RuntimeException(e);

} finally {

if (connection != null) {

close(connection);

}

}

}

我们都知道NET Core是一个可以用来构建现代、可伸缩和高性能的跨平台软件应用程序的通用开发框架。可用于为Windows、Linux和MacOS构建软件应用程序。与其他软件框架不同,NET Core是最通用的框架,可用于构建各种软件,包括Web应用程序、移动应用程序、桌面应用程序、云服务、微服务、API、 游戏 和物联网应用程序。与其他框架不同,NET Core并不局限于单一的编程语言,它支持C#、VBNET、F#、XAML和TypeScript。这些编程语言都是开源的,由独立的社区管理。

NET Core提供了最先进、最成熟和最广泛的类库、公共API、多语言支持和工具。借助于Visual Studio 2019和Visual Studio Code 这些最先进和最现代的开发工具,使得NET Core成为开发人员最高效的平台之一。

NET Core的 历史

NET Core是由Microsoft开发,目前在NET Foundation(一个非营利的开源组织)下进行管理。NET Core是用C#和C++编写的,并采用MIT协议作为开源协议。第一个版本的NET Core 10是在2016年发布的,功能有限。NET Core 20于2017年8月14日发布。在这个版本中发布的两个核心框架是ASPNET Core20和 Entity Framework Core 20。下一个稳定版本NET Core 21和22于2018年5月和12月发布。NET Core的当前版本为300,并且在2019年5月6日发布了第5个预览版。

下表总结了NET Core的主要里程碑:

版本发布日期关键特征/产品NET Core 106/27/2016VisualStudio 2015 Update 3支持的NET Core的初始版本。net Core 1113/7/2017NET Core Tools 10受VisualStudio 2017支持NET Core 208/14/2017VisualStudio 2017 153,ASPNETCore 20,实体框架20NET Core 215/30/2018ASPNET Core 21,EF Core 21NET Core 2212/4/2018ASPNET Core 22,EF Core 22NET Core 30预览33/6/2019通过VisualStudio2019支持ASPNET Core 30、EF Core30、UWP、Windows窗体、WPF。

NET Core的特点

NET Core的主要特性包括开源、跨平台、现代、灵活、轻量级、快速、友好、可共享,以及为未来的软件开发而构建的。

NET Core是免费和开源的

NET Core平台是免费的、开源的。NET Core的源代码托管在Github上。任何开发人员都可以参与到NET Core的开发。有数千名参与NET Core开发的活跃开发人员正在改进特性、添加新特性以及修复bug和问题。

NET Core由一个名为NET Foundation的独立的非营利组织管理。60,000多名开发人员和3,700多家公司正在为NET生态系统做出贡献。

NET Core是免费的,并且采用MIT和Apache协议作为开源协议。对商业十分友好。不像某Java

NET Core是跨平台的

NET Core支持并运行在Windows、MacOS和Linux *** 作系统上。NET Core跨体系结构(包括x64、x86和ARM)是一致的。可以导入相同的程序集和库,并在多个平台上使用。这些程序集和库都可以使用如下的NET语言进行构建,如:C#、VBNET或F#。

NET Core是可共享的

NET Core使用一种用NET Standard编写的一致API模型,这种模型对所有NET应用程序都是通用的。相同的API或库可以与多种语言的多个平台一起使用。

NET Core是现代的

与一些较旧的框架不同,NET Core旨在解决当今的现代需求,包括移动友好、构建一次在任何地方运行、可伸缩和高性能。NET Core旨在构建针对各种设备的应用程序,包括物联网和 游戏 机。

Visual Studio 2019和Visual Studio Code是世界上最先进和最现代的集成开发环境。这两个IDES都支持当今的现代需求,并且专注于干净、速度和生产力。在这里了解有关VisualStudio 2019功能的更多信息:VisualStudio 2019新特性

NET Core是快速的

NET Core 30 是快速的。与NET Framework和NET Core 22及以前的版本相比,NET Core 30的速度很快。NET Core比其他服务器端框架(如Java Servlet和Nodejs)快得多。

根据TechEmpowers发布的一份报告,NET Core比任何其他框架都要快得多。 TechEmpower基准测试通过对多个Web应用程序框架做如下比较:数据库的单表查询,多表查询,文件访问,数据更新,明文和JSON序列化等任务进行比较。

NET Core是轻量级的

NET Core是轻量级的。NET Core可以包含在您的应用程序中,也可以安装在并行用户、机器范围内或服务器上。NET Core可以部署在Docker容器中。

NET Core是友好的

NET Core通过NET Standard与NET Framework,Xamarin和Mono兼容。 NET Core还支持使用各种流行的Web框架和库,如React,Angular和JavaScript。 TypeScript是NET Core和Visual Studio生态系统的关键组件之一。

我们可以使用NET Core构建哪些类型的应用程序?

NET Core是一个通用的软件开发框架。它允许开发人员构建各种软件,包括Web,桌面,移动,云, 游戏 ,物联网等。

NET Core更适合跨平台需求。NET Core应用程序支持在Windows,Linux和macOS上运行。Linux和macOS上也都支持Microsoft流行的开源代码编辑器Visual Studio Code。VS Code支持代码编辑器的现代需求,包括智能提醒和调试。大多数第三方编辑器(如Sublime,Emacs和VI)都支持NET Core。

Web应用

ASPNET Core是NET Core生态系统的核心组件。ASPNET Core是一个用于构建网页的框架。ASPNET Core基于MVC架构,并提供用于构建Web的通用库。开始使用ASPNET Core

Razor是一个使用C#和TypeScript构建动态网页的新框架。Razor是一种改变 游戏 规则的技术,它允许C#开发人员用C#构建Web应用程序。

移动开发

移动开发是NET Core的关键产品。Xamarin是一套使用C#构建跨平台移动应用程序的工具和库。Xamarin允许开发人员在共享的NET代码库上为IOS、Android、Windows和MacOS构建本地应用程序。

桌面应用程序

NET Core提供各种框架和工具来构建桌面应用程序。Windows窗体、WPF、UWP和Xamarin是构建桌面应用程序的四个主要框架。NET Core还支持这些框架之间的互 *** 作性。

Windows窗体是一种构建Windows桌面应用程序的技术。Windows窗体是NET Framework的首批组件之一。

WPF(Windows Presentation Foundation)是一种较新的构建Windows桌面应用程序的技术。WPF是作为NET Framework版本的一部分发布的

了解有关wpf的更多信息这里

UWP是一种较新的技术,是在Windows 8之后发布的。如今,UWP已经成熟。UWP使用XAML作为表示层(UI)和C#作为后端编程。但是,貌似微软已经宣布了他的死亡。

微服务和容器

微服务是一种新的设计模式,它允许开发人员构建软件服务的小模块,这些模块可以使用定义良好的契约相互通信。微服务使开发、测试和部署应用程序的独立部分更加容易。一旦部署完毕,每个微服务都可以根据需要独立地进行缩放。NET Core支持微服务体系结构,它允许跨平台服务与NET Core一起工作,包括使用NET Framework、Java、Ruby或其他开发的服务。

容器是今天的越野车。NET Core的模块化、轻量级和灵活性使得将NET Core应用程序部署到容器中变得更加容易。容器把一个应用程序的所有的配置文件和依赖关系,包含在一个单独的、小型的和独立的软件部署单元中。容器可以部署在任何平台、云、Linux和Windows上。NET Core与Docker和Azure Kubernetes服务都很好地协作。

云应用程序

云应用程序现在越来越受欢迎。Azure支持各种云应用程序。NET Core和C#应用程序可以通过Visual Studio 2019部署在Azure上。

物联网

物联网应用正在增长。NET Core支持通过UWP框架为运行Windows 10 IoT Core的物联网设备进行物联网开发。UWP可用于构建在由Raspberry Pi,MinnowBoard MAX,DragonBoard 410c等提供支持的物联网上运行的应用程序。

机器学习

机器学习是软件开发人员日益增长的领域。

参考微软官方文档

游戏

Unity是最受欢迎的 游戏 开发框架之一。C#和UWP用于构建移动,桌面,控制台,电视,VR,AR和Web 游戏 。

NET Core 30中的新增的功能有哪些?

最新版本的NET Core 30刚刚发布。C#8和Windows桌面是这个版本的两个主要新增部分。

C#8是C#语言的最新版本。C#8是NET Core的一部分。C#8增加了新功能,包括

Windows桌面是NET Core 30的新增功能,允许开发人员使用Windows窗体,WPF和UWP构建Windows桌面应用程序。

以下是NET Core 30中的其他功能和增强功能列表,

参考文献

沙盒路径取错了。

NSDocumentDirectory是指程序对应的documents(用户数据)的路径。而NSDocumentationDirectory对应的程序中的Library/Documentation路径,这个路径是没有读写权限的,故不能创建数据库文件。所以不能创建数据库的原因,该从目录中去查找原因。

sqlite是一种轻量级的嵌入式数据库,占用资源非常低,在嵌入式设备中,可能只需要几百K的内存就可以了。

以上就是关于.net是什么全部的内容,包括:.net是什么、JavaDB的一些问题、通俗易懂,什么是.NET Core以及.NET Core能做什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9481584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存