473,395 Members | 1,647 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

ASPNET2 Radically Changed from v1.1

I'm starting to play around with VS2005 and ASP.NET 2 and have some questions.

The typical pattern for a data-driven aspx page in v1.1 was data connection -> data adapter -> dataset -> bound controls. V2 (at
least by default) doesn't include data connections, data adapters or datasets in the toolbox when building an aspx page. Nor can I
find where the DataView component went to. Everything now seems to rely on the DataSource controls.

Some examples (to which I would appreciate responses on "here's how it's done in v2"):

1) If I want to present two different views of the same data -- where I would previously declare two separate DataView components
onto the design surface of a page and then bind controls to them -- must I create two different data sources? This sounds like I'm
buying into multiple requests against the database for essentially the same data.

2) One pattern I used a lot in v1.1 was to define a current record object (for either the form or a row in a databound control), and
then use it to return values to display. For example, suppose a record in the database had two fields, Title and DateChanged. I
would concatenate these two fields in a protected method called from within, say, a DataRepeater:

protected string TitleAndDate( DataRowView curDRV )
{
some_data_set.row_type strongly_typed_row = (some_data_set.row_type) curDRV.Row;

return strongly_typed_row.Title + " (" + strongly_typed_row.DateChanged.ToShortDateString() + ")";
}

And yes, I know I could do this through databinding expresssions, but frankly they were a pain in the butt to configure; this way
may have been less efficient, but it was clearer. At least to me :).

But in v2 the Datasource control doesn't seem to return a strongly-typed collection of objects. In fact, there doesn't seem to be
any "knowledge" of the underlying database schema exposed in the return value of, say, its Select() statement (clearly the schema is
contained in the Datasource control, but it seems hidden...or at least I haven't been able to find it).

How do I get access to strongly-typed values from a Datasource control so I can do things like I was used to doing in v1.1?

Frankly...so far I am deeply underwhelmed by the supposed productivity improvements in v2. They may be there -- okay, they are
almost certainly there -- but the overall approach to building websites is so radically different in ASPNET2 that I'm going to
suffer a major productivity hit just figuring out how to get started.

It also seems like the v2 framework is more restrictive, in the sense that it lets you do things simply -- provided you do them in a
particular way. I understand that's the nature of a framework, but good frameworks strike a balance between restrictions and
flexibility. Maybe it's just the radical change from v1.1 to v2, but so far all I see is a lot more restrictions, and a lot less
access to the plumbing.

- Mark
Dec 23 '05 #1
5 1386
Hi Mark,

Welcome. :-)
I've also seen your another thread in this group about the global.asax's
component desiging question, I've posted there.
As for the questions about the new ASP.NET 2.0 data accessing model, here
are some of my understanding:

1. Yes, the ASP.NET 2.0 no longer used the original component based Data
Accessing model, it use the DataSource control to replace the (
DataSet+DataAdapter+ Connection ), thus, we can avoid many autogenerated
code in code behind, but use the statically defined control template in
aspx page.... Using the configuration wizard and smartTag in VS2005 for
generating or configuration datasource control are quite easy.... The
DataSource controls can let us define some selecting or filtering
expression and parameters which help customizing the select result......
these parameters can be bound to many sources (querystring, form, Control,
......)

2. For the using TypedDataSet and typed DataRow object, there still exists
such model, and this is even enhanced by the new TypedDataSet +
TableAdapter model. Through the VS 2005 IDE, we can easily create a
TypedDataSet from DataBase and together with a TableAdapter which
encapsulate all the code wo used to configure through DataAdaper. (You can
see my reply in your another thread on this...). Thus, we can still
directly use TableAdapter to get a TypedDataSet or a TypedDataTable and use
that to bind the Databound controls (GridView, DataList,
DetailsView......).

SqlDataSource control is mainly used for encapsulating the (unTypedDataset
+ DataAdapter ) data accessing model, in the asp.net 2.0, we can also find
the ObjectDataSource control, this control is used for associate the
ASP.NET databound controls with our buisness or dataaccess components, and
one typical scenario for using ObjectDataSource is just configure the
TableAdapter (we mentioned above) in the ObjectDatasource and bind the
ObjectDataSource control to the databound controls ......., if you feel the
autogenerated methods are not sufficient, we can add our own methods into
the generated class or event define our own dataaccessing Class, and
configure it in ObjectDataSource....

Also, when adding a Datasource control onto an ASP.NET 2.0 page, it's not
necessary to bind them to a databound control, we can also programmatically
use them to get a Data record set by calling their Select method. Some
pre/post processing events like Seelcting/Selected, updating/updated......
also help us do some customization on the data accessing when using
datasource control....

Here are some related tutorial or msdn reference on ASP.NET 2.0's
databinding and using Datasource control, TableAdapter:

#Binding to a Visual Studio DataSet
http://www.asp.net/QuickStart/aspnet...s.aspx#dataset

#ObjectDataSource Control Overview
http://msdn2.microsoft.com/en-us/library/9a4kyhcx.aspx

#TableAdapter Overview
http://msdn2.microsoft.com/en-us/library/bz9tthwx.aspx

Hope helps. Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)


--------------------
| NNTP-Posting-Date: Fri, 23 Dec 2005 01:56:19 -0600
| From: Mark Olbert <Ch*********@newsgroups.nospam>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| Subject: ASPNET2 Radically Changed from v1.1
| Date: Thu, 22 Dec 2005 23:56:18 -0800
| Organization: Olbert & McHugh, LLC
| Reply-To: ma**@arcabama.com
| Message-ID: <e6********************************@4ax.com>
| X-Newsreader: Forte Agent 3.1/32.783
| MIME-Version: 1.0
| Content-Type: text/plain; charset=us-ascii
| Content-Transfer-Encoding: 7bit
| Lines: 42
| X-Trace:
sv3-2vkvCMoImkATxChi91fwCMyfSBAFekgHAyqH20qe1gaPyN5Xcg lRh8+nkyFdA5Mmn33cijYq
pdR2DYe!lkh4NF4DAyyAsJEa66Ev0gO/0ygDEzQxoF8qBIVTFvOLLJgBfeo5Pt7e76a09Fk46mpw
zg==
| X-Complaints-To: ab***@giganews.com
| X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
| X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
| X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your
complaint properly
| X-Postfilter: 1.3.32
| Path:
TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfee d00.sul.t-online.de!t-onli
ne.de!border2.nntp.dca.giganews.com!border1.nntp.d ca.giganews.com!nntp.gigan
ews.com!local01.nntp.dca.giganews.com!news.giganew s.com.POSTED!not-for-mail
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:366737
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| I'm starting to play around with VS2005 and ASP.NET 2 and have some
questions.
|
| The typical pattern for a data-driven aspx page in v1.1 was data
connection -> data adapter -> dataset -> bound controls. V2 (at
| least by default) doesn't include data connections, data adapters or
datasets in the toolbox when building an aspx page. Nor can I
| find where the DataView component went to. Everything now seems to rely
on the DataSource controls.
|
| Some examples (to which I would appreciate responses on "here's how it's
done in v2"):
|
| 1) If I want to present two different views of the same data -- where I
would previously declare two separate DataView components
| onto the design surface of a page and then bind controls to them -- must
I create two different data sources? This sounds like I'm
| buying into multiple requests against the database for essentially the
same data.
|
| 2) One pattern I used a lot in v1.1 was to define a current record object
(for either the form or a row in a databound control), and
| then use it to return values to display. For example, suppose a record in
the database had two fields, Title and DateChanged. I
| would concatenate these two fields in a protected method called from
within, say, a DataRepeater:
|
| protected string TitleAndDate( DataRowView curDRV )
| {
| some_data_set.row_type strongly_typed_row = (some_data_set.row_type)
curDRV.Row;
|
| return strongly_typed_row.Title + " (" +
strongly_typed_row.DateChanged.ToShortDateString() + ")";
| }
|
| And yes, I know I could do this through databinding expresssions, but
frankly they were a pain in the butt to configure; this way
| may have been less efficient, but it was clearer. At least to me :).
|
| But in v2 the Datasource control doesn't seem to return a strongly-typed
collection of objects. In fact, there doesn't seem to be
| any "knowledge" of the underlying database schema exposed in the return
value of, say, its Select() statement (clearly the schema is
| contained in the Datasource control, but it seems hidden...or at least I
haven't been able to find it).
|
| How do I get access to strongly-typed values from a Datasource control so
I can do things like I was used to doing in v1.1?
|
| Frankly...so far I am deeply underwhelmed by the supposed productivity
improvements in v2. They may be there -- okay, they are
| almost certainly there -- but the overall approach to building websites
is so radically different in ASPNET2 that I'm going to
| suffer a major productivity hit just figuring out how to get started.
|
| It also seems like the v2 framework is more restrictive, in the sense
that it lets you do things simply -- provided you do them in a
| particular way. I understand that's the nature of a framework, but good
frameworks strike a balance between restrictions and
| flexibility. Maybe it's just the radical change from v1.1 to v2, but so
far all I see is a lot more restrictions, and a lot less
| access to the plumbing.
|
| - Mark
|

Dec 23 '05 #2
SqlDataSource should crawl under a rock and die :) It's a fine
implementation if the documentation properly explains that by using it you
absolutely destroy any chance of having a properly layered system. In some
cases that's acceptable (like a prototype, or your mom's webpage), in all
others the benefits are probably far outweighed by the drawbacks.

It's a point far too often left unsaid.

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/
http://openmymind.net/redirector.aspx?documentId=51 - Learn about AJAX!

"Steven Cheng[MSFT]" <st*****@online.microsoft.com> wrote in message
news:rV**************@TK2MSFTNGXA02.phx.gbl...
Hi Mark,

Welcome. :-)
I've also seen your another thread in this group about the global.asax's
component desiging question, I've posted there.
As for the questions about the new ASP.NET 2.0 data accessing model, here
are some of my understanding:

1. Yes, the ASP.NET 2.0 no longer used the original component based Data
Accessing model, it use the DataSource control to replace the (
DataSet+DataAdapter+ Connection ), thus, we can avoid many autogenerated
code in code behind, but use the statically defined control template in
aspx page.... Using the configuration wizard and smartTag in VS2005 for
generating or configuration datasource control are quite easy.... The
DataSource controls can let us define some selecting or filtering
expression and parameters which help customizing the select result......
these parameters can be bound to many sources (querystring, form,
Control,
.....)

2. For the using TypedDataSet and typed DataRow object, there still exists
such model, and this is even enhanced by the new TypedDataSet +
TableAdapter model. Through the VS 2005 IDE, we can easily create a
TypedDataSet from DataBase and together with a TableAdapter which
encapsulate all the code wo used to configure through DataAdaper. (You can
see my reply in your another thread on this...). Thus, we can still
directly use TableAdapter to get a TypedDataSet or a TypedDataTable and
use
that to bind the Databound controls (GridView, DataList,
DetailsView......).

SqlDataSource control is mainly used for encapsulating the (unTypedDataset
+ DataAdapter ) data accessing model, in the asp.net 2.0, we can also
find
the ObjectDataSource control, this control is used for associate the
ASP.NET databound controls with our buisness or dataaccess components,
and
one typical scenario for using ObjectDataSource is just configure the
TableAdapter (we mentioned above) in the ObjectDatasource and bind the
ObjectDataSource control to the databound controls ......., if you feel
the
autogenerated methods are not sufficient, we can add our own methods into
the generated class or event define our own dataaccessing Class, and
configure it in ObjectDataSource....

Also, when adding a Datasource control onto an ASP.NET 2.0 page, it's not
necessary to bind them to a databound control, we can also
programmatically
use them to get a Data record set by calling their Select method. Some
pre/post processing events like Seelcting/Selected,
updating/updated......
also help us do some customization on the data accessing when using
datasource control....

Here are some related tutorial or msdn reference on ASP.NET 2.0's
databinding and using Datasource control, TableAdapter:

#Binding to a Visual Studio DataSet
http://www.asp.net/QuickStart/aspnet...s.aspx#dataset

#ObjectDataSource Control Overview
http://msdn2.microsoft.com/en-us/library/9a4kyhcx.aspx

#TableAdapter Overview
http://msdn2.microsoft.com/en-us/library/bz9tthwx.aspx

Hope helps. Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)


--------------------
| NNTP-Posting-Date: Fri, 23 Dec 2005 01:56:19 -0600
| From: Mark Olbert <Ch*********@newsgroups.nospam>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| Subject: ASPNET2 Radically Changed from v1.1
| Date: Thu, 22 Dec 2005 23:56:18 -0800
| Organization: Olbert & McHugh, LLC
| Reply-To: ma**@arcabama.com
| Message-ID: <e6********************************@4ax.com>
| X-Newsreader: Forte Agent 3.1/32.783
| MIME-Version: 1.0
| Content-Type: text/plain; charset=us-ascii
| Content-Transfer-Encoding: 7bit
| Lines: 42
| X-Trace:
sv3-2vkvCMoImkATxChi91fwCMyfSBAFekgHAyqH20qe1gaPyN5Xcg lRh8+nkyFdA5Mmn33cijYq
pdR2DYe!lkh4NF4DAyyAsJEa66Ev0gO/0ygDEzQxoF8qBIVTFvOLLJgBfeo5Pt7e76a09Fk46mpw
zg==
| X-Complaints-To: ab***@giganews.com
| X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
| X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
| X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your
complaint properly
| X-Postfilter: 1.3.32
| Path:
TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfee d00.sul.t-online.de!t-onli
ne.de!border2.nntp.dca.giganews.com!border1.nntp.d ca.giganews.com!nntp.gigan
ews.com!local01.nntp.dca.giganews.com!news.giganew s.com.POSTED!not-for-mail
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:366737
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| I'm starting to play around with VS2005 and ASP.NET 2 and have some
questions.
|
| The typical pattern for a data-driven aspx page in v1.1 was data
connection -> data adapter -> dataset -> bound controls. V2 (at
| least by default) doesn't include data connections, data adapters or
datasets in the toolbox when building an aspx page. Nor can I
| find where the DataView component went to. Everything now seems to rely
on the DataSource controls.
|
| Some examples (to which I would appreciate responses on "here's how it's
done in v2"):
|
| 1) If I want to present two different views of the same data -- where I
would previously declare two separate DataView components
| onto the design surface of a page and then bind controls to them -- must
I create two different data sources? This sounds like I'm
| buying into multiple requests against the database for essentially the
same data.
|
| 2) One pattern I used a lot in v1.1 was to define a current record
object
(for either the form or a row in a databound control), and
| then use it to return values to display. For example, suppose a record
in
the database had two fields, Title and DateChanged. I
| would concatenate these two fields in a protected method called from
within, say, a DataRepeater:
|
| protected string TitleAndDate( DataRowView curDRV )
| {
| some_data_set.row_type strongly_typed_row = (some_data_set.row_type)
curDRV.Row;
|
| return strongly_typed_row.Title + " (" +
strongly_typed_row.DateChanged.ToShortDateString() + ")";
| }
|
| And yes, I know I could do this through databinding expresssions, but
frankly they were a pain in the butt to configure; this way
| may have been less efficient, but it was clearer. At least to me :).
|
| But in v2 the Datasource control doesn't seem to return a strongly-typed
collection of objects. In fact, there doesn't seem to be
| any "knowledge" of the underlying database schema exposed in the return
value of, say, its Select() statement (clearly the schema is
| contained in the Datasource control, but it seems hidden...or at least I
haven't been able to find it).
|
| How do I get access to strongly-typed values from a Datasource control
so
I can do things like I was used to doing in v1.1?
|
| Frankly...so far I am deeply underwhelmed by the supposed productivity
improvements in v2. They may be there -- okay, they are
| almost certainly there -- but the overall approach to building websites
is so radically different in ASPNET2 that I'm going to
| suffer a major productivity hit just figuring out how to get started.
|
| It also seems like the v2 framework is more restrictive, in the sense
that it lets you do things simply -- provided you do them in a
| particular way. I understand that's the nature of a framework, but good
frameworks strike a balance between restrictions and
| flexibility. Maybe it's just the radical change from v1.1 to v2, but so
far all I see is a lot more restrictions, and a lot less
| access to the plumbing.
|
| - Mark
|

Dec 23 '05 #3
Steven,

Yes, it does, thanks.

But I'm still confused about how I go about using strongly-typed datasets. Are you saying that to do that I should be using
ObjectDataSource instead of SqlDataSource? It sounds like SqlDataSource is intended more for quick and simple applications. Is that
your point?

- Mark
Dec 23 '05 #4
SqlDataSource should crawl under a rock and die :) It's a fine
implementation if the documentation properly explains that by using it you
absolutely destroy any chance of having a properly layered system. In
some cases that's acceptable (like a prototype, or your mom's webpage), in
all others the benefits are probably far outweighed by the drawbacks.


I agree 100%. There was also interesting discussion about it (declarative
model) a while ago in case you're interested
http://aspadvice.com/blogs/joteke/ar.../31/13492.aspx
--
Teemu Keiski
ASP.NET MVP, AspInsider
Finland, EU
http://blogs.aspadvice.com/joteke
Dec 23 '05 #5
Hi Mark,

Thanks for your response. Yes, SqlDataSource is a encapsulated component
for retrieving data records through DataSet or DataReader ..... And it is
mainly used for simple DataBinding where we don't need additional
customization on the datasource.... Also, as some other members have
mentioned, it's useful when we'd like to build a rapid data access
application or a prototype at designing time.....

In addition, for "using strongly-typed datasets", you can use the new
TableAdapter in ADO.NET 2.0 to query data and return strong-typed DataSet,
(VS2005 IDE has wizard for creating TableAdapter when creating strong-typed
dataset from Tables....)

#TableAdapter Overview
http://msdn2.microsoft.com/en-us/library/bz9tthwx.aspx

And TableAdpater can be used together withe the ObjectDataSource. Of
course, if you need more advanced customization, we can create our own data
access component class which use TableAdapter/Typed dataset internally ,
and the ObjectDatasource use our own data access class....

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

--------------------
| NNTP-Posting-Date: Fri, 23 Dec 2005 10:27:02 -0600
| From: Mark Olbert <Ch*********@newsgroups.nospam>
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| Subject: Re: ASPNET2 Radically Changed from v1.1
| Date: Fri, 23 Dec 2005 08:27:35 -0800
| Organization: Olbert & McHugh, LLC
| Reply-To: ma**@arcabama.com
| Message-ID: <88********************************@4ax.com>
| References: <e6********************************@4ax.com>
<rV**************@TK2MSFTNGXA02.phx.gbl>
| X-Newsreader: Forte Agent 3.1/32.783
| MIME-Version: 1.0
| Content-Type: text/plain; charset=us-ascii
| Content-Transfer-Encoding: 7bit
| Lines: 9
| X-Trace:
sv3-uWLLg8KBna6ac3fBZW+4BQQGenukNm88V1SQhlOaspYf5dDxKp oFas3LJBRkheKBt6ufoSi1
wDFJU4o!3re6g9Q2SXnpuG6UVKwOMHpSioCF6ynOkHaY5Kt8bF KTaRVz21KQ+Lu/rGy8kgH4W5w1
Sw==
| X-Complaints-To: ab***@giganews.com
| X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
| X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
| X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your
complaint properly
| X-Postfilter: 1.3.32
| Path:
TK2MSFTNGXA02.phx.gbl!TK2MSFTNGXA01.phx.gbl!TK2MSF TFEED02.phx.gbl!tornado.fa
stwebnet.it!tiscali!newsfeed1.ip.tiscali.net!proxa d.net!64.233.160.134.MISMA
TCH!postnews.google.com!news3.google.com!border1.n ntp.dca.giganews.com!nntp.
giganews.com!local01.nntp.dca.giganews.com!news.gi ganews.com.POSTED!not-for-
mail
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet:366796
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Steven,
|
| Yes, it does, thanks.
|
| But I'm still confused about how I go about using strongly-typed
datasets. Are you saying that to do that I should be using
| ObjectDataSource instead of SqlDataSource? It sounds like SqlDataSource
is intended more for quick and simple applications. Is that
| your point?
|
| - Mark
|

Dec 26 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

11
by: Jason | last post by:
Let's say I have an html form with 20 or 30 fields in it. The form submits the fields via POST to a php page which updates a table in a database with the $_POST vars. Which makes more sense? ...
9
by: MR | last post by:
Why does the string value assigned to the RequestElementName in the SoapDocumentMethodAttribute get changed? The value below with a colon is changed to the hex value surrounded by underscores....
4
by: GTi | last post by:
I'm trying to build a class that can track changes to itself. Class MyClass { public int value1=0; public int value2=0; private int oldvalue1=0; private int oldvalue2=0; public void...
8
by: Mark Olbert | last post by:
There appears to be a REALLY annoying bug in VS2005: periodically when you're rebuilding an ASPNET2 website which uses App_Code stuff the compiler will fail to create the dynamic assembly or not be...
5
by: Mark Olbert | last post by:
I'm running into a repeatable oddity in porting a bunch of ASPNET1.1 websites to ASPNET2. Calls like this: MapPath("/path/fromroot") result in exceptions under ASPNET2, but worked fine under...
19
by: Taras_96 | last post by:
Hi everyone, How do you detect that a form element has been changed? This thread: ...
10
by: msnnews.msn.com | last post by:
hi there, i've got a photo gallery that programatically creates a subfolder for each gallery, if i delete the album in my site, it also deletes the subfolder, but resets my website and i lose...
5
by: Mark | last post by:
Hello, I have a form where I want to only enable a save button when something has changed in the dataset. Currently I'm checking current values against original values everytime a value is...
7
by: devnew | last post by:
hi i am trying to create a cache of digitized values of around 100 image files in a folder..In my program i would like to know from time to time if a new image has been added or removed from the...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.